Packages
cake
0.11.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@combined.erl
-module(cake@combined).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([to_query/1, union/2, union_many/3, union_all/2, union_all_many/3, except/2, except_many/3, except_all/2, except_all_many/3, intersect/2, intersect_many/3, intersect_all/2, intersect_all_many/3, get_queries/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]).
-type direction() :: asc | desc.
-spec to_query(cake@internal@read_query:combined()) -> cake@internal@read_query:read_query().
to_query(Qry) ->
_pipe = Qry,
{combined_query, _pipe}.
-spec union(
cake@internal@read_query:select(),
cake@internal@read_query:select()
) -> cake@internal@read_query:combined().
union(Qry_a, Qry_b) ->
_pipe = union_distinct,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b]).
-spec union_many(
cake@internal@read_query:select(),
cake@internal@read_query:select(),
list(cake@internal@read_query:select())
) -> cake@internal@read_query:combined().
union_many(Qry_a, Qry_b, Mr_qrys) ->
_pipe = union_distinct,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b | Mr_qrys]).
-spec union_all(
cake@internal@read_query:select(),
cake@internal@read_query:select()
) -> cake@internal@read_query:combined().
union_all(Qry_a, Qry_b) ->
_pipe = union_all,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b]).
-spec union_all_many(
cake@internal@read_query:select(),
cake@internal@read_query:select(),
list(cake@internal@read_query:select())
) -> cake@internal@read_query:combined().
union_all_many(Qry_a, Qry_b, Mr_qrys) ->
_pipe = union_all,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b | Mr_qrys]).
-spec except(
cake@internal@read_query:select(),
cake@internal@read_query:select()
) -> cake@internal@read_query:combined().
except(Qry_a, Qry_b) ->
_pipe = except_distinct,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b]).
-spec except_many(
cake@internal@read_query:select(),
cake@internal@read_query:select(),
list(cake@internal@read_query:select())
) -> cake@internal@read_query:combined().
except_many(Qry_a, Qry_b, Mr_qrys) ->
_pipe = except_distinct,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b | Mr_qrys]).
-spec except_all(
cake@internal@read_query:select(),
cake@internal@read_query:select()
) -> cake@internal@read_query:combined().
except_all(Qry_a, Qry_b) ->
_pipe = except_all,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b]).
-spec except_all_many(
cake@internal@read_query:select(),
cake@internal@read_query:select(),
list(cake@internal@read_query:select())
) -> cake@internal@read_query:combined().
except_all_many(Qry_a, Qry_b, Mr_qrys) ->
_pipe = except_all,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b | Mr_qrys]).
-spec intersect(
cake@internal@read_query:select(),
cake@internal@read_query:select()
) -> cake@internal@read_query:combined().
intersect(Qry_a, Qry_b) ->
_pipe = intersect_distinct,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b]).
-spec intersect_many(
cake@internal@read_query:select(),
cake@internal@read_query:select(),
list(cake@internal@read_query:select())
) -> cake@internal@read_query:combined().
intersect_many(Qry_a, Qry_b, Mr_qrys) ->
_pipe = intersect_distinct,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b | Mr_qrys]).
-spec intersect_all(
cake@internal@read_query:select(),
cake@internal@read_query:select()
) -> cake@internal@read_query:combined().
intersect_all(Qry_a, Qry_b) ->
_pipe = intersect_all,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b]).
-spec intersect_all_many(
cake@internal@read_query:select(),
cake@internal@read_query:select(),
list(cake@internal@read_query:select())
) -> cake@internal@read_query:combined().
intersect_all_many(Qry_a, Qry_b, Mr_qrys) ->
_pipe = intersect_all,
cake@internal@read_query:combined_query_new(_pipe, [Qry_a, Qry_b | Mr_qrys]).
-spec get_queries(cake@internal@read_query:combined()) -> list(cake@internal@read_query:select()).
get_queries(Qry) ->
erlang:element(3, Qry).
-spec limit(cake@internal@read_query:combined(), integer()) -> cake@internal@read_query:combined().
limit(Qry, Lmt) ->
Lmt@1 = begin
_pipe = Lmt,
cake@internal@read_query:limit_new(_pipe)
end,
erlang:setelement(4, Qry, Lmt@1).
-spec no_limit(cake@internal@read_query:combined()) -> cake@internal@read_query:combined().
no_limit(Qry) ->
erlang:setelement(4, Qry, no_limit).
-spec get_limit(cake@internal@read_query:combined()) -> cake@internal@read_query:limit().
get_limit(Qry) ->
erlang:element(4, Qry).
-spec offset(cake@internal@read_query:combined(), integer()) -> cake@internal@read_query:combined().
offset(Qry, Offst) ->
Offst@1 = begin
_pipe = Offst,
cake@internal@read_query:offset_new(_pipe)
end,
erlang:setelement(5, Qry, Offst@1).
-spec no_offset(cake@internal@read_query:combined()) -> cake@internal@read_query:combined().
no_offset(Qry) ->
erlang:setelement(5, Qry, no_offset).
-spec get_offset(cake@internal@read_query:combined()) -> cake@internal@read_query:offset().
get_offset(Qry) ->
erlang:element(5, Qry).
-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.
-spec order_by_asc(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
order_by_asc(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, asc}]},
true
).
-spec order_by_asc_nulls_first(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
order_by_asc_nulls_first(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, asc_nulls_first}]},
true
).
-spec order_by_asc_nulls_last(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
order_by_asc_nulls_last(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, asc_nulls_first}]},
true
).
-spec replace_order_by_asc(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
replace_order_by_asc(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, asc}]},
false
).
-spec replace_order_by_asc_nulls_first(
cake@internal@read_query:combined(),
binary()
) -> cake@internal@read_query:combined().
replace_order_by_asc_nulls_first(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, asc_nulls_first}]},
false
).
-spec replace_order_by_asc_nulls_last(
cake@internal@read_query:combined(),
binary()
) -> cake@internal@read_query:combined().
replace_order_by_asc_nulls_last(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, asc_nulls_first}]},
false
).
-spec order_by_desc(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
order_by_desc(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, desc}]},
true
).
-spec order_by_desc_nulls_first(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
order_by_desc_nulls_first(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, desc_nulls_first}]},
true
).
-spec order_by_desc_nulls_last(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
order_by_desc_nulls_last(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, desc_nulls_first}]},
true
).
-spec replace_order_by_desc(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
replace_order_by_desc(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, desc}]},
false
).
-spec replace_order_by_desc_nulls_first(
cake@internal@read_query:combined(),
binary()
) -> cake@internal@read_query:combined().
replace_order_by_desc_nulls_first(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, desc_nulls_first}]},
false
).
-spec replace_order_by_desc_nulls_last(
cake@internal@read_query:combined(),
binary()
) -> cake@internal@read_query:combined().
replace_order_by_desc_nulls_last(Qry, Ordb) ->
_pipe = Qry,
cake@internal@read_query:combined_order_by(
_pipe,
{order_by, [{order_by_column, Ordb, desc_nulls_first}]},
false
).
-spec order_by(cake@internal@read_query:combined(), binary(), direction()) -> cake@internal@read_query:combined().
order_by(Qry, Ordb, Dir) ->
Dir@1 = begin
_pipe = Dir,
map_order_by_direction_constructor(_pipe)
end,
_pipe@1 = Qry,
cake@internal@read_query:combined_order_by(
_pipe@1,
{order_by, [{order_by_column, Ordb, Dir@1}]},
true
).
-spec replace_order_by(
cake@internal@read_query:combined(),
binary(),
direction()
) -> cake@internal@read_query:combined().
replace_order_by(Qry, Ordb, Dir) ->
Dir@1 = begin
_pipe = Dir,
map_order_by_direction_constructor(_pipe)
end,
_pipe@1 = Qry,
cake@internal@read_query:combined_order_by(
_pipe@1,
{order_by, [{order_by_column, Ordb, Dir@1}]},
false
).
-spec no_order_by(cake@internal@read_query:combined()) -> cake@internal@read_query:combined().
no_order_by(Qry) ->
erlang:setelement(6, Qry, no_order_by).
-spec get_order_by(cake@internal@read_query:combined()) -> cake@internal@read_query:order_by().
get_order_by(Qry) ->
erlang:element(6, Qry).
-spec epilog(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
epilog(Qry, Eplg) ->
Eplg@1 = begin
_pipe = Eplg,
gleam@string:trim(_pipe)
end,
case Eplg@1 of
<<""/utf8>> ->
erlang:setelement(7, Qry, no_epilog);
_ ->
erlang:setelement(
7,
Qry,
begin
_pipe@1 = (<<" "/utf8, Eplg@1/binary>>),
{epilog, _pipe@1}
end
)
end.
-spec no_epilog(cake@internal@read_query:combined()) -> cake@internal@read_query:combined().
no_epilog(Qry) ->
erlang:setelement(7, Qry, no_epilog).
-spec get_epilog(cake@internal@read_query:combined()) -> cake@internal@read_query:epilog().
get_epilog(Qry) ->
erlang:element(7, Qry).
-spec comment(cake@internal@read_query:combined(), binary()) -> cake@internal@read_query:combined().
comment(Qry, Cmmnt) ->
Cmmnt@1 = begin
_pipe = Cmmnt,
gleam@string:trim(_pipe)
end,
case Cmmnt@1 of
<<""/utf8>> ->
erlang:setelement(8, Qry, no_comment);
_ ->
erlang:setelement(
8,
Qry,
begin
_pipe@1 = (<<" "/utf8, Cmmnt@1/binary>>),
{comment, _pipe@1}
end
)
end.
-spec no_comment(cake@internal@read_query:combined()) -> cake@internal@read_query:combined().
no_comment(Qry) ->
erlang:setelement(8, Qry, no_comment).
-spec get_comment(cake@internal@read_query:combined()) -> cake@internal@read_query:comment().
get_comment(Qry) ->
erlang:element(8, Qry).