Packages
cake
0.2.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@query@insert.erl
-module(cake@query@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, 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, columns/2, on_conflict_error/1, on_columns_conflict_ignore/3, on_constraint_conflict_ignore/3, on_columns_conflict_update/4, on_constraint_conflict_update/4, returning/2, no_returning/1, comment/2, no_comment/1]).
-spec to_query(cake@internal@write_query:insert(PFY)) -> cake@internal@write_query:write_query(PFY).
to_query(Insert) ->
_pipe = Insert,
{insert_query, _pipe}.
-spec row(list(cake@internal@write_query:insert_value())) -> cake@internal@write_query:insert_row().
row(A) ->
_pipe = A,
{insert_row, _pipe}.
-spec param(binary(), cake@param:param()) -> cake@internal@write_query:insert_value().
param(Col, Prm) ->
{insert_param, Col, Prm}.
-spec bool(boolean()) -> cake@param:param().
bool(Vl) ->
_pipe = Vl,
cake@param:bool(_pipe).
-spec float(float()) -> cake@param:param().
float(Vl) ->
_pipe = Vl,
cake@param:float(_pipe).
-spec int(integer()) -> cake@param:param().
int(Vl) ->
_pipe = Vl,
cake@param:int(_pipe).
-spec string(binary()) -> cake@param:param().
string(Vl) ->
_pipe = Vl,
cake@param:string(_pipe).
-spec from_records(
binary(),
list(binary()),
list(PGF),
fun((PGF) -> cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(PGF).
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_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_comment}.
-spec table(cake@internal@write_query:insert(PGM), binary()) -> cake@internal@write_query:insert(PGM).
table(Qry, Tbl_nm) ->
erlang:setelement(2, Qry, {insert_into_table, Tbl_nm}).
-spec get_table(cake@internal@write_query:insert(any())) -> binary().
get_table(Qry) ->
erlang:element(2, erlang:element(2, Qry)).
-spec modifier(cake@internal@write_query:insert(PGR), binary()) -> cake@internal@write_query:insert(PGR).
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(PGU)) -> cake@internal@write_query:insert(PGU).
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(PGZ),
list(PGZ),
fun((PGZ) -> cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(PGZ).
source_records(Qry, Rcrds, Cstr) ->
erlang:setelement(5, Qry, {insert_source_records, Rcrds, Cstr}).
-spec source_values(
cake@internal@write_query:insert(PHD),
list(cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(PHD).
source_values(Qry, Rcrds) ->
erlang:setelement(5, Qry, {insert_source_rows, Rcrds}).
-spec columns(cake@internal@write_query:insert(PHH), list(binary())) -> cake@internal@write_query:insert(PHH).
columns(Qry, Cols) ->
erlang:setelement(3, Qry, {insert_columns, Cols}).
-spec on_conflict_error(cake@internal@write_query:insert(PHL)) -> cake@internal@write_query:insert(PHL).
on_conflict_error(Qry) ->
erlang:setelement(6, Qry, insert_conflict_error).
-spec on_columns_conflict_ignore(
cake@internal@write_query:insert(PHO),
list(binary()),
cake@internal@query:where()
) -> cake@internal@write_query:insert(PHO).
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(PHS),
binary(),
cake@internal@query:where()
) -> cake@internal@write_query:insert(PHS).
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(PHV),
list(binary()),
cake@internal@query:where(),
cake@internal@write_query:update(PHV)
) -> cake@internal@write_query:insert(PHV).
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(PIA),
binary(),
cake@internal@query:where(),
cake@internal@write_query:update(PIA)
) -> cake@internal@write_query:insert(PIA).
on_constraint_conflict_update(Qry, Cnstrt, Whr, Updt) ->
erlang:setelement(
6,
Qry,
{insert_conflict_update,
{insert_conflict_target_constraint, Cnstrt},
Whr,
Updt}
).
-spec returning(cake@internal@write_query:insert(PIE), list(binary())) -> cake@internal@write_query:insert(PIE).
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(PII)) -> cake@internal@write_query:insert(PII).
no_returning(Qry) ->
erlang:setelement(7, Qry, no_returning).
-spec comment(cake@internal@write_query:insert(PIL), binary()) -> cake@internal@write_query:insert(PIL).
comment(Qry, Cmmnt) ->
Cmmnt@1 = begin
_pipe = Cmmnt,
gleam@string:trim(_pipe)
end,
case Cmmnt@1 of
<<""/utf8>> ->
erlang:setelement(8, Qry, no_comment);
_ ->
erlang:setelement(8, Qry, {comment, Cmmnt@1})
end.
-spec no_comment(cake@internal@write_query:insert(PIO)) -> cake@internal@write_query:insert(PIO).
no_comment(Qry) ->
erlang:setelement(8, Qry, no_comment).