diff --git a/mysql-test/main/func_regexp_pcre.result b/mysql-test/main/func_regexp_pcre.result index fd255ec5e8c..5443450d5a1 100644 --- a/mysql-test/main/func_regexp_pcre.result +++ b/mysql-test/main/func_regexp_pcre.result @@ -819,8 +819,11 @@ SET default_regex_flags=DEFAULT; SELECT 'Aq' RLIKE 'A\\q'; ERROR 42000: Regex error 'unrecognized character follows \ at offset 2' SET default_regex_flags='EXTRA'; -SELECT 'Aq' RLIKE 'A\\q'; -ERROR 42000: Regex error 'unrecognized character follows \ at offset 2' +SELECT 'A' RLIKE 'B'; +'A' RLIKE 'B' +0 +Warnings: +Warning 1105 PCRE2 doesn't support the EXTRA flag. Ignored. SET default_regex_flags=DEFAULT; SELECT 'a\nb\nc' RLIKE '^b$'; 'a\nb\nc' RLIKE '^b$' diff --git a/mysql-test/main/func_regexp_pcre.test b/mysql-test/main/func_regexp_pcre.test index 01419e24fcd..32ca12876a4 100644 --- a/mysql-test/main/func_regexp_pcre.test +++ b/mysql-test/main/func_regexp_pcre.test @@ -384,9 +384,10 @@ SET default_regex_flags=DEFAULT; --error ER_REGEXP_ERROR SELECT 'Aq' RLIKE 'A\\q'; + SET default_regex_flags='EXTRA'; ---error ER_REGEXP_ERROR -SELECT 'Aq' RLIKE 'A\\q'; +SELECT 'A' RLIKE 'B'; + SET default_regex_flags=DEFAULT; SELECT 'a\nb\nc' RLIKE '^b$'; diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 0d035d002c4..de476042a80 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -5992,6 +5992,11 @@ static Sys_var_set Sys_log_disabled_statements( DEFAULT(LOG_DISABLE_SP), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_has_super)); +#define NOT_SUPPORTED_YET -2 +#ifndef PCRE2_EXTENDED_MORE +#define PCRE2_EXTENDED_MORE NOT_SUPPORTED_YET +#endif + static const char *default_regex_flags_names[]= { "DOTALL", // (?s) . matches anything including NL @@ -6024,9 +6029,11 @@ int default_regex_flags_pcre(THD *thd) { if (default_regex_flags_to_pcre[i] < 0) { + const char *msg= default_regex_flags_to_pcre[i] == NOT_SUPPORTED_YET + ? "Your version of PCRE2 does not support the %s flag. Ignored." + : "PCRE2 doesn't support the %s flag. Ignored."; push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, - ER_UNKNOWN_ERROR, - "PCRE2 doens't support the EXTRA flag. Ignored."); + ER_UNKNOWN_ERROR, msg, default_regex_flags_names[i]); continue; } res|= default_regex_flags_to_pcre[i];