Ecto v2.2.10 Ecto.Adapters.SQL.Connection behaviour View Source

Specifies the behaviour to be implemented by all SQL connections.

Link to this section Summary

Types

The cache query which is a DBConnection Query

The prepared query which is an SQL command

Callbacks

Receives a query and must return a SELECT query

Receives options and returns DBConnection supervisor child specification

Returns a DELETE for the filters returning the given returning

Receives a query and must return a DELETE query

Receives a DDL command and returns a query that executes it

Returns an INSERT for the given rows in table returning the given returning

Returns a stream that prepares and executes the given query with DBConnection

Receives the exception returned by query/4

Returns an UPDATE for the given fields in table filtered by filters returning the given returning

Receives a query and values to update and must return an UPDATE query

Link to this section Types

The cache query which is a DBConnection Query

Link to this type prepared() View Source
prepared() :: String.t()

The prepared query which is an SQL command

Link to this section Callbacks

Receives a query and must return a SELECT query.

Link to this callback child_spec(options) View Source
child_spec(options :: Keyword.t()) :: {module(), Keyword.t()}

Receives options and returns DBConnection supervisor child specification.

Link to this callback delete(prefix, table, filters, returning) View Source
delete(
  prefix :: String.t(),
  table :: String.t(),
  filters :: [atom()],
  returning :: [atom()]
) :: iodata()

Returns a DELETE for the filters returning the given returning.

Link to this callback delete_all(query) View Source
delete_all(query :: Ecto.Query.t()) :: iodata()

Receives a query and must return a DELETE query.

Link to this callback execute(connection, prepared_query, params, options) View Source
execute(
  connection :: DBConnection.t(),
  prepared_query :: prepared(),
  params :: [term()],
  options :: Keyword.t()
) :: {:ok, term()} | {:error, Exception.t()}
execute(
  connection :: DBConnection.t(),
  prepared_query :: cached(),
  params :: [term()],
  options :: Keyword.t()
) :: {:ok, term()} | {:error | :reset, Exception.t()}
Link to this callback execute(connection, prepared_query, params, options) View Source
execute(
  connection :: DBConnection.t(),
  prepared_query :: prepared(),
  params :: [term()],
  options :: Keyword.t()
) :: {:ok, term()} | {:error, Exception.t()}
execute(
  connection :: DBConnection.t(),
  prepared_query :: cached(),
  params :: [term()],
  options :: Keyword.t()
) :: {:ok, term()} | {:error | :reset, Exception.t()}
Link to this callback execute_ddl(command) View Source
execute_ddl(command :: Ecto.Adapter.Migration.command()) ::
  String.t() | [iodata()]

Receives a DDL command and returns a query that executes it.

Link to this callback insert(prefix, table, header, rows, on_conflict, returning) View Source
insert(
  prefix :: String.t(),
  table :: String.t(),
  header :: [atom()],
  rows :: [[atom() | nil]],
  on_conflict :: Ecto.Adapter.on_conflict(),
  returning :: [atom()]
) :: iodata()

Returns an INSERT for the given rows in table returning the given returning.

Link to this callback prepare_execute(connection, name, prepared, params, options) View Source
prepare_execute(
  connection :: DBConnection.t(),
  name :: String.t(),
  prepared(),
  params :: [term()],
  options :: Keyword.t()
) :: {:ok, query :: map(), term()} | {:error, Exception.t()}

Prepares and executes the given query with DBConnection.

Link to this callback stream(connection, prepared_query, params, options) View Source
stream(
  connection :: DBConnection.conn(),
  prepared_query :: prepared(),
  params :: [term()],
  options :: Keyword.t()
) :: Enum.t()

Returns a stream that prepares and executes the given query with DBConnection.

Link to this callback to_constraints(exception) View Source
to_constraints(exception :: Exception.t()) :: Keyword.t()

Receives the exception returned by query/4.

The constraints are in the keyword list and must return the constraint type, like :unique, and the constraint name as a string, for example:

[unique: "posts_title_index"]

Must return an empty list if the error does not come from any constraint.

Link to this callback update(prefix, table, fields, filters, returning) View Source
update(
  prefix :: String.t(),
  table :: String.t(),
  fields :: [atom()],
  filters :: [atom()],
  returning :: [atom()]
) :: iodata()

Returns an UPDATE for the given fields in table filtered by filters returning the given returning.

Link to this callback update_all(query) View Source
update_all(query :: Ecto.Query.t()) :: iodata()

Receives a query and values to update and must return an UPDATE query.