Packages
cake
2.2.1
4.1.0
4.0.0
3.0.0
2.2.2
2.2.1
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-rc.0
retired
0.15.0
retired
0.14.0
retired
0.13.0
retired
0.12.0
retired
0.11.0
retired
0.10.1
retired
0.10.0
retired
0.9.2
retired
0.9.1
retired
0.9.0
retired
0.8.0
retired
0.7.0
retired
0.6.0
retired
0.5.0
retired
0.4.0
retired
0.3.0
retired
0.2.0
retired
0.1.0
retired
0.0.1
retired
🎂 An SQL query builder for Gleam for SQL dialects 🐘PostgreSQL, 🪶SQLite, 🦭MariaDB, and 🐬MySQL
Current section
Files
Jump to
Current section
Files
src/cake@select.erl
-module(cake@select).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/cake/select.gleam").
-export([to_query/1, col/1, alias/2, bool/1, float/1, int/1, string/1, date/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", 75).
?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", 81).
?DOC(" Creates a column `SelectValue` from a `String`.\n").
-spec col(binary()) -> cake@internal@read_query:select_value().
col(Nm) ->
_pipe = Nm,
{select_column, _pipe}.
-file("src/cake/select.gleam", 87).
?DOC(" Creates an alias `SelectValue` from `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", 93).
?DOC(" Creates a `SelectValue` from 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", 99).
?DOC(" Creates a `SelectValue` from 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", 105).
?DOC(" Creates a `SelectValue` from 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", 111).
?DOC(" Creates a `SelectValue` from 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", 117).
?DOC(" Creates a `SelectValue` from a `calendar.Date`.\n").
-spec date(gleam@time@calendar:date()) -> cake@internal@read_query:select_value().
date(Vl) ->
_pipe = Vl,
_pipe@1 = {date_param, _pipe},
{select_param, _pipe@1}.
-file("src/cake/select.gleam", 123).
?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", 128).
?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", 136).
?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", 158).
?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) ->
{select,
select_all,
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 165).
?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) ->
{select,
select_distinct,
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 171).
?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) ->
{select,
Knd,
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 179).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
begin
_pipe = Tbl_nm,
{from_table, _pipe}
end,
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 185).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
begin
_pipe = Sb_qry,
{from_sub_query, _pipe, Als}
end,
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 195).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
no_from,
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 201).
?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", 219).
?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 ->
{select,
erlang:element(2, Slct),
begin
_pipe = [Sv],
{selects, _pipe}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{selects, Slct_slcts} ->
{select,
erlang:element(2, Slct),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, [Sv]),
{selects, _pipe@2}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 211).
?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", 239).
?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 ->
{select,
erlang:element(2, Slct),
begin
_pipe = [Sv],
{selects, _pipe}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{selects, Slct_slcts} ->
{select,
erlang:element(2, Slct),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, [Sv]),
{selects, _pipe@2}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 231).
?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", 265).
?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} ->
{select,
erlang:element(2, Slct),
begin
_pipe = Svs@1,
{selects, _pipe}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{Svs@2, {selects, Slct_slcts}} ->
{select,
erlang:element(2, Slct),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, Svs@2),
{selects, _pipe@2}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 254).
?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", 292).
?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} ->
{select,
erlang:element(2, Slct),
begin
_pipe = Svs@1,
{selects, _pipe}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{Svs@2, {selects, Slct_slcts}} ->
{select,
erlang:element(2, Slct),
begin
_pipe@1 = Slct_slcts,
_pipe@2 = lists:append(_pipe@1, Svs@2),
{selects, _pipe@2}
end,
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 281).
?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", 306).
?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", 314).
?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} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
begin
_pipe = Jns,
_pipe@1 = lists:append(_pipe, [Jn]),
{joins, _pipe@1}
end,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
no_joins ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
begin
_pipe@2 = [Jn],
{joins, _pipe@2}
end,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 323).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
begin
_pipe = [Jn],
{joins, _pipe}
end,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 329).
?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
{[], _} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
begin
_pipe = Jns,
{joins, _pipe}
end,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{Jns@1, {joins, Slct_joins}} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
begin
_pipe@1 = Slct_joins,
_pipe@2 = lists:append(_pipe@1, Jns@1),
{joins, _pipe@2}
end,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{Jns@2, no_joins} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
begin
_pipe@3 = Jns@2,
{joins, _pipe@3}
end,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 340).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
begin
_pipe = Jns,
{joins, _pipe}
end,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 346).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
no_joins,
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 352).
?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", 367).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
Whr,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{and_where, Wheres} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{and_where, _pipe@1}
end,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
begin
_pipe@2 = [erlang:element(6, Slct), Whr],
{and_where, _pipe@2}
end,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 385).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
Whr,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{or_where, Wheres} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{or_where, _pipe@1}
end,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
begin
_pipe@2 = [erlang:element(6, Slct), Whr],
{or_where, _pipe@2}
end,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 407).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
Whr,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{xor_where, Wheres} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{xor_where, _pipe@1}
end,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
begin
_pipe@2 = [erlang:element(6, Slct), Whr],
{xor_where, _pipe@2}
end,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 418).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
Whr,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 424).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
no_where,
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 430).
?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", 450).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
Whr,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{and_where, Wheres} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{and_where, _pipe@1}
end,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
begin
_pipe@2 = [erlang:element(8, Slct), Whr],
{and_where, _pipe@2}
end,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 470).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
Whr,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{or_where, Wheres} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{or_where, _pipe@1}
end,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
begin
_pipe@2 = [erlang:element(8, Slct), Whr],
{or_where, _pipe@2}
end,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 494).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
Whr,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{xor_where, Wheres} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
begin
_pipe = Wheres,
_pipe@1 = lists:append(_pipe, [Whr]),
{xor_where, _pipe@1}
end,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
begin
_pipe@2 = [erlang:element(8, Slct), Whr],
{xor_where, _pipe@2}
end,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 507).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
Whr,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 513).
?DOC(" Removes `HAVING` from the `Select` query.\n").
-spec no_having(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_having(Slct) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
no_where,
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 521).
?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", 529).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
begin
_pipe = [Grpb],
{group_by, _pipe}
end,
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{group_by, Grpbs} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
begin
_pipe@1 = Grpbs,
_pipe@2 = lists:append(_pipe@1, [Grpb]),
{group_by, _pipe@2}
end,
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 539).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
begin
_pipe = [Grpb],
{group_by, _pipe}
end,
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 545).
?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 ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
begin
_pipe = Grpbs,
{group_by, _pipe}
end,
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)};
{group_by, Grpbs@1} ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
begin
_pipe@1 = Grpbs@1,
_pipe@2 = lists:append(_pipe@1, Grpbs@1),
{group_by, _pipe@2}
end,
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 555).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
begin
_pipe = Grpbs,
{group_by, _pipe}
end,
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 564).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
no_group_by,
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 570).
?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", 578).
?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,
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
Lmt@1,
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 585).
?DOC(" Removes `Limit` from the `Select` query.\n").
-spec no_limit(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_limit(Slct) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
no_limit,
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 591).
?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", 597).
?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,
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
Offst@1,
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 604).
?DOC(" Removes `Offset` from the `Select` query.\n").
-spec no_offset(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_offset(Slct) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
no_offset,
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 610).
?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", 625).
-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", 634).
?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", 646).
?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", 658).
?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", 668).
?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", 680).
?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", 695).
?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", 708).
?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", 720).
?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", 732).
?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", 742).
?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", 754).
?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", 769).
?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", 784).
?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", 796).
?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", 808).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
no_order_by,
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 814).
?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", 822).
?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>> ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
no_epilog,
erlang:element(13, Slct)};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
begin
_pipe@1 = (<<" "/utf8, Eplg@1/binary>>),
{epilog, _pipe@1}
end,
erlang:element(13, Slct)}
end.
-file("src/cake/select.gleam", 832).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
no_epilog,
erlang:element(13, Slct)}.
-file("src/cake/select.gleam", 838).
?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", 846).
?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>> ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
no_comment};
_ ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
begin
_pipe@1 = (<<" "/utf8, Cmmnt@1/binary>>),
{comment, _pipe@1}
end}
end.
-file("src/cake/select.gleam", 856).
?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) ->
{select,
erlang:element(2, Slct),
erlang:element(3, Slct),
erlang:element(4, Slct),
erlang:element(5, Slct),
erlang:element(6, Slct),
erlang:element(7, Slct),
erlang:element(8, Slct),
erlang:element(9, Slct),
erlang:element(10, Slct),
erlang:element(11, Slct),
erlang:element(12, Slct),
no_comment}.
-file("src/cake/select.gleam", 862).
?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).