From: Tor Didriksen Date: November 16 2010 12:08pm Subject: bzr commit into mysql-5.5-bugteam branch (tor.didriksen:3123) Bug#58137 List-Archive: http://lists.mysql.com/commits/124022 X-Bug: 58137 Message-Id: <20101116120829.E1DE737A1@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1193514780663608406==" --===============1193514780663608406== 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 3123 Tor Didriksen 2010-11-16 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-16 12:08:24 +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-16 12:08:24 +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-16 12:08:24 +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) --===============1193514780663608406== 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\ # 6mhui8owhuk93gmt # target_branch: file:///export/home/didrik/repo/5.5-bugteam-bug58137/ # testament_sha1: ea7dc11867c3d3b25006417267c42ed76e5cf0fb # timestamp: 2010-11-16 13:08:29 +0100 # base_revision_id: davi.arnaut@stripped\ # pkjw3uahq86egi9g # # Begin bundle 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 --===============1193514780663608406==--