Struct parquet_format_safe::PageHeader
source · [−]pub struct PageHeader {
pub type_: PageType,
pub uncompressed_page_size: i32,
pub compressed_page_size: i32,
pub crc: Option<i32>,
pub data_page_header: Option<DataPageHeader>,
pub index_page_header: Option<IndexPageHeader>,
pub dictionary_page_header: Option<DictionaryPageHeader>,
pub data_page_header_v2: Option<DataPageHeaderV2>,
}
Fields
type_: PageType
the type of the page: indicates which of the *_header fields is set *
uncompressed_page_size: i32
Uncompressed page size in bytes (not including this header) *
compressed_page_size: i32
Compressed (and potentially encrypted) page size in bytes, not including this header *
crc: Option<i32>
The 32bit CRC for the page, to be be calculated as follows:
- Using the standard CRC32 algorithm
- On the data only, i.e. this header should not be included. ‘Data’ hereby refers to the concatenation of the repetition levels, the definition levels and the column value, in this exact order.
- On the encoded versions of the repetition levels, definition levels and column values
- On the compressed versions of the repetition levels, definition levels
and column values where possible;
- For v1 data pages, the repetition levels, definition levels and column values are always compressed together. If a compression scheme is specified, the CRC shall be calculated on the compressed version of this concatenation. If no compression scheme is specified, the CRC shall be calculated on the uncompressed version of this concatenation.
- For v2 data pages, the repetition levels and definition levels are handled separately from the data and are never compressed (only encoded). If a compression scheme is specified, the CRC shall be calculated on the concatenation of the uncompressed repetition levels, uncompressed definition levels and the compressed column values. If no compression scheme is specified, the CRC shall be calculated on the uncompressed concatenation.
- In encrypted columns, CRC is calculated after page encryption; the encryption itself is performed after page compression (if compressed) If enabled, this allows for disabling checksumming in HDFS if only a few pages need to be read.
data_page_header: Option<DataPageHeader>
index_page_header: Option<IndexPageHeader>
dictionary_page_header: Option<DictionaryPageHeader>
data_page_header_v2: Option<DataPageHeaderV2>
Implementations
sourceimpl PageHeader
impl PageHeader
pub fn new<F4, F5, F6, F7, F8>(
type_: PageType,
uncompressed_page_size: i32,
compressed_page_size: i32,
crc: F4,
data_page_header: F5,
index_page_header: F6,
dictionary_page_header: F7,
data_page_header_v2: F8
) -> PageHeader where
F4: Into<Option<i32>>,
F5: Into<Option<DataPageHeader>>,
F6: Into<Option<IndexPageHeader>>,
F7: Into<Option<DictionaryPageHeader>>,
F8: Into<Option<DataPageHeaderV2>>,
pub fn read_from_in_protocol<T: TInputProtocol>(
i_prot: &mut T
) -> Result<PageHeader>
pub fn write_to_out_protocol<T: TOutputProtocol>(
&self,
o_prot: &mut T
) -> Result<usize>
Trait Implementations
sourceimpl Clone for PageHeader
impl Clone for PageHeader
sourcefn clone(&self) -> PageHeader
fn clone(&self) -> PageHeader
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for PageHeader
impl Debug for PageHeader
sourceimpl Hash for PageHeader
impl Hash for PageHeader
sourceimpl Ord for PageHeader
impl Ord for PageHeader
sourcefn cmp(&self, other: &PageHeader) -> Ordering
fn cmp(&self, other: &PageHeader) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialEq<PageHeader> for PageHeader
impl PartialEq<PageHeader> for PageHeader
sourcefn eq(&self, other: &PageHeader) -> bool
fn eq(&self, other: &PageHeader) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &PageHeader) -> bool
fn ne(&self, other: &PageHeader) -> bool
This method tests for !=
.
sourceimpl PartialOrd<PageHeader> for PageHeader
impl PartialOrd<PageHeader> for PageHeader
sourcefn partial_cmp(&self, other: &PageHeader) -> Option<Ordering>
fn partial_cmp(&self, other: &PageHeader) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl ReadThrift for PageHeader
impl ReadThrift for PageHeader
fn read_from_in_protocol<T: TInputProtocol>(
i_prot: &mut T
) -> Result<PageHeader>
impl Eq for PageHeader
impl StructuralEq for PageHeader
impl StructuralPartialEq for PageHeader
Auto Trait Implementations
impl RefUnwindSafe for PageHeader
impl Send for PageHeader
impl Sync for PageHeader
impl Unpin for PageHeader
impl UnwindSafe for PageHeader
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more