From: Tor Didriksen Date: February 10 2011 12:45pm Subject: bzr commit into mysql-5.5 branch (tor.didriksen:3322) Bug#59686 List-Archive: http://lists.mysql.com/commits/131037 X-Bug: 59686 Message-Id: <20110210124549.C6B4A376D@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3279548353630921001==" --===============3279548353630921001== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/didrik/repo/5.5-bug59686-timestamp/ based on revid:mattias.jonsson@stripped 3322 Tor Didriksen 2011-02-09 Bug #59686 crash in String::copy() with time data type The problem was that Item_sum_hybrid::val_xxx() did not propagate null values up the expression tree. @ mysql-test/r/func_time.result New test case. @ mysql-test/t/func_time.test New test case. @ sql/item_sum.cc Check for null_value when evaluating sub-items in sub-trees in Item_sum_hybrid::val_xxx() modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item_sum.cc === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2011-02-02 18:16:06 +0000 +++ b/mysql-test/r/func_time.result 2011-02-09 15:44:57 +0000 @@ -1368,3 +1368,15 @@ SELECT SUBDATE(STR_TO_DATE(NULL,0), INTE SUBDATE(STR_TO_DATE(NULL,0), INTERVAL 1 HOUR) NULL # +# Bug #59686 crash in String::copy() with time data type +# +SELECT min(timestampadd(month, 1>'', from_days('%Z'))); +min(timestampadd(month, 1>'', from_days('%Z'))) +NULL +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '%Z' +create table t1(a time); +insert into t1 values ('00:00:00'),('00:01:00'); +select 1 from t1 where 1 < some (select cast(a as datetime) from t1); +1 +drop table t1; === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2011-02-02 18:16:06 +0000 +++ b/mysql-test/t/func_time.test 2011-02-09 15:44:57 +0000 @@ -881,4 +881,12 @@ SELECT WEEK(STR_TO_DATE(NULL,0)); SELECT SUBDATE(STR_TO_DATE(NULL,0), INTERVAL 1 HOUR); --echo # +--echo # Bug #59686 crash in String::copy() with time data type +--echo # + +SELECT min(timestampadd(month, 1>'', from_days('%Z'))); +create table t1(a time); +insert into t1 values ('00:00:00'),('00:01:00'); +select 1 from t1 where 1 < some (select cast(a as datetime) from t1); +drop table t1; === modified file 'sql/item_sum.cc' --- a/sql/item_sum.cc 2011-02-02 09:18:44 +0000 +++ b/sql/item_sum.cc 2011-02-09 15:44:57 +0000 @@ -1903,7 +1903,10 @@ double Item_sum_hybrid::val_real() DBUG_ASSERT(fixed == 1); if (null_value) return 0.0; - return value->val_real(); + double retval= value->val_real(); + if ((null_value= value->null_value)) + DBUG_ASSERT(retval == 0.0); + return retval; } longlong Item_sum_hybrid::val_int() @@ -1911,7 +1914,10 @@ longlong Item_sum_hybrid::val_int() DBUG_ASSERT(fixed == 1); if (null_value) return 0; - return value->val_int(); + longlong retval= value->val_int(); + if ((null_value= value->null_value)) + DBUG_ASSERT(retval == 0); + return retval; } @@ -1920,7 +1926,10 @@ my_decimal *Item_sum_hybrid::val_decimal DBUG_ASSERT(fixed == 1); if (null_value) return 0; - return value->val_decimal(val); + my_decimal *retval= value->val_decimal(val); + if ((null_value= value->null_value)) + DBUG_ASSERT(retval == NULL); + return retval; } @@ -1930,7 +1939,10 @@ Item_sum_hybrid::val_str(String *str) DBUG_ASSERT(fixed == 1); if (null_value) return 0; - return value->val_str(str); + String *retval= value->val_str(str); + if ((null_value= value->null_value)) + DBUG_ASSERT(retval == NULL); + return retval; } --===============3279548353630921001== 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\ # 7viyjwvoa5uje4uk # target_branch: file:///export/home/didrik/repo/5.5-bug59686-\ # timestamp/ # testament_sha1: ebfc8d076a4ae79890b29b4c446dfc79e67e2a6a # timestamp: 2011-02-10 13:45:49 +0100 # base_revision_id: mattias.jonsson@stripped\ # dpvxd2g978xag4sh # # Begin bundle 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 TodbQljjKyEiWUmea0VHOj/F3JFOFCQXyem7AA== --===============3279548353630921001==--