March Docs

MutationCompile

depot/lib/mutation_compile.march Compiles INSERT, UPDATE, DELETE ADTs to parameterized SQL. All user values become $N parameters — raw string interpolation of user data is structurally impossible.

Types

typeMutStateMutState = { param_count : Int, acc_params : List(Param) }#

Functions

fncd_buildcd_build(f, st) : Compile.CompiledQuery#
fnci_buildci_build(f, st) : Compile.CompiledQuery#
fncompile_conflictcompile_conflict(opt)#
fncompile_conflict_targetcompile_conflict_target(target)#
fncompile_deletecompile_delete(d) : Compile.CompiledQuery#
fncompile_expr_inline_mcompile_expr_inline_m(e)#
fncompile_expr_list_mcompile_expr_list_m(exprs, st, acc)#
fncompile_expr_mcompile_expr_m(e, st)#
fncompile_insertcompile_insert(i) : Compile.CompiledQuery#
fncompile_one_rowcompile_one_row(vals, st)#
fncompile_returningcompile_returning(exprs)#
fncompile_rowscompile_rows(rows, st)#
fncompile_rows_acccompile_rows_acc(rows, st, acc)#
fncompile_setscompile_sets(sets, st)#
fncompile_sets_acccompile_sets_acc(sets, st, acc)#
fncompile_sql_valuescompile_sql_values(vals, st, acc)#
fncompile_updatecompile_update(u) : Compile.CompiledQuery#
fncompile_where_parts_mcompile_where_parts_m(wheres, st, acc)#
fncompile_wheres_mcompile_wheres_m(wheres, st)#
fncu_buildcu_build(f, st) : Compile.CompiledQuery#
fnescape_identescape_ident(s)#
fnescape_sql_strescape_sql_str(s)#
fnexpr_param_strexpr_param_str(n) do "$" ++ int_to_string(n) end#
fnjoin_strsjoin_strs(parts, sep)#
fnjoin_where_parts_mjoin_where_parts_m(parts)#
fnjoin_where_rest_mjoin_where_rest_m(acc, parts)#
fnmap_conflict_setsmap_conflict_sets(sets)#
fnmap_quotedmap_quoted(strs)#
fnmap_returningmap_returning(exprs)#
fnquote_identquote_ident(name) do "\"" ++ escape_ident(name) ++ "\"" end#
fnquote_strquote_str(s) do "'" ++ escape_sql_str(s) ++ "'" end#
fnrev_paramsrev_params(xs) do rev_params_acc(xs, Nil) end#
fnrev_params_accrev_params_acc(xs, acc)#
fnrev_strsrev_strs(xs) do rev_strs_acc(xs, Nil) end#
fnrev_strs_accrev_strs_acc(xs, acc)#
fnrev_wp_mrev_wp_m(xs) do rev_wp_m_acc(xs, Nil) end#
fnrev_wp_m_accrev_wp_m_acc(xs, acc)#
fnsql_val_strsql_val_str(v)#
fnsqlval_to_paramsqlval_to_param(v)#