From: Tor Didriksen Date: November 17 2010 3:39pm Subject: bzr commit into mysql-5.5-bugteam branch (tor.didriksen:3128) Bug#58137 List-Archive: http://lists.mysql.com/commits/124170 X-Bug: 58137 Message-Id: <20101117153941.5738F37A1@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0160503347976493786==" --===============0160503347976493786== 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 15:39:35 +0000 @@ -607,3 +607,12 @@ 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 15:39:35 +0000 @@ -464,3 +464,11 @@ 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: +--echo # 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 15:39:35 +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) --===============0160503347976493786== 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\ # p22s60xx4t8z6zuy # target_branch: file:///export/home/didrik/repo/5.5-bugteam-bug58137/ # testament_sha1: 0e59aca1a0187b040efc5e4ab6b66904fc179d2a # timestamp: 2010-11-17 16:39:41 +0100 # base_revision_id: davi.arnaut@stripped\ # l07cze14rkfwghug # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWaNvke8AA4bfgEBweff//37n 36D////wYAdPey31sHr27ilTsFuu963Wq9c4GUmjQAUyZo00yNJ6R6IDCBiGjIZBoGU0lHpqe1R7 VPamU8JqZG1Gg2UANBoAAPUDjJk0MRiaMAjATCAMBNNGmRoBhJCQE1PUwEniGQnk0RpoBkyB6mhk 000BFJEyjxUf6jU2iNT1NPCmnqeo0A0AAAAASSTE0aARoR5FNDCT9RNMhiNGTR6gDJo0MHVamEqB HJJfD6Bt4Dyc3LUUSNzQLsKwW2UpSzEAwENtMFHC1xUrjatttMSiNtHTwQlaQGRcE2uv6+/c3sYL pLOBZVsVxMMmVEVv2B4+FFg2jGO7LQz0SiIKvwhdMYvDYiuLOYaQ2ablZSca29RoLxepIW3NFsuC bdULza8LLMKyqMk8dB4kF5ADjXmIwIAwD1l7jgpV9uHJUMcSyoTk4dT6cq0058gpMJcu2MMzCxJg w5E6LS0urYykbyDFlaZ40oIYgjoaaLArc9NO/TjDBuH8gHNnTm3+sNFagp7m5PRxLuKrEZHGFxsm R2N0qKLEBULaJttCynplzF0uBqQNHInGwUPeG/BvGta/zQTqSZCdAOJt0UycMUovKCFRQVVKonUV eiLIlQpsOaZWIlAHtiMmOv2yQjuYHXnCs6MIoU0KEf7MiAvZPSjWuOXDJPF1oxCky89+6pcLBFos jYheo5PXUnnDoMVg8vXi0N2j0EC8ysEiJ54CiI3VG0qN0qHkCnh0XnEUYba459MEo20GIO/zBdJE gcjdkt6qwEdEqWVqxUJmZIlRUSoREZPSC5mDSKwoN0EkhBEAeSrUiDbi+Ga2UU2ONwkeMkJjPQxe 3E6iBc9GcivCotWeL5Gab6JGYVWVFZWQiSwnlL36yZyo8ARFffC60ExpQCIJsrRX5F2XGBGkOgi7 kOiJXgVmlRioHQRiYcYv0jDEEXmMG20YJVKv1ghwdNKlMMngbJI4dfJKeRWYI3GRWGEJNbmzcU6/ wjBdtlat0LFsVY9wiBqXHKZjnE8I1MHXNVsDHtrrejG68oKzFW0Un1KC5HNc8ai8twrE8xfAV+RC 4d4Hl2DoTyhSVmgjffC+2NyrVA9QmWGmAiNr4YGtMUEq092VzaiuVZvXk9FtQWqHLjXpk1SsytKa QQEzwyHp0WcDnvpSpoakPORJODmG33rX1dpjiq0yzF5U1Xj9KcHVBSTJHtD9vn6jyElYZJgY7w+M YEWUCDtpg6Jrh+kdZY54BTLuqKTjRYP3hcKDv2F+saCR+R8TZEkTCRA+Ua6bj5W5/P8/QMLetUy1 YXWekRL06XFM2FGMZ+2YD4r2lC61rK4NyPZN1H3uoCmle6iAkLoV86mowq/Pg86+GECLUGxf0nk3 HY4idNjhPFuwUH0KsUtkWRsa02Bn1QBIaCBqSNA1mU+2Wi3tC55wFXiZfCDGOHwyMh4/sNRHeXOZ ciw8QUje/Kst4HWbarlb3XC3Egk9kBfvURXoC7VR7xbVtmppjiXP3L6UaaTPAVnAYqRMlXUjgt5G ostrS2k8lh6y/DSnMS7Qhmt9gI2yVvf1bwbm5CKvMmM7FeP3wZpnDePew5h3SoruXmqwZNaKkUaV YcjnVQeEwJnYA6VQIDD8N5ZjDEjFgGCxIam6kPm/vTORbJNcC6BOUEcbVvbmujs7vLGllVZxBUIZ oSGSeDPvoL+Y2+AwPOMRfAwmuuMsNRhG4VgZRM4xgS+xsafO427pUWnGTUOiCmlUu6fWp7UMO+U5 xaVG+NocB+ZSx8isnFg13bxcWQqUw7xgMBt0WdAW815V0JVakE4zXuBk6zlzieDri0cYcCWcRiDX ariR0PK1lekazsOKRZQz35GnDKC7PaB5lwH5axzG51GcUC5MXZD0Tg699ra8yuSzGHVagpGG/XJ/ esknUsbYyoEAzOUrCderdNXKTlQjApxFx07KACvNOwXAxENbFbAmMldNos1FAVRbqVxHiTmIzrat yWqEzDXEygSapWK5IuJCgwohXEy3OhAGZMyGW1RXVsoX2AxKeU0tmpm8TNx6AGaGrl4TpHpiRMWP 6gSGhc8yhT8GMvIrdvjBcBGK04smAgE5xLtYRd3X6rkb3lmOi3CtqmGmUDIt2SF7dbVRUQqaZCZc 3kTZ2vConokulTV00W5046KcwzTBWqWTO7CoRm+e2YBl6g1mgkyufOBYDjOCouyRCZRtNSryIiIk Fg5jAPYmBUCZDaaXl1GVHcnJyflbQYijxEMpYlQp+YTSZ8sRcwVmgMBIeBPtqnEDVITHrfPNgGT8 qqW20ywHkBk/PeFOuNqCt0brmKy1XdWrpQ2pN2d80zjIS6jMuex50N0WNOK93ttVLsGHuOd3Q4Bm eMvf8yu4XK5GbsEx69zob18YkzkukEoY2Ny0FzQ00r0Cc7XgxqSd2oS3/i7kinChIUbfI94= --===============0160503347976493786==--