QuackDB (quackdb v0.1.0)

Copy Markdown View Source

Remote DuckDB Quack protocol client.

The public API is backed by DBConnection so it can grow into an Ecto adapter without changing the lower-level protocol codec.

Summary

Types

start_option()

@type start_option() ::
  {:uri, String.t()} | {:token, String.t()} | {:name, GenServer.name()}

Functions

child_spec(options)

@spec child_spec([start_option()]) :: Supervisor.child_spec()

prepare(connection, statement, options \\ [])

@spec prepare(DBConnection.conn(), iodata(), Keyword.t()) ::
  {:ok, QuackDB.Query.t()} | {:error, Exception.t()}

prepare_execute(connection, statement, params \\ [], options \\ [])

@spec prepare_execute(DBConnection.conn(), iodata(), [term()], Keyword.t()) ::
  {:ok, QuackDB.Query.t(), QuackDB.Result.t()} | {:error, Exception.t()}

query(connection, statement, params \\ [], options \\ [])

@spec query(DBConnection.conn(), iodata(), [term()], Keyword.t()) ::
  {:ok, QuackDB.Result.t()} | {:error, Exception.t()}

query!(connection, statement, params \\ [], options \\ [])

@spec query!(DBConnection.conn(), iodata(), [term()], Keyword.t()) ::
  QuackDB.Result.t()

start_link(options)

@spec start_link([start_option()]) :: GenServer.on_start()

stream(connection, statement, params \\ [], options \\ [])

@spec stream(DBConnection.conn(), iodata(), [term()], Keyword.t()) ::
  QuackDB.Stream.t()