Fixed bug #36488: regexp returns false matches, concatenating
with previous rows. The WHERE clause containing expression: CONCAT(empty_field1, empty_field2, ..., 'literal constant', ...) REGEXP 'regular expression' may return wrong matches. Optimization of the CONCAT function has been fixed. mysql-test/r/func_concat.result: Added test case for bug #36488. mysql-test/t/func_concat.test: Added test case for bug #36488. sql/item_strfunc.cc: Fixed bug #36488. The Item_func_concat::val_str method is optimized to use first non-empty argument of the CONCAT function for in-place result accumulation. This optimization is acceptable if that first argument is not a constant. However, current implementation checks this condition only for the first actual argument of the CONCAT function. So, the Item_func_concat::val_str method can corrupt values of, for example, literal strings by appending random data. The Item_func_concat::val_str method has been modified to take into account the ability to be modified in-place for the first non-empty argument.
Showing
Please register or sign in to comment