-module(cake@insert). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([to_query/1, row/1, param/2, bool/1, float/1, int/1, string/1, null/0, new/0, from_records/4, from_values/3, table/2, get_table/1, modifier/2, no_modifier/1, get_modifier/1, source_records/3, source_values/2, get_source/1, columns/2, get_columns/1, on_conflict_error/1, on_columns_conflict_ignore/3, on_constraint_conflict_ignore/3, on_columns_conflict_update/4, on_constraint_conflict_update/4, get_on_conflict/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:insert(QVV)) -> cake@internal@write_query:write_query(QVV). to_query(Isrt) -> _pipe = Isrt, {insert_query, _pipe}. -spec row(list(cake@internal@write_query:insert_value())) -> cake@internal@write_query:insert_row(). row(Vls) -> _pipe = Vls, {insert_row, _pipe}. -spec param(binary(), cake@param:param()) -> cake@internal@write_query:insert_value(). param(Col, Prm) -> _pipe = Col, {insert_param, _pipe, Prm}. -spec bool(boolean()) -> cake@param:param(). bool(Vl) -> _pipe = Vl, {bool_param, _pipe}. -spec float(float()) -> cake@param:param(). float(Vl) -> _pipe = Vl, {float_param, _pipe}. -spec int(integer()) -> cake@param:param(). int(Vl) -> _pipe = Vl, {int_param, _pipe}. -spec string(binary()) -> cake@param:param(). string(Vl) -> _pipe = Vl, {string_param, _pipe}. -spec null() -> cake@param:param(). null() -> null_param. -spec new() -> cake@internal@write_query:insert(any()). new() -> {insert, no_insert_into_table, no_insert_columns, no_insert_modifier, no_insert_source, insert_conflict_error, no_returning, no_epilog, no_comment}. -spec from_records( binary(), list(binary()), list(QWC), fun((QWC) -> cake@internal@write_query:insert_row()) ) -> cake@internal@write_query:insert(QWC). from_records(Tbl_nm, Cols, Rcrds, Cstr) -> {insert, {insert_into_table, Tbl_nm}, {insert_columns, Cols}, no_insert_modifier, {insert_source_records, Rcrds, Cstr}, insert_conflict_error, no_returning, no_epilog, no_comment}. -spec from_values( binary(), list(binary()), list(cake@internal@write_query:insert_row()) ) -> cake@internal@write_query:insert(any()). from_values(Tbl_nm, Cols, Vls) -> {insert, {insert_into_table, Tbl_nm}, {insert_columns, Cols}, no_insert_modifier, {insert_source_rows, Vls}, insert_conflict_error, no_returning, no_epilog, no_comment}. -spec table(cake@internal@write_query:insert(QWJ), binary()) -> cake@internal@write_query:insert(QWJ). table(Qry, Tbl_nm) -> erlang:setelement(2, Qry, {insert_into_table, Tbl_nm}). -spec get_table(cake@internal@write_query:insert(any())) -> cake@internal@write_query:insert_into_table(). get_table(Qry) -> erlang:element(2, Qry). -spec modifier(cake@internal@write_query:insert(QWO), binary()) -> cake@internal@write_query:insert(QWO). modifier(Qry, Mdfr) -> Mdfr@1 = begin _pipe = Mdfr, gleam@string:trim(_pipe) end, case Mdfr@1 of <<""/utf8>> -> erlang:setelement(4, Qry, no_insert_modifier); _ -> erlang:setelement(4, Qry, {insert_modifier, Mdfr@1}) end. -spec no_modifier(cake@internal@write_query:insert(QWR)) -> cake@internal@write_query:insert(QWR). no_modifier(Qry) -> erlang:setelement(4, Qry, no_insert_modifier). -spec get_modifier(cake@internal@write_query:insert(any())) -> binary(). get_modifier(Qry) -> case erlang:element(4, Qry) of no_insert_modifier -> <<""/utf8>>; {insert_modifier, Mdfr} -> Mdfr end. -spec source_records( cake@internal@write_query:insert(QWW), list(QWW), fun((QWW) -> cake@internal@write_query:insert_row()) ) -> cake@internal@write_query:insert(QWW). source_records(Qry, Rcrds, Cstr) -> erlang:setelement(5, Qry, {insert_source_records, Rcrds, Cstr}). -spec source_values( cake@internal@write_query:insert(QXA), list(cake@internal@write_query:insert_row()) ) -> cake@internal@write_query:insert(QXA). source_values(Qry, Rcrds) -> erlang:setelement(5, Qry, {insert_source_rows, Rcrds}). -spec get_source(cake@internal@write_query:insert(QXE)) -> cake@internal@write_query:insert_source(QXE). get_source(Qry) -> erlang:element(5, Qry). -spec columns(cake@internal@write_query:insert(QXH), list(binary())) -> cake@internal@write_query:insert(QXH). columns(Qry, Cols) -> erlang:setelement(3, Qry, {insert_columns, Cols}). -spec get_columns(cake@internal@write_query:insert(any())) -> cake@internal@write_query:insert_columns(). get_columns(Qry) -> erlang:element(3, Qry). -spec on_conflict_error(cake@internal@write_query:insert(QXN)) -> cake@internal@write_query:insert(QXN). on_conflict_error(Qry) -> erlang:setelement(6, Qry, insert_conflict_error). -spec on_columns_conflict_ignore( cake@internal@write_query:insert(QXQ), list(binary()), cake@internal@read_query:where() ) -> cake@internal@write_query:insert(QXQ). on_columns_conflict_ignore(Qry, Cols, Whr) -> erlang:setelement( 6, Qry, {insert_conflict_ignore, {insert_conflict_target, Cols}, Whr} ). -spec on_constraint_conflict_ignore( cake@internal@write_query:insert(QXU), binary(), cake@internal@read_query:where() ) -> cake@internal@write_query:insert(QXU). on_constraint_conflict_ignore(Qry, Cnstrt, Whr) -> erlang:setelement( 6, Qry, {insert_conflict_ignore, {insert_conflict_target_constraint, Cnstrt}, Whr} ). -spec on_columns_conflict_update( cake@internal@write_query:insert(QXX), list(binary()), cake@internal@read_query:where(), cake@internal@write_query:update(QXX) ) -> cake@internal@write_query:insert(QXX). on_columns_conflict_update(Qry, Cols, Whr, Updt) -> erlang:setelement( 6, Qry, {insert_conflict_update, {insert_conflict_target, Cols}, Whr, Updt} ). -spec on_constraint_conflict_update( cake@internal@write_query:insert(QYC), binary(), cake@internal@read_query:where(), cake@internal@write_query:update(QYC) ) -> cake@internal@write_query:insert(QYC). on_constraint_conflict_update(Qry, Cnstrt, Whr, Updt) -> erlang:setelement( 6, Qry, {insert_conflict_update, {insert_conflict_target_constraint, Cnstrt}, Whr, Updt} ). -spec get_on_conflict(cake@internal@write_query:insert(QYG)) -> cake@internal@write_query:insert_conflict_strategy(QYG). get_on_conflict(Qry) -> erlang:element(6, Qry). -spec returning(cake@internal@write_query:insert(QYJ), list(binary())) -> cake@internal@write_query:insert(QYJ). 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:insert(QYN)) -> cake@internal@write_query:insert(QYN). no_returning(Qry) -> erlang:setelement(7, Qry, no_returning). -spec epilog(cake@internal@write_query:insert(QYQ), binary()) -> cake@internal@write_query:insert(QYQ). 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:insert(QYT)) -> cake@internal@write_query:insert(QYT). no_epilog(Qry) -> erlang:setelement(8, Qry, no_epilog). -spec get_epilog(cake@internal@write_query:insert(any())) -> cake@internal@read_query:epilog(). get_epilog(Qry) -> erlang:element(8, Qry). -spec comment(cake@internal@write_query:insert(QYY), binary()) -> cake@internal@write_query:insert(QYY). 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:insert(QZB)) -> cake@internal@write_query:insert(QZB). no_comment(Qry) -> erlang:setelement(9, Qry, no_comment). -spec get_comment(cake@internal@write_query:insert(any())) -> cake@internal@read_query:comment(). get_comment(Qry) -> erlang:element(9, Qry).