Hi, Alexander! On Dec 26, Alexander Barkov wrote:
Hello Sergei,
can you please review a fix for MDEV-11134.
I made it the easiest way, just fixed the assert to cover this special case when Item_param::safe_charset_converter() is called from mysql_prepare_create_table().
I thought that normally basic const items are always fixed. So, Item_param is an exception? It's basic const, but not fixed?
But perhaps it can be done in different ways:
1. Do call fix_fields() - Fix mysql_prepare_create_table() to call fix_fields. - Fix Item_param::cleanup() not to set fixed to false.
or
2. Sync Item_param::fixed with Item_param::basic_const_item() - Fix Item_param::set_xxx() to set both state=XXX_VALUE and fixed=true. - Fix Item_param::cleanup() not to set fixed to false (like in #1)
Yes, I think it's reasonable. It'll make Item_param behave as other basic constants do. Regards, Sergei Chief Architect MariaDB and security@mariadb.org