Current section

Files

Jump to
cake src cake@query@insert.erl
Raw

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, get_source/1, 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, epilog/2, no_epilog/1, get_epilog/1, comment/2, no_comment/1, get_comment/1]).
-spec to_query(cake@internal@write_query:insert(QOX)) -> cake@internal@write_query:write_query(QOX).
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@param:param()) -> cake@internal@write_query:insert_value().
param(Col, Prm) ->
_pipe = Col,
{insert_param, _pipe, 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(QPC),
fun((QPC) -> cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(QPC).
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(QPJ), binary()) -> cake@internal@write_query:insert(QPJ).
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(QPO), binary()) -> cake@internal@write_query:insert(QPO).
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(QPR)) -> cake@internal@write_query:insert(QPR).
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(QPW),
list(QPW),
fun((QPW) -> cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(QPW).
source_records(Qry, Rcrds, Cstr) ->
erlang:setelement(5, Qry, {insert_source_records, Rcrds, Cstr}).
-spec source_values(
cake@internal@write_query:insert(QQA),
list(cake@internal@write_query:insert_row())
) -> cake@internal@write_query:insert(QQA).
source_values(Qry, Rcrds) ->
erlang:setelement(5, Qry, {insert_source_rows, Rcrds}).
-spec get_source(cake@internal@write_query:insert(QQE)) -> cake@internal@write_query:insert_source(QQE).
get_source(Qry) ->
erlang:element(5, Qry).
-spec columns(cake@internal@write_query:insert(QQH), list(binary())) -> cake@internal@write_query:insert(QQH).
columns(Qry, Cols) ->
erlang:setelement(3, Qry, {insert_columns, Cols}).
-spec on_conflict_error(cake@internal@write_query:insert(QQL)) -> cake@internal@write_query:insert(QQL).
on_conflict_error(Qry) ->
erlang:setelement(6, Qry, insert_conflict_error).
-spec on_columns_conflict_ignore(
cake@internal@write_query:insert(QQO),
list(binary()),
cake@internal@query:where()
) -> cake@internal@write_query:insert(QQO).
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(QQS),
binary(),
cake@internal@query:where()
) -> cake@internal@write_query:insert(QQS).
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(QQV),
list(binary()),
cake@internal@query:where(),
cake@internal@write_query:update(QQV)
) -> cake@internal@write_query:insert(QQV).
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(QRA),
binary(),
cake@internal@query:where(),
cake@internal@write_query:update(QRA)
) -> cake@internal@write_query:insert(QRA).
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(QRE), list(binary())) -> cake@internal@write_query:insert(QRE).
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(QRI)) -> cake@internal@write_query:insert(QRI).
no_returning(Qry) ->
erlang:setelement(7, Qry, no_returning).
-spec epilog(cake@internal@write_query:insert(QRL), binary()) -> cake@internal@write_query:insert(QRL).
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(QRO)) -> cake@internal@write_query:insert(QRO).
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(QRT), binary()) -> cake@internal@write_query:insert(QRT).
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(QRW)) -> cake@internal@write_query:insert(QRW).
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).