QuackDB.Meta (quackdb v0.5.3)

Copy Markdown View Source

DuckDB catalog and metadata helpers.

These functions wrap DuckDB's logical metadata pragmas and table functions. They accept either a QuackDB connection or a QuackDB-backed Ecto repo. Table arguments may be schema modules, atoms, strings, or {prefix, source} tuples.

Summary

Functions

Returns column defaults for a table as a map keyed by column name.

Returns column defaults for a table, raising on errors.

Lists attached DuckDB databases.

Lists attached DuckDB databases, raising on errors.

Returns primary-key columns for a table.

Returns primary-key columns for a table, raising on errors.

Returns logical column metadata for a table.

Returns logical column metadata for a table, raising on errors.

Lists tables visible to the current DuckDB connection.

Lists tables visible to the current DuckDB connection, raising on errors.

Types

source()

@type source() ::
  module() | atom() | String.t() | {atom() | String.t(), atom() | String.t()}

Functions

column_defaults(connection, source, options \\ [])

@spec column_defaults(DBConnection.conn() | module(), source(), keyword()) ::
  {:ok, %{required(String.t()) => String.t()}} | {:error, Exception.t()}

Returns column defaults for a table as a map keyed by column name.

column_defaults!(connection, source, options \\ [])

@spec column_defaults!(DBConnection.conn() | module(), source(), keyword()) :: %{
  required(String.t()) => String.t()
}

Returns column defaults for a table, raising on errors.

databases(connection, options \\ [])

@spec databases(
  DBConnection.conn() | module(),
  keyword()
) :: {:ok, [QuackDB.Meta.Database.t()]} | {:error, Exception.t()}

Lists attached DuckDB databases.

databases!(connection, options \\ [])

@spec databases!(
  DBConnection.conn() | module(),
  keyword()
) :: [QuackDB.Meta.Database.t()]

Lists attached DuckDB databases, raising on errors.

primary_keys(connection, source, options \\ [])

@spec primary_keys(DBConnection.conn() | module(), source(), keyword()) ::
  {:ok, [QuackDB.Meta.Column.t()]} | {:error, Exception.t()}

Returns primary-key columns for a table.

primary_keys!(connection, source, options \\ [])

@spec primary_keys!(DBConnection.conn() | module(), source(), keyword()) :: [
  QuackDB.Meta.Column.t()
]

Returns primary-key columns for a table, raising on errors.

table_info(connection, source, options \\ [])

@spec table_info(DBConnection.conn() | module(), source(), keyword()) ::
  {:ok, [QuackDB.Meta.Column.t()]} | {:error, Exception.t()}

Returns logical column metadata for a table.

table_info!(connection, source, options \\ [])

@spec table_info!(DBConnection.conn() | module(), source(), keyword()) :: [
  QuackDB.Meta.Column.t()
]

Returns logical column metadata for a table, raising on errors.

tables(connection, options \\ [])

@spec tables(
  DBConnection.conn() | module(),
  keyword()
) :: {:ok, [QuackDB.Meta.Table.t()]} | {:error, Exception.t()}

Lists tables visible to the current DuckDB connection.

tables!(connection, options \\ [])

@spec tables!(
  DBConnection.conn() | module(),
  keyword()
) :: [QuackDB.Meta.Table.t()]

Lists tables visible to the current DuckDB connection, raising on errors.