summaryrefslogtreecommitdiff
path: root/mysql-test/r/func_concat.result
diff options
context:
space:
mode:
authorunknown <gshchepa/uchum@host.loc>2008-05-13 20:27:46 +0500
committerunknown <gshchepa/uchum@host.loc>2008-05-13 20:27:46 +0500
commit66367aeea83a0cd7f583a0194651a235b63975a9 (patch)
tree3f906d54df58a21e49a3d2176bd9d4e84389633b /mysql-test/r/func_concat.result
parent65a310fe2a594aca6e73308896763933adb59e3e (diff)
downloadmariadb-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.result7
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