Packages
cake
0.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
Retired package: Deprecated - a stable release is available, please use >= 1.0.0
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]).
-export([new/1, append_sql/2, append_param/2, append_sql_and_param/3, append_sql_and_params/3, get_prefix/1, get_sql/1, get_params/1, next_placeholder/1]).
-export_type([prepared_statement/0]).
-opaque prepared_statement() :: {prepared_statement,
binary(),
binary(),
list(cake@param:param()),
integer()}.
-spec new(binary()) -> prepared_statement().
new(Prfx) ->
_pipe = Prfx,
{prepared_statement, _pipe, <<""/utf8>>, [], 0}.
-spec append_sql(prepared_statement(), binary()) -> prepared_statement().
append_sql(Prp_stm, Nw_sql) ->
erlang:setelement(
3,
Prp_stm,
<<(erlang:element(3, Prp_stm))/binary, Nw_sql/binary>>
).
-spec append_param(prepared_statement(), cake@param:param()) -> prepared_statement().
append_param(Prp_stm, Nw_prms) ->
erlang:setelement(
5,
erlang:setelement(
4,
Prp_stm,
lists:append(erlang:element(4, Prp_stm), [Nw_prms])
),
erlang:element(5, Prp_stm) + 1
).
-spec append_sql_and_param(prepared_statement(), binary(), cake@param:param()) -> prepared_statement().
append_sql_and_param(Prp_stm, Nw_sql, Nw_prms) ->
erlang:setelement(
5,
erlang:setelement(
4,
erlang:setelement(
3,
Prp_stm,
<<(erlang:element(3, Prp_stm))/binary, Nw_sql/binary>>
),
lists:append(erlang:element(4, Prp_stm), [Nw_prms])
),
erlang:element(5, Prp_stm) + 1
).
-spec append_sql_and_params(
prepared_statement(),
binary(),
list(cake@param:param())
) -> prepared_statement().
append_sql_and_params(Prp_stm, Nw_sql, Nw_prms) ->
erlang:setelement(
5,
erlang:setelement(
4,
erlang:setelement(
3,
Prp_stm,
<<(erlang:element(3, Prp_stm))/binary, Nw_sql/binary>>
),
lists:append(erlang:element(4, Prp_stm), Nw_prms)
),
erlang:element(5, Prp_stm) + erlang:length(Nw_prms)
).
-spec get_prefix(prepared_statement()) -> binary().
get_prefix(Prp_stm) ->
erlang:element(2, Prp_stm).
-spec get_sql(prepared_statement()) -> binary().
get_sql(Prp_stm) ->
erlang:element(3, Prp_stm).
-spec get_params(prepared_statement()) -> list(cake@param:param()).
get_params(Prp_stm) ->
erlang:element(4, Prp_stm).
-spec next_placeholder(prepared_statement()) -> binary().
next_placeholder(Prp_stm) ->
<<(erlang:element(2, Prp_stm))/binary,
(begin
_pipe = erlang:element(5, Prp_stm),
_pipe@1 = gleam@int:add(_pipe, 1),
gleam@int:to_string(_pipe@1)
end)/binary>>.