mariadb/mysql-test/suite/vcol/t/func_regexp.test
Alexander Barkov dc25d600ee MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt
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".
2024-04-29 11:08:07 +04:00

30 lines
567 B
Text

--source inc/vcol_init_vars.pre
--source inc/vcol_cleanup.inc
--echo #
--echo # Start of 10.5 tests
--echo #
--echo #
--echo # MDEV-21058 CREATE TABLE with generated column and RLIKE results in sigabrt
--echo #
--error ER_REGEXP_ERROR
CREATE TABLE t1 (c0 INT AS(('' RLIKE '[')));
--error ER_REGEXP_ERROR
CREATE TABLE t1 (c0 INT AS(REGEXP_INSTR('','[')));
CREATE TABLE t1
(
c0 INT,
c1 INT AS(('' RLIKE NULL)),
c2 INT AS(REGEXP_INSTR('',NULL))
);
INSERT INTO t1 (c0) VALUES (0);
SELECT * FROM t1;
DROP TABLE t1;
--echo #
--echo # End of 10.5 tests
--echo #