1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

Fix for bug#44743: Join in combination with concat does not always work

bug#44766: valgrind error when using convert() in a subquery

Problem: input and output buffers may be the same 
converting a string to some charset. 
That may lead to wrong results/valgrind warnings.  

Fix: use different buffers.
This commit is contained in:
Ramil Kalimullin
2009-05-21 13:06:43 +05:00
parent 8b5ea27aac
commit fe350c59aa
7 changed files with 108 additions and 2 deletions

View File

@@ -78,3 +78,37 @@ SELECT * FROM t1 WHERE CONCAT(c1,' ',c2) REGEXP 'First.*';
DROP TABLE t1;
--echo # End of 5.0 tests
--echo #
--echo # Bug #44743: Join in combination with concat does not always work
--echo #
CREATE TABLE t1 (
a VARCHAR(100) NOT NULL DEFAULT '0',
b VARCHAR(2) NOT NULL DEFAULT '',
c VARCHAR(2) NOT NULL DEFAULT '',
d TEXT NOT NULL,
PRIMARY KEY (a, b, c),
KEY (a)
) DEFAULT CHARSET=utf8;
INSERT INTO t1 VALUES ('gui_A', 'a', 'b', 'str1'),
('gui_AB', 'a', 'b', 'str2'), ('gui_ABC', 'a', 'b', 'str3');
CREATE TABLE t2 (
a VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (a)
) DEFAULT CHARSET=latin1;
INSERT INTO t2 VALUES ('A'), ('AB'), ('ABC');
SELECT CONCAT('gui_', t2.a), t1.d FROM t2
LEFT JOIN t1 ON t1.a = CONCAT('gui_', t2.a) AND t1.b = 'a' AND t1.c = 'b';
EXPLAIN SELECT CONCAT('gui_', t2.a), t1.d FROM t2
LEFT JOIN t1 ON t1.a = CONCAT('gui_', t2.a) AND t1.b = 'a' AND t1.c = 'b';
DROP TABLE t1, t2;
--echo # End of 5.1 tests