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, 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/1, from_table/2, from_query/3, no_from/1, get_from/1, select_col/2, select/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(Select) ->
_pipe = Select,
{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(Name) ->
_pipe = Name,
{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(Value, Alias) ->
_pipe = Value,
{select_alias, _pipe, Alias}.
-file("src/cake/select.gleam", 93).
?DOC(" Creates a `SelectValue` from a `Bool`.\n").
-spec bool(boolean()) -> cake@internal@read_query:select_value().
bool(Value) ->
_pipe = Value,
_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(Value) ->
_pipe = Value,
_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(Value) ->
_pipe = Value,
_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(Value) ->
_pipe = Value,
_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(Value) ->
_pipe = Value,
_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(Fragment) ->
_pipe = Fragment,
{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(Select) ->
{select,
select_all,
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-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(Select) ->
{select,
select_distinct,
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-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().
get_kind(Select) ->
erlang:element(2, Select).
-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(Select, Table_name) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
begin
_pipe = Table_name,
{from_table, _pipe}
end,
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-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(Select, Sub_query, Alias) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
begin
_pipe = Sub_query,
{from_sub_query, _pipe, Alias}
end,
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-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(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
no_from,
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-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(Select) ->
erlang:element(4, Select).
-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(Select, Name) ->
Select_value = begin
_pipe = Name,
col(_pipe)
end,
case erlang:element(3, Select) of
no_selects ->
{select,
erlang:element(2, Select),
begin
_pipe@1 = [Select_value],
{selects, _pipe@1}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{selects, Values} ->
{select,
erlang:element(2, Select),
begin
_pipe@2 = Values,
_pipe@3 = lists:append(_pipe@2, [Select_value]),
{selects, _pipe@3}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 229).
?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(Select, Select_value) ->
case erlang:element(3, Select) of
no_selects ->
{select,
erlang:element(2, Select),
begin
_pipe = [Select_value],
{selects, _pipe}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{selects, Values} ->
{select,
erlang:element(2, Select),
begin
_pipe@1 = Values,
_pipe@2 = lists:append(_pipe@1, [Select_value]),
{selects, _pipe@2}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 257).
?DOC(
" Add a `SelectValue` 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(Select, Select_value) ->
{select,
erlang:element(2, Select),
begin
_pipe = [Select_value],
{selects, _pipe}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 249).
?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(Select, Name) ->
_pipe = Name,
_pipe@1 = col(_pipe),
replace_select(Select, _pipe@1).
-file("src/cake/select.gleam", 279).
?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(Select, Select_values) ->
case {Select_values, erlang:element(3, Select)} of
{[], _} ->
Select;
{Select_values@1, no_selects} ->
{select,
erlang:element(2, Select),
begin
_pipe = Select_values@1,
{selects, _pipe}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{Select_values@2, {selects, Existing_selects}} ->
{select,
erlang:element(2, Select),
begin
_pipe@1 = Existing_selects,
_pipe@2 = lists:append(_pipe@1, Select_values@2),
{selects, _pipe@2}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 268).
?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(Select, Columns) ->
_pipe = Columns,
_pipe@1 = gleam@list:map(_pipe, fun col/1),
selects(Select, _pipe@1).
-file("src/cake/select.gleam", 314).
?DOC(
" Adds many `SelectValue`s to the `Select` query.\n"
"\n"
" If the query already has any `SelectValue`s, they are replaced.\n"
"\n"
" If no `SelectValue`s are provided, the query is returned as-is.\n"
).
-spec replace_selects(
cake@internal@read_query:select(),
list(cake@internal@read_query:select_value())
) -> cake@internal@read_query:select().
replace_selects(Select, Select_values) ->
case Select_values of
[] ->
Select;
_ ->
{select,
erlang:element(2, Select),
begin
_pipe = Select_values,
{selects, _pipe}
end,
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 301).
?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(Select, Columns) ->
_pipe = Columns,
_pipe@1 = gleam@list:map(_pipe, fun col/1),
replace_selects(Select, _pipe@1).
-file("src/cake/select.gleam", 326).
?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(Select) ->
erlang:element(3, Select).
-file("src/cake/select.gleam", 334).
?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(Select, Join) ->
case erlang:element(5, Select) of
{joins, Existing_joins} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
begin
_pipe = Existing_joins,
_pipe@1 = lists:append(_pipe, [Join]),
{joins, _pipe@1}
end,
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
no_joins ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
begin
_pipe@2 = [Join],
{joins, _pipe@2}
end,
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 344).
?DOC(" Replaces any `Join`s of the `Select` query with a single `Join`.\n").
-spec replace_join(
cake@internal@read_query:select(),
cake@internal@read_query:join()
) -> cake@internal@read_query:select().
replace_join(Select, Join) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
begin
_pipe = [Join],
{joins, _pipe}
end,
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 350).
?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(Select, Joins) ->
case {Joins, erlang:element(5, Select)} of
{[], _} ->
Select;
{_, {joins, Existing_joins}} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
begin
_pipe = Existing_joins,
_pipe@1 = lists:append(_pipe, Joins),
{joins, _pipe@1}
end,
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{_, no_joins} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
begin
_pipe@2 = Joins,
{joins, _pipe@2}
end,
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 361).
?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(Select, Joins) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
begin
_pipe = Joins,
{joins, _pipe}
end,
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 367).
?DOC(" Removes any `Joins` from the `Select` query.\n").
-spec no_join(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_join(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
no_joins,
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 373).
?DOC(" Gets the `Joins` of the `Select` query.\n").
-spec get_joins(cake@internal@read_query:select()) -> cake@internal@read_query:joins().
get_joins(Select) ->
erlang:element(5, Select).
-file("src/cake/select.gleam", 388).
?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(Select, Where) ->
case erlang:element(6, Select) of
no_where ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
Where,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{and_where, Conditions} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{and_where, _pipe@1}
end,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
begin
_pipe@2 = [erlang:element(6, Select), Where],
{and_where, _pipe@2}
end,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 406).
?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(Select, Where) ->
case erlang:element(6, Select) of
no_where ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
Where,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{or_where, Conditions} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{or_where, _pipe@1}
end,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
begin
_pipe@2 = [erlang:element(6, Select), Where],
{or_where, _pipe@2}
end,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 428).
?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(Select, Where) ->
case erlang:element(6, Select) of
no_where ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
Where,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{xor_where, Conditions} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{xor_where, _pipe@1}
end,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
begin
_pipe@2 = [erlang:element(6, Select), Where],
{xor_where, _pipe@2}
end,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 439).
?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(Select, Where) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
Where,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 445).
?DOC(" Removes the `Where` from the `Select` query.\n").
-spec no_where(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_where(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
no_where,
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 451).
?DOC(" Gets the `Where` of the `Select` query.\n").
-spec get_where(cake@internal@read_query:select()) -> cake@internal@read_query:where().
get_where(Select) ->
erlang:element(6, Select).
-file("src/cake/select.gleam", 471).
?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(Select, Where) ->
case erlang:element(8, Select) of
no_where ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
Where,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{and_where, Conditions} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{and_where, _pipe@1}
end,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
begin
_pipe@2 = [erlang:element(8, Select), Where],
{and_where, _pipe@2}
end,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 491).
?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(Select, Where) ->
case erlang:element(8, Select) of
no_where ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
Where,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{or_where, Conditions} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{or_where, _pipe@1}
end,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
begin
_pipe@2 = [erlang:element(8, Select), Where],
{or_where, _pipe@2}
end,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 515).
?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(Select, Where) ->
case erlang:element(8, Select) of
no_where ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
Where,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{xor_where, Conditions} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
begin
_pipe = Conditions,
_pipe@1 = lists:append(_pipe, [Where]),
{xor_where, _pipe@1}
end,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
begin
_pipe@2 = [erlang:element(8, Select), Where],
{xor_where, _pipe@2}
end,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 528).
?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(Select, Where) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
Where,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 534).
?DOC(" Removes `HAVING` from the `Select` query.\n").
-spec no_having(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_having(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
no_where,
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 542).
?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(Select) ->
erlang:element(8, Select).
-file("src/cake/select.gleam", 550).
?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(Select, Group_by) ->
case erlang:element(7, Select) of
no_group_by ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
begin
_pipe = [Group_by],
{group_by, _pipe}
end,
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{group_by, Columns} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
begin
_pipe@1 = Columns,
_pipe@2 = lists:append(_pipe@1, [Group_by]),
{group_by, _pipe@2}
end,
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 560).
?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(Select, Group_by) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
begin
_pipe = [Group_by],
{group_by, _pipe}
end,
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 569).
?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(Select, Group_bys) ->
case erlang:element(7, Select) of
no_group_by ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
begin
_pipe = Group_bys,
{group_by, _pipe}
end,
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)};
{group_by, Columns} ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
begin
_pipe@1 = Columns,
_pipe@2 = lists:append(_pipe@1, Group_bys),
{group_by, _pipe@2}
end,
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 587).
?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(Select, Group_bys) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
begin
_pipe = Group_bys,
{group_by, _pipe}
end,
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 596).
?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(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
no_group_by,
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 602).
?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(Select) ->
erlang:element(7, Select).
-file("src/cake/select.gleam", 610).
?DOC(" Sets a `Limit` in the `Select` query.\n").
-spec limit(cake@internal@read_query:select(), integer()) -> cake@internal@read_query:select().
limit(Select, Limit) ->
Limit@1 = begin
_pipe = Limit,
cake@internal@read_query:limit_new(_pipe)
end,
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
Limit@1,
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 617).
?DOC(" Removes `Limit` from the `Select` query.\n").
-spec no_limit(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_limit(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
no_limit,
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 623).
?DOC(" Gets `Limit` in the `Select` query.\n").
-spec get_limit(cake@internal@read_query:select()) -> cake@internal@read_query:limit().
get_limit(Select) ->
erlang:element(10, Select).
-file("src/cake/select.gleam", 629).
?DOC(" Sets an `Offset` in the `Select` query.\n").
-spec offset(cake@internal@read_query:select(), integer()) -> cake@internal@read_query:select().
offset(Select, Offset) ->
Offset@1 = begin
_pipe = Offset,
cake@internal@read_query:offset_new(_pipe)
end,
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
Offset@1,
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 636).
?DOC(" Removes `Offset` from the `Select` query.\n").
-spec no_offset(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_offset(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
no_offset,
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 642).
?DOC(" Gets `Offset` in the `Select` query.\n").
-spec get_offset(cake@internal@read_query:select()) -> cake@internal@read_query:offset().
get_offset(Select) ->
erlang:element(11, Select).
-file("src/cake/select.gleam", 657).
-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", 666).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, asc}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 682).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, asc_nulls_first}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 700).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, asc_nulls_last}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 714).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, asc}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 729).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, asc_nulls_first}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 745).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, asc_nulls_last}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 759).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, desc}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 774).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, desc_nulls_first}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 790).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, desc_nulls_last}
end],
{order_by, _pipe@2}
end,
true
).
-file("src/cake/select.gleam", 804).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, desc}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 819).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, desc_nulls_first}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 835).
?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(Select, Order_by) ->
_pipe = Select,
cake@internal@read_query:select_order_by(
_pipe,
begin
_pipe@2 = [begin
_pipe@1 = Order_by,
{order_by_column, _pipe@1, desc_nulls_last}
end],
{order_by, _pipe@2}
end,
false
).
-file("src/cake/select.gleam", 851).
?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(Select, Order_by, Direction) ->
Direction@1 = begin
_pipe = Direction,
map_order_by_direction_constructor(_pipe)
end,
_pipe@1 = Select,
cake@internal@read_query:select_order_by(
_pipe@1,
begin
_pipe@3 = [begin
_pipe@2 = Order_by,
{order_by_column, _pipe@2, Direction@1}
end],
{order_by, _pipe@3}
end,
true
).
-file("src/cake/select.gleam", 866).
?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(Select, Order_by, Direction) ->
Direction@1 = begin
_pipe = Direction,
map_order_by_direction_constructor(_pipe)
end,
_pipe@1 = Select,
cake@internal@read_query:select_order_by(
_pipe@1,
begin
_pipe@3 = [begin
_pipe@2 = Order_by,
{order_by_column, _pipe@2, Direction@1}
end],
{order_by, _pipe@3}
end,
false
).
-file("src/cake/select.gleam", 881).
?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(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
no_order_by,
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 887).
?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(Select) ->
erlang:element(9, Select).
-file("src/cake/select.gleam", 895).
?DOC(" Appends an `Epilog` to the `Select` query.\n").
-spec epilog(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
epilog(Select, Epilog) ->
Epilog@1 = begin
_pipe = Epilog,
gleam@string:trim(_pipe)
end,
case Epilog@1 of
<<""/utf8>> ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
no_epilog,
erlang:element(13, Select)};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
begin
_pipe@1 = (<<" "/utf8, Epilog@1/binary>>),
{epilog, _pipe@1}
end,
erlang:element(13, Select)}
end.
-file("src/cake/select.gleam", 905).
?DOC(" Removes the `Epilog` from the `Select` query.\n").
-spec no_epilog(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_epilog(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
no_epilog,
erlang:element(13, Select)}.
-file("src/cake/select.gleam", 911).
?DOC(" Gets the `Epilog` from the `Select` query.\n").
-spec get_epilog(cake@internal@read_query:select()) -> cake@internal@read_query:epilog().
get_epilog(Select) ->
erlang:element(12, Select).
-file("src/cake/select.gleam", 919).
?DOC(" Appends a `Comment` to the `Select` query.\n").
-spec comment(cake@internal@read_query:select(), binary()) -> cake@internal@read_query:select().
comment(Select, Comment) ->
Comment@1 = begin
_pipe = Comment,
gleam@string:trim(_pipe)
end,
case Comment@1 of
<<""/utf8>> ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
no_comment};
_ ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
begin
_pipe@1 = (<<" "/utf8, Comment@1/binary>>),
{comment, _pipe@1}
end}
end.
-file("src/cake/select.gleam", 929).
?DOC(" Removes the `Comment` from the `Select` query.\n").
-spec no_comment(cake@internal@read_query:select()) -> cake@internal@read_query:select().
no_comment(Select) ->
{select,
erlang:element(2, Select),
erlang:element(3, Select),
erlang:element(4, Select),
erlang:element(5, Select),
erlang:element(6, Select),
erlang:element(7, Select),
erlang:element(8, Select),
erlang:element(9, Select),
erlang:element(10, Select),
erlang:element(11, Select),
erlang:element(12, Select),
no_comment}.
-file("src/cake/select.gleam", 935).
?DOC(" Gets the `Comment` from the `Select` query.\n").
-spec get_comment(cake@internal@read_query:select()) -> cake@internal@read_query:comment().
get_comment(Select) ->
erlang:element(13, Select).