View Source DBConnection.Query protocol (db_connection v2.5.0)

The DBConnection.Query protocol is responsible for preparing and encoding queries.

All DBConnection.Query functions are executed in the caller process which means it's safe to, for example, raise exceptions or do blocking calls as they won't affect the connection process.

Link to this section Summary

Types

t()

All the types that implement this protocol.

Functions

Decode a result using a query.

Describe a query.

Encode parameters using a query.

Parse a query.

Link to this section Types

@type t() :: term()

All the types that implement this protocol.

Link to this section Functions

Link to this function

decode(query, result, opts)

View Source
@spec decode(any(), any(), Keyword.t()) :: any()

Decode a result using a query.

This function is called to decode a result after it is returned by a connection callback module.

See DBConnection.execute/3.

@spec describe(any(), Keyword.t()) :: any()

Describe a query.

This function is called to describe a query after it is prepared using a connection callback module.

See DBConnection.prepare/3.

Link to this function

encode(query, params, opts)

View Source
@spec encode(any(), any(), Keyword.t()) :: any()

Encode parameters using a query.

This function is called to encode a query before it is executed using a connection callback module.

If this function raises DBConnection.EncodeError, then the query is prepared once again.

See DBConnection.execute/3.

@spec parse(any(), Keyword.t()) :: any()

Parse a query.

This function is called to parse a query term before it is prepared using a connection callback module.

See DBConnection.prepare/3.