-module(cake@delete). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([to_query/1, new/0, modifier/2, no_modifier/1, get_modifier/1, table/2, no_table/1, get_table/1, using_table/2, using_sub_query/3, replace_using_table/2, replace_using_sub_query/3, no_using/1, get_using/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, returning/2, no_returning/1, epilog/2, no_epilog/1, get_epilog/1, comment/2, no_comment/1, get_comment/1]). -spec to_query(cake@internal@write_query:delete(QEO)) -> cake@internal@write_query:write_query(QEO). to_query(Dlt) -> _pipe = Dlt, {delete_query, _pipe}. -spec new() -> cake@internal@write_query:delete(any()). new() -> {delete, no_delete_modifier, no_delete_table, no_delete_using, no_joins, no_where, no_returning, no_epilog, no_comment}. -spec modifier(cake@internal@write_query:delete(QET), binary()) -> cake@internal@write_query:delete(QET). modifier(Qry, Mdfr) -> Mdfr@1 = begin _pipe = Mdfr, gleam@string:trim(_pipe) end, case Mdfr@1 of <<""/utf8>> -> erlang:setelement(2, Qry, no_delete_modifier); _ -> erlang:setelement(2, Qry, {delete_modifier, Mdfr@1}) end. -spec no_modifier(cake@internal@write_query:delete(QEW)) -> cake@internal@write_query:delete(QEW). no_modifier(Qry) -> erlang:setelement(2, Qry, no_delete_modifier). -spec get_modifier(cake@internal@write_query:delete(any())) -> binary(). get_modifier(Qry) -> case erlang:element(2, Qry) of no_delete_modifier -> <<""/utf8>>; {delete_modifier, Mdfr} -> Mdfr end. -spec table(cake@internal@write_query:delete(QFB), binary()) -> cake@internal@write_query:delete(QFB). table(Qry, Tbl_nm) -> erlang:setelement(3, Qry, {delete_table, Tbl_nm}). -spec no_table(cake@internal@write_query:delete(QFE)) -> cake@internal@write_query:delete(QFE). no_table(Qry) -> erlang:setelement(3, Qry, no_delete_table). -spec get_table(cake@internal@write_query:delete(any())) -> cake@internal@write_query:delete_table(). get_table(Qry) -> erlang:element(3, Qry). -spec using_table(cake@internal@write_query:delete(QFJ), binary()) -> cake@internal@write_query:delete(QFJ). using_table(Qry, Tbl) -> case erlang:element(4, Qry) of no_delete_using -> erlang:setelement( 4, Qry, begin _pipe = [{from_table, Tbl}], {delete_using, _pipe} end ); {delete_using, Qry_usngs} -> erlang:setelement( 4, Qry, begin _pipe@1 = Qry_usngs, _pipe@2 = lists:append(_pipe@1, [{from_table, Tbl}]), {delete_using, _pipe@2} end ) end. -spec using_sub_query( cake@internal@write_query:delete(QFM), cake@internal@query:'query'(), binary() ) -> cake@internal@write_query:delete(QFM). using_sub_query(Qry, Sb_qry, Als) -> case erlang:element(4, Qry) of no_delete_using -> erlang:setelement( 4, Qry, begin _pipe = [{from_sub_query, Sb_qry, Als}], {delete_using, _pipe} end ); {delete_using, Qry_usngs} -> erlang:setelement( 4, Qry, begin _pipe@1 = Qry_usngs, _pipe@2 = lists:append( _pipe@1, [{from_sub_query, Sb_qry, Als}] ), {delete_using, _pipe@2} end ) end. -spec replace_using_table(cake@internal@write_query:delete(QFP), binary()) -> cake@internal@write_query:delete(QFP). replace_using_table(Qry, Tbl) -> case erlang:element(4, Qry) of no_delete_using -> erlang:setelement( 4, Qry, begin _pipe = [{from_table, Tbl}], {delete_using, _pipe} end ); {delete_using, _} -> erlang:setelement( 4, Qry, begin _pipe@1 = [{from_table, Tbl}], {delete_using, _pipe@1} end ) end. -spec replace_using_sub_query( cake@internal@write_query:delete(QFS), cake@internal@query:'query'(), binary() ) -> cake@internal@write_query:delete(QFS). replace_using_sub_query(Qry, Sb_qry, Als) -> case erlang:element(4, Qry) of no_delete_using -> erlang:setelement( 4, Qry, begin _pipe = [{from_sub_query, Sb_qry, Als}], {delete_using, _pipe} end ); {delete_using, _} -> erlang:setelement( 4, Qry, begin _pipe@1 = [{from_sub_query, Sb_qry, Als}], {delete_using, _pipe@1} end ) end. -spec no_using(cake@internal@write_query:delete(QFV)) -> cake@internal@write_query:delete(QFV). no_using(Qry) -> erlang:setelement(4, Qry, no_delete_using). -spec get_using(cake@internal@write_query:delete(any())) -> list(cake@internal@query:from()). get_using(Qry) -> case erlang:element(4, Qry) of no_delete_using -> []; {delete_using, Usng} -> Usng end. -spec join(cake@internal@write_query:delete(QGB), cake@internal@query:join()) -> cake@internal@write_query:delete(QGB). join(Qry, Jn) -> case erlang:element(5, Qry) of {joins, Jns} -> erlang:setelement( 5, Qry, begin _pipe = Jns, _pipe@1 = lists:append(_pipe, [Jn]), {joins, _pipe@1} end ); no_joins -> erlang:setelement( 5, Qry, begin _pipe@2 = [Jn], {joins, _pipe@2} end ) end. -spec replace_join( cake@internal@write_query:delete(QGE), cake@internal@query:join() ) -> cake@internal@write_query:delete(QGE). replace_join(Qry, Jn) -> erlang:setelement( 5, Qry, begin _pipe = [Jn], {joins, _pipe} end ). -spec joins( cake@internal@write_query:delete(QGH), list(cake@internal@query:join()) ) -> cake@internal@write_query:delete(QGH). joins(Qry, Jns) -> case {Jns, erlang:element(5, Qry)} of {[], _} -> erlang:setelement(5, Qry, {joins, Jns}); {Jns@1, {joins, Qry_joins}} -> erlang:setelement( 5, Qry, begin _pipe = Qry_joins, _pipe@1 = lists:append(_pipe, Jns@1), {joins, _pipe@1} end ); {Jns@2, no_joins} -> erlang:setelement( 5, Qry, begin _pipe@2 = Jns@2, {joins, _pipe@2} end ) end. -spec replace_joins( cake@internal@write_query:delete(QGL), list(cake@internal@query:join()) ) -> cake@internal@write_query:delete(QGL). replace_joins(Qry, Jns) -> erlang:setelement( 5, Qry, begin _pipe = Jns, {joins, _pipe} end ). -spec no_join(cake@internal@write_query:delete(QGP)) -> cake@internal@write_query:delete(QGP). no_join(Qry) -> erlang:setelement(5, Qry, no_joins). -spec get_joins(cake@internal@write_query:delete(any())) -> cake@internal@query:joins(). get_joins(Qry) -> erlang:element(5, Qry). -spec where(cake@internal@write_query:delete(QGU), cake@internal@query:where()) -> cake@internal@write_query:delete(QGU). where(Qry, Whr) -> case erlang:element(6, Qry) of no_where -> erlang:setelement(6, Qry, Whr); {and_where, Wheres} -> erlang:setelement( 6, Qry, {and_where, begin _pipe = Wheres, lists:append(_pipe, [Whr]) end} ); _ -> erlang:setelement( 6, Qry, {and_where, [erlang:element(6, Qry), Whr]} ) end. -spec or_where( cake@internal@write_query:delete(QGX), cake@internal@query:where() ) -> cake@internal@write_query:delete(QGX). or_where(Qry, Whr) -> case erlang:element(6, Qry) of no_where -> erlang:setelement(6, Qry, Whr); {or_where, Wheres} -> erlang:setelement( 6, Qry, {or_where, begin _pipe = Wheres, lists:append(_pipe, [Whr]) end} ); _ -> erlang:setelement(6, Qry, {or_where, [erlang:element(6, Qry), Whr]}) end. -spec xor_where( cake@internal@write_query:delete(QHA), cake@internal@query:where() ) -> cake@internal@write_query:delete(QHA). xor_where(Qry, Whr) -> case erlang:element(6, Qry) of no_where -> erlang:setelement(6, Qry, Whr); {xor_where, Wheres} -> erlang:setelement( 6, Qry, {xor_where, begin _pipe = Wheres, lists:append(_pipe, [Whr]) end} ); _ -> erlang:setelement( 6, Qry, {xor_where, [erlang:element(6, Qry), Whr]} ) end. -spec replace_where( cake@internal@write_query:delete(QHD), cake@internal@query:where() ) -> cake@internal@write_query:delete(QHD). replace_where(Qry, Whr) -> erlang:setelement(6, Qry, Whr). -spec no_where(cake@internal@write_query:delete(QHG)) -> cake@internal@write_query:delete(QHG). no_where(Qry) -> erlang:setelement(6, Qry, no_where). -spec get_where(cake@internal@write_query:delete(any())) -> cake@internal@query:where(). get_where(Qry) -> erlang:element(6, Qry). -spec returning(cake@internal@write_query:delete(QHL), list(binary())) -> cake@internal@write_query:delete(QHL). returning(Qry, Rtrn) -> case Rtrn of [] -> erlang:setelement(7, Qry, no_returning); _ -> erlang:setelement(7, Qry, {returning, Rtrn}) end. -spec no_returning(cake@internal@write_query:delete(QHP)) -> cake@internal@write_query:delete(QHP). no_returning(Qry) -> erlang:setelement(7, Qry, no_returning). -spec epilog(cake@internal@write_query:delete(QHS), binary()) -> cake@internal@write_query:delete(QHS). epilog(Qry, Eplg) -> Eplg@1 = begin _pipe = Eplg, gleam@string:trim(_pipe) end, case Eplg@1 of <<""/utf8>> -> erlang:setelement(8, Qry, no_epilog); _ -> erlang:setelement( 8, Qry, begin _pipe@1 = (<<" "/utf8, Eplg@1/binary>>), {epilog, _pipe@1} end ) end. -spec no_epilog(cake@internal@write_query:delete(QHV)) -> cake@internal@write_query:delete(QHV). no_epilog(Qry) -> erlang:setelement(8, Qry, no_epilog). -spec get_epilog(cake@internal@write_query:delete(any())) -> cake@internal@query:epilog(). get_epilog(Qry) -> erlang:element(8, Qry). -spec comment(cake@internal@write_query:delete(QIA), binary()) -> cake@internal@write_query:delete(QIA). comment(Qry, Cmmnt) -> Cmmnt@1 = begin _pipe = Cmmnt, gleam@string:trim(_pipe) end, case Cmmnt@1 of <<""/utf8>> -> erlang:setelement(9, Qry, no_comment); _ -> erlang:setelement( 9, Qry, begin _pipe@1 = (<<" "/utf8, Cmmnt@1/binary>>), {comment, _pipe@1} end ) end. -spec no_comment(cake@internal@write_query:delete(QID)) -> cake@internal@write_query:delete(QID). no_comment(Qry) -> erlang:setelement(9, Qry, no_comment). -spec get_comment(cake@internal@write_query:delete(any())) -> cake@internal@query:comment(). get_comment(Qry) -> erlang:element(9, Qry).