From 2425b601f78b65c70db11bf40b2db0db78db0bd4 Mon Sep 17 00:00:00 2001 From: m0hossam Date: Thu, 20 Feb 2025 04:57:01 +0200 Subject: [PATCH] Cast the matching value into TEXT before matching --- core/vdbe/mod.rs | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/core/vdbe/mod.rs b/core/vdbe/mod.rs index 4800b03d0..1db954b2e 100644 --- a/core/vdbe/mod.rs +++ b/core/vdbe/mod.rs @@ -2104,7 +2104,7 @@ impl Program { } ScalarFunc::Like => { let pattern = &state.registers[*start_reg]; - let text = &state.registers[*start_reg + 1]; + let text = exec_cast(&state.registers[*start_reg + 1], "TEXT"); let result = match (pattern, text) { (OwnedValue::Text(pattern), OwnedValue::Text(text)) @@ -2137,19 +2137,6 @@ impl Program { ) as i64) } - (OwnedValue::Text(pattern), OwnedValue::Integer(text)) => { - let cache = if *constant_mask > 0 { - Some(&mut state.regex_cache.like) - } else { - None - }; - OwnedValue::Integer(exec_like( - cache, - &pattern.as_str(), - &text.to_string(), - ) - as i64) - } _ => { unreachable!("Like on non-text registers"); }