Current section

Files

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

src/cake@query@update.erl

-module(cake@query@update).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([to_query/1, bool/1, float/1, int/1, string/1, new/2, set_to_param/2, set_to_expression/2, set_to_sub_query/2, set_many_to_expression/2, set_many_to_sub_query/2, from_table/2, from_sub_query/3, no_from/1, get_from/1, join/2, replace_join/2, joins/2, replace_joins/2, no_join/1, get_joins/1, where/2, or_where/2, xor_where/2, replace_where/2, no_where/1, get_where/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:update(QZY)) -> cake@internal@write_query:write_query(QZY).
to_query(Updt) ->
_pipe = Updt,
{update_query, _pipe}.
-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 new(binary(), list(cake@internal@write_query:update_set())) -> cake@internal@write_query:update(any()).
new(Tbl, Sts) ->
{update,
{update_table, Tbl},
no_update_modifier,
{update_sets, Sts},
no_from,
no_joins,
no_where,
no_returning,
no_epilog,
no_comment}.
-spec set_to_param(binary(), cake@param:param()) -> cake@internal@write_query:update_set().
set_to_param(Col, Prm) ->
{update_param_set, Col, Prm}.
-spec set_to_expression(binary(), binary()) -> cake@internal@write_query:update_set().
set_to_expression(Col, Exp) ->
{update_expression_set, [Col], Exp}.
-spec set_to_sub_query(binary(), cake@internal@query:'query'()) -> cake@internal@write_query:update_set().
set_to_sub_query(Col, Qry) ->
{update_sub_query_set, [Col], Qry}.
-spec set_many_to_expression(list(binary()), binary()) -> cake@internal@write_query:update_set().
set_many_to_expression(Cols, Exp) ->
{update_expression_set, Cols, Exp}.
-spec set_many_to_sub_query(list(binary()), cake@internal@query:'query'()) -> cake@internal@write_query:update_set().
set_many_to_sub_query(Cols, Qry) ->
{update_sub_query_set, Cols, Qry}.
-spec from_table(cake@internal@write_query:update(RAG), binary()) -> cake@internal@write_query:update(RAG).
from_table(Qry, Tbl_nm) ->
erlang:setelement(5, Qry, {from_table, Tbl_nm}).
-spec from_sub_query(
cake@internal@write_query:update(RAJ),
cake@internal@query:'query'(),
binary()
) -> cake@internal@write_query:update(RAJ).
from_sub_query(Qry, Sb_qry, Als) ->
erlang:setelement(5, Qry, {from_sub_query, Sb_qry, Als}).
-spec no_from(cake@internal@write_query:update(RAM)) -> cake@internal@write_query:update(RAM).
no_from(Qry) ->
erlang:setelement(5, Qry, no_from).
-spec get_from(cake@internal@write_query:update(any())) -> cake@internal@query:from().
get_from(Qry) ->
erlang:element(5, Qry).
-spec join(cake@internal@write_query:update(RAR), cake@internal@query:join()) -> cake@internal@write_query:update(RAR).
join(Qry, Jn) ->
case erlang:element(6, Qry) of
{joins, Jns} ->
erlang:setelement(
6,
Qry,
begin
_pipe = Jns,
_pipe@1 = lists:append(_pipe, [Jn]),
{joins, _pipe@1}
end
);
no_joins ->
erlang:setelement(
6,
Qry,
begin
_pipe@2 = [Jn],
{joins, _pipe@2}
end
)
end.
-spec replace_join(
cake@internal@write_query:update(RAU),
cake@internal@query:join()
) -> cake@internal@write_query:update(RAU).
replace_join(Qry, Jn) ->
erlang:setelement(
6,
Qry,
begin
_pipe = [Jn],
{joins, _pipe}
end
).
-spec joins(
cake@internal@write_query:update(RAX),
list(cake@internal@query:join())
) -> cake@internal@write_query:update(RAX).
joins(Qry, Jns) ->
case {Jns, erlang:element(6, Qry)} of
{[], _} ->
erlang:setelement(6, Qry, {joins, Jns});
{Jns@1, {joins, Qry_joins}} ->
erlang:setelement(
6,
Qry,
begin
_pipe = Qry_joins,
_pipe@1 = lists:append(_pipe, Jns@1),
{joins, _pipe@1}
end
);
{Jns@2, no_joins} ->
erlang:setelement(
6,
Qry,
begin
_pipe@2 = Jns@2,
{joins, _pipe@2}
end
)
end.
-spec replace_joins(
cake@internal@write_query:update(RBB),
list(cake@internal@query:join())
) -> cake@internal@write_query:update(RBB).
replace_joins(Qry, Jns) ->
erlang:setelement(
6,
Qry,
begin
_pipe = Jns,
{joins, _pipe}
end
).
-spec no_join(cake@internal@write_query:update(RBF)) -> cake@internal@write_query:update(RBF).
no_join(Qry) ->
erlang:setelement(6, Qry, no_joins).
-spec get_joins(cake@internal@write_query:update(any())) -> cake@internal@query:joins().
get_joins(Qry) ->
erlang:element(6, Qry).
-spec where(cake@internal@write_query:update(RBK), cake@internal@query:where()) -> cake@internal@write_query:update(RBK).
where(Qry, Whr) ->
case erlang:element(7, Qry) of
no_where ->
erlang:setelement(7, Qry, Whr);
{and_where, Wheres} ->
erlang:setelement(
7,
Qry,
{and_where,
begin
_pipe = Wheres,
lists:append(_pipe, [Whr])
end}
);
_ ->
erlang:setelement(
7,
Qry,
{and_where, [erlang:element(7, Qry), Whr]}
)
end.
-spec or_where(
cake@internal@write_query:update(RBN),
cake@internal@query:where()
) -> cake@internal@write_query:update(RBN).
or_where(Qry, Whr) ->
case erlang:element(7, Qry) of
no_where ->
erlang:setelement(7, Qry, Whr);
{or_where, Wheres} ->
erlang:setelement(
7,
Qry,
{or_where,
begin
_pipe = Wheres,
lists:append(_pipe, [Whr])
end}
);
_ ->
erlang:setelement(7, Qry, {or_where, [erlang:element(7, Qry), Whr]})
end.
-spec xor_where(
cake@internal@write_query:update(RBQ),
cake@internal@query:where()
) -> cake@internal@write_query:update(RBQ).
xor_where(Qry, Whr) ->
case erlang:element(7, Qry) of
no_where ->
erlang:setelement(7, Qry, Whr);
{xor_where, Wheres} ->
erlang:setelement(
7,
Qry,
{xor_where,
begin
_pipe = Wheres,
lists:append(_pipe, [Whr])
end}
);
_ ->
erlang:setelement(
7,
Qry,
{xor_where, [erlang:element(7, Qry), Whr]}
)
end.
-spec replace_where(
cake@internal@write_query:update(RBT),
cake@internal@query:where()
) -> cake@internal@write_query:update(RBT).
replace_where(Qry, Whr) ->
erlang:setelement(7, Qry, Whr).
-spec no_where(cake@internal@write_query:update(RBW)) -> cake@internal@write_query:update(RBW).
no_where(Qry) ->
erlang:setelement(7, Qry, no_where).
-spec get_where(cake@internal@write_query:update(any())) -> cake@internal@query:where().
get_where(Qry) ->
erlang:element(7, Qry).
-spec returning(cake@internal@write_query:update(RCB), list(binary())) -> cake@internal@write_query:update(RCB).
returning(Qry, Rtrn) ->
case Rtrn of
[] ->
erlang:setelement(8, Qry, no_returning);
_ ->
erlang:setelement(8, Qry, {returning, Rtrn})
end.
-spec no_returning(cake@internal@write_query:update(RCF)) -> cake@internal@write_query:update(RCF).
no_returning(Qry) ->
erlang:setelement(8, Qry, no_returning).
-spec epilog(cake@internal@write_query:update(RCI), binary()) -> cake@internal@write_query:update(RCI).
epilog(Qry, Eplg) ->
Eplg@1 = begin
_pipe = Eplg,
gleam@string:trim(_pipe)
end,
case Eplg@1 of
<<""/utf8>> ->
erlang:setelement(9, Qry, no_epilog);
_ ->
erlang:setelement(
9,
Qry,
begin
_pipe@1 = (<<" "/utf8, Eplg@1/binary>>),
{epilog, _pipe@1}
end
)
end.
-spec no_epilog(cake@internal@write_query:update(RCL)) -> cake@internal@write_query:update(RCL).
no_epilog(Qry) ->
erlang:setelement(9, Qry, no_epilog).
-spec get_epilog(cake@internal@write_query:update(any())) -> cake@internal@query:epilog().
get_epilog(Qry) ->
erlang:element(9, Qry).
-spec comment(cake@internal@write_query:update(RCQ), binary()) -> cake@internal@write_query:update(RCQ).
comment(Qry, Cmmnt) ->
Cmmnt@1 = begin
_pipe = Cmmnt,
gleam@string:trim(_pipe)
end,
case Cmmnt@1 of
<<""/utf8>> ->
erlang:setelement(10, Qry, no_comment);
_ ->
erlang:setelement(
10,
Qry,
begin
_pipe@1 = (<<" "/utf8, Cmmnt@1/binary>>),
{comment, _pipe@1}
end
)
end.
-spec no_comment(cake@internal@write_query:update(RCT)) -> cake@internal@write_query:update(RCT).
no_comment(Qry) ->
erlang:setelement(10, Qry, no_comment).
-spec get_comment(cake@internal@write_query:update(any())) -> cake@internal@query:comment().
get_comment(Qry) ->
erlang:element(10, Qry).