maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #09388
Re: Please review MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
Hi, Alexander!
Looks very good!
Just one comment - instead of a special treatment for MYSQL_TYPE_NULL, I
would try to set decimal=0 in Item_null. It already sets max_length=0,
and I cannot think of any reason why we might want decimal to be 31 for it.
On Mar 17, Alexander Barkov wrote:
> Hi Sergei,
>
> It appeared to be very easy to fix all hybrid functions to use the same
> attribute aggregation code, and therefore get rid of duplicate
> implementations for Item_func_case_abbreviation2 and
> Item_func_case.
>
> This patch fixes:
> - The original problem reported in MDEV-9653
>
> - An additional problem, see new comments about COALESCE and IF
> returning 1.1000000000000000000000000000000 instead of just 1.1
>
> - A new problem that I found:
> MDEV-9752 Wrong data type for COALEASCE(?,1) in prepared statements
>
>
> Note, the patch does not cover LEAST/GREATEST. They have another
> version of their own aggregation code. I don't want to touch them
> in this fix. Let's do them separately.
>
> Note, I also removed Item_func_case::agg_str_lengths().
> It was a dead code.
Regards,
Sergei
Chief Architect MariaDB
and security@xxxxxxxxxxx
References
-
Please review MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
From: Alexander Barkov, 2016-03-16
-
Re: Please review MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
From: Sergei Golubchik, 2016-03-16
-
Re: Please review MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
From: Alexander Barkov, 2016-03-17
-
Re: Please review MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
From: Sergei Golubchik, 2016-03-17
-
Re: Please review MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
From: Alexander Barkov, 2016-03-17
-
Re: Please review MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
From: Alexander Barkov, 2016-03-17