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 32-bit CRC checksum for the page, to be be calculated as follows:
- The standard CRC32 algorithm is used (with polynomial 0x04C11DB7, the same as in e.g. GZip).
- All page types can have a CRC (v1 and v2 data pages, dictionary pages, etc.).
- The CRC is computed on the serialization binary representation of the page (as written to disk), excluding the page header. For example, for v1 data pages, the CRC is computed on the concatenation of repetition levels, definition levels and column values (optionally compressed, optionally encrypted).
- The CRC computation therefore takes place after any compression and encryption steps, if any.
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§
Source§impl 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,
) -> PageHeaderwhere
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§
Source§impl Clone for PageHeader
impl Clone for PageHeader
Source§fn clone(&self) -> PageHeader
fn clone(&self) -> PageHeader
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for PageHeader
impl Debug for PageHeader
Source§impl Hash for PageHeader
impl Hash for PageHeader
Source§impl Ord for PageHeader
impl Ord for PageHeader
Source§fn cmp(&self, other: &PageHeader) -> Ordering
fn cmp(&self, other: &PageHeader) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for PageHeader
impl PartialEq for PageHeader
Source§impl PartialOrd for PageHeader
impl PartialOrd for PageHeader
Source§impl 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 StructuralPartialEq for PageHeader
Auto Trait Implementations§
impl Freeze for PageHeader
impl RefUnwindSafe for PageHeader
impl Send for PageHeader
impl Sync for PageHeader
impl Unpin for PageHeader
impl UnwindSafe for PageHeader
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
Mutably borrows from an owned value. Read more
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)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)