Skip to content
  • Martin Hansson's avatar
    95916498
    Bug#29308212: REGEXP_REPLACE DOES NOT CONVERT RESULT · 95916498
    Martin Hansson authored
    CHARACTER SET
    
    This is the 8.0 version of the fix.
    
    There were two problems:
    
    1) The function REGEXP_REPLACE() and REGEXP_SUBSTR() didn't
    convert the character set if their respective results and
    plainly returned whatever ICU produced (i.e. UTF-16 with big
    or little endian depending on the CPU)
    
    2) The engine was using an inconsistent and inefficient
    interface, sometimes returning std::string& and sometimes
    String*.
    
    Fixed by 1) converting the result back to whatever
    agg_arg_charsets_for_comparison() dictates, 2) Only returning
    indexes for Substr(), so that we can convert when called for.
    
    Change-Id: Icf705f75079dee580580676dba62aa142b764e27
    95916498
    Bug#29308212: REGEXP_REPLACE DOES NOT CONVERT RESULT
    Martin Hansson authored
    CHARACTER SET
    
    This is the 8.0 version of the fix.
    
    There were two problems:
    
    1) The function REGEXP_REPLACE() and REGEXP_SUBSTR() didn't
    convert the character set if their respective results and
    plainly returned whatever ICU produced (i.e. UTF-16 with big
    or little endian depending on the CPU)
    
    2) The engine was using an inconsistent and inefficient
    interface, sometimes returning std::string& and sometimes
    String*.
    
    Fixed by 1) converting the result back to whatever
    agg_arg_charsets_for_comparison() dictates, 2) Only returning
    indexes for Substr(), so that we can convert when called for.
    
    Change-Id: Icf705f75079dee580580676dba62aa142b764e27
Loading