From: Tor Didriksen Date: November 17 2010 11:53am Subject: bzr commit into mysql-5.5-bugteam branch (tor.didriksen:3128) Bug#58137 List-Archive: http://lists.mysql.com/commits/124143 X-Bug: 58137 Message-Id: <20101117115328.15EB537A1@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============9083897018953246821==" --===============9083897018953246821== 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-bugteam-bug58137/ based on revid:davi.arnaut@stripped 3128 Tor Didriksen 2010-11-17 Bug #58137 char(0) column cause: my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed @ mysql-test/r/func_math.result Add test for Bug #58137 @ mysql-test/t/func_math.test Add test for Bug #58137 @ sql/field.cc Skip calling my_gcvt() if we are trying to insert a double into a char(0) column. modified: mysql-test/r/func_math.result mysql-test/t/func_math.test sql/field.cc === modified file 'mysql-test/r/func_math.result' --- a/mysql-test/r/func_math.result 2010-10-08 09:52:09 +0000 +++ b/mysql-test/r/func_math.result 2010-11-17 11:53:22 +0000 @@ -607,3 +607,11 @@ SELECT floor(log10(format(concat_ws(5445 as foo; foo 2 +# +# Bug #58137 char(0) column cause: my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed +# +CREATE TABLE t1(a char(0)); +INSERT INTO t1 (SELECT -pi()); +Warnings: +Warning 1265 Data truncated for column 'a' at row 1 +DROP TABLE t1; === modified file 'mysql-test/t/func_math.test' --- a/mysql-test/t/func_math.test 2010-10-08 09:52:09 +0000 +++ b/mysql-test/t/func_math.test 2010-11-17 11:53:22 +0000 @@ -464,3 +464,10 @@ SELECT -9223372036854775808 MOD -1; --echo # SELECT floor(log10(format(concat_ws(5445796E25, 5306463, 30837), -358821))) as foo; + +--echo # +--echo # Bug #58137 char(0) column cause: my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed +--echo # +CREATE TABLE t1(a char(0)); +INSERT INTO t1 (SELECT -pi()); +DROP TABLE t1; === modified file 'sql/field.cc' --- a/sql/field.cc 2010-10-29 09:35:07 +0000 +++ b/sql/field.cc 2010-11-17 11:53:22 +0000 @@ -6327,10 +6327,13 @@ int Field_str::store(double nr) ASSERT_COLUMN_MARKED_FOR_WRITE; char buff[DOUBLE_TO_STRING_CONVERSION_BUFFER_SIZE]; uint local_char_length= field_length / charset()->mbmaxlen; - size_t length; - my_bool error; + size_t length= 0; + my_bool error= (local_char_length == 0); + + // my_gcvt() requires width > 0, and we may have a CHAR(0) column. + if (!error) + length= my_gcvt(nr, MY_GCVT_ARG_DOUBLE, local_char_length, buff, &error); - length= my_gcvt(nr, MY_GCVT_ARG_DOUBLE, local_char_length, buff, &error); if (error) { if (table->in_use->abort_on_warning) --===============9083897018953246821== 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\ # 7o3j8cy0q35r8s37 # target_branch: file:///export/home/didrik/repo/5.5-bugteam-bug58137/ # testament_sha1: 5c60092d6e892119467ea18d1b85cadf0c4900a2 # timestamp: 2010-11-17 12:53:27 +0100 # base_revision_id: davi.arnaut@stripped\ # l07cze14rkfwghug # # Begin bundle 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 --===============9083897018953246821==--