[][src]Struct parquet_format::PageHeader

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

impl PageHeader[src]

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>>, 
[src]

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

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

Trait Implementations

impl Clone for PageHeader[src]

impl Debug for PageHeader[src]

impl Eq for PageHeader[src]

impl Hash for PageHeader[src]

impl Ord for PageHeader[src]

impl PartialEq<PageHeader> for PageHeader[src]

impl PartialOrd<PageHeader> for PageHeader[src]

impl StructuralEq for PageHeader[src]

impl StructuralPartialEq for PageHeader[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.