-module(cake@query@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, 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, columns/2, on_conflict_error/1, on_columns_conflict_ignore/3, on_constraint_conflict_ignore/3, on_columns_conflict_update/4, on_constraint_conflict_update/4, returning/2, no_returning/1, comment/2, no_comment/1]). -spec to_query(cake@internal@write_query:insert(OTQ)) -> cake@internal@write_query:write_query(OTQ). to_query(Isrt) -> _pipe = Isrt, {insert_query, _pipe}. -spec row(list(cake@internal@write_query:insert_value())) -> cake@internal@write_query:insert_row(). row(A) -> _pipe = A, {insert_row, _pipe}. -spec param(binary(), cake@param:param()) -> cake@internal@write_query:insert_value(). param(Col, Prm) -> {insert_param, Col, Prm}. -spec bool(boolean()) -> cake@param:param(). bool(Vl) -> _pipe = Vl, cake@param:bool(_pipe). -spec float(float()) -> cake@param:param(). float(Vl) -> _pipe = Vl, cake@param:float(_pipe). -spec int(integer()) -> cake@param:param(). int(Vl) -> _pipe = Vl, cake@param:int(_pipe). -spec string(binary()) -> cake@param:param(). string(Vl) -> _pipe = Vl, cake@param:string(_pipe). -spec from_records( binary(), list(binary()), list(OTX), fun((OTX) -> cake@internal@write_query:insert_row()) ) -> cake@internal@write_query:insert(OTX). 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_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, Rcrds) -> {insert, {insert_into_table, Tbl_nm}, {insert_columns, Cols}, no_insert_modifier, {insert_source_rows, Rcrds}, insert_conflict_error, no_returning, no_comment}. -spec table(cake@internal@write_query:insert(OUE), binary()) -> cake@internal@write_query:insert(OUE). table(Qry, Tbl_nm) -> erlang:setelement(2, Qry, {insert_into_table, Tbl_nm}). -spec get_table(cake@internal@write_query:insert(any())) -> binary(). get_table(Qry) -> erlang:element(2, erlang:element(2, Qry)). -spec modifier(cake@internal@write_query:insert(OUJ), binary()) -> cake@internal@write_query:insert(OUJ). 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(OUM)) -> cake@internal@write_query:insert(OUM). 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(OUR), list(OUR), fun((OUR) -> cake@internal@write_query:insert_row()) ) -> cake@internal@write_query:insert(OUR). source_records(Qry, Rcrds, Cstr) -> erlang:setelement(5, Qry, {insert_source_records, Rcrds, Cstr}). -spec source_values( cake@internal@write_query:insert(OUV), list(cake@internal@write_query:insert_row()) ) -> cake@internal@write_query:insert(OUV). source_values(Qry, Rcrds) -> erlang:setelement(5, Qry, {insert_source_rows, Rcrds}). -spec columns(cake@internal@write_query:insert(OUZ), list(binary())) -> cake@internal@write_query:insert(OUZ). columns(Qry, Cols) -> erlang:setelement(3, Qry, {insert_columns, Cols}). -spec on_conflict_error(cake@internal@write_query:insert(OVD)) -> cake@internal@write_query:insert(OVD). on_conflict_error(Qry) -> erlang:setelement(6, Qry, insert_conflict_error). -spec on_columns_conflict_ignore( cake@internal@write_query:insert(OVG), list(binary()), cake@internal@query:where() ) -> cake@internal@write_query:insert(OVG). 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(OVK), binary(), cake@internal@query:where() ) -> cake@internal@write_query:insert(OVK). 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(OVN), list(binary()), cake@internal@query:where(), cake@internal@write_query:update(OVN) ) -> cake@internal@write_query:insert(OVN). 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(OVS), binary(), cake@internal@query:where(), cake@internal@write_query:update(OVS) ) -> cake@internal@write_query:insert(OVS). on_constraint_conflict_update(Qry, Cnstrt, Whr, Updt) -> erlang:setelement( 6, Qry, {insert_conflict_update, {insert_conflict_target_constraint, Cnstrt}, Whr, Updt} ). -spec returning(cake@internal@write_query:insert(OVW), list(binary())) -> cake@internal@write_query:insert(OVW). 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(OWA)) -> cake@internal@write_query:insert(OWA). no_returning(Qry) -> erlang:setelement(7, Qry, no_returning). -spec comment(cake@internal@write_query:insert(OWD), binary()) -> cake@internal@write_query:insert(OWD). 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, {comment, Cmmnt@1}) end. -spec no_comment(cake@internal@write_query:insert(OWG)) -> cake@internal@write_query:insert(OWG). no_comment(Qry) -> erlang:setelement(8, Qry, no_comment).