Packages
cake
0.1.0
4.1.0
4.0.0
3.0.0
2.2.2
2.2.1
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-rc.0
retired
0.15.0
retired
0.14.0
retired
0.13.0
retired
0.12.0
retired
0.11.0
retired
0.10.1
retired
0.10.0
retired
0.9.2
retired
0.9.1
retired
0.9.0
retired
0.8.0
retired
0.7.0
retired
0.6.0
retired
0.5.0
retired
0.4.0
retired
0.3.0
retired
0.2.0
retired
0.1.0
retired
0.0.1
retired
🎂 An SQL query builder for Gleam for SQL dialects 🐘PostgreSQL, 🪶SQLite, 🦭MariaDB, and 🐬MySQL
Retired package: Deprecated - a stable release is available, please use >= 1.0.0
Current section
Files
Jump to
Current section
Files
src/cake@query@combined.erl
-module(cake@query@combined).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([to_query/1, union/1, union_all/1, except/1, except_all/1, intersect/1, intersect_all/1, set_limit_and_offset/3, set_limit/2, set_offset/2, get_limit_and_offset/1, order_asc/2, order_asc_nulls_first/2, order_asc_replace/2, order_asc_nulls_first_replace/2, order_desc/2, order_desc_nulls_first/2, order_desc_replace/2, order_desc_nulls_first_replace/2, order/3, order_replace/3]).
-export_type([combined_order_by_direction_part/0]).
-type combined_order_by_direction_part() :: asc | desc.
-spec to_query(cake@internal@query:combined_query()) -> cake@internal@query:'query'().
to_query(Qry) ->
_pipe = Qry,
{combined, _pipe}.
-spec union(list(cake@internal@query:select_query())) -> cake@internal@query:combined_query().
union(Qrys) ->
_pipe = union,
cake@internal@query:combined_query_new(_pipe, Qrys).
-spec union_all(list(cake@internal@query:select_query())) -> cake@internal@query:combined_query().
union_all(Qrys) ->
_pipe = union_all,
cake@internal@query:combined_query_new(_pipe, Qrys).
-spec except(list(cake@internal@query:select_query())) -> cake@internal@query:combined_query().
except(Qrys) ->
_pipe = except,
cake@internal@query:combined_query_new(_pipe, Qrys).
-spec except_all(list(cake@internal@query:select_query())) -> cake@internal@query:combined_query().
except_all(Qrys) ->
_pipe = except_all,
cake@internal@query:combined_query_new(_pipe, Qrys).
-spec intersect(list(cake@internal@query:select_query())) -> cake@internal@query:combined_query().
intersect(Qrys) ->
_pipe = intersect,
cake@internal@query:combined_query_new(_pipe, Qrys).
-spec intersect_all(list(cake@internal@query:select_query())) -> cake@internal@query:combined_query().
intersect_all(Qrys) ->
_pipe = intersect_all,
cake@internal@query:combined_query_new(_pipe, Qrys).
-spec set_limit_and_offset(
cake@internal@query:combined_query(),
integer(),
integer()
) -> cake@internal@query:combined_query().
set_limit_and_offset(Qry, Lmt, Offst) ->
Lmt_offst = cake@internal@query:limit_offset_new(Lmt, Offst),
erlang:setelement(4, Qry, Lmt_offst).
-spec set_limit(cake@internal@query:combined_query(), integer()) -> cake@internal@query:combined_query().
set_limit(Qry, Lmt) ->
Lmt_offst = cake@internal@query:limit_new(Lmt),
erlang:setelement(4, Qry, Lmt_offst).
-spec set_offset(cake@internal@query:combined_query(), integer()) -> cake@internal@query:combined_query().
set_offset(Qry, Lmt) ->
Lmt_offst = cake@internal@query:offset_new(Lmt),
erlang:setelement(4, Qry, Lmt_offst).
-spec get_limit_and_offset(cake@internal@query:combined_query()) -> cake@internal@query:limit_offset_part().
get_limit_and_offset(Qry) ->
erlang:element(4, Qry).
-spec map_order_by_direction_part_constructor(
combined_order_by_direction_part()
) -> cake@internal@query:order_by_direction_part().
map_order_by_direction_part_constructor(In) ->
case In of
asc ->
asc;
desc ->
desc
end.
-spec order_asc(cake@internal@query:combined_query(), binary()) -> cake@internal@query:combined_query().
order_asc(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, asc},
true
).
-spec order_asc_nulls_first(cake@internal@query:combined_query(), binary()) -> cake@internal@query:combined_query().
order_asc_nulls_first(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, asc_nulls_first},
true
).
-spec order_asc_replace(cake@internal@query:combined_query(), binary()) -> cake@internal@query:combined_query().
order_asc_replace(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, asc},
false
).
-spec order_asc_nulls_first_replace(
cake@internal@query:combined_query(),
binary()
) -> cake@internal@query:combined_query().
order_asc_nulls_first_replace(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, asc_nulls_first},
false
).
-spec order_desc(cake@internal@query:combined_query(), binary()) -> cake@internal@query:combined_query().
order_desc(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, desc},
true
).
-spec order_desc_nulls_first(cake@internal@query:combined_query(), binary()) -> cake@internal@query:combined_query().
order_desc_nulls_first(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, desc_nulls_first},
true
).
-spec order_desc_replace(cake@internal@query:combined_query(), binary()) -> cake@internal@query:combined_query().
order_desc_replace(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, desc},
false
).
-spec order_desc_nulls_first_replace(
cake@internal@query:combined_query(),
binary()
) -> cake@internal@query:combined_query().
order_desc_nulls_first_replace(Qry, Ordb) ->
_pipe = Qry,
cake@internal@query:combined_order_by(
_pipe,
{order_by_column_part, Ordb, desc_nulls_first},
false
).
-spec order(
cake@internal@query:combined_query(),
binary(),
combined_order_by_direction_part()
) -> cake@internal@query:combined_query().
order(Qry, Ordb, Dir) ->
Dir@1 = begin
_pipe = Dir,
map_order_by_direction_part_constructor(_pipe)
end,
_pipe@1 = Qry,
cake@internal@query:combined_order_by(
_pipe@1,
{order_by_column_part, Ordb, Dir@1},
true
).
-spec order_replace(
cake@internal@query:combined_query(),
binary(),
combined_order_by_direction_part()
) -> cake@internal@query:combined_query().
order_replace(Qry, Ordb, Dir) ->
Dir@1 = begin
_pipe = Dir,
map_order_by_direction_part_constructor(_pipe)
end,
_pipe@1 = Qry,
cake@internal@query:combined_order_by(
_pipe@1,
{order_by_column_part, Ordb, Dir@1},
false
).