pub struct ValueStatistics<T> {
min: Option<T>,
max: Option<T>,
distinct_count: Option<u64>,
null_count: Option<u64>,
is_max_value_exact: bool,
is_min_value_exact: bool,
is_min_max_deprecated: bool,
is_min_max_backwards_compatible: bool,
}
Expand description
Typed statistics for one column chunk
See Statistics
for more details
Fields§
§min: Option<T>
§max: Option<T>
§distinct_count: Option<u64>
§null_count: Option<u64>
§is_max_value_exact: bool
§is_min_value_exact: bool
§is_min_max_deprecated: bool
If true
populate the deprecated min
and max
fields instead of
min_value
and max_value
is_min_max_backwards_compatible: bool
If true
the statistics are compatible with the deprecated min
and
max
fields. See ValueStatistics::is_min_max_backwards_compatible
Implementations§
Source§impl<T: ParquetValueType> ValueStatistics<T>
impl<T: ParquetValueType> ValueStatistics<T>
Sourcepub fn new(
min: Option<T>,
max: Option<T>,
distinct_count: Option<u64>,
null_count: Option<u64>,
is_min_max_deprecated: bool,
) -> Self
pub fn new( min: Option<T>, max: Option<T>, distinct_count: Option<u64>, null_count: Option<u64>, is_min_max_deprecated: bool, ) -> Self
Creates new typed statistics.
Sourcepub fn with_min_is_exact(self, is_min_value_exact: bool) -> Self
pub fn with_min_is_exact(self, is_min_value_exact: bool) -> Self
Set whether the stored min
field represents the exact
minimum, or just a bound on the minimum value.
Sourcepub fn with_max_is_exact(self, is_max_value_exact: bool) -> Self
pub fn with_max_is_exact(self, is_max_value_exact: bool) -> Self
Set whether the stored max
field represents the exact
maximum, or just a bound on the maximum value.
Sourcepub fn with_backwards_compatible_min_max(
self,
backwards_compatible: bool,
) -> Self
pub fn with_backwards_compatible_min_max( self, backwards_compatible: bool, ) -> Self
Set whether to write the deprecated min
and max
fields
for compatibility with older parquet writers
This should only be enabled if the field is signed,
see Self::is_min_max_backwards_compatible
Sourcepub fn min_bytes_opt(&self) -> Option<&[u8]>
pub fn min_bytes_opt(&self) -> Option<&[u8]>
Returns min value as bytes of the statistics, if min value is known.
Sourcepub fn max_bytes_opt(&self) -> Option<&[u8]>
pub fn max_bytes_opt(&self) -> Option<&[u8]>
Returns max value as bytes of the statistics, if max value is known.
Sourcepub(crate) fn _internal_has_min_max_set(&self) -> bool
pub(crate) fn _internal_has_min_max_set(&self) -> bool
Whether or not min and max values are set.
Normally both min/max values will be set to Some(value)
or None
.
Sourcepub fn max_is_exact(&self) -> bool
pub fn max_is_exact(&self) -> bool
Whether or not max value is set, and is an exact value.
Sourcepub fn min_is_exact(&self) -> bool
pub fn min_is_exact(&self) -> bool
Whether or not min value is set, and is an exact value.
Sourcepub fn distinct_count(&self) -> Option<u64>
pub fn distinct_count(&self) -> Option<u64>
Returns optional value of number of distinct values occurring.
Sourcepub fn null_count_opt(&self) -> Option<u64>
pub fn null_count_opt(&self) -> Option<u64>
Returns null count.
Sourcefn is_min_max_deprecated(&self) -> bool
fn is_min_max_deprecated(&self) -> bool
Returns true
if statistics were created using old min/max fields.
Sourcepub fn is_min_max_backwards_compatible(&self) -> bool
pub fn is_min_max_backwards_compatible(&self) -> bool
Old versions of parquet stored statistics in min
and max
fields, ordered
using signed comparison. This resulted in an undefined ordering for unsigned
quantities, such as booleans and unsigned integers.
These fields were therefore deprecated in favour of min_value
and max_value
,
which have a type-defined sort order.
However, not all readers have been updated. For backwards compatibility, this method
returns true
if the statistics within this have a signed sort order, that is
compatible with being stored in the deprecated min
and max
fields
Trait Implementations§
Source§impl<T: Clone> Clone for ValueStatistics<T>
impl<T: Clone> Clone for ValueStatistics<T>
Source§fn clone(&self) -> ValueStatistics<T>
fn clone(&self) -> ValueStatistics<T>
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<T: ParquetValueType> Debug for ValueStatistics<T>
impl<T: ParquetValueType> Debug for ValueStatistics<T>
Source§impl<T: ParquetValueType> Display for ValueStatistics<T>
impl<T: ParquetValueType> Display for ValueStatistics<T>
Source§impl<T: ParquetValueType> From<ValueStatistics<T>> for Statistics
impl<T: ParquetValueType> From<ValueStatistics<T>> for Statistics
Source§fn from(t: ValueStatistics<T>) -> Self
fn from(t: ValueStatistics<T>) -> Self
Source§impl<T: ParquetValueType> HeapSize for ValueStatistics<T>
impl<T: ParquetValueType> HeapSize for ValueStatistics<T>
Source§impl<T: PartialEq> PartialEq for ValueStatistics<T>
impl<T: PartialEq> PartialEq for ValueStatistics<T>
impl<T: Eq> Eq for ValueStatistics<T>
impl<T> StructuralPartialEq for ValueStatistics<T>
Auto Trait Implementations§
impl<T> Freeze for ValueStatistics<T>where
T: Freeze,
impl<T> RefUnwindSafe for ValueStatistics<T>where
T: RefUnwindSafe,
impl<T> Send for ValueStatistics<T>where
T: Send,
impl<T> Sync for ValueStatistics<T>where
T: Sync,
impl<T> Unpin for ValueStatistics<T>where
T: Unpin,
impl<T> UnwindSafe for ValueStatistics<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more