Packages
cake
4.1.0
4.1.0
4.0.0
3.0.0
2.2.2
2.2.1
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-rc.0
retired
0.15.0
retired
0.14.0
retired
0.13.0
retired
0.12.0
retired
0.11.0
retired
0.10.1
retired
0.10.0
retired
0.9.2
retired
0.9.1
retired
0.9.0
retired
0.8.0
retired
0.7.0
retired
0.6.0
retired
0.5.0
retired
0.4.0
retired
0.3.0
retired
0.2.0
retired
0.1.0
retired
0.0.1
retired
🎂 An SQL query builder for Gleam for SQL dialects 🐘PostgreSQL, 🪶SQLite, 🦭MariaDB, and 🐬MySQL
Current section
Files
Jump to
Current section
Files
src/cake@internal@prepared_statement.erl
-module(cake@internal@prepared_statement).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/cake/internal/prepared_statement.gleam").
-export([new/2, append_param/2, append_sql/2, get_prefix/1, get_sql/1, get_params/1, get_dialect/1]).
-export_type([prepared_statement/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-opaque prepared_statement() :: {prepared_statement,
binary(),
binary(),
list(cake@param:param()),
integer(),
cake@internal@dialect:dialect()}.
-file("src/cake/internal/prepared_statement.gleam", 28).
?DOC(false).
-spec new(binary(), cake@internal@dialect:dialect()) -> prepared_statement().
new(Placeholder_base, Dialect) ->
_pipe = Placeholder_base,
{prepared_statement, _pipe, <<""/utf8>>, [], 0, Dialect}.
-file("src/cake/internal/prepared_statement.gleam", 110).
?DOC(false).
-spec append_sql_and_params(
prepared_statement(),
binary(),
list(cake@param:param())
) -> prepared_statement().
append_sql_and_params(Prepared_statement, Sql, Params) ->
{prepared_statement,
erlang:element(2, Prepared_statement),
<<(erlang:element(3, Prepared_statement))/binary, Sql/binary>>,
begin
_pipe = erlang:element(4, Prepared_statement),
lists:append(_pipe, Params)
end,
erlang:element(5, Prepared_statement) + erlang:length(Params),
erlang:element(6, Prepared_statement)}.
-file("src/cake/internal/prepared_statement.gleam", 100).
?DOC(false).
-spec append_sql_and_param(prepared_statement(), binary(), cake@param:param()) -> prepared_statement().
append_sql_and_param(Prepared_statement, Sql, Param) ->
_pipe = Prepared_statement,
append_sql_and_params(_pipe, Sql, [Param]).
-file("src/cake/internal/prepared_statement.gleam", 123).
?DOC(false).
-spec next_placeholder(prepared_statement(), cake@internal@dialect:dialect()) -> binary().
next_placeholder(Prepared_statement, Dialect) ->
case Dialect of
postgres ->
<<(erlang:element(2, Prepared_statement))/binary,
(begin
_pipe = erlang:element(5, Prepared_statement),
_pipe@1 = gleam@int:add(_pipe, 1),
erlang:integer_to_binary(_pipe@1)
end)/binary>>;
sqlite ->
<<(erlang:element(2, Prepared_statement))/binary,
(begin
_pipe = erlang:element(5, Prepared_statement),
_pipe@1 = gleam@int:add(_pipe, 1),
erlang:integer_to_binary(_pipe@1)
end)/binary>>;
maria ->
erlang:element(2, Prepared_statement);
mysql ->
erlang:element(2, Prepared_statement)
end.
-file("src/cake/internal/prepared_statement.gleam", 39).
?DOC(false).
-spec append_param(prepared_statement(), cake@param:param()) -> prepared_statement().
append_param(Prepared_statement, Param) ->
Sql = begin
_pipe = Prepared_statement,
next_placeholder(_pipe, erlang:element(6, Prepared_statement))
end,
_pipe@1 = Prepared_statement,
append_sql_and_param(_pipe@1, Sql, Param).
-file("src/cake/internal/prepared_statement.gleam", 56).
?DOC(false).
-spec append_sql(prepared_statement(), binary()) -> prepared_statement().
append_sql(Prepared_statement, New_sql) ->
{prepared_statement,
erlang:element(2, Prepared_statement),
<<(erlang:element(3, Prepared_statement))/binary, New_sql/binary>>,
erlang:element(4, Prepared_statement),
erlang:element(5, Prepared_statement),
erlang:element(6, Prepared_statement)}.
-file("src/cake/internal/prepared_statement.gleam", 68).
?DOC(false).
-spec get_prefix(prepared_statement()) -> binary().
get_prefix(Prepared_statement) ->
erlang:element(2, Prepared_statement).
-file("src/cake/internal/prepared_statement.gleam", 76).
?DOC(false).
-spec get_sql(prepared_statement()) -> binary().
get_sql(Prepared_statement) ->
erlang:element(3, Prepared_statement).
-file("src/cake/internal/prepared_statement.gleam", 84).
?DOC(false).
-spec get_params(prepared_statement()) -> list(cake@param:param()).
get_params(Prepared_statement) ->
erlang:element(4, Prepared_statement).
-file("src/cake/internal/prepared_statement.gleam", 92).
?DOC(false).
-spec get_dialect(prepared_statement()) -> cake@internal@dialect:dialect().
get_dialect(Prepared_statement) ->
erlang:element(6, Prepared_statement).