From 979612cb34bd49a7d5ad53eed2d0c4f921d0722d Mon Sep 17 00:00:00 2001 From: Nikita Sivukhin Date: Sun, 2 Feb 2025 21:25:23 +0400 Subject: [PATCH] fix miscompilation of like function --- core/translate/expr.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/translate/expr.rs b/core/translate/expr.rs index b0ee7fa61..acf218f1d 100644 --- a/core/translate/expr.rs +++ b/core/translate/expr.rs @@ -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, });