March Docs › MutationCompile 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 type MutState MutState = { param_count : Int, acc_params : List(Param ) }#
Functions fn cd_build cd_build(f, st) : Compile.CompiledQuery #
fn ci_build ci_build(f, st) : Compile.CompiledQuery #
fn compile_conflict compile_conflict(opt) #
fn compile_conflict_target compile_conflict_target(target) #
fn compile_delete compile_delete(d) : Compile.CompiledQuery #
fn compile_expr_inline_m compile_expr_inline_m(e) #
fn compile_expr_list_m compile_expr_list_m(exprs, st, acc) #
fn compile_expr_m compile_expr_m(e, st) #
fn compile_insert compile_insert(i) : Compile.CompiledQuery #
fn compile_one_row compile_one_row(vals, st) #
fn compile_returning compile_returning(exprs) #
fn compile_rows compile_rows(rows, st) #
fn compile_rows_acc compile_rows_acc(rows, st, acc) #
fn compile_sets compile_sets(sets, st) #
fn compile_sets_acc compile_sets_acc(sets, st, acc) #
fn compile_sql_values compile_sql_values(vals, st, acc) #
fn compile_update compile_update(u) : Compile.CompiledQuery #
fn compile_where_parts_m compile_where_parts_m(wheres, st, acc) #
fn compile_wheres_m compile_wheres_m(wheres, st) #
fn cu_build cu_build(f, st) : Compile.CompiledQuery #
fn escape_ident escape_ident(s) #
fn escape_sql_str escape_sql_str(s) #
fn expr_param_str expr_param_str(n) do "$" ++ int_to_string(n) end #
fn join_strs join_strs(parts, sep) #
fn join_where_parts_m join_where_parts_m(parts) #
fn join_where_rest_m join_where_rest_m(acc, parts) #
fn map_conflict_sets map_conflict_sets(sets) #
fn map_quoted map_quoted(strs) #
fn map_returning map_returning(exprs) #
fn quote_ident quote_ident(name) do "\"" ++ escape_ident(name) ++ "\"" end #
fn quote_str quote_str(s) do "'" ++ escape_sql_str(s) ++ "'" end #
fn rev_params rev_params(xs) do rev_params_acc(xs, Nil) end #
fn rev_params_acc rev_params_acc(xs, acc) #
fn rev_strs rev_strs(xs) do rev_strs_acc(xs, Nil) end #
fn rev_strs_acc rev_strs_acc(xs, acc) #
fn rev_wp_m rev_wp_m(xs) do rev_wp_m_acc(xs, Nil) end #
fn rev_wp_m_acc rev_wp_m_acc(xs, acc) #
fn sql_val_str sql_val_str(v) #
fn sqlval_to_param sqlval_to_param(v) #