From: Sergey Glukhov Date: February 7 2011 1:05pm Subject: bzr commit into mysql-5.5 branch (sergey.glukhov:3277) Bug#59685 List-Archive: http://lists.mysql.com/commits/130567 X-Bug: 59685 Message-Id: <201102071302.p17AppYN015110@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7298131462917134049==" --===============7298131462917134049== 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.5/ based on revid:anders.song@stripped 3277 Sergey Glukhov 2011-02-07 Bug#59685 crash in String::length with date types The crash happens because Item_cache which is result holder for Item_subselect can't correctly convert a DATETIME value from string to int representation. The fix is to disable constant item convertion for subselect(partial rollback of bug52157 fix). @ mysql-test/r/type_date.result test case @ mysql-test/t/type_date.test test case @ sql/item_cmpfunc.cc disable constant item convertion for subselects. modified: mysql-test/r/type_date.result mysql-test/t/type_date.test sql/item_cmpfunc.cc === modified file 'mysql-test/r/type_date.result' --- a/mysql-test/r/type_date.result 2010-11-04 13:18:27 +0000 +++ b/mysql-test/r/type_date.result 2011-02-07 13:05:20 +0000 @@ -296,6 +296,18 @@ the_date the_time the_date the_time 2010-01-01 01:01:01 2010-01-01 01:01:01 DROP TABLE t1; DROP VIEW v1; +# +# Bug#59685 crash in String::length with date types +# +CREATE TABLE t1(a DATE, b YEAR, KEY(a)); +INSERT INTO t1 VALUES ('2011-01-01',2011); +SELECT b = (SELECT CONVERT(a, DATE) FROM t1 GROUP BY a) FROM t1; +b = (SELECT CONVERT(a, DATE) FROM t1 GROUP BY a) +0 +SELECT b = CONVERT((SELECT CONVERT(a, DATE) FROM t1 GROUP BY a), DATE) FROM t1; +b = CONVERT((SELECT CONVERT(a, DATE) FROM t1 GROUP BY a), DATE) +0 +DROP TABLE t1; End of 5.1 tests # # Bug #33629: last_day function can return null, but has 'not null' === modified file 'mysql-test/t/type_date.test' --- a/mysql-test/t/type_date.test 2010-11-04 13:18:27 +0000 +++ b/mysql-test/t/type_date.test 2011-02-07 13:05:20 +0000 @@ -266,6 +266,18 @@ SELECT * FROM t1 JOIN v1 ON addtime( t1. DROP TABLE t1; DROP VIEW v1; +--echo # +--echo # Bug#59685 crash in String::length with date types +--echo # + +CREATE TABLE t1(a DATE, b YEAR, KEY(a)); +INSERT INTO t1 VALUES ('2011-01-01',2011); + +SELECT b = (SELECT CONVERT(a, DATE) FROM t1 GROUP BY a) FROM t1; +SELECT b = CONVERT((SELECT CONVERT(a, DATE) FROM t1 GROUP BY a), DATE) FROM t1; + +DROP TABLE t1; + --echo End of 5.1 tests --echo # === modified file 'sql/item_cmpfunc.cc' --- a/sql/item_cmpfunc.cc 2011-01-19 14:12:43 +0000 +++ b/sql/item_cmpfunc.cc 2011-02-07 13:05:20 +0000 @@ -403,7 +403,7 @@ static bool convert_constant_item(THD *t Field *field= field_item->field; int result= 0; - if ((*item)->const_item()) + if (!(*item)->with_subselect && (*item)->const_item()) { TABLE *table= field->table; ulonglong orig_sql_mode= thd->variables.sql_mode; --===============7298131462917134049== 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\ # aqhm36xfov7hi3bz # target_branch: file:///home/gluh/MySQL/mysql-5.5/ # testament_sha1: 59832435d88ac294a432c30c0be77c8500d0e6fd # timestamp: 2011-02-07 16:05:26 +0300 # base_revision_id: anders.song@stripped\ # rhsv61qa4oarwxoo # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWd2hBvMAA6XfgEAQeff//3+v 3yC////wYAf7n3Hzur6q2Gt687l507lKPd5xzuISRU8gqeJtE9Q09SbT0ptNqntKeSbSZpGEGmgH qCSSNCnp6U8Gink0KPU09JkAABp6gAAGqntUeppp6RkZB6g0AaAaaYgAAAAkRI1GmhpTNTaJtTag 2UAAGg0NNBoARUQJmkNE1Hinij1PFDZEB6mnqAAAyAkkTEE9JhAaAICR6amagyGQAA0001DBM1ls SDrxRz/cUEKiJKfEsxEgJOBGjk2ddQzDAIwi67qoWAE8mwsjJsduUzzNOqN9Yvn7Dj2rHrXyW8mN ttr8dKLqWyOM7DBpjIUQv30C94uEyr4i7yDoXARmF8oHXbIwX1mYpJn5iqCR0y1LMT/oe/kv4XF4 ZsOJrPVGW30dTtuvGVT3XVyhw/dEfqLzKk7MpBS/qhRa+uu01wwdNBo22v7YqXXy2Cgwlya2YbEt T5zEV3FmXrfrZRUhnJBQp0VW6nScad0XTnuyjRHiJj0JTqMbUGdtGQB4De2GgSJreTVpcsdXQ6+B uzPRNhKR4eKWLFuhkS8YFZKVRS8wTU0XUU0O5nthLMVgQzBmpqXG4RDS1LAVvAEKhamIGoE1saCW twjE2XPWtlKIiY4cViPaiE5QUUUJqzHfTJmRWs30WAFRlSBle/KJD3MRC54PBwmeIAiEoufCOJYY QFnYKbHezPfe2IikstH9iIvu/y6iWAsbCzUNaor02pxrfmqd7STJsxXpxrgXLfo5BcoqFQjVMD0O 0cJWiISFIeWs+8yctGbJw9nE18mIqyYkJcMpRURKA0TfvqNu51pmo38lTqhFRcrzA0wORUaVHcZl vOMSmkcUmHeIcoFusep58BDpU1g7TA8POsV0JlHlhTpmrslMi2V05JsnpW5SqZsn6WTdccfAUOWR Qy0yL+a16FmwuUanvGsvnMtxGIRtv/64tqFvKx1fN7ya9y9WkicmM487LysmS6c1O5q2banjZz3q ulMMr1ZHepFpIvhw1EDju03yK1aUd3SZYQMCN7IniNKFnBZLyXA4yEeClN6cXhmEYLEm410K+V6r fw7ukYojXEeWSW8R1VSppna4aY8IOYXCUq3TElBO4oW9iLrJJ7XGdExlHAmgtm7mlhMrjFUGZMZy tSUFeOgOJl2eWimVOJKRBrA2qNFqi+xwPSrsHjs1qxFAtIq0WqLZiQrZR4xTCdpqZky6A5kq6CAz NzLgScx+Sy6G4FKq0jYH9OoPsCwvTTG+kNArGcTQWEiIBQYj9B8ISOY5FlAnxBvodhV1kkCMiI84 XxMJ8hOtIIVGAT9oQAkM5STn8EyHWNiPzHAHYZbmsUxgZA4LBKmJI0ExRKEF4ojzeLUhZdE6ZhNt 8XE0Xwl+ZOMmFEDpOxTdRsIGmztjIdn02+IKExi2XAgLvXkaeJcN6StUwG1CKaBHH8lOTg80oUE6 q9apXLfu3DMHutkbthWQPQ959s4V1F5YYLHiE1IisRToyzR6iB7bi1OLuw39qV7+KLFcm5aoe432 NhqTDmBVI1IDD81iPoqAnbJNFcvDLK04l1B8MMzjSRpsSonwFK6MTkE3GV97dbXY7grw01sOGKtf GB0Mm2cE597y5MkPEMuntPhJCJA7L9rsn1DhtDbKdS6VNZFybMRcKcUYKBpHJTp7YwNVe10vPS3z xkMnRwzZ2jmfkDeEsCkXEGEI2p0ZRshenr75gUFTUwy61cgqEMzgTJcQT6Ne1Bz3mkxWjqfknvMj W7qOMvAeFJaGP+rdzTLvRepm9cihEPWId50Qisrbi4KxZzIwDAtKRXv2blMsfsWYMjpmTM4CrD4E Meq4LYIxxX0CJLLWC6mnQtQpEUsObGSsEOi5tVPrENDR4BgskKgoBrgJyrCHt564zFTMi1Sl8pE5 g3Hv3l51Bp3y8tFKqgqFVUuNWco3am3J89fcCcaRUrxv5Ky5K0KBYZPXyfw7OpiGAJkEggvFbp86 tGxhXE4/DzSI7mdMqZMAaBDOStyVScFxtriS9UpBiiqhPXzGJYFJSw5vRMnDHdW+iygmqQJq9Vay rDLIVtTKyA2hqVsrarh2Svq76hyKvuqmUwEFQG1t7lILYn1pq1iCkGLRsmYF/TWNtQkFKzFODhzw YJvgzhxElIIsp0xtzTlM3bpmsmvOE7u258zkkJIqoQ03+l1vMXVO7/GhPEHLcHetC+cmt9iDfnbz Rt8HhahdymnX6w1LBbe+irpK3YU1rtTXszD3Jk5WUFeC7lkn74Hs4BOvKZvB/A8gZZebRBjJjSpi ZeVyOefitK1K1ZnkiIiI0rLtRLNAVYDaY5F2M5yRQVOyr+5s0vQfm9WTSFCvpBovAPPtXLkqqm4T CJQpupxI+TIbnNLzWGRQOrE6hdxQTuDqcSkZSalc/DUPVY4mePFmmrilul1Y3LGLGTskF972Suh5 O2cHnvDBN8eaxhmgxmYIluIb3k2DQeXalQdW9zPO5zuM5bn4PF74lzFi3AUyIqQ0NetHpXw6CEFt Y5HNansEIc1a/4u5IpwoSG7Qg3mA --===============7298131462917134049==--