From: Sergey Glukhov Date: March 29 2011 11:15am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3640) Bug#11766126 List-Archive: http://lists.mysql.com/commits/134147 X-Bug: 11766126 Message-Id: <201103291117.p2TBHZEH013103@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4133554305095887858==" --===============4133554305095887858== 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.1/ based on revid:sergey.glukhov@stripped 3640 Sergey Glukhov 2011-03-29 Bug#11766126 59166: ANOTHER DATETIME VALGRIND UNINITIALIZED WARNING Valgrind warning happens because null values check happens too late in Item_func_month::val_str(after result string calculation).The fix is to check null value before result string calculation. @ mysql-test/r/func_time.result test case @ mysql-test/t/func_time.test test case @ sql/item_timefunc.h check null value before result string calculation. modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item_timefunc.h === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2011-03-28 13:27:44 +0000 +++ b/mysql-test/r/func_time.result 2011-03-29 11:15:38 +0000 @@ -1393,4 +1393,10 @@ 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 End of 5.1 tests === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2011-03-28 13:27:44 +0000 +++ b/mysql-test/t/func_time.test 2011-03-29 11:15:38 +0000 @@ -901,4 +901,10 @@ 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 End of 5.1 tests === modified file 'sql/item_timefunc.h' --- a/sql/item_timefunc.h 2011-02-22 21:03:32 +0000 +++ b/sql/item_timefunc.h 2011-03-29 11:15:38 +0000 @@ -106,8 +106,11 @@ public: { DBUG_ASSERT(fixed == 1); return (double) Item_func_month::val_int(); } String *val_str(String *str) { - str->set(val_int(), &my_charset_bin); - return null_value ? 0 : str; + longlong nr= val_int(); + if (null_value) + return 0; + str->set(nr, &my_charset_bin); + return str; } const char *func_name() const { return "month"; } enum Item_result result_type () const { return INT_RESULT; } --===============4133554305095887858== 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\ # mcm4is73yu268c69 # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 13f3477c0a0db246ef038d7470f70286afc72b28 # timestamp: 2011-03-29 15:15:45 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: sergey.glukhov@stripped\ # kj14pkrflohle6dv # # Begin bundle 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 --===============4133554305095887858==--