-
Catalin Besleaga authored
The UUID function returns its value in the UTF8MB3 character set. Since the default character set has changed to UTF8MB4 in 8.0, a conversion needs to happen, so Item_func_uuid is replaced by an Item_func_conv_charset which will call Item_func_uuid::val_str. But, since Item_func_uuid has const_item_cache=true by default(it is set by Item_func), the calculated value gets cached and returned for each row. Solution is to override const_item() to return false so that Item_func_conv_charset sets use_cached_value to false in the constructor and a unique uuid is calculated for each row.
Catalin Besleaga authoredThe UUID function returns its value in the UTF8MB3 character set. Since the default character set has changed to UTF8MB4 in 8.0, a conversion needs to happen, so Item_func_uuid is replaced by an Item_func_conv_charset which will call Item_func_uuid::val_str. But, since Item_func_uuid has const_item_cache=true by default(it is set by Item_func), the calculated value gets cached and returned for each row. Solution is to override const_item() to return false so that Item_func_conv_charset sets use_cached_value to false in the constructor and a unique uuid is calculated for each row.
Loading