QuackDB.Protocol.DataChunk (quackdb v0.1.0)

Copy Markdown View Source

Decoder for DuckDB Quack DataChunk payloads.

Data chunks carry a row count, logical types, and column vectors. This module validates the chunk wrapper and converts decoded vectors into row-oriented results for the current DBConnection/Ecto-facing API.

Summary

Types

column()

@type column() :: %{
  type: QuackDB.Protocol.LogicalType.t(),
  vector_type: atom(),
  values: [term()]
}

t()

@type t() :: %QuackDB.Protocol.DataChunk{
  columns: [column()],
  row_count: non_neg_integer(),
  types: [QuackDB.Protocol.LogicalType.t()]
}

Functions

decode_wrapper(binary)

@spec decode_wrapper(binary()) :: QuackDB.Protocol.Reader.read_result(t())

rows(chunk, names \\ nil)

@spec rows(t(), [String.t()] | nil) :: [[term()]]