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