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_date/2, 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", 67).
?DOC(" Creates a `WriteQuery` from an `Update` query.\n").
-spec to_query(cake@internal@write_query:update(GHS)) -> cake@internal@write_query:write_query(GHS).
to_query(Update) ->
_pipe = Update,
{update_query, _pipe}.
-file("src/cake/update.gleam", 75).
?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", 93).
?DOC(" Sets the table of the `Update` query.\n").
-spec table(cake@internal@write_query:update(GHX), binary()) -> cake@internal@write_query:update(GHX).
table(Update, Name) ->
{update,
begin
_pipe = Name,
{update_table, _pipe}
end,
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 99).
?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(Update) ->
erlang:element(2, Update).
-file("src/cake/update.gleam", 107).
?DOC(" Sets a column to a `Bool` `UpdateParamSet`.\n").
-spec set_bool(binary(), boolean()) -> cake@internal@write_query:update_set().
set_bool(Column, Value) ->
_pipe = Value,
_pipe@1 = {bool_param, _pipe},
{update_param_set, Column, _pipe@1}.
-file("src/cake/update.gleam", 113).
?DOC(" Sets a column to a `True` `UpdateParamSet`.\n").
-spec set_true(binary()) -> cake@internal@write_query:update_set().
set_true(Column) ->
_pipe = true,
_pipe@1 = {bool_param, _pipe},
{update_param_set, Column, _pipe@1}.
-file("src/cake/update.gleam", 119).
?DOC(" Sets a column to a `False` `UpdateParamSet`.\n").
-spec set_false(binary()) -> cake@internal@write_query:update_set().
set_false(Column) ->
_pipe = false,
_pipe@1 = {bool_param, _pipe},
{update_param_set, Column, _pipe@1}.
-file("src/cake/update.gleam", 125).
?DOC(" Sets a column to a `Float` `UpdateParamSet`.\n").
-spec set_float(binary(), float()) -> cake@internal@write_query:update_set().
set_float(Column, Value) ->
_pipe = Value,
_pipe@1 = {float_param, _pipe},
{update_param_set, Column, _pipe@1}.
-file("src/cake/update.gleam", 131).
?DOC(" Sets a column to a `Int` `UpdateParamSet`.\n").
-spec set_int(binary(), integer()) -> cake@internal@write_query:update_set().
set_int(Column, Value) ->
_pipe = Value,
_pipe@1 = {int_param, _pipe},
{update_param_set, Column, _pipe@1}.
-file("src/cake/update.gleam", 137).
?DOC(" Sets a column to a string `UpdateParamSet`.\n").
-spec set_string(binary(), binary()) -> cake@internal@write_query:update_set().
set_string(Column, Value) ->
_pipe = Value,
_pipe@1 = {string_param, _pipe},
{update_param_set, Column, _pipe@1}.
-file("src/cake/update.gleam", 143).
?DOC(" Sets a column to an SQL `NULL` `UpdateParamSet`.\n").
-spec set_null(binary()) -> cake@internal@write_query:update_set().
set_null(Column) ->
_pipe = null_param,
{update_param_set, Column, _pipe}.
-file("src/cake/update.gleam", 149).
?DOC(" Sets a column to a `calendar.Date` `UpdateParamSet`.\n").
-spec set_date(binary(), gleam@time@calendar:date()) -> cake@internal@write_query:update_set().
set_date(Column, Date) ->
_pipe = Date,
_pipe@1 = {date_param, _pipe},
{update_param_set, Column, _pipe@1}.
-file("src/cake/update.gleam", 155).
?DOC(" Sets a column to an expression value.\n").
-spec set_expression(binary(), binary()) -> cake@internal@write_query:update_set().
set_expression(Column, Expression) ->
_pipe = [Column],
{update_expression_set, _pipe, Expression}.
-file("src/cake/update.gleam", 164).
?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(Column, Query) ->
_pipe = [Column],
{update_sub_query_set, _pipe, Query}.
-file("src/cake/update.gleam", 182).
?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(Column, Value) ->
{update_fragment_set, Column, Value}.
-file("src/cake/update.gleam", 190).
?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(Columns, Expression) ->
_pipe = Columns,
{update_expression_set, _pipe, Expression}.
-file("src/cake/update.gleam", 201).
?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(Columns, Query) ->
_pipe = Columns,
{update_sub_query_set, _pipe, Query}.
-file("src/cake/update.gleam", 210).
?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(Update) ->
case erlang:element(4, Update) of
no_update_sets ->
[];
{update_sets, Items} ->
Items
end.
-file("src/cake/update.gleam", 219).
?DOC(" Sets or appends one column set in an `Update` query.\n").
-spec set(
cake@internal@write_query:update(GIH),
cake@internal@write_query:update_set()
) -> cake@internal@write_query:update(GIH).
set(Update, Set) ->
case erlang:element(4, Update) of
no_update_sets ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
begin
_pipe = [Set],
{update_sets, _pipe}
end,
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
{update_sets, Items} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
begin
_pipe@1 = Items,
_pipe@2 = lists:append(_pipe@1, [Set]),
{update_sets, _pipe@2}
end,
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 229).
?DOC(" Sets or replaces one column set in an `Update` query.\n").
-spec set_replace(
cake@internal@write_query:update(GIK),
cake@internal@write_query:update_set()
) -> cake@internal@write_query:update(GIK).
set_replace(Update, Set) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
begin
_pipe = [Set],
{update_sets, _pipe}
end,
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 235).
?DOC(" Sets or appends many column sets in an `Update` query.\n").
-spec sets(
cake@internal@write_query:update(GIN),
list(cake@internal@write_query:update_set())
) -> cake@internal@write_query:update(GIN).
sets(Update, Sets) ->
case erlang:element(4, Update) of
no_update_sets ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
begin
_pipe = Sets,
{update_sets, _pipe}
end,
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
{update_sets, Items} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
begin
_pipe@1 = Items,
_pipe@2 = lists:append(_pipe@1, Sets),
{update_sets, _pipe@2}
end,
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 245).
?DOC(" Sets or replaces many column sets in an `Update` query.\n").
-spec sets_replace(
cake@internal@write_query:update(GIR),
list(cake@internal@write_query:update_set())
) -> cake@internal@write_query:update(GIR).
sets_replace(Update, Sets) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
begin
_pipe = Sets,
{update_sets, _pipe}
end,
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 256).
?DOC(" Sets the `FROM` clause of the `Update` query to a table name.\n").
-spec from_table(cake@internal@write_query:update(GIV), binary()) -> cake@internal@write_query:update(GIV).
from_table(Update, Table_name) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
begin
_pipe = Table_name,
{from_table, _pipe}
end,
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 265).
?DOC(" Sets the `FROM` clause of the `Update` query to an aliased sub-query.\n").
-spec from_sub_query(
cake@internal@write_query:update(GIY),
cake@internal@read_query:read_query(),
binary()
) -> cake@internal@write_query:update(GIY).
from_sub_query(Update, Query, Alias) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
begin
_pipe = Query,
{from_sub_query, _pipe, Alias}
end,
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 275).
?DOC(" Removes the `FROM` clause of the `Update` query.\n").
-spec no_from(cake@internal@write_query:update(GJB)) -> cake@internal@write_query:update(GJB).
no_from(Update) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
no_from,
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 281).
?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(Update) ->
erlang:element(5, Update).
-file("src/cake/update.gleam", 292).
?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(GJG),
cake@internal@read_query:join()
) -> cake@internal@write_query:update(GJG).
join(Update, Join) ->
case erlang:element(6, Update) of
{joins, Existing_joins} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
begin
_pipe = Existing_joins,
_pipe@1 = lists:append(_pipe, [Join]),
{joins, _pipe@1}
end,
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
no_joins ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
begin
_pipe@2 = [Join],
{joins, _pipe@2}
end,
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 305).
?DOC(
" Replaces any `Join`s of the `Update` query with a single `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(GJJ),
cake@internal@read_query:join()
) -> cake@internal@write_query:update(GJJ).
replace_join(Update, Join) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
begin
_pipe = [Join],
{joins, _pipe}
end,
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 314).
?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(GJM),
list(cake@internal@read_query:join())
) -> cake@internal@write_query:update(GJM).
joins(Update, Joins) ->
case {Joins, erlang:element(6, Update)} of
{[], _} ->
Update;
{_, {joins, Existing_joins}} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
begin
_pipe = Existing_joins,
_pipe@1 = lists:append(_pipe, Joins),
{joins, _pipe@1}
end,
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
{_, no_joins} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
begin
_pipe@2 = Joins,
{joins, _pipe@2}
end,
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 328).
?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(GJQ),
list(cake@internal@read_query:join())
) -> cake@internal@write_query:update(GJQ).
replace_joins(Update, Joins) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
begin
_pipe = Joins,
{joins, _pipe}
end,
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 337).
?DOC(" Removes any `Joins` from the `Update` query.\n").
-spec no_join(cake@internal@write_query:update(GJU)) -> cake@internal@write_query:update(GJU).
no_join(Update) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
no_joins,
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 343).
?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(Update) ->
erlang:element(6, Update).
-file("src/cake/update.gleam", 358).
?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(GJZ),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GJZ).
where(Update, Where) ->
case erlang:element(7, Update) of
no_where ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
Where,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
{and_where, Conditions} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{and_where, _pipe@1}
end,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
_ ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
begin
_pipe@2 = [erlang:element(7, Update), Where],
{and_where, _pipe@2}
end,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 376).
?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(GKC),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GKC).
or_where(Update, Where) ->
case erlang:element(7, Update) of
no_where ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
Where,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
{or_where, Conditions} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{or_where, _pipe@1}
end,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
_ ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
begin
_pipe@2 = [erlang:element(7, Update), Where],
{or_where, _pipe@2}
end,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 399).
?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(GKF),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GKF).
xor_where(Update, Where) ->
case erlang:element(7, Update) of
no_where ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
Where,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
{xor_where, Conditions} ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{xor_where, _pipe@1}
end,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)};
_ ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
begin
_pipe@2 = [erlang:element(7, Update), Where],
{xor_where, _pipe@2}
end,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 410).
?DOC(" Replaces the `Where` in the `Update` query.\n").
-spec replace_where(
cake@internal@write_query:update(GKI),
cake@internal@read_query:where()
) -> cake@internal@write_query:update(GKI).
replace_where(Update, Where) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
Where,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 419).
?DOC(" Removes the `Where` from the `Update` query.\n").
-spec no_where(cake@internal@write_query:update(GKL)) -> cake@internal@write_query:update(GKL).
no_where(Update) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
no_where,
erlang:element(8, Update),
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 425).
?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(Update) ->
erlang:element(7, Update).
-file("src/cake/update.gleam", 434).
?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(GKQ), list(binary())) -> cake@internal@write_query:update(GKQ).
returning(Update, Returning) ->
case Returning of
[] ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
no_returning,
erlang:element(9, Update),
erlang:element(10, Update)};
_ ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
begin
_pipe = Returning,
{returning, _pipe}
end,
erlang:element(9, Update),
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 447).
?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(GKU)) -> cake@internal@write_query:update(GKU).
no_returning(Update) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
no_returning,
erlang:element(9, Update),
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 455).
?DOC(" Sets an `Epilog` or appends into an existing `Epilog`.\n").
-spec epilog(cake@internal@write_query:update(GKX), binary()) -> cake@internal@write_query:update(GKX).
epilog(Update, Epilog) ->
Epilog@1 = begin
_pipe = Epilog,
gleam@string:trim(_pipe)
end,
case Epilog@1 of
<<""/utf8>> ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
no_epilog,
erlang:element(10, Update)};
_ ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
begin
_pipe@1 = (<<" "/utf8, Epilog@1/binary>>),
{epilog, _pipe@1}
end,
erlang:element(10, Update)}
end.
-file("src/cake/update.gleam", 465).
?DOC(" Removes the `Epilog` from the `Update` query.\n").
-spec no_epilog(cake@internal@write_query:update(GLA)) -> cake@internal@write_query:update(GLA).
no_epilog(Update) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
no_epilog,
erlang:element(10, Update)}.
-file("src/cake/update.gleam", 471).
?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(Update) ->
erlang:element(9, Update).
-file("src/cake/update.gleam", 479).
?DOC(" Sets a `Comment` or appends into an existing `Comment`.\n").
-spec comment(cake@internal@write_query:update(GLF), binary()) -> cake@internal@write_query:update(GLF).
comment(Update, Comment) ->
Comment@1 = begin
_pipe = Comment,
gleam@string:trim(_pipe)
end,
case Comment@1 of
<<""/utf8>> ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
no_comment};
_ ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
begin
_pipe@1 = (<<" "/utf8, Comment@1/binary>>),
{comment, _pipe@1}
end}
end.
-file("src/cake/update.gleam", 489).
?DOC(" Removes the `Comment` from the `Update` query.\n").
-spec no_comment(cake@internal@write_query:update(GLI)) -> cake@internal@write_query:update(GLI).
no_comment(Update) ->
{update,
erlang:element(2, Update),
erlang:element(3, Update),
erlang:element(4, Update),
erlang:element(5, Update),
erlang:element(6, Update),
erlang:element(7, Update),
erlang:element(8, Update),
erlang:element(9, Update),
no_comment}.
-file("src/cake/update.gleam", 495).
?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(Update) ->
erlang:element(10, Update).