Skip to content
  • Catalin Besleaga's avatar
    d332cd8c
    Bug#26395601 DIFFERENT BEHAVIOR BETWEEN CLASSIC AND NODE SESSION WITH UUID() · d332cd8c
    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.
    d332cd8c
    Bug#26395601 DIFFERENT BEHAVIOR BETWEEN CLASSIC AND NODE SESSION WITH UUID()
    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.
Loading