On 2010-10-18 17:28, Alexey Kopytov wrote:
> Hi Tor,
>
> On 18.10.10 17:13, Tor Didriksen wrote:
>> #At file:///export/home/didrik/repo/5.5-bugteam-bug57203/ based on
>> revid:li-bing.song@stripped
>>
>> 3247 Tor Didriksen 2010-10-18
>> Bug #57203 Assertion `field_length<= 255' failed.
>>
>> After the fix for
>> Bug #55077 Assertion failed: width> 0&& to != ((void *)0),
>> file .\dtoa.c
>> we no longer try to allocate a string of length 'field_length'
>> so the asserts can be removed.
>
> We still assume that we have at least 'field_length' bytes allocated
> when 'zerofill' is true, see Field_num::prepend_zeros().
>
> So at the very least you should just relax the assertion to "!zerofill
> || field_length <= MAX_FIELD_CHARLENGTH" rather than remove it.
>
aha, thanks.
> [skip]
>> === modified file 'mysql-test/t/select.test'
>> --- a/mysql-test/t/select.test 2010-09-09 15:00:33 +0000
>> +++ b/mysql-test/t/select.test 2010-10-18 13:13:09 +0000
>> @@ -4147,3 +4147,18 @@ DROP VIEW view_t1;
>> DROP TABLE t1;
>>
>> --echo # End of test BUG#54515
>> +
>> +--echo #
>> +--echo # Bug #57203 Assertion `field_length<= 255' failed.
>> +--echo #
>> +
>> +SELECT avg(distinct(-31872)) as foo;
>> +
>
> Why have you added the above line?
an even simpler test case, from Shane Bester today.
-- didrik
>
>> +CREATE table t1(a text) engine=myisam;
>> +INSERT INTO t1 VALUES (''), ('');
>> +SELECT avg(distinct(t1.a)) FROM t1, t1 t2
>> +GROUP BY t2.a ORDER BY t1.a;
>> +
>> +DROP TABLE t1;
>> +
>> +--echo # End of test BUG#57203
>>