maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #10313
Re: Please review MDEV-11134 Assertion `fixed' failed in Item::const_charset_converter(THD*, CHARSET_INFO*, bool, const char*)
Hi Sergei,
On 01/23/2017 07:50 PM, Sergei Golubchik wrote:
> Hi, Alexander!
>
> On Jan 11, Alexander Barkov wrote:
>> commit adf6bb91e349e8983b146cbfcaaa002edff54fe5
>> Author: Alexander Barkov <bar@xxxxxxxxxxx>
>> Date: Wed Jan 11 13:42:52 2017 +0400
>>
>> MDEV-11134 Assertion `fixed' failed in Item::const_charset_converter(THD*, CHARSET_INFO*, bool, const char*)
>>
>> Problem: Item_param::basic_const_item() returned true when fixed==false.
>> This unexpected combination made Item::const_charset_converter() crash
>> on asserts.
>>
>> Fix:
>> - Changing all Item_param::set_xxx() to set "fixed" to true.
>> This fixes the problem.
>> - Additionally, changing all Item_param::set_xxx() to set
>> Item_param::item_type, to avoid duplicate code, and for consistency,
>> to make the code symmetric between different constant types.
>> Before this patch only set_null() set item_type.
>> - Moving Item_param::state and Item_param::item_type from public to private,
>> to make sure easier that these members are in sync with "fixed" and to
>> each other.
>> - Adding a new argument "unsigned_arg" to Item::set_decimal(),
>> and reusing it in two places instead of duplicate code.
>> - Adding a new method Item_param::fix_temporal() and reusing it in two places.
>> - Adding methods is_no_value(), is_long_data_value(), is_int_value(),
>> instead of direct access to Item_param::state.
>
> Looks ok to push.
>
> Stylistic comments:
> * too many fixed= true in all set_* methods. I'd rather added a method
> fix_type(), to be used like
>
> - type= Item::STRING_ITEM
> + fix_type(Item::STRING_ITEM)
>
> and in this method I'd { type=type_arg; fixed= true }.
>
> * names like is_no_value/is_int_value/etc look strange, I'd
> use has_no_value, has_int_value, etc
Thanks! Addressed your suggestions and pushed.
>
> Regards,
> Sergei
> Chief Architect MariaDB
> and security@xxxxxxxxxxx
>
References
-
Please review MDEV-11134 Assertion `fixed' failed in Item::const_charset_converter(THD*, CHARSET_INFO*, bool, const char*)
From: Alexander Barkov, 2016-12-26
-
Re: Please review MDEV-11134 Assertion `fixed' failed in Item::const_charset_converter(THD*, CHARSET_INFO*, bool, const char*)
From: Sergei Golubchik, 2016-12-29
-
Re: Please review MDEV-11134 Assertion `fixed' failed in Item::const_charset_converter(THD*, CHARSET_INFO*, bool, const char*)
From: Alexander Barkov, 2017-01-11
-
Re: Please review MDEV-11134 Assertion `fixed' failed in Item::const_charset_converter(THD*, CHARSET_INFO*, bool, const char*)
From: Sergei Golubchik, 2017-01-23