Exqlite.Sqlite3 (Exqlite v0.7.2) View Source

The interface to the NIF implementation.

Link to this section Summary

Functions

Get the number of changes recently.

Closes the database and releases any underlying resources.

Disconnect from database and then reopen as an in-memory database based on the serialized binary.

Allow loading native extensions.

Executes an sql script. Multiple stanzas can be passed at once.

Opens a new sqlite database at the Path provided.

Once finished with the prepared statement, call this to release the underlying resources.

Serialize the contents of the database to a binary.

Causes the database connection to free as much memory as it can. This is useful if you are on a memory restricted system.

Link to this section Types

Specs

db() :: reference()

Specs

reason() :: atom() | String.t()

Specs

row() :: []

Specs

statement() :: reference()

Link to this section Functions

Link to this function

bind(conn, statement, args)

View Source

Specs

bind(db(), statement(), nil) :: :ok | {:error, reason()}
bind(db(), statement(), []) :: :ok | {:error, reason()}

Specs

changes(db()) :: {:ok, integer()}

Get the number of changes recently.

Note: If triggers are used, the count may be larger than expected.

See: https://sqlite.org/c3ref/changes.html

Specs

close(nil) :: :ok
close(db()) :: :ok | {:error, reason()}

Closes the database and releases any underlying resources.

Link to this function

columns(conn, statement)

View Source

Specs

columns(db(), statement()) :: {:ok, []} | {:error, reason()}
Link to this function

deserialize(conn, database \\ "main", serialized)

View Source

Specs

deserialize(db(), String.t(), binary()) :: :ok | {:error, reason()}

Disconnect from database and then reopen as an in-memory database based on the serialized binary.

Link to this function

enable_load_extension(conn, flag)

View Source

Specs

enable_load_extension(db(), boolean()) :: :ok | {:error, any()}

Allow loading native extensions.

Specs

execute(db(), String.t()) :: :ok | {:error, reason()}

Executes an sql script. Multiple stanzas can be passed at once.

Link to this function

fetch_all(conn, statement)

View Source

Specs

fetch_all(db(), statement()) :: {:ok, [row()]} | {:error, reason()}
Link to this function

fetch_all(conn, statement, chunk_size)

View Source

Specs

fetch_all(db(), statement(), integer()) :: {:ok, [row()]} | {:error, reason()}

Specs

last_insert_rowid(db()) :: {:ok, integer()}
Link to this function

multi_step(conn, statement)

View Source

Specs

multi_step(db(), statement()) :: :busy | {:rows, [row()]} | {:done, [row()]}
Link to this function

multi_step(conn, statement, chunk_size)

View Source

Specs

multi_step(db(), statement(), integer()) ::
  :busy | {:rows, [row()]} | {:done, [row()]}

Specs

open(String.t()) :: {:ok, db()} | {:error, reason()}

Opens a new sqlite database at the Path provided.

If path can be ":memory" to keep the sqlite database in memory.

Specs

prepare(db(), String.t()) :: {:ok, statement()} | {:error, reason()}
Link to this function

release(conn, statement)

View Source

Specs

release(db(), statement()) :: :ok | {:error, reason()}

Once finished with the prepared statement, call this to release the underlying resources.

This should be called whenever you are done operating with the prepared statement. If the system has a high load the garbage collector may not clean up the prepared statements in a timely manner and causing higher than normal levels of memory pressure.

If you are operating on limited memory capacity systems, definitely call this.

Link to this function

serialize(conn, database \\ "main")

View Source

Specs

serialize(db(), String.t()) :: {:ok, binary()} | {:error, reason()}

Serialize the contents of the database to a binary.

Specs

shrink_memory(db()) :: :ok | {:error, reason()}

Causes the database connection to free as much memory as it can. This is useful if you are on a memory restricted system.

Specs

step(db(), statement()) :: :done | :busy | {:row, []}
Link to this function

transaction_status(conn)

View Source

Specs

transaction_status(db()) :: {:ok, :idle | :transaction}