From: Sergey Glukhov Date: June 15 2011 7:35am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3649) Bug#11766684 List-Archive: http://lists.mysql.com/commits/139213 X-Bug: 11766684 Message-Id: <201106150746.p5F7kCwu004493@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4594517823523147230==" --===============4594517823523147230== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/gluh/MySQL/mysql-5.1/ based on revid:sergey.glukhov@stripped 3649 Sergey Glukhov 2011-06-15 Bug#11766684 59851: UNINITIALISED VALUE IN ITEM_FUNC_LIKE::SELECT_OPTIMIZE WITH SUBQUERY AND Algorithm does not take into account the case when number of processed bits is 0. In this case this fuction returns value with uninitialized string buffer. The fix is to return empty string when number of processed bits is 0. @ mysql-test/r/func_str.result test case @ mysql-test/t/func_str.test test case @ sql/item_strfunc.cc return empty string when number of processed bits is 0. modified: mysql-test/r/func_str.result mysql-test/t/func_str.test sql/item_strfunc.cc === modified file 'mysql-test/r/func_str.result' --- a/mysql-test/r/func_str.result 2011-06-15 06:38:11 +0000 +++ b/mysql-test/r/func_str.result 2011-06-15 07:35:15 +0000 @@ -2634,4 +2634,15 @@ DROP TABLE t1; SELECT SUBSTRING('1', DAY(FROM_UNIXTIME(-1))); SUBSTRING('1', DAY(FROM_UNIXTIME(-1))) NULL +# +# Bug#11766684 59851: UNINITIALISED VALUE IN ITEM_FUNC_LIKE::SELECT_OPTIMIZE WITH SUBQUERY AND +# +CREATE TABLE t2(a INT, KEY(a)); +INSERT INTO t2 VALUES (1),(2); +CREATE TABLE t1(b INT, PRIMARY KEY(b)); +INSERT INTO t1 VALUES (0),(254); +SELECT 1 FROM t2 WHERE a LIKE +(SELECT EXPORT_SET(1, b, b, b, b) FROM t1 LIMIT 1); +1 +DROP TABLE t1, t2; End of 5.1 tests === modified file 'mysql-test/t/func_str.test' --- a/mysql-test/t/func_str.test 2011-06-15 06:38:11 +0000 +++ b/mysql-test/t/func_str.test 2011-06-15 07:35:15 +0000 @@ -1386,4 +1386,16 @@ DROP TABLE t1; SELECT SUBSTRING('1', DAY(FROM_UNIXTIME(-1))); +--echo # +--echo # Bug#11766684 59851: UNINITIALISED VALUE IN ITEM_FUNC_LIKE::SELECT_OPTIMIZE WITH SUBQUERY AND +--echo # + +CREATE TABLE t2(a INT, KEY(a)); +INSERT INTO t2 VALUES (1),(2); +CREATE TABLE t1(b INT, PRIMARY KEY(b)); +INSERT INTO t1 VALUES (0),(254); +SELECT 1 FROM t2 WHERE a LIKE +(SELECT EXPORT_SET(1, b, b, b, b) FROM t1 LIMIT 1); +DROP TABLE t1, t2; + --echo End of 5.1 tests === modified file 'sql/item_strfunc.cc' --- a/sql/item_strfunc.cc 2011-06-15 06:38:11 +0000 +++ b/sql/item_strfunc.cc 2011-06-15 07:35:15 +0000 @@ -3104,6 +3104,12 @@ String* Item_func_export_set::val_str(St } null_value=0; + if (!num_set_values) + { + str_value.set("", 0, collation.collation); + return &str_value; + } + for (uint i = 0; i < num_set_values; i++, mask = (mask << 1)) { if (the_set & mask) --===============4594517823523147230== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/sergey.glukhov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped\ # 1v9zzydg891trg3k # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: c164424c856516b08f6d781c60d054e6f6df4cdd # timestamp: 2011-06-15 11:35:18 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: sergey.glukhov@stripped\ # bwjmtltmziseclv9 # # Begin bundle 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 KJoP+LuSKcKEgQVGJCA= --===============4594517823523147230==--