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>>,
pub repetition_level_histograms: Option<Vec<i64>>,
pub definition_level_histograms: Option<Vec<i64>>,
}format module is no longer maintained, and will be removed in 59.0.0Expand description
Optional statistics for each data page in a ColumnChunk.
Forms part the page index, along with OffsetIndex.
If this structure is present, OffsetIndex must also be present.
For each field in this structure, <field>[i] refers to the page at
OffsetIndex.page_locations[i]
Fieldsยง
ยงnull_pages: Vec<bool>format module is no longer maintained, and will be removed in 59.0.0A 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>>format module is no longer maintained, and will be removed in 59.0.0Two lists containing lower and upper bounds for the values of each page determined by the ColumnOrder of the column. 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>>format module is no longer maintained, and will be removed in 59.0.0boundary_order: BoundaryOrderformat module is no longer maintained, and will be removed in 59.0.0Stores whether both min_values and max_values are ordered 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>>format module is no longer maintained, and will be removed in 59.0.0A list containing the number of null values for each page
Writers SHOULD always write this field even if no null values are present or the column is not nullable. Readers MUST distinguish between null_counts not being present and null_count being 0. If null_counts are not present, readers MUST NOT assume all null counts are 0.
repetition_level_histograms: Option<Vec<i64>>format module is no longer maintained, and will be removed in 59.0.0Contains repetition level histograms for each page concatenated together. The repetition_level_histogram field on SizeStatistics contains more details.
When present the length should always be (number of pages * (max_repetition_level + 1)) elements.
Element 0 is the first element of the histogram for the first page. Element (max_repetition_level + 1) is the first element of the histogram for the second page.
definition_level_histograms: Option<Vec<i64>>format module is no longer maintained, and will be removed in 59.0.0Same as repetition_level_histograms except for definitions levels.
Implementationsยง
Sourceยงimpl ColumnIndex
impl ColumnIndex
pub fn new<F5, F6, F7>( null_pages: Vec<bool>, min_values: Vec<Vec<u8>>, max_values: Vec<Vec<u8>>, boundary_order: BoundaryOrder, null_counts: F5, repetition_level_histograms: F6, definition_level_histograms: F7, ) -> ColumnIndex
format module is no longer maintained, and will be removed in 59.0.0Trait Implementationsยง
Sourceยงimpl Clone for ColumnIndex
impl Clone for ColumnIndex
Sourceยงfn clone(&self) -> ColumnIndex
fn clone(&self) -> ColumnIndex
1.0.0 ยท Sourceยงfn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSourceยงimpl Debug for ColumnIndex
impl Debug for ColumnIndex
Sourceยงimpl Hash for ColumnIndex
impl Hash for ColumnIndex
Sourceยงimpl Ord for ColumnIndex
impl Ord for ColumnIndex
Sourceยงfn cmp(&self, other: &ColumnIndex) -> Ordering
fn cmp(&self, other: &ColumnIndex) -> Ordering
1.21.0 ยท Sourceยงfn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Sourceยงimpl PartialEq for ColumnIndex
impl PartialEq for ColumnIndex
Sourceยงimpl PartialOrd for ColumnIndex
impl PartialOrd for ColumnIndex
Sourceยงimpl TSerializable for ColumnIndex
impl TSerializable for ColumnIndex
Sourceยงfn read_from_in_protocol<T: TInputProtocol>(
i_prot: &mut T,
) -> Result<ColumnIndex>
fn read_from_in_protocol<T: TInputProtocol>( i_prot: &mut T, ) -> Result<ColumnIndex>
Sourceยงfn write_to_out_protocol<T: TOutputProtocol>(
&self,
o_prot: &mut T,
) -> Result<()>
fn write_to_out_protocol<T: TOutputProtocol>( &self, o_prot: &mut T, ) -> Result<()>
impl Eq for ColumnIndex
impl StructuralPartialEq for ColumnIndex
Auto Trait Implementationsยง
impl Freeze for ColumnIndex
impl RefUnwindSafe for ColumnIndex
impl Send for ColumnIndex
impl Sync for ColumnIndex
impl Unpin for ColumnIndex
impl UnwindSafe for ColumnIndex
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> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
ยง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