Ecto.Adapters.SQL.Connection behaviour (Ecto SQL v3.7.0) View Source
Specifies the behaviour to be implemented by all SQL connections.
Link to this section Summary
Callbacks
Receives a query and must return a SELECT query.
Receives options and returns DBConnection
supervisor child
specification.
Receives a query result and returns a list of logs.
Returns a DELETE for the filters
returning the given returning
.
Receives a query and must return a DELETE query.
Executes a cached query.
Receives a DDL command and returns a query that executes it.
Executes an EXPLAIN query or similar depending on the adapter to obtains statistics of the given query.
Returns an INSERT for the given rows
in table
returning
the given returning
.
Prepares and executes the given query with DBConnection
.
Runs the given statement as query.
Returns a stream that prepares and executes the given query with
DBConnection
.
Returns a queryable to check if the given table
exists.
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
Specs
cached() :: map()
The cached query which is a DBConnection Query
Specs
connection() :: DBConnection.conn()
Specs
name() :: String.t()
The query name
Specs
params() :: [term()]
Specs
statement() :: String.t()
The SQL statement
Link to this section Callbacks
Specs
all(query :: Ecto.Query.t()) :: iodata()
Receives a query and must return a SELECT query.
Specs
Receives options and returns DBConnection
supervisor child
specification.
Specs
ddl_logs(result :: term()) :: [ {Logger.level(), Logger.message(), Logger.metadata()} ]
Receives a query result and returns a list of logs.
Specs
delete( prefix :: String.t(), table :: String.t(), filters :: [atom()], returning :: [atom()] ) :: iodata()
Returns a DELETE for the filters
returning the given returning
.
Specs
delete_all(query :: Ecto.Query.t()) :: iodata()
Receives a query and must return a DELETE query.
Specs
execute(connection(), cached(), params(), options :: Keyword.t()) :: {:ok, cached(), term()} | {:ok, term()} | {:error | :reset, Exception.t()}
Executes a cached query.
Specs
execute_ddl(command :: Ecto.Adapter.Migration.command()) :: String.t() | [iodata()]
Receives a DDL command and returns a query that executes it.
Specs
explain_query( connection(), query :: String.t(), params :: Keyword.t(), opts :: Keyword.t() ) :: {:ok, term()} | {:error, Exception.t()}
Executes an EXPLAIN query or similar depending on the adapter to obtains statistics of the given query.
Receives the connection
, query
, params
for the query,
and all opts
including those related to the EXPLAIN statement and shared opts.
Must execute the explain query and return the result.
insert(prefix, table, header, rows, on_conflict, returning, placeholders)
View SourceSpecs
insert( prefix :: String.t(), table :: String.t(), header :: [atom()], rows :: [[atom() | nil]], on_conflict :: Ecto.Adapter.Schema.on_conflict(), returning :: [atom()], placeholders :: [term()] ) :: iodata()
Returns an INSERT for the given rows
in table
returning
the given returning
.
Specs
prepare_execute( connection(), name(), statement(), params(), options :: Keyword.t() ) :: {:ok, cached(), term()} | {:error, Exception.t()}
Prepares and executes the given query with DBConnection
.
Specs
query(connection(), statement(), params(), options :: Keyword.t()) :: {:ok, term()} | {:error, Exception.t()}
Runs the given statement as query.
Specs
stream(connection(), statement(), params(), options :: Keyword.t()) :: Enum.t()
Returns a stream that prepares and executes the given query with
DBConnection
.
Specs
Returns a queryable to check if the given table
exists.
Specs
to_constraints(exception :: Exception.t(), options :: Keyword.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.
Specs
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
.
Specs
update_all(query :: Ecto.Query.t()) :: iodata()
Receives a query and values to update and must return an UPDATE query.