From: Sergey Glukhov Date: March 30 2011 7:42am Subject: bzr commit into mysql-trunk branch (sergey.glukhov:3346) List-Archive: http://lists.mysql.com/commits/134213 Message-Id: <201103300744.p2U7iDLY003262@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/gluh/MySQL/mysql-trunk/ based on revid:andrei.elkin@stripped 3346 Sergey Glukhov 2011-03-30 [merge] 5.5 -> trunk merge @ mysql-test/r/func_time.result 5.5 -> trunk merge @ mysql-test/t/func_time.test 5.5 -> trunk merge @ sql/item.cc 5.5 -> trunk merge @ sql/item_timefunc.h 5.5 -> trunk merge modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item.cc sql/item_timefunc.h === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2011-03-28 13:38:03 +0000 +++ b/mysql-test/r/func_time.result 2011-03-30 07:42:03 +0000 @@ -1365,6 +1365,18 @@ SET GLOBAL SQL_MODE=DEFAULT; SELECT FORMAT(YEAR(STR_TO_DATE('',GET_FORMAT(TIME,''))),1); FORMAT(YEAR(STR_TO_DATE('',GET_FORMAT(TIME,''))),1) NULL +# +# Bug#11766126 59166: ANOTHER DATETIME VALGRIND UNINITIALIZED WARNING +# +SELECT CAST((MONTH(FROM_UNIXTIME(@@GLOBAL.SQL_MODE))) AS BINARY(1025)); +CAST((MONTH(FROM_UNIXTIME(@@GLOBAL.SQL_MODE))) AS BINARY(1025)) +NULL +# +# Bug#11766124 59164: VALGRIND: UNINITIALIZED VALUE IN NUMBER_TO_DATETIME +# +SELECT ADDDATE(MONTH(FROM_UNIXTIME(NULL)),INTERVAL 1 HOUR); +ADDDATE(MONTH(FROM_UNIXTIME(NULL)),INTERVAL 1 HOUR) +NULL End of 5.1 tests # # BUG#43578 "MyISAM&Maria gives wrong rows with range access === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2011-03-28 13:38:03 +0000 +++ b/mysql-test/t/func_time.test 2011-03-30 07:42:03 +0000 @@ -882,6 +882,18 @@ SET GLOBAL SQL_MODE=DEFAULT; SELECT FORMAT(YEAR(STR_TO_DATE('',GET_FORMAT(TIME,''))),1); +--echo # +--echo # Bug#11766126 59166: ANOTHER DATETIME VALGRIND UNINITIALIZED WARNING +--echo # + +SELECT CAST((MONTH(FROM_UNIXTIME(@@GLOBAL.SQL_MODE))) AS BINARY(1025)); + +--echo # +--echo # Bug#11766124 59164: VALGRIND: UNINITIALIZED VALUE IN NUMBER_TO_DATETIME +--echo # + +SELECT ADDDATE(MONTH(FROM_UNIXTIME(NULL)),INTERVAL 1 HOUR); + --echo End of 5.1 tests --echo # === modified file 'sql/item.cc' --- a/sql/item.cc 2011-03-22 11:44:40 +0000 +++ b/sql/item.cc 2011-03-30 07:42:03 +0000 @@ -1006,8 +1006,12 @@ bool Item::get_date(MYSQL_TIME *ltime,ui } else { - longlong value= val_int(); int was_cut; + longlong value= val_int(); + + if (null_value) + goto err; + if (number_to_datetime(value, ltime, fuzzydate, &was_cut) == LL(-1)) { char buff[22], *end; === modified file 'sql/item_timefunc.h' --- a/sql/item_timefunc.h 2011-03-22 11:44:40 +0000 +++ b/sql/item_timefunc.h 2011-03-30 07:42:03 +0000 @@ -140,8 +140,11 @@ public: { DBUG_ASSERT(fixed == 1); return (double) Item_func_month::val_int(); } String *val_str(String *str) { - str->set(val_int(), collation.collation); - return null_value ? 0 : str; + longlong nr= val_int(); + if (null_value) + return 0; + str->set(nr, collation.collation); + return str; } const char *func_name() const { return "month"; } enum Item_result result_type () const { return INT_RESULT; } No bundle (reason: revision is a merge (you can force generation of a bundle with env var BZR_FORCE_BUNDLE=1)).