• Alexander Barkov's avatar
    MDEV-13118 Wrong results with LOWER and UPPER and subquery · ab58493d
    Alexander Barkov authored
    This problem is similar to MDEV-10306.
    
    1. Fixing Item_str_conv::val_str(String *str) to return the result in "str",
       and to use tmp_value only as a temporary buffer for args[0]->val_str().
       The new code version now guarantees that the result is always returned in
       "str". The trick with copy_if_not_alloced() is not used any more.
    
    2. The change #1 revealed the same problem in SUBSTRING_INDEX(),
       so some tests with combinations of UPPER()/LOWER() and SUBSTRING_INDEX()
       started to fail. Fixing Item_func_substr_index::val_str() the same way,
       to return the result in "str" and use tmp_value as a temporary buffer
       for args[0]->val_str().
    ab58493d
item_strfunc.cc 138 KB