diff options
author | unknown <gshchepa/uchum@host.loc> | 2008-05-13 20:27:46 +0500 |
---|---|---|
committer | unknown <gshchepa/uchum@host.loc> | 2008-05-13 20:27:46 +0500 |
commit | 66367aeea83a0cd7f583a0194651a235b63975a9 (patch) | |
tree | 3f906d54df58a21e49a3d2176bd9d4e84389633b /mysql-test/r/func_concat.result | |
parent | 65a310fe2a594aca6e73308896763933adb59e3e (diff) | |
download | mariadb-git-66367aeea83a0cd7f583a0194651a235b63975a9.tar.gz |
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.
Diffstat (limited to 'mysql-test/r/func_concat.result')
-rw-r--r-- | mysql-test/r/func_concat.result | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result index 66808afd4e9..7e7c163716e 100644 --- a/mysql-test/r/func_concat.result +++ b/mysql-test/r/func_concat.result @@ -82,3 +82,10 @@ a 1234562 x drop table t1; +CREATE TABLE t1 (c1 varchar(100), c2 varchar(100)); +INSERT INTO t1 VALUES ('',''), ('','First'), ('Random','Random'); +SELECT * FROM t1 WHERE CONCAT(c1,' ',c2) REGEXP 'First.*'; +c1 c2 + First +DROP TABLE t1; +# End of 5.0 tests |