QuackDB.Explorer (quackdb v0.1.1)

Copy Markdown View Source

Optional Explorer integration for QuackDB results.

This module requires the optional :explorer dependency at runtime. It materializes QuackDB query results in Elixir and then builds an Explorer.DataFrame. It is not a zero-copy Arrow IPC path.

Summary

Types

dataframe_option()

@type dataframe_option() :: {:dataframe, Keyword.t()} | {:query, Keyword.t()}

Functions

dataframe(connection, statement_or_query, params \\ [], options \\ [])

@spec dataframe(DBConnection.conn(), iodata() | term(), [term()] | Keyword.t(), [
  dataframe_option()
]) ::
  {:ok, Explorer.DataFrame.t()} | {:error, Exception.t()}

Runs a QuackDB query and returns an Explorer.DataFrame.

The query can be raw SQL iodata or an Ecto query. Use :query to pass QuackDB query options and :dataframe to pass options to Explorer.DataFrame.new/2.

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

@spec dataframe!(DBConnection.conn(), iodata(), [term()], [dataframe_option()]) ::
  Explorer.DataFrame.t()

Runs a QuackDB query and returns an Explorer.DataFrame, raising on error.

from_columns(columns, options \\ [])

@spec from_columns(QuackDB.Columns.t(), Keyword.t()) ::
  {:ok, Explorer.DataFrame.t()} | {:error, Exception.t()}

Converts a QuackDB.Columns struct into an Explorer.DataFrame.

Options are passed to Explorer.DataFrame.new/2.

from_columns!(columns, options \\ [])

@spec from_columns!(QuackDB.Columns.t(), Keyword.t()) :: Explorer.DataFrame.t()

Converts a QuackDB.Columns struct into an Explorer.DataFrame, raising on error.

from_result(result, options \\ [])

@spec from_result(QuackDB.Result.t(), Keyword.t()) ::
  {:ok, Explorer.DataFrame.t()} | {:error, Exception.t()}

Converts a QuackDB.Result into an Explorer.DataFrame.

from_result!(result, options \\ [])

@spec from_result!(QuackDB.Result.t(), Keyword.t()) :: Explorer.DataFrame.t()

Converts a QuackDB.Result into an Explorer.DataFrame, raising on error.