[][src]Struct parquet_format::ColumnIndex

pub struct ColumnIndex {
    pub null_pages: Vec<bool>,
    pub min_values: Vec<Vec<u8>>,
    pub max_values: Vec<Vec<u8>>,
    pub boundary_order: BoundaryOrder,
    pub null_counts: Option<Vec<i64>>,
}

Description for ColumnIndex. Each [i] refers to the page at OffsetIndex.page_locations[i]

Fields

null_pages: Vec<bool>

A list of Boolean values to determine the validity of the corresponding min and max values. If true, a page contains only null values, and writers have to set the corresponding entries in min_values and max_values to byte[0], so that all lists have the same length. If false, the corresponding entries in min_values and max_values must be valid.

min_values: Vec<Vec<u8>>

Two lists containing lower and upper bounds for the values of each page. These may be the actual minimum and maximum values found on a page, but can also be (more compact) values that do not exist on a page. For example, instead of storing ""Blart Versenwald III", a writer may set min_values[i]="B", max_values[i]="C". Such more compact values must still be valid values within the column's logical type. Readers must make sure that list entries are populated before using them by inspecting null_pages.

max_values: Vec<Vec<u8>>boundary_order: BoundaryOrder

Stores whether both min_values and max_values are orderd and if so, in which direction. This allows readers to perform binary searches in both lists. Readers cannot assume that max_values[i] <= min_values[i+1], even if the lists are ordered.

null_counts: Option<Vec<i64>>

A list containing the number of null values for each page *

Implementations

impl ColumnIndex[src]

pub fn new<F5>(
    null_pages: Vec<bool>,
    min_values: Vec<Vec<u8>>,
    max_values: Vec<Vec<u8>>,
    boundary_order: BoundaryOrder,
    null_counts: F5
) -> ColumnIndex where
    F5: Into<Option<Vec<i64>>>, 
[src]

pub fn read_from_in_protocol(
    i_prot: &mut dyn TInputProtocol
) -> Result<ColumnIndex>
[src]

pub fn write_to_out_protocol(
    &self,
    o_prot: &mut dyn TOutputProtocol
) -> Result<()>
[src]

Trait Implementations

impl Clone for ColumnIndex[src]

impl Debug for ColumnIndex[src]

impl Eq for ColumnIndex[src]

impl Hash for ColumnIndex[src]

impl Ord for ColumnIndex[src]

impl PartialEq<ColumnIndex> for ColumnIndex[src]

impl PartialOrd<ColumnIndex> for ColumnIndex[src]

impl StructuralEq for ColumnIndex[src]

impl StructuralPartialEq for ColumnIndex[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.