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: boolIf true populate the deprecated min and max fields instead of
min_value and max_value
is_min_max_backwards_compatible: boolIf 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§fn clone_from(&mut self, source: &Self)
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
§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
key and return true if they are equal.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