• Alexander Barkov's avatar
    MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt · dc25d600
    Alexander Barkov authored
    Regexp_processor_pcre::fix_owner() called Regexp_processor_pcre::compile(),
    which could fail on the regex syntax error in the pattern and put
    an error into the diagnostics area. However, the callers:
      - Item_func_regex::fix_length_and_dec()
      - Item_func_regexp_instr::fix_length_and_dec()
    still returned "false" in such cases, which made the code
    crash later inside Diagnostics_area::set_ok_status().
    
    Fix:
    
    - Change the return type of fix_onwer() from "void" to "bool"
      and return "true" whenever an error is put to the DA
      (e.g. on the syntax error in the pattern).
    - Fixing fix_length_and_dec() of the mentioned Item_func_xxx
      classes to return "true" if fix_onwer() returned "true".
    dc25d600
func_regexp.test 567 Bytes