Packages
cake
0.9.1
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@insert.erl
-module(cake@insert).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([to_query/1, row/1, param/2, bool/1, float/1, int/1, string/1, null/0, new/0, from_records/4, from_values/3, table/2, get_table/1, modifier/2, no_modifier/1, get_modifier/1, source_records/3, source_values/2, get_source/1, columns/2, get_columns/1, on_conflict_error/1, on_columns_conflict_ignore/3, on_constraint_conflict_ignore/3, on_columns_conflict_update/4, on_constraint_conflict_update/4, get_on_conflict/1, returning/2, no_returning/1, epilog/2, no_epilog/1, get_epilog/1, comment/2, no_comment/1, get_comment/1]).
-spec to_query(cake@internal@write_query:insert(QRA)) -> cake@internal@write_query:write_query(QRA).
to_query(Isrt) ->
_pipe = Isrt,
{insert_query, _pipe}.
-spec row(list(cake@internal@write_query:insert_value())) -> cake@internal@write_query:insert_row().
row(Vls) ->
_pipe = Vls,
{insert_row, _pipe}.
-spec param(binary(), cake@internal@param:param()) -> cake@internal@write_query:insert_value().
param(Col, Prm) ->
_pipe = Col,
{insert_param, _pipe, Prm}.
-spec bool(boolean()) -> cake@internal@param:param().
bool(Vl) ->
_pipe = Vl,
cake@internal@param:bool(_pipe).
-spec float(float()) -> cake@internal@param:param().
float(Vl) ->
_pipe = Vl,
cake@internal@param:float(_pipe).
-spec int(integer()) -> cake@internal@param:param().
int(Vl) ->
_pipe = Vl,
cake@internal@param:int(_pipe).
-spec string(binary()) -> cake@internal@param:param().
string(Vl) ->
_pipe = Vl,
cake@internal@param:string(_pipe).
-spec null() -> cake@internal@param:param().
null() ->
null_param.
-spec new() -> cake@internal@write_query:insert(any()).
new() ->
{insert,
no_insert_into_table,
no_insert_columns,
no_insert_modifier,
no_insert_source,
insert_conflict_error,
no_returning,
no_epilog,
no_comment}.
-spec from_records(
binary(),
list(binary()),
list(QRH),
fun((QRH) -> cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(QRH).
from_records(Tbl_nm, Cols, Rcrds, Cstr) ->
{insert,
{insert_into_table, Tbl_nm},
{insert_columns, Cols},
no_insert_modifier,
{insert_source_records, Rcrds, Cstr},
insert_conflict_error,
no_returning,
no_epilog,
no_comment}.
-spec from_values(
binary(),
list(binary()),
list(cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(any()).
from_values(Tbl_nm, Cols, Rcrds) ->
{insert,
{insert_into_table, Tbl_nm},
{insert_columns, Cols},
no_insert_modifier,
{insert_source_rows, Rcrds},
insert_conflict_error,
no_returning,
no_epilog,
no_comment}.
-spec table(cake@internal@write_query:insert(QRO), binary()) -> cake@internal@write_query:insert(QRO).
table(Qry, Tbl_nm) ->
erlang:setelement(2, Qry, {insert_into_table, Tbl_nm}).
-spec get_table(cake@internal@write_query:insert(any())) -> cake@internal@write_query:insert_into_table().
get_table(Qry) ->
erlang:element(2, Qry).
-spec modifier(cake@internal@write_query:insert(QRT), binary()) -> cake@internal@write_query:insert(QRT).
modifier(Qry, Mdfr) ->
Mdfr@1 = begin
_pipe = Mdfr,
gleam@string:trim(_pipe)
end,
case Mdfr@1 of
<<""/utf8>> ->
erlang:setelement(4, Qry, no_insert_modifier);
_ ->
erlang:setelement(4, Qry, {insert_modifier, Mdfr@1})
end.
-spec no_modifier(cake@internal@write_query:insert(QRW)) -> cake@internal@write_query:insert(QRW).
no_modifier(Qry) ->
erlang:setelement(4, Qry, no_insert_modifier).
-spec get_modifier(cake@internal@write_query:insert(any())) -> binary().
get_modifier(Qry) ->
case erlang:element(4, Qry) of
no_insert_modifier ->
<<""/utf8>>;
{insert_modifier, Mdfr} ->
Mdfr
end.
-spec source_records(
cake@internal@write_query:insert(QSB),
list(QSB),
fun((QSB) -> cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(QSB).
source_records(Qry, Rcrds, Cstr) ->
erlang:setelement(5, Qry, {insert_source_records, Rcrds, Cstr}).
-spec source_values(
cake@internal@write_query:insert(QSF),
list(cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(QSF).
source_values(Qry, Rcrds) ->
erlang:setelement(5, Qry, {insert_source_rows, Rcrds}).
-spec get_source(cake@internal@write_query:insert(QSJ)) -> cake@internal@write_query:insert_source(QSJ).
get_source(Qry) ->
erlang:element(5, Qry).
-spec columns(cake@internal@write_query:insert(QSM), list(binary())) -> cake@internal@write_query:insert(QSM).
columns(Qry, Cols) ->
erlang:setelement(3, Qry, {insert_columns, Cols}).
-spec get_columns(cake@internal@write_query:insert(any())) -> cake@internal@write_query:insert_columns().
get_columns(Qry) ->
erlang:element(3, Qry).
-spec on_conflict_error(cake@internal@write_query:insert(QSS)) -> cake@internal@write_query:insert(QSS).
on_conflict_error(Qry) ->
erlang:setelement(6, Qry, insert_conflict_error).
-spec on_columns_conflict_ignore(
cake@internal@write_query:insert(QSV),
list(binary()),
cake@internal@query:where()
) -> cake@internal@write_query:insert(QSV).
on_columns_conflict_ignore(Qry, Cols, Whr) ->
erlang:setelement(
6,
Qry,
{insert_conflict_ignore, {insert_conflict_target, Cols}, Whr}
).
-spec on_constraint_conflict_ignore(
cake@internal@write_query:insert(QSZ),
binary(),
cake@internal@query:where()
) -> cake@internal@write_query:insert(QSZ).
on_constraint_conflict_ignore(Qry, Cnstrt, Whr) ->
erlang:setelement(
6,
Qry,
{insert_conflict_ignore,
{insert_conflict_target_constraint, Cnstrt},
Whr}
).
-spec on_columns_conflict_update(
cake@internal@write_query:insert(QTC),
list(binary()),
cake@internal@query:where(),
cake@internal@write_query:update(QTC)
) -> cake@internal@write_query:insert(QTC).
on_columns_conflict_update(Qry, Cols, Whr, Updt) ->
erlang:setelement(
6,
Qry,
{insert_conflict_update, {insert_conflict_target, Cols}, Whr, Updt}
).
-spec on_constraint_conflict_update(
cake@internal@write_query:insert(QTH),
binary(),
cake@internal@query:where(),
cake@internal@write_query:update(QTH)
) -> cake@internal@write_query:insert(QTH).
on_constraint_conflict_update(Qry, Cnstrt, Whr, Updt) ->
erlang:setelement(
6,
Qry,
{insert_conflict_update,
{insert_conflict_target_constraint, Cnstrt},
Whr,
Updt}
).
-spec get_on_conflict(cake@internal@write_query:insert(QTL)) -> cake@internal@write_query:insert_conflict_strategy(QTL).
get_on_conflict(Qry) ->
erlang:element(6, Qry).
-spec returning(cake@internal@write_query:insert(QTO), list(binary())) -> cake@internal@write_query:insert(QTO).
returning(Qry, Rtrn) ->
case Rtrn of
[] ->
erlang:setelement(7, Qry, no_returning);
_ ->
erlang:setelement(7, Qry, {returning, Rtrn})
end.
-spec no_returning(cake@internal@write_query:insert(QTS)) -> cake@internal@write_query:insert(QTS).
no_returning(Qry) ->
erlang:setelement(7, Qry, no_returning).
-spec epilog(cake@internal@write_query:insert(QTV), binary()) -> cake@internal@write_query:insert(QTV).
epilog(Qry, Eplg) ->
Eplg@1 = begin
_pipe = Eplg,
gleam@string:trim(_pipe)
end,
case Eplg@1 of
<<""/utf8>> ->
erlang:setelement(8, Qry, no_epilog);
_ ->
erlang:setelement(
8,
Qry,
begin
_pipe@1 = (<<" "/utf8, Eplg@1/binary>>),
{epilog, _pipe@1}
end
)
end.
-spec no_epilog(cake@internal@write_query:insert(QTY)) -> cake@internal@write_query:insert(QTY).
no_epilog(Qry) ->
erlang:setelement(8, Qry, no_epilog).
-spec get_epilog(cake@internal@write_query:insert(any())) -> cake@internal@query:epilog().
get_epilog(Qry) ->
erlang:element(8, Qry).
-spec comment(cake@internal@write_query:insert(QUD), binary()) -> cake@internal@write_query:insert(QUD).
comment(Qry, Cmmnt) ->
Cmmnt@1 = begin
_pipe = Cmmnt,
gleam@string:trim(_pipe)
end,
case Cmmnt@1 of
<<""/utf8>> ->
erlang:setelement(9, Qry, no_comment);
_ ->
erlang:setelement(
9,
Qry,
begin
_pipe@1 = (<<" "/utf8, Cmmnt@1/binary>>),
{comment, _pipe@1}
end
)
end.
-spec no_comment(cake@internal@write_query:insert(QUG)) -> cake@internal@write_query:insert(QUG).
no_comment(Qry) ->
erlang:setelement(9, Qry, no_comment).
-spec get_comment(cake@internal@write_query:insert(any())) -> cake@internal@query:comment().
get_comment(Qry) ->
erlang:element(9, Qry).