From: Alexander Barkov Date: December 22 2011 8:00am Subject: bzr commit into mysql-5.5 branch (alexander.barkov:3661) Bug#13354387 List-Archive: http://lists.mysql.com/commits/142229 X-Bug: 13354387 Message-Id: <201112220801.pBM81k4q029202@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0953519271200261077==" --===============0953519271200261077== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///old-bar/home-bar/mysql-bzr/mysql-5.5.b13354387/ based on revid:inaam.rana@stripped 3661 Alexander Barkov 2011-12-22 BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIME Fixing the 5.5 part (the 5.6 part will go in a separate commit soon). Problem: Item_direct_ref::get_date() incorrectly calculated its "null_value", which made UNIX_TIMESTAMP(view_column) incorrectly return NULL for a NOT NULL view_column. Fix: Make Item_direct_ref::get_date() calculate null_value in the similar way with the other methods (val_real,val_str,val_int,val_decimal): copy null_value from the referenced Item. modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item.cc === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2011-07-27 08:51:55 +0000 +++ b/mysql-test/r/func_time.result 2011-12-22 08:00:01 +0000 @@ -1433,6 +1433,21 @@ NULL 1 NULL SET storage_engine=NULL; ERROR 42000: Variable 'storage_engine' can't be set to the value of 'NULL' # +# BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP +# Part1 (5.5) +SET time_zone='+03:00'; +CREATE TABLE t1 (a DATETIME NOT NULL); +INSERT INTO t1 VALUES ('2009-09-20 07:32:39.06'); +INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00'); +CREATE VIEW v1 AS SELECT * FROM t1; +SELECT CAST(UNIX_TIMESTAMP(a) AS DECIMAL(25,3)) AS c1 FROM v1 ORDER BY 1; +c1 +0.000 +1253421159.000 +DROP VIEW v1; +DROP TABLE t1; +SET time_zone=DEFAULT; +# # Bug #59686 crash in String::copy() with time data type # SELECT min(timestampadd(month, 1>'', from_days('%Z'))); === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2011-07-27 08:51:55 +0000 +++ b/mysql-test/t/func_time.test 2011-12-22 08:00:01 +0000 @@ -940,6 +940,21 @@ SELECT MONTHNAME(0), MONTHNAME(0) IS NUL --error ER_WRONG_VALUE_FOR_VAR SET storage_engine=NULL; + +--echo # +--echo # BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP +--echo # Part1 (5.5) +SET time_zone='+03:00'; +CREATE TABLE t1 (a DATETIME NOT NULL); +INSERT INTO t1 VALUES ('2009-09-20 07:32:39.06'); +INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00'); +CREATE VIEW v1 AS SELECT * FROM t1; +SELECT CAST(UNIX_TIMESTAMP(a) AS DECIMAL(25,3)) AS c1 FROM v1 ORDER BY 1; +DROP VIEW v1; +DROP TABLE t1; +SET time_zone=DEFAULT; + + --echo # --echo # Bug #59686 crash in String::copy() with time data type --echo # === modified file 'sql/item.cc' --- a/sql/item.cc 2011-12-05 14:42:45 +0000 +++ b/sql/item.cc 2011-12-22 08:00:01 +0000 @@ -6812,7 +6812,9 @@ bool Item_direct_ref::is_null() bool Item_direct_ref::get_date(MYSQL_TIME *ltime,uint fuzzydate) { - return (null_value=(*ref)->get_date(ltime,fuzzydate)); + bool tmp= (*ref)->get_date(ltime, fuzzydate); + null_value= (*ref)->null_value; + return tmp; } --===============0953519271200261077== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/alexander.barkov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: alexander.barkov@stripped\ # xmlf8ez3oywu6cqx # target_branch: file:///old-bar/home-bar/mysql-bzr/mysql-\ # 5.5.b13354387/ # testament_sha1: df7924d42434a6c812eda956dd79d88fc1a18096 # timestamp: 2011-12-22 12:00:15 +0400 # base_revision_id: inaam.rana@stripped\ # 7ag0ebf80jbyfqc9 # # Begin bundle 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 AZyLzGE2PaUzf8XckU4UJAMKU+UA --===============0953519271200261077==--