F3. RowGroup
(F3 v0.1.0)
Copy Markdown
One row group, with the column chunks the footer points at.
columns follows the column-metadata order for that row group. name
is the matching schema field when the counts line up, and nil when
they do not. Chunks are IOUnits. Each encunits entry is one encoding
unit. This struct does not contain column bytes.
index is the row group index. num_rows is its row count.
byte_offset and byte_size locate it in the file. columns follows
the column-metadata order. A column name is the schema field when the
counts line up, and nil when they do not.
Examples
iex> group = %F3.RowGroup{index: 0, num_rows: 3, byte_offset: 0, byte_size: 10}
iex> group.columns
[]
Summary
Types
@type chunk() :: %{ offset: non_neg_integer(), size: non_neg_integer(), num_rows: non_neg_integer(), dictionary: dictionary(), checksum: non_neg_integer() | nil, encunits: [encunit()] }
@type column() :: %{ index: non_neg_integer(), name: String.t() | nil, chunks: [chunk()] }
@type compression() :: :uncompressed | :zstd | :lz4 | non_neg_integer()
@type dictionary() :: :none | {:local, [non_neg_integer()]} | {:shared, non_neg_integer()}
@type encoding() :: :cascade | :custom_wasm | non_neg_integer()
@type encunit() :: %{ size: non_neg_integer(), num_rows: non_neg_integer(), encoding: encoding(), compression: compression(), wasm_id: non_neg_integer() | nil }
@type t() :: %F3.RowGroup{ byte_offset: non_neg_integer(), byte_size: non_neg_integer(), columns: [column()], index: non_neg_integer(), num_rows: non_neg_integer() }