Direct Xandra connection wrapper for AshScylla.
Replaces the Exandra/Ecto.Repo pattern. Manages a Xandra connection process and provides query/prepare operations.
Usage
# In your application supervision tree:
children = [
{AshScylla.Connection, name: MyApp.Scylla, nodes: ["127.0.0.1:9042"], keyspace: "my_app"}
]
# Or start manually:
{:ok, conn} = AshScylla.Connection.start_link(nodes: ["127.0.0.1:9042"], keyspace: "my_app")Options
All options are passed through to Xandra.start_link/1. Key options:
:name- Register the connection under this name (required for supervised start):nodes- List of nodes, e.g.["127.0.0.1:9042"]:keyspace- Keyspace to USE on connect
Summary
Functions
Returns a specification to start this module under a supervisor.
Ensures the keyspace is selected. Retries USE if not yet applied.
Returns the connection struct by name (local or global).
Prepares a CQL statement.
Prepares a CQL statement, raising on error.
Executes a simple or prepared query.
Executes a simple or prepared query, raising on error.
Reconnects to the keyspace. Useful after the keyspace has been created.
Returns {:ok, :set} or {:error, reason}.
Sets the keyspace to use. Useful when the keyspace is created after connection start.
Returns {:ok, :set} or {:error, reason}.
Stops the connection.
Converts raw Elixir values to typed Xandra params.
Types
Functions
@spec child_spec(keyword()) :: Supervisor.child_spec()
Returns a specification to start this module under a supervisor.
See Supervisor.
Ensures the keyspace is selected. Retries USE if not yet applied.
Returns the connection struct by name (local or global).
@spec prepare(t() | module(), String.t(), keyword()) :: {:ok, Xandra.Prepared.t()} | {:error, term()}
Prepares a CQL statement.
Prepares a CQL statement, raising on error.
Executes a simple or prepared query.
Automatically types simple query values for Xandra 0.19.x compatibility.
Xandra requires typed {type_string, value} tuples for simple query parameters,
so we wrap raw Elixir values in their appropriate CQL type annotations.
Executes a simple or prepared query, raising on error.
Reconnects to the keyspace. Useful after the keyspace has been created.
Returns {:ok, :set} or {:error, reason}.
Sets the keyspace to use. Useful when the keyspace is created after connection start.
Returns {:ok, :set} or {:error, reason}.
@spec start_link(keyword()) :: GenServer.on_start()
Stops the connection.
Converts raw Elixir values to typed Xandra params.
Xandra 0.19.x requires simple query values to be {type_string, value} tuples.
This function infers the CQL type from the Elixir type.