From: Sergey Glukhov Date: March 30 2011 7:00am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3642) Bug#11766126 List-Archive: http://lists.mysql.com/commits/134204 X-Bug: 11766126 Message-Id: <201103300702.p2U72PvU003237@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1156057203926862648==" --===============1156057203926862648== 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:jon.hauglid@stripped 3642 Sergey Glukhov 2011-03-30 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-30 07:00:41 +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-30 07:00:41 +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-30 07:00:41 +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; } --===============1156057203926862648== 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\ # 8sniyg6fdtrfxlq7 # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: e2507b68b891cba5f35c9f22bb4bcfa2fb67cdaa # timestamp: 2011-03-30 11:00:45 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: jon.hauglid@stripped\ # qskn0p4z4mk33v5c # # Begin bundle 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 m5z/i7kinChIHbVr0wA= --===============1156057203926862648==--