From: Tor Didriksen Date: February 23 2011 12:23pm Subject: bzr commit into mysql-trunk branch (tor.didriksen:3706) Bug#11766678 List-Archive: http://lists.mysql.com/commits/131925 X-Bug: 11766678 Message-Id: <20110223122400.F30093793@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1109212213456475188==" --===============1109212213456475188== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/didrik/repo/trunk-bug59843valgrind/ based on revid:alexander.barkov@stripped 3706 Tor Didriksen 2011-02-23 Bug #11766678 - 59843:USING UNINITIALISED VALUE IN USES_INDEX_FIELDS_ONLY @ mysql-test/include/icp_tests.inc New test case. @ mysql-test/r/innodb_icp.result New test case. @ mysql-test/r/innodb_icp_none.result New test case. @ mysql-test/r/myisam_icp.result New test case. @ mysql-test/r/myisam_icp_none.result New test case. @ sql/sql_select.cc Do not access child nodes of functions without arguments. modified: mysql-test/include/icp_tests.inc mysql-test/r/innodb_icp.result mysql-test/r/innodb_icp_none.result mysql-test/r/myisam_icp.result mysql-test/r/myisam_icp_none.result sql/sql_select.cc === modified file 'mysql-test/include/icp_tests.inc' --- a/mysql-test/include/icp_tests.inc 2011-01-31 11:56:15 +0000 +++ b/mysql-test/include/icp_tests.inc 2011-02-23 12:23:56 +0000 @@ -821,3 +821,20 @@ SELECT * FROM t1 WHERE i2 IN (3, 6) LIMI INSERT INTO t1 (i2) VALUES (1); DROP TABLE t1; + +--echo # +--echo # Bug #11766678 - 59843: +--echo # USING UNINITIALISED VALUE IN USES_INDEX_FIELDS_ONLY +--echo # + +CREATE TABLE t1 ( + col999 float not null, + col1000 varbinary(179) not null, + col1003 date default null, + key idx4267 (col1000,col1003) +); + +INSERT INTO t1 VALUES (),(); +SELECT col999 FROM t1 WHERE col1000 = "3" AND col1003 <=> sysdate(); + +DROP TABLE t1; === modified file 'mysql-test/r/innodb_icp.result' --- a/mysql-test/r/innodb_icp.result 2011-02-14 11:21:26 +0000 +++ b/mysql-test/r/innodb_icp.result 2011-02-23 12:23:56 +0000 @@ -759,5 +759,22 @@ pk i1 c1 i2 2 1 she 6 INSERT INTO t1 (i2) VALUES (1); DROP TABLE t1; +# +# Bug #11766678 - 59843: +# USING UNINITIALISED VALUE IN USES_INDEX_FIELDS_ONLY +# +CREATE TABLE t1 ( +col999 float not null, +col1000 varbinary(179) not null, +col1003 date default null, +key idx4267 (col1000,col1003) +); +INSERT INTO t1 VALUES (),(); +Warnings: +Warning 1364 Field 'col999' doesn't have a default value +Warning 1364 Field 'col1000' doesn't have a default value +SELECT col999 FROM t1 WHERE col1000 = "3" AND col1003 <=> sysdate(); +col999 +DROP TABLE t1; set default_storage_engine= @save_storage_engine; set optimizer_switch=default; === modified file 'mysql-test/r/innodb_icp_none.result' --- a/mysql-test/r/innodb_icp_none.result 2011-02-14 11:21:26 +0000 +++ b/mysql-test/r/innodb_icp_none.result 2011-02-23 12:23:56 +0000 @@ -758,5 +758,22 @@ pk i1 c1 i2 2 1 she 6 INSERT INTO t1 (i2) VALUES (1); DROP TABLE t1; +# +# Bug #11766678 - 59843: +# USING UNINITIALISED VALUE IN USES_INDEX_FIELDS_ONLY +# +CREATE TABLE t1 ( +col999 float not null, +col1000 varbinary(179) not null, +col1003 date default null, +key idx4267 (col1000,col1003) +); +INSERT INTO t1 VALUES (),(); +Warnings: +Warning 1364 Field 'col999' doesn't have a default value +Warning 1364 Field 'col1000' doesn't have a default value +SELECT col999 FROM t1 WHERE col1000 = "3" AND col1003 <=> sysdate(); +col999 +DROP TABLE t1; set default_storage_engine= @save_storage_engine; set optimizer_switch=default; === modified file 'mysql-test/r/myisam_icp.result' --- a/mysql-test/r/myisam_icp.result 2011-01-31 11:56:15 +0000 +++ b/mysql-test/r/myisam_icp.result 2011-02-23 12:23:56 +0000 @@ -757,4 +757,21 @@ pk i1 c1 i2 2 1 she 6 INSERT INTO t1 (i2) VALUES (1); DROP TABLE t1; +# +# Bug #11766678 - 59843: +# USING UNINITIALISED VALUE IN USES_INDEX_FIELDS_ONLY +# +CREATE TABLE t1 ( +col999 float not null, +col1000 varbinary(179) not null, +col1003 date default null, +key idx4267 (col1000,col1003) +); +INSERT INTO t1 VALUES (),(); +Warnings: +Warning 1364 Field 'col999' doesn't have a default value +Warning 1364 Field 'col1000' doesn't have a default value +SELECT col999 FROM t1 WHERE col1000 = "3" AND col1003 <=> sysdate(); +col999 +DROP TABLE t1; set optimizer_switch=default; === modified file 'mysql-test/r/myisam_icp_none.result' --- a/mysql-test/r/myisam_icp_none.result 2011-01-31 11:56:15 +0000 +++ b/mysql-test/r/myisam_icp_none.result 2011-02-23 12:23:56 +0000 @@ -756,4 +756,21 @@ pk i1 c1 i2 2 1 she 6 INSERT INTO t1 (i2) VALUES (1); DROP TABLE t1; +# +# Bug #11766678 - 59843: +# USING UNINITIALISED VALUE IN USES_INDEX_FIELDS_ONLY +# +CREATE TABLE t1 ( +col999 float not null, +col1000 varbinary(179) not null, +col1003 date default null, +key idx4267 (col1000,col1003) +); +INSERT INTO t1 VALUES (),(); +Warnings: +Warning 1364 Field 'col999' doesn't have a default value +Warning 1364 Field 'col1000' doesn't have a default value +SELECT col999 FROM t1 WHERE col1000 = "3" AND col1003 <=> sysdate(); +col999 +DROP TABLE t1; set optimizer_switch=default; === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2011-02-22 14:24:33 +0000 +++ b/sql/sql_select.cc 2011-02-23 12:23:56 +0000 @@ -10036,12 +10036,14 @@ static bool uses_index_fields_only(Item { /* This is a function, apply condition recursively to arguments */ Item_func *item_func= (Item_func*)item; - Item **child; - Item **item_end= (item_func->arguments()) + item_func->argument_count(); - for (child= item_func->arguments(); child != item_end; child++) - { - if (!uses_index_fields_only(*child, tbl, keyno, other_tbls_ok)) - return FALSE; + if (item_func->argument_count() > 0) + { + Item **item_end= (item_func->arguments()) + item_func->argument_count(); + for (Item **child= item_func->arguments(); child != item_end; child++) + { + if (!uses_index_fields_only(*child, tbl, keyno, other_tbls_ok)) + return FALSE; + } } return TRUE; } --===============1109212213456475188== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/tor.didriksen@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: tor.didriksen@stripped\ # p4qxau6n9av9u9j8 # target_branch: file:///export/home/didrik/repo/trunk-\ # bug59843valgrind/ # testament_sha1: 8a941735ff7dda9865bd09645c93a998965fa649 # timestamp: 2011-02-23 13:24:00 +0100 # base_revision_id: alexander.barkov@stripped\ # zbsl4q3de95hvghj # # Begin bundle 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 --===============1109212213456475188==--