mirror of
https://github.com/MariaDB/server.git
synced 2025-02-05 13:22:17 +01:00
dc25d600ee
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".
30 lines
567 B
Text
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 #
|