fix miscompilation of like function

This commit is contained in:
Nikita Sivukhin
2025-02-02 21:25:23 +04:00
parent 11c47f5e44
commit 979612cb34

View File

@@ -1227,15 +1227,21 @@ pub fn translate_expr(
srf.to_string()
);
};
for arg in args {
let _ =
translate_and_mark(program, referenced_tables, arg, resolver);
let func_registers = program.alloc_registers(args.len());
for (i, arg) in args.iter().enumerate() {
let _ = translate_expr(
program,
referenced_tables,
arg,
func_registers + i,
resolver,
)?;
}
program.emit_insn(Insn::Function {
// Only constant patterns for LIKE are supported currently, so this
// is always 1
constant_mask: 1,
start_reg: target_register + 1,
start_reg: func_registers,
dest: target_register,
func: func_ctx,
});