Current section

Files

Jump to
cake src cake@select.erl
Raw

src/cake@select.erl

-module(cake@select).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([to_query/1, col/1, alias/2, bool/1, float/1, int/1, string/1, null/0, fragment/1, new/0, all/1, distinct/1, get_kind/2, from_table/2, from_query/3, no_from/1, get_from/1, select/2, select_col/2, replace_select/2, replace_select_col/2, selects/2, select_cols/2, replace_selects/2, replace_select_cols/2, get_select/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, having/2, or_having/2, xor_having/2, replace_having/2, no_having/1, get_having/1, group_by/2, replace_group_by/2, group_bys/2, replace_group_bys/2, no_group_by/1, get_group_by/1, limit/2, no_limit/1, get_limit/1, offset/2, no_offset/1, get_offset/1, order_by_asc/2, order_by_asc_nulls_first/2, order_by_asc_nulls_last/2, replace_order_by_asc/2, replace_order_by_asc_nulls_first/2, replace_order_by_asc_nulls_last/2, order_by_desc/2, order_by_desc_nulls_first/2, order_by_desc_nulls_last/2, replace_order_by_desc/2, replace_order_by_desc_nulls_first/2, replace_order_by_desc_nulls_last/2, order_by/3, replace_order_by/3, no_order_by/1, get_order_by/1, epilog/2, no_epilog/1, get_epilog/1, comment/2, no_comment/1, get_comment/1]).
-export_type([direction/0]).
-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 `SELECT` queries.\n"
"\n"
).
-type direction() :: asc | desc.
-file("src/cake/select.gleam", 72).
?DOC(" Creates a `ReadQuery` from a `Select` query.\n").
-spec to_query(cake@internal@read_query:select()) -> cake@internal@read_query:read_query().
to_query(Slct) ->
_pipe = Slct,
{select_query, _pipe}.
-file("src/cake/select.gleam", 78).
?DOC(" Creates a column identifier off a `String`.\n").
-spec col(binary()) -> cake@internal@read_query:select_value().
col(Nm) ->
_pipe = Nm,
{select_column, _pipe}.
-file("src/cake/select.gleam", 84).
?DOC(" Creates an alias off a `String`.\n").
-spec alias(cake@internal@read_query:select_value(), binary()) -> cake@internal@read_query:select_value().
alias(Vl, Als) ->
_pipe = Vl,
{select_alias, _pipe, Als}.
-file("src/cake/select.gleam", 90).
?DOC(" Creates a boolean `Param` off a `Bool`.\n").
-spec bool(boolean()) -> cake@internal@read_query:select_value().
bool(Vl) ->
_pipe = Vl,
_pipe@1 = {bool_param, _pipe},
{select_param, _pipe@1}.
-file("src/cake/select.gleam", 96).
?DOC(" Creates a float `Param` off a `Float`.\n").
-spec float(float()) -> cake@internal@read_query:select_value().
float(Vl) ->
_pipe = Vl,
_pipe@1 = {float_param, _pipe},
{select_param, _pipe@1}.
-file("src/cake/select.gleam", 102).
?DOC(" Creates an integer `Param` off an `Int`.\n").
-spec int(integer()) -> cake@internal@read_query:select_value().
int(Vl) ->
_pipe = Vl,
_pipe@1 = {int_param, _pipe},
{select_param, _pipe@1}.
-file("src/cake/select.gleam", 108).
?DOC(" Creates a string `Param` off a `String`.\n").
-spec string(binary()) -> cake@internal@read_query:select_value().
string(Vl) ->
_pipe = Vl,
_pipe@1 = {string_param, _pipe},
{select_param, _pipe@1}.
-file("src/cake/select.gleam", 114).
?DOC(" Creates an SQL `NULL` `Param`.\n").
-spec null() -> cake@internal@read_query:select_value().
null() ->
_pipe = null_param,
{select_param, _pipe}.
-file("src/cake/select.gleam", 119).
?DOC(" Creates a `SelectFragment` off a `Fragment`.\n").
-spec fragment(cake@internal@read_query:fragment()) -> cake@internal@read_query:select_value().
fragment(Frgmt) ->
_pipe = Frgmt,
{select_fragment, _pipe}.
-file("src/cake/select.gleam", 127).
?DOC(" Creates an empty `Select` query.\n").
-spec new() -> cake@internal@read_query:select().
new() ->
{select,
select_all,
no_selects,
no_from,
no_joins,
no_where,
no_group_by,
no_where,
no_order_by,
no_limit,
no_offset,
no_epilog,
no_comment}.
-file("src/cake/select.gleam", 149).
?DOC(
" Sets the kind of the `Select` query to\n"
" return duplicates which is the default.\n"
).
-spec all(cake@internal@read_query:select()) -> cake@internal@read_query:select().
all(Slct) ->
_record = Slct,
{select,
select_all,
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 156).
?DOC(
" Sets the kind of the `Select` query to\n"
" return distinct rows only.\n"
).
-spec distinct(cake@internal@read_query:select()) -> cake@internal@read_query:select().
distinct(Slct) ->
_record = Slct,
{select,
select_distinct,
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 162).
?DOC(" Gets the kind of the `Select` query.\n").
-spec get_kind(
cake@internal@read_query:select(),
cake@internal@read_query:select_kind()
) -> cake@internal@read_query:select().
get_kind(Slct, Knd) ->
_record = Slct,
{select,
Knd,
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 170).
?DOC(" Sets the `FROM` clause of the `Select` query to a table name.\n").
-spec from_table(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
from_table(Slct, Tbl_nm) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
begin
_pipe = Tbl_nm,
{from_table, _pipe}
end,
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 176).
?DOC(" Sets the `FROM` clause of the `Select` query to an aliased sub-query.\n").
-spec from_query(
cake@internal@read_query:select(),
cake@internal@read_query:read_query(),
binary()
) -> cake@internal@read_query:select().
from_query(Slct, Sb_qry, Als) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
begin
_pipe = Sb_qry,
{from_sub_query, _pipe, Als}
end,
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 186).
?DOC(" Removes the `FROM` clause of the `Select` query.\n").
-spec no_from(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_from(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
no_from,
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 192).
?DOC(" Gets the `FROM` clause of the `Select` query.\n").
-spec get_from(cake@internal@read_query:select()) -> cake@internal@read_query:from().
get_from(Slct) ->
erlang:element(4, Slct).
-file("src/cake/select.gleam", 210).
?DOC(
" Add a `SelectValue` to the `Select` query.\n"
"\n"
" If the query already has any `SelectValue`s, the new one is appended.\n"
).
-spec select(
cake@internal@read_query:select(),
cake@internal@read_query:select_value()
) -> cake@internal@read_query:select().
select(Slct, Sv) ->
case erlang:element(3, Slct) of
no_selects ->
_record = Slct,
{select,
erlang:element(2, _record),
begin
_pipe = [Sv],
{selects, _pipe}
end,
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{selects, Slct_slcts} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, [Sv]),
{selects, _pipe@2}
end,
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 202).
?DOC(
" Add a column name to the `Select` query as a `SelectValue`.\n"
"\n"
" If the query already has any `SelectValue`s, the new one is appended.\n"
).
-spec select_col(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
select_col(Slct, Nm) ->
_pipe = Nm,
_pipe@1 = col(_pipe),
select(Slct, _pipe@1).
-file("src/cake/select.gleam", 230).
?DOC(
" Add a `SelectValue`s to the `Select` query.\n"
"\n"
" If the query already has any `SelectValue`s, they are replaced.\n"
).
-spec replace_select(
cake@internal@read_query:select(),
cake@internal@read_query:select_value()
) -> cake@internal@read_query:select().
replace_select(Slct, Sv) ->
case erlang:element(3, Slct) of
no_selects ->
_record = Slct,
{select,
erlang:element(2, _record),
begin
_pipe = [Sv],
{selects, _pipe}
end,
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{selects, Slct_slcts} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, [Sv]),
{selects, _pipe@2}
end,
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 222).
?DOC(
" Add a column name to the `Select` query as a `SelectValue`.\n"
"\n"
" If the query already has any `SelectValue`s, they are replaced.\n"
).
-spec replace_select_col(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
replace_select_col(Slct, Nm) ->
_pipe = Nm,
_pipe@1 = col(_pipe),
replace_select(Slct, _pipe@1).
-file("src/cake/select.gleam", 256).
?DOC(
" Adds many `SelectValue`s to the `Select` query.\n"
"\n"
" If the query already has any `SelectValue`s, the new ones are appended.\n"
).
-spec selects(
cake@internal@read_query:select(),
list(cake@internal@read_query:select_value())
) -> cake@internal@read_query:select().
selects(Slct, Svs) ->
case {Svs, erlang:element(3, Slct)} of
{[], _} ->
Slct;
{Svs@1, no_selects} ->
_record = Slct,
{select,
erlang:element(2, _record),
begin
_pipe = Svs@1,
{selects, _pipe}
end,
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{Svs@2, {selects, Slct_slcts}} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, Svs@2),
{selects, _pipe@2}
end,
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 245).
?DOC(
" Adds many column names as `SelectValue`s to the `Select` query.\n"
"\n"
" If the query already has any `SelectValue`s, the new ones are appended.\n"
).
-spec select_cols(cake@internal@read_query:select(), list(binary())) -> cake@internal@read_query:select().
select_cols(Slct, Scls) ->
_pipe = Scls,
_pipe@1 = gleam@list:map(_pipe, fun col/1),
selects(Slct, _pipe@1).
-file("src/cake/select.gleam", 283).
?DOC(
" Adds many `SelectValue`s to the `Select` query.\n"
"\n"
" If the query already has any `SelectValue`s, they are replaced.\n"
).
-spec replace_selects(
cake@internal@read_query:select(),
list(cake@internal@read_query:select_value())
) -> cake@internal@read_query:select().
replace_selects(Slct, Svs) ->
case {Svs, erlang:element(3, Slct)} of
{[], _} ->
Slct;
{Svs@1, no_selects} ->
_record = Slct,
{select,
erlang:element(2, _record),
begin
_pipe = Svs@1,
{selects, _pipe}
end,
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{Svs@2, {selects, Slct_slcts}} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, Svs@2),
{selects, _pipe@2}
end,
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 272).
?DOC(
" Adds many column names as `SelectValue`s to the `Select` query.\n"
"\n"
" If the query already has any `SelectValue`s, the new ones are replaced.\n"
).
-spec replace_select_cols(cake@internal@read_query:select(), list(binary())) -> cake@internal@read_query:select().
replace_select_cols(Slct, Scls) ->
_pipe = Scls,
_pipe@1 = gleam@list:map(_pipe, fun col/1),
replace_selects(Slct, _pipe@1).
-file("src/cake/select.gleam", 297).
?DOC(" Gets the `SelectValue`s of the `Select` query.\n").
-spec get_select(cake@internal@read_query:select()) -> cake@internal@read_query:selects().
get_select(Slct) ->
erlang:element(3, Slct).
-file("src/cake/select.gleam", 305).
?DOC(" Adds a `Join` to the `Select` query.\n").
-spec join(cake@internal@read_query:select(), cake@internal@read_query:join()) -> cake@internal@read_query:select().
join(Slct, Jn) ->
case erlang:element(5, Slct) of
{joins, Jns} ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
begin
_pipe = Jns,
_pipe@1 = lists:append(_pipe, [Jn]),
{joins, _pipe@1}
end,
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
no_joins ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
begin
_pipe@2 = [Jn],
{joins, _pipe@2}
end,
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 314).
?DOC(" Replaces any `Join`s of the `Select` query with a signle `Join`.\n").
-spec replace_join(
cake@internal@read_query:select(),
cake@internal@read_query:join()
) -> cake@internal@read_query:select().
replace_join(Slct, Jn) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
begin
_pipe = [Jn],
{joins, _pipe}
end,
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 320).
?DOC(" Adds `Join`s to the `Select` query.\n").
-spec joins(
cake@internal@read_query:select(),
list(cake@internal@read_query:join())
) -> cake@internal@read_query:select().
joins(Slct, Jns) ->
case {Jns, erlang:element(5, Slct)} of
{[], _} ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
begin
_pipe = Jns,
{joins, _pipe}
end,
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{Jns@1, {joins, Slct_joins}} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
begin
_pipe@1 = Slct_joins,
_pipe@2 = lists:append(_pipe@1, Jns@1),
{joins, _pipe@2}
end,
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)};
{Jns@2, no_joins} ->
_record@2 = Slct,
{select,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
erlang:element(4, _record@2),
begin
_pipe@3 = Jns@2,
{joins, _pipe@3}
end,
erlang:element(6, _record@2),
erlang:element(7, _record@2),
erlang:element(8, _record@2),
erlang:element(9, _record@2),
erlang:element(10, _record@2),
erlang:element(11, _record@2),
erlang:element(12, _record@2),
erlang:element(13, _record@2)}
end.
-file("src/cake/select.gleam", 331).
?DOC(" Replaces any `Join`s of the `Select` query with the given `Join`s.\n").
-spec replace_joins(
cake@internal@read_query:select(),
list(cake@internal@read_query:join())
) -> cake@internal@read_query:select().
replace_joins(Slct, Jns) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
begin
_pipe = Jns,
{joins, _pipe}
end,
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 337).
?DOC(" Removes any `Joins` from the `Select` query.\n").
-spec no_join(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_join(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
no_joins,
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 343).
?DOC(" Gets the `Joins` of the `Select` query.\n").
-spec get_joins(cake@internal@read_query:select()) -> cake@internal@read_query:joins().
get_joins(Slct) ->
erlang:element(5, Slct).
-file("src/cake/select.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@read_query:select(), cake@internal@read_query:where()) -> cake@internal@read_query:select().
where(Slct, Whr) ->
case erlang:element(6, Slct) of
no_where ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
Whr,
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{and_where, Wheres} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{and_where, _pipe@1}
end,
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)};
_ ->
_record@2 = Slct,
{select,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
erlang:element(4, _record@2),
erlang:element(5, _record@2),
begin
_pipe@2 = [erlang:element(6, Slct), Whr],
{and_where, _pipe@2}
end,
erlang:element(7, _record@2),
erlang:element(8, _record@2),
erlang:element(9, _record@2),
erlang:element(10, _record@2),
erlang:element(11, _record@2),
erlang:element(12, _record@2),
erlang:element(13, _record@2)}
end.
-file("src/cake/select.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@read_query:select(),
cake@internal@read_query:where()
) -> cake@internal@read_query:select().
or_where(Slct, Whr) ->
case erlang:element(6, Slct) of
no_where ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
Whr,
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{or_where, Wheres} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{or_where, _pipe@1}
end,
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)};
_ ->
_record@2 = Slct,
{select,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
erlang:element(4, _record@2),
erlang:element(5, _record@2),
begin
_pipe@2 = [erlang:element(6, Slct), Whr],
{or_where, _pipe@2}
end,
erlang:element(7, _record@2),
erlang:element(8, _record@2),
erlang:element(9, _record@2),
erlang:element(10, _record@2),
erlang:element(11, _record@2),
erlang:element(12, _record@2),
erlang:element(13, _record@2)}
end.
-file("src/cake/select.gleam", 398).
?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"
" This operator exists in 🦭MariaDB and 🐬MySQL.\n"
).
-spec xor_where(
cake@internal@read_query:select(),
cake@internal@read_query:where()
) -> cake@internal@read_query:select().
xor_where(Slct, Whr) ->
case erlang:element(6, Slct) of
no_where ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
Whr,
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{xor_where, Wheres} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{xor_where, _pipe@1}
end,
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)};
_ ->
_record@2 = Slct,
{select,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
erlang:element(4, _record@2),
erlang:element(5, _record@2),
begin
_pipe@2 = [erlang:element(6, Slct), Whr],
{xor_where, _pipe@2}
end,
erlang:element(7, _record@2),
erlang:element(8, _record@2),
erlang:element(9, _record@2),
erlang:element(10, _record@2),
erlang:element(11, _record@2),
erlang:element(12, _record@2),
erlang:element(13, _record@2)}
end.
-file("src/cake/select.gleam", 409).
?DOC(" Replaces the `Where` in the `Select` query.\n").
-spec replace_where(
cake@internal@read_query:select(),
cake@internal@read_query:where()
) -> cake@internal@read_query:select().
replace_where(Slct, Whr) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
Whr,
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 415).
?DOC(" Removes the `Where` from the `Select` query.\n").
-spec no_where(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_where(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
no_where,
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 421).
?DOC(" Gets the `Where` of the `Select` query.\n").
-spec get_where(cake@internal@read_query:select()) -> cake@internal@read_query:where().
get_where(Slct) ->
erlang:element(6, Slct).
-file("src/cake/select.gleam", 441).
?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"
"\n"
" NOTICE: `HAVING` allows to specify constraints much like `WHERE`, but\n"
" filters the results after `GROUP BY` is applied instead of before. Because\n"
" `HAVING` uses the same semantics as `WHERE`, it\n"
" takes a `Where`.\n"
).
-spec having(
cake@internal@read_query:select(),
cake@internal@read_query:where()
) -> cake@internal@read_query:select().
having(Slct, Whr) ->
case erlang:element(8, Slct) of
no_where ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
Whr,
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{and_where, Wheres} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{and_where, _pipe@1}
end,
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)};
_ ->
_record@2 = Slct,
{select,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
erlang:element(4, _record@2),
erlang:element(5, _record@2),
erlang:element(6, _record@2),
erlang:element(7, _record@2),
begin
_pipe@2 = [erlang:element(8, Slct), Whr],
{and_where, _pipe@2}
end,
erlang:element(9, _record@2),
erlang:element(10, _record@2),
erlang:element(11, _record@2),
erlang:element(12, _record@2),
erlang:element(13, _record@2)}
end.
-file("src/cake/select.gleam", 461).
?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"
"\n"
" See function `having` on details why this takes a `Where`.\n"
).
-spec or_having(
cake@internal@read_query:select(),
cake@internal@read_query:where()
) -> cake@internal@read_query:select().
or_having(Slct, Whr) ->
case erlang:element(8, Slct) of
no_where ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
Whr,
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{or_where, Wheres} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{or_where, _pipe@1}
end,
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)};
_ ->
_record@2 = Slct,
{select,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
erlang:element(4, _record@2),
erlang:element(5, _record@2),
erlang:element(6, _record@2),
erlang:element(7, _record@2),
begin
_pipe@2 = [erlang:element(8, Slct), Whr],
{or_where, _pipe@2}
end,
erlang:element(9, _record@2),
erlang:element(10, _record@2),
erlang:element(11, _record@2),
erlang:element(12, _record@2),
erlang:element(13, _record@2)}
end.
-file("src/cake/select.gleam", 485).
?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"
" See function `having` on details why this takes a `Where`.\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"
" This operator exists in 🦭MariaDB and 🐬MySQL.\n"
).
-spec xor_having(
cake@internal@read_query:select(),
cake@internal@read_query:where()
) -> cake@internal@read_query:select().
xor_having(Slct, Whr) ->
case erlang:element(8, Slct) of
no_where ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
Whr,
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{xor_where, Wheres} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{xor_where, _pipe@1}
end,
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)};
_ ->
_record@2 = Slct,
{select,
erlang:element(2, _record@2),
erlang:element(3, _record@2),
erlang:element(4, _record@2),
erlang:element(5, _record@2),
erlang:element(6, _record@2),
erlang:element(7, _record@2),
begin
_pipe@2 = [erlang:element(8, Slct), Whr],
{xor_where, _pipe@2}
end,
erlang:element(9, _record@2),
erlang:element(10, _record@2),
erlang:element(11, _record@2),
erlang:element(12, _record@2),
erlang:element(13, _record@2)}
end.
-file("src/cake/select.gleam", 498).
?DOC(
" Replaces `HAVING` in the `Select` query.\n"
"\n"
" See function `having` on details why this takes a `Where`.\n"
).
-spec replace_having(
cake@internal@read_query:select(),
cake@internal@read_query:where()
) -> cake@internal@read_query:select().
replace_having(Slct, Whr) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
Whr,
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 504).
?DOC(" Removes `HAVING` from the `Select` query.\n").
-spec no_having(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_having(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
no_where,
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 512).
?DOC(
" Gets`HAVING` in the `Select` query.\n"
"\n"
" See function `having` on details why this returns a `Where`.\n"
).
-spec get_having(cake@internal@read_query:select()) -> cake@internal@read_query:where().
get_having(Slct) ->
erlang:element(8, Slct).
-file("src/cake/select.gleam", 520).
?DOC(" Sets or appends `GroupBy` a single into an existing `GroupBy`.\n").
-spec group_by(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
group_by(Slct, Grpb) ->
case erlang:element(7, Slct) of
no_group_by ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
begin
_pipe = [Grpb],
{group_by, _pipe}
end,
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{group_by, Grpbs} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
begin
_pipe@1 = Grpbs,
_pipe@2 = lists:append(_pipe@1, [Grpb]),
{group_by, _pipe@2}
end,
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 530).
?DOC(" Replaces `GroupBy` with a single `GroupBy`.\n").
-spec replace_group_by(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
replace_group_by(Slct, Grpb) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
begin
_pipe = [Grpb],
{group_by, _pipe}
end,
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 536).
?DOC(" Sets or appends a list of `GroupBy` into an existing `GroupBy`.\n").
-spec group_bys(cake@internal@read_query:select(), list(binary())) -> cake@internal@read_query:select().
group_bys(Slct, Grpbs) ->
case erlang:element(7, Slct) of
no_group_by ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
begin
_pipe = Grpbs,
{group_by, _pipe}
end,
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)};
{group_by, Grpbs@1} ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
begin
_pipe@1 = Grpbs@1,
_pipe@2 = lists:append(_pipe@1, Grpbs@1),
{group_by, _pipe@2}
end,
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 546).
?DOC(" Replaces `GroupBy` with a list of `GroupBy`s.\n").
-spec replace_group_bys(cake@internal@read_query:select(), list(binary())) -> cake@internal@read_query:select().
replace_group_bys(Slct, Grpbs) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
begin
_pipe = Grpbs,
{group_by, _pipe}
end,
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 555).
?DOC(" Removes `GroupBy` from the `Select` query.\n").
-spec no_group_by(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_group_by(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
no_group_by,
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 561).
?DOC(" Gets `GroupBy` in the `Select` query.\n").
-spec get_group_by(cake@internal@read_query:select()) -> cake@internal@read_query:group_by().
get_group_by(Slct) ->
erlang:element(7, Slct).
-file("src/cake/select.gleam", 569).
?DOC(" Sets a `Limit` in the `Select` query.\n").
-spec limit(cake@internal@read_query:select(), integer()) -> cake@internal@read_query:select().
limit(Slct, Lmt) ->
Lmt@1 = begin
_pipe = Lmt,
cake@internal@read_query:limit_new(_pipe)
end,
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
Lmt@1,
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 576).
?DOC(" Removes `Limit` from the `Select` query.\n").
-spec no_limit(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_limit(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
no_limit,
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 582).
?DOC(" Gets `Limit` in the `Select` query.\n").
-spec get_limit(cake@internal@read_query:select()) -> cake@internal@read_query:limit().
get_limit(Slct) ->
erlang:element(10, Slct).
-file("src/cake/select.gleam", 588).
?DOC(" Sets an `Offset` in the `Select` query.\n").
-spec offset(cake@internal@read_query:select(), integer()) -> cake@internal@read_query:select().
offset(Slct, Offst) ->
Offst@1 = begin
_pipe = Offst,
cake@internal@read_query:offset_new(_pipe)
end,
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
Offst@1,
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 595).
?DOC(" Removes `Offset` from the `Select` query.\n").
-spec no_offset(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_offset(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
no_offset,
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 601).
?DOC(" Gets `Offset` in the `Select` query.\n").
-spec get_offset(cake@internal@read_query:select()) -> cake@internal@read_query:offset().
get_offset(Slct) ->
erlang:element(11, Slct).
-file("src/cake/select.gleam", 616).
-spec map_order_by_direction_constructor(direction()) -> cake@internal@read_query:order_by_direction().
map_order_by_direction_constructor(In) ->
case In of
asc ->
asc;
desc ->
desc
end.
-file("src/cake/select.gleam", 625).
?DOC(" Creates or appends an ascending `OrderBy`.\n").
-spec order_by_asc(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
order_by_asc(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, asc}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 637).
?DOC(
" Creates or appends an ascending `OrderBy` with `NULLS FIRST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS FIRST` out of the box.\n"
).
-spec order_by_asc_nulls_first(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
order_by_asc_nulls_first(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, asc_nulls_first}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 649).
?DOC(
" Creates or appends an ascending `OrderBy` with `NULLS LAST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS LAST` out of the box.\n"
).
-spec order_by_asc_nulls_last(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
order_by_asc_nulls_last(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, asc_nulls_first}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 659).
?DOC(" Replaces the `OrderBy` a single ascending `OrderBy`.\n").
-spec replace_order_by_asc(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
replace_order_by_asc(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, asc}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 671).
?DOC(
" Replaces the `OrderBy` a single ascending `OrderBy` with `NULLS FIRST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS FIRST` out of the box.\n"
).
-spec replace_order_by_asc_nulls_first(
cake@internal@read_query:select(),
binary()
) -> cake@internal@read_query:select().
replace_order_by_asc_nulls_first(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, asc_nulls_first}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 686).
?DOC(
" Replaces the `OrderBy` a single ascending `OrderBy` with `NULLS LAST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS LAST` out of the box.\n"
).
-spec replace_order_by_asc_nulls_last(
cake@internal@read_query:select(),
binary()
) -> cake@internal@read_query:select().
replace_order_by_asc_nulls_last(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, asc_nulls_first}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 699).
?DOC(" Creates or appends a descending `OrderBy`.\n").
-spec order_by_desc(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
order_by_desc(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, desc}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 711).
?DOC(
" Creates or appends a descending order with `NULLS FIRST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS FIRST` out of the box.\n"
).
-spec order_by_desc_nulls_first(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
order_by_desc_nulls_first(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, desc_nulls_first}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 723).
?DOC(
" Creates or appends a descending `OrderBy` with `NULLS LAST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS LAST` out of the box.\n"
).
-spec order_by_desc_nulls_last(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
order_by_desc_nulls_last(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, desc_nulls_first}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 733).
?DOC(" Replaces the `OrderBy` a single descending order.\n").
-spec replace_order_by_desc(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
replace_order_by_desc(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, desc}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 745).
?DOC(
" Replaces the `OrderBy` a single descending order with `NULLS FIRST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS FIRST` out of the box.\n"
).
-spec replace_order_by_desc_nulls_first(
cake@internal@read_query:select(),
binary()
) -> cake@internal@read_query:select().
replace_order_by_desc_nulls_first(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, desc_nulls_first}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 760).
?DOC(
" Replaces the `OrderBy` a single descending `OrderBy` with `NULLS LAST`.\n"
"\n"
" NOTICE: 🦭MariaDB and 🐬MySQL do not support `NULLS LAST` out of the box.\n"
).
-spec replace_order_by_desc_nulls_last(
cake@internal@read_query:select(),
binary()
) -> cake@internal@read_query:select().
replace_order_by_desc_nulls_last(Slct, Ordb) ->
_pipe = Slct,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Ordb,
{order_by_column, _pipe@1, desc_nulls_first}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 775).
?DOC(
" Creates or appends an `OrderBy` a column with a direction.\n"
"\n"
" The direction can either `ASC` or `DESC`.\n"
).
-spec order_by(cake@internal@read_query:select(), binary(), direction()) -> cake@internal@read_query:select().
order_by(Slct, Ordb, Dir) ->
Dir@1 = begin
_pipe = Dir,
map_order_by_direction_constructor(_pipe)
end,
_pipe@1 = Slct,
cake@internal@read_query:select_order_by(
_pipe@1,
begin
_pipe@3 = [begin
_pipe@2 = Ordb,
{order_by_column, _pipe@2, Dir@1}
end],
{order_by, _pipe@3}
end,
true
).
-file("src/cake/select.gleam", 787).
?DOC(" Replaces the `OrderBy` a column with a direction.\n").
-spec replace_order_by(cake@internal@read_query:select(), binary(), direction()) -> cake@internal@read_query:select().
replace_order_by(Slct, Ordb, Dir) ->
Dir@1 = begin
_pipe = Dir,
map_order_by_direction_constructor(_pipe)
end,
_pipe@1 = Slct,
cake@internal@read_query:select_order_by(
_pipe@1,
begin
_pipe@3 = [begin
_pipe@2 = Ordb,
{order_by_column, _pipe@2, Dir@1}
end],
{order_by, _pipe@3}
end,
false
).
-file("src/cake/select.gleam", 799).
?DOC(" Removes the `OrderBy` from the `Select` query.\n").
-spec no_order_by(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_order_by(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
no_order_by,
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 805).
?DOC(" Gets the `OrderBy` from the `Select` query.\n").
-spec get_order_by(cake@internal@read_query:select()) -> cake@internal@read_query:order_by().
get_order_by(Slct) ->
erlang:element(9, Slct).
-file("src/cake/select.gleam", 813).
?DOC(" Appends an `Epilog` to the `Select` query.\n").
-spec epilog(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
epilog(Slct, Eplg) ->
Eplg@1 = begin
_pipe = Eplg,
gleam@string:trim(_pipe)
end,
case Eplg@1 of
<<""/utf8>> ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
no_epilog,
erlang:element(13, _record)};
_ ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
begin
_pipe@1 = (<<" "/utf8, Eplg@1/binary>>),
{epilog, _pipe@1}
end,
erlang:element(13, _record@1)}
end.
-file("src/cake/select.gleam", 823).
?DOC(" Removes the `Epilog` from the `Select` query.\n").
-spec no_epilog(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_epilog(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
no_epilog,
erlang:element(13, _record)}.
-file("src/cake/select.gleam", 829).
?DOC(" Gets the `Epilog` from the `Select` query.\n").
-spec get_epilog(cake@internal@read_query:select()) -> cake@internal@read_query:epilog().
get_epilog(Slct) ->
erlang:element(12, Slct).
-file("src/cake/select.gleam", 837).
?DOC(" Appends a `Comment` to the `Select` query.\n").
-spec comment(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
comment(Slct, Cmmnt) ->
Cmmnt@1 = begin
_pipe = Cmmnt,
gleam@string:trim(_pipe)
end,
case Cmmnt@1 of
<<""/utf8>> ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
no_comment};
_ ->
_record@1 = Slct,
{select,
erlang:element(2, _record@1),
erlang:element(3, _record@1),
erlang:element(4, _record@1),
erlang:element(5, _record@1),
erlang:element(6, _record@1),
erlang:element(7, _record@1),
erlang:element(8, _record@1),
erlang:element(9, _record@1),
erlang:element(10, _record@1),
erlang:element(11, _record@1),
erlang:element(12, _record@1),
begin
_pipe@1 = (<<" "/utf8, Cmmnt@1/binary>>),
{comment, _pipe@1}
end}
end.
-file("src/cake/select.gleam", 847).
?DOC(" Removes the `Comment` from the `Select` query.\n").
-spec no_comment(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_comment(Slct) ->
_record = Slct,
{select,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
no_comment}.
-file("src/cake/select.gleam", 853).
?DOC(" Gets the `Comment` from the `Select` query.\n").
-spec get_comment(cake@internal@read_query:select()) -> cake@internal@read_query:comment().
get_comment(Slct) ->
erlang:element(13, Slct).