QuackDB.Columns (quackdb v0.3.0)

Copy Markdown View Source

Column-oriented query result.

This struct preserves column order and result metadata while exposing vectors in a map keyed by disambiguated column names. It is intended for analytical workflows and as a stable bridge toward future Arrow/columnar integrations.

Summary

Functions

Returns a column vector by disambiguated name.

Returns a column vector by disambiguated name, or default when absent.

Raises because column result structs are read-only.

Raises because column result structs are read-only.

Converts column vectors to row maps keyed by disambiguated column names.

Converts column vectors back to row lists.

Types

t()

@type t() :: %QuackDB.Columns{
  columns: %{required(String.t()) => [term()]},
  command: QuackDB.Result.command() | nil,
  connection_id: String.t() | nil,
  messages: [map()] | nil,
  metadata: map(),
  names: [String.t()],
  num_rows: non_neg_integer(),
  original_names: [String.t()]
}

Functions

fetch(columns, name)

@spec fetch(t(), String.t()) :: {:ok, [term()]} | :error

Returns a column vector by disambiguated name.

get(columns, name, default \\ nil)

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

Returns a column vector by disambiguated name, or default when absent.

get_and_update(columns, key, function)

Raises because column result structs are read-only.

pop(columns, key)

Raises because column result structs are read-only.

to_maps(columns)

@spec to_maps(t()) :: [%{required(String.t()) => term()}]

Converts column vectors to row maps keyed by disambiguated column names.

to_rows(columns)

@spec to_rows(t()) :: [[term()]]

Converts column vectors back to row lists.