Current section

Files

Jump to
cake src cake@update.erl
Raw

src/cake@update.erl

-module(cake@update).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/cake/update.gleam").
-export([to_query/1, new/0, table/2, get_table/1, set_bool/2, set_true/1, set_false/1, set_float/2, set_int/2, set_string/2, set_null/1, set_expression/2, set_sub_query/2, set_fragment/2, sets_expression/2, sets_sub_query/2, get_set/1, set/2, set_replace/2, sets/2, sets_replace/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]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" A DSL to build `UPDATE` queries.\n"
"\n"
).
-file("src/cake/update.gleam", 64).
?DOC(" Creates a `WriteQuery` from an `Update` query.\n").
-spec to_query(cake@internal@write_query:update(GFC)) -> cake@internal@write_query:write_query(GFC).
to_query(Updt) ->
_pipe = Updt,
{update_query, _pipe}.
-file("src/cake/update.gleam", 72).
?DOC(" Creates an empty `Update` query.\n").
-spec new() -> cake@internal@write_query:update(any()).
new() ->
{update,
no_update_table,
no_update_modifier,
no_update_sets,
no_from,
no_joins,
no_where,
no_returning,
no_epilog,
no_comment}.
-file("src/cake/update.gleam", 90).
?DOC(" Sets the table of the `Update` query.\n").
-spec table(cake@internal@write_query:update(GFH), binary()) -> cake@internal@write_query:update(GFH).
table(Updt, Tbl_nm) ->
{update,
begin
_pipe = Tbl_nm,
{update_table, _pipe}
end,
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 96).
?DOC(" Get the table of the `Update` query.\n").
-spec get_table(cake@internal@write_query:update(any())) -> cake@internal@write_query:update_table().
get_table(Updt) ->
erlang:element(2, Updt).
-file("src/cake/update.gleam", 104).
?DOC(" Sets a column to a `Bool` `UpdateParamSet`.\n").
-spec set_bool(binary(), boolean()) -> cake@internal@write_query:update_set().
set_bool(Col, V) ->
_pipe = V,
_pipe@1 = {bool_param, _pipe},
{update_param_set, Col, _pipe@1}.
-file("src/cake/update.gleam", 110).
?DOC(" Sets a column to a `True` `UpdateParamSet`.\n").
-spec set_true(binary()) -> cake@internal@write_query:update_set().
set_true(Col) ->
_pipe = true,
_pipe@1 = {bool_param, _pipe},
{update_param_set, Col, _pipe@1}.
-file("src/cake/update.gleam", 116).
?DOC(" Sets a column to a `False` `UpdateParamSet`.\n").
-spec set_false(binary()) -> cake@internal@write_query:update_set().
set_false(Col) ->
_pipe = false,
_pipe@1 = {bool_param, _pipe},
{update_param_set, Col, _pipe@1}.
-file("src/cake/update.gleam", 122).
?DOC(" Sets a column to a `Float` `UpdateParamSet`.\n").
-spec set_float(binary(), float()) -> cake@internal@write_query:update_set().
set_float(Col, V) ->
_pipe = V,
_pipe@1 = {float_param, _pipe},
{update_param_set, Col, _pipe@1}.
-file("src/cake/update.gleam", 128).
?DOC(" Sets a column to a `Int` `UpdateParamSet`.\n").
-spec set_int(binary(), integer()) -> cake@internal@write_query:update_set().
set_int(Col, V) ->
_pipe = V,
_pipe@1 = {int_param, _pipe},
{update_param_set, Col, _pipe@1}.
-file("src/cake/update.gleam", 134).
?DOC(" Sets a column to a string `UpdateParamSet`.\n").
-spec set_string(binary(), binary()) -> cake@internal@write_query:update_set().
set_string(Col, V) ->
_pipe = V,
_pipe@1 = {string_param, _pipe},
{update_param_set, Col, _pipe@1}.
-file("src/cake/update.gleam", 140).
?DOC(" Sets a column to an SQL `NULL` `UpdateParamSet`.\n").
-spec set_null(binary()) -> cake@internal@write_query:update_set().
set_null(Col) ->
_pipe = null_param,
{update_param_set, Col, _pipe}.
-file("src/cake/update.gleam", 146).
?DOC(" Sets a column to an expression value.\n").
-spec set_expression(binary(), binary()) -> cake@internal@write_query:update_set().
set_expression(Col, Exp) ->
_pipe = [Col],
{update_expression_set, _pipe, Exp}.
-file("src/cake/update.gleam", 152).
?DOC(" Sets a column to a sub-query value.\n").
-spec set_sub_query(binary(), cake@internal@read_query:read_query()) -> cake@internal@write_query:update_set().
set_sub_query(Col, Qry) ->
_pipe = [Col],
{update_sub_query_set, _pipe, Qry}.
-file("src/cake/update.gleam", 167).
?DOC(
" Sets a column to a fragment value with parameter binding.\n"
"\n"
" ## Example\n"
"\n"
" ```gleam\n"
" import cake/fragment as f\n"
" import cake/update as u\n"
"\n"
" \"org_id\" |> u.set_fragment(f.prepared(\"$::uuid\", [f.string(\"0000000000-0000-4000-a000-a00000000000\")]))\n"
" ```\n"
).
-spec set_fragment(binary(), cake@internal@read_query:fragment()) -> cake@internal@write_query:update_set().
set_fragment(Col, Frgmt) ->
{update_fragment_set, Col, Frgmt}.
-file("src/cake/update.gleam", 175).
?DOC(
" Sets many columns to an expression value.\n"
"\n"
" NOTICE: the expression must return an equal count of columns.\n"
).
-spec sets_expression(list(binary()), binary()) -> cake@internal@write_query:update_set().
sets_expression(Cols, Exp) ->
_pipe = Cols,
{update_expression_set, _pipe, Exp}.
-file("src/cake/update.gleam", 186).
?DOC(
" Sets many columns to a sub-query value.\n"
"\n"
" NOTICE: the sub-query must return an equal count of columns.\n"
).
-spec sets_sub_query(list(binary()), cake@internal@read_query:read_query()) -> cake@internal@write_query:update_set().
sets_sub_query(Cols, Qry) ->
_pipe = Cols,
{update_sub_query_set, _pipe, Qry}.
-file("src/cake/update.gleam", 195).
?DOC(" Get the `SET`s of the `Update` query.\n").
-spec get_set(cake@internal@write_query:update(any())) -> list(cake@internal@write_query:update_set()).
get_set(Updt) ->
case erlang:element(4, Updt) of
no_update_sets ->
[];
{update_sets, Sets} ->
Sets
end.
-file("src/cake/update.gleam", 204).
?DOC(" Sets or appends one column set in an `Update` query.\n").
-spec set(
cake@internal@write_query:update(GFR),
cake@internal@write_query:update_set()
) -> cake@internal@write_query:update(GFR).
set(Updt, St) ->
case erlang:element(4, Updt) of
no_update_sets ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
begin
_pipe = [St],
{update_sets, _pipe}
end,
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
{update_sets, Sets} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
begin
_pipe@1 = Sets,
_pipe@2 = lists:append(_pipe@1, [St]),
{update_sets, _pipe@2}
end,
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 214).
?DOC(" Sets or replaces one column set in an `Update` query.\n").
-spec set_replace(
cake@internal@write_query:update(GFU),
cake@internal@write_query:update_set()
) -> cake@internal@write_query:update(GFU).
set_replace(Updt, St) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
begin
_pipe = [St],
{update_sets, _pipe}
end,
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 220).
?DOC(" Sets or appends many column sets n an `Update` query.\n").
-spec sets(
cake@internal@write_query:update(GFX),
list(cake@internal@write_query:update_set())
) -> cake@internal@write_query:update(GFX).
sets(Updt, Sts) ->
case erlang:element(4, Updt) of
no_update_sets ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
begin
_pipe = Sts,
{update_sets, _pipe}
end,
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
{update_sets, Sets} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
begin
_pipe@1 = Sets,
_pipe@2 = lists:append(_pipe@1, Sts),
{update_sets, _pipe@2}
end,
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 230).
?DOC(" Sets or replaces many column sets in an `Update` query.\n").
-spec sets_replace(
cake@internal@write_query:update(GGB),
list(cake@internal@write_query:update_set())
) -> cake@internal@write_query:update(GGB).
sets_replace(Updt, Sts) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
begin
_pipe = Sts,
{update_sets, _pipe}
end,
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 241).
?DOC(" Sets the `FROM` clause of the `Update` query to a table name.\n").
-spec from_table(cake@internal@write_query:update(GGF), binary()) -> cake@internal@write_query:update(GGF).
from_table(Updt, Tbl_nm) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
begin
_pipe = Tbl_nm,
{from_table, _pipe}
end,
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 247).
?DOC(" Sets the `FROM` clause of the `Update` query to an aliased sub-query.\n").
-spec from_sub_query(
cake@internal@write_query:update(GGI),
cake@internal@read_query:read_query(),
binary()
) -> cake@internal@write_query:update(GGI).
from_sub_query(Updt, Qry, Als) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
begin
_pipe = Qry,
{from_sub_query, _pipe, Als}
end,
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 257).
?DOC(" Removes the `FROM` clause of the `Update` query.\n").
-spec no_from(cake@internal@write_query:update(GGL)) -> cake@internal@write_query:update(GGL).
no_from(Updt) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
no_from,
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 263).
?DOC(" Gets the `FROM` clause of the `Update` query.\n").
-spec get_from(cake@internal@write_query:update(any())) -> cake@internal@read_query:from().
get_from(Updt) ->
erlang:element(5, Updt).
-file("src/cake/update.gleam", 274).
?DOC(
" Adds a `Join` to the `Update` query.\n"
"\n"
" NOTICE: On 🐘PostgreSQL and 🪶SQLite `Joins` are only allowed if the `FROM`\n"
" clause is set as well.\n"
).
-spec join(
cake@internal@write_query:update(GGQ),
cake@internal@read_query:join()
) -> cake@internal@write_query:update(GGQ).
join(Updt, Jn) ->
case erlang:element(6, Updt) of
{joins, Jns} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
begin
_pipe = Jns,
_pipe@1 = lists:append(_pipe, [Jn]),
{joins, _pipe@1}
end,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
no_joins ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
begin
_pipe@2 = [Jn],
{joins, _pipe@2}
end,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 286).
?DOC(
" Replaces any `Join`s of the `Update` query with a signle `Join`.\n"
"\n"
" NOTICE: On 🐘PostgreSQL and 🪶SQLite `Joins` are only allowed if the `FROM`\n"
" clause is set as well.\n"
).
-spec replace_join(
cake@internal@write_query:update(GGT),
cake@internal@read_query:join()
) -> cake@internal@write_query:update(GGT).
replace_join(Updt, Jn) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
begin
_pipe = [Jn],
{joins, _pipe}
end,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 295).
?DOC(
" Adds `Join`s to the `Update` query.\n"
"\n"
" NOTICE: On 🐘PostgreSQL and 🪶SQLite `Joins` are only allowed if the `FROM`\n"
" clause is set as well.\n"
).
-spec joins(
cake@internal@write_query:update(GGW),
list(cake@internal@read_query:join())
) -> cake@internal@write_query:update(GGW).
joins(Updt, Jns) ->
case {Jns, erlang:element(6, Updt)} of
{[], _} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
begin
_pipe = Jns,
{joins, _pipe}
end,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
{Jns@1, {joins, Updt_joins}} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
begin
_pipe@1 = Updt_joins,
_pipe@2 = lists:append(_pipe@1, Jns@1),
{joins, _pipe@2}
end,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
{Jns@2, no_joins} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
begin
_pipe@3 = Jns@2,
{joins, _pipe@3}
end,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 309).
?DOC(
" Replaces any `Join`s of the `Update` query with the given `Join`s.\n"
"\n"
" NOTICE: On 🐘PostgreSQL and 🪶SQLite `Joins` are only allowed if the `FROM`\n"
" clause is set as well.\n"
).
-spec replace_joins(
cake@internal@write_query:update(GHA),
list(cake@internal@read_query:join())
) -> cake@internal@write_query:update(GHA).
replace_joins(Updt, Jns) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
begin
_pipe = Jns,
{joins, _pipe}
end,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 318).
?DOC(" Removes any `Joins` from the `Update` query.\n").
-spec no_join(cake@internal@write_query:update(GHE)) -> cake@internal@write_query:update(GHE).
no_join(Updt) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
no_joins,
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 324).
?DOC(" Gets the `Joins` of the `Update` query.\n").
-spec get_joins(cake@internal@write_query:update(any())) -> cake@internal@read_query:joins().
get_joins(Updt) ->
erlang:element(6, Updt).
-file("src/cake/update.gleam", 339).
?DOC(
" Sets an `AndWhere` or appends into an existing `AndWhere`.\n"
"\n"
" - If the outermost `Where` is an `AndWhere`, the new `Where` is appended\n"
" to the list within `AndWhere`.\n"
" - If the query does not have a `Where` clause, the given `Where` is set\n"
" instead.\n"
" - If the outermost `Where` is any other kind of `Where`, this and the\n"
" current outermost `Where` are wrapped in an `AndWhere`.\n"
).
-spec where(
cake@internal@write_query:update(GHJ),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GHJ).
where(Updt, Whr) ->
case erlang:element(7, Updt) of
no_where ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
Whr,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
{and_where, Wheres} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{and_where, _pipe@1}
end,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
_ ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
begin
_pipe@2 = [erlang:element(7, Updt), Whr],
{and_where, _pipe@2}
end,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 357).
?DOC(
" Sets an `OrWhere` or appends into an existing `OrWhere`.\n"
"\n"
" - If the outermost `Where` is an `OrWhere`, the new `Where` is appended\n"
" to the list within `OrWhere`.\n"
" - If the query does not have a `Where` clause, the given `Where` is set\n"
" instead.\n"
" - If the outermost `Where` is any other kind of `Where`, this and the\n"
" current outermost `Where` are wrapped in an `OrWhere`.\n"
).
-spec or_where(
cake@internal@write_query:update(GHM),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GHM).
or_where(Updt, Whr) ->
case erlang:element(7, Updt) of
no_where ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
Whr,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
{or_where, Wheres} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{or_where, _pipe@1}
end,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
_ ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
begin
_pipe@2 = [erlang:element(7, Updt), Whr],
{or_where, _pipe@2}
end,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 380).
?DOC(
" Sets an `XorWhere` or appends into an existing `XorWhere`.\n"
"\n"
" - If the outermost `Where` is an `XorWhere`, the new `Where` is appended\n"
" to the list within `XorWhere`.\n"
" - If the query does not have a `Where` clause, the given `Where` is set\n"
" instead.\n"
" - If the outermost `Where` is any other kind of `Where`, this and the\n"
" current outermost `Where` are wrapped in an `XorWhere`.\n"
"\n"
" NOTICE: This operator does not exist in 🐘PostgreSQL or 🪶SQLite,\n"
" and *Cake* generates equivalent SQL using `OR` and `AND` and `NOT`.\n"
"\n"
" NOTICE: This operator exists in 🦭MariaDB and 🐬MySQL with native support.\n"
).
-spec xor_where(
cake@internal@write_query:update(GHP),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GHP).
xor_where(Updt, Whr) ->
case erlang:element(7, Updt) of
no_where ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
Whr,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
{xor_where, Wheres} ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{xor_where, _pipe@1}
end,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)};
_ ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
begin
_pipe@2 = [erlang:element(7, Updt), Whr],
{xor_where, _pipe@2}
end,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 391).
?DOC(" Replaces the `Where` in the `Update` query.\n").
-spec replace_where(
cake@internal@write_query:update(GHS),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GHS).
replace_where(Updt, Whr) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
Whr,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 397).
?DOC(" Removes the `Where` from the `Update` query.\n").
-spec no_where(cake@internal@write_query:update(GHV)) -> cake@internal@write_query:update(GHV).
no_where(Updt) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
no_where,
erlang:element(8, Updt),
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 403).
?DOC(" Gets the `Where` of the `Update` query.\n").
-spec get_where(cake@internal@write_query:update(any())) -> cake@internal@read_query:where().
get_where(Updt) ->
erlang:element(7, Updt).
-file("src/cake/update.gleam", 412).
?DOC(
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `RETURNING` in `UPDATE`\n"
" queries; they do support it in `INSERT` (and `REPLACE`) queries, however.\n"
).
-spec returning(cake@internal@write_query:update(GIA), list(binary())) -> cake@internal@write_query:update(GIA).
returning(Updt, Rtrn) ->
case Rtrn of
[] ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
no_returning,
erlang:element(9, Updt),
erlang:element(10, Updt)};
_ ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
begin
_pipe = Rtrn,
{returning, _pipe}
end,
erlang:element(9, Updt),
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 425).
?DOC(
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `RETURNING` in `UPDATE`\n"
" queries; they do support it in `INSERT` (and `REPLACE`) queries, however.\n"
).
-spec no_returning(cake@internal@write_query:update(GIE)) -> cake@internal@write_query:update(GIE).
no_returning(Updt) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
no_returning,
erlang:element(9, Updt),
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 433).
?DOC(" Sets an `Epilog` or appends into an existing `Epilog`.\n").
-spec epilog(cake@internal@write_query:update(GIH), binary()) -> cake@internal@write_query:update(GIH).
epilog(Updt, Eplg) ->
Eplg@1 = begin
_pipe = Eplg,
gleam@string:trim(_pipe)
end,
case Eplg@1 of
<<""/utf8>> ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
no_epilog,
erlang:element(10, Updt)};
_ ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
begin
_pipe@1 = (<<" "/utf8, Eplg@1/binary>>),
{epilog, _pipe@1}
end,
erlang:element(10, Updt)}
end.
-file("src/cake/update.gleam", 443).
?DOC(" Removes the `Epilog` from the `Update` query.\n").
-spec no_epilog(cake@internal@write_query:update(GIK)) -> cake@internal@write_query:update(GIK).
no_epilog(Updt) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
no_epilog,
erlang:element(10, Updt)}.
-file("src/cake/update.gleam", 449).
?DOC(" Gets the `Epilog` of the `Update` query.\n").
-spec get_epilog(cake@internal@write_query:update(any())) -> cake@internal@read_query:epilog().
get_epilog(Updt) ->
erlang:element(9, Updt).
-file("src/cake/update.gleam", 457).
?DOC(" Sets a `Comment` or appends into an existing `Comment`.\n").
-spec comment(cake@internal@write_query:update(GIP), binary()) -> cake@internal@write_query:update(GIP).
comment(Updt, Cmmnt) ->
Cmmnt@1 = begin
_pipe = Cmmnt,
gleam@string:trim(_pipe)
end,
case Cmmnt@1 of
<<""/utf8>> ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
no_comment};
_ ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
begin
_pipe@1 = (<<" "/utf8, Cmmnt@1/binary>>),
{comment, _pipe@1}
end}
end.
-file("src/cake/update.gleam", 467).
?DOC(" Removes the `Comment` from the `Update` query.\n").
-spec no_comment(cake@internal@write_query:update(GIS)) -> cake@internal@write_query:update(GIS).
no_comment(Updt) ->
{update,
erlang:element(2, Updt),
erlang:element(3, Updt),
erlang:element(4, Updt),
erlang:element(5, Updt),
erlang:element(6, Updt),
erlang:element(7, Updt),
erlang:element(8, Updt),
erlang:element(9, Updt),
no_comment}.
-file("src/cake/update.gleam", 473).
?DOC(" Gets the `Comment` of the `Update` query.\n").
-spec get_comment(cake@internal@write_query:update(any())) -> cake@internal@read_query:comment().
get_comment(Updt) ->
erlang:element(10, Updt).