Cast the matching value into TEXT before matching

This commit is contained in:
m0hossam
2025-02-20 04:57:01 +02:00
parent 1935426509
commit 2425b601f7

View File

@@ -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");
}