-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).