parquet::file::page_index::index

Struct NativeIndex

Source
pub struct NativeIndex<T: ParquetValueType> {
    pub indexes: Vec<PageIndex<T>>,
    pub boundary_order: BoundaryOrder,
}
Expand description

Strongly typed statistics for data pages in a column chunk.

This structure is a natively typed, in memory representation of the ColumnIndex structure in a parquet file footer, as described in the Parquet PageIndex documentation. The statistics stored in this structure can be used by query engines to skip decoding pages while reading parquet data.

§Differences with Row Group Level Statistics

One significant difference between NativeIndex and row group level Statistics is that page level statistics may not store actual column values as min and max (e.g. they may store truncated strings to save space)

Fields§

§indexes: Vec<PageIndex<T>>

The actual column indexes, one item per page

§boundary_order: BoundaryOrder

If the min/max elements are ordered, and if so in which direction. See source for details.

Implementations§

Source§

impl<T: ParquetValueType> NativeIndex<T>

Source

pub const PHYSICAL_TYPE: Type = T::PHYSICAL_TYPE

The physical data type of the column

Source

pub(crate) fn try_new(index: ColumnIndex) -> Result<Self, ParquetError>

Creates a new NativeIndex

Source

pub(crate) fn to_thrift(&self) -> ColumnIndex

Trait Implementations§

Source§

impl<T: Clone + ParquetValueType> Clone for NativeIndex<T>

Source§

fn clone(&self) -> NativeIndex<T>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug + ParquetValueType> Debug for NativeIndex<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Hash + ParquetValueType> Hash for NativeIndex<T>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<T: ParquetValueType> HeapSize for NativeIndex<T>

Source§

fn heap_size(&self) -> usize

Return the size of any bytes allocated on the heap by this object, including heap memory in those structures Read more
Source§

impl<T: PartialEq + ParquetValueType> PartialEq for NativeIndex<T>

Source§

fn eq(&self, other: &NativeIndex<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: Eq + ParquetValueType> Eq for NativeIndex<T>

Source§

impl<T: ParquetValueType> StructuralPartialEq for NativeIndex<T>

Auto Trait Implementations§

§

impl<T> Freeze for NativeIndex<T>

§

impl<T> RefUnwindSafe for NativeIndex<T>
where T: RefUnwindSafe,

§

impl<T> Send for NativeIndex<T>

§

impl<T> Sync for NativeIndex<T>
where T: Sync,

§

impl<T> Unpin for NativeIndex<T>
where T: Unpin,

§

impl<T> UnwindSafe for NativeIndex<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T