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>>,
}
Expand description
Description for ColumnIndex.
Each <array-field>
[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 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>>
§boundary_order: BoundaryOrder
Stores 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>>
A list containing the number of null values for each page *
Implementations§
Trait 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
fn read_from_in_protocol<T: TInputProtocol>( i_prot: &mut T, ) -> Result<ColumnIndex>
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,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)