Bug #113541 Regexp validation failure on empty table
Submitted: 3 Jan 2024 9:17 Modified: 3 Jan 2024 9:47
Reporter: Daniël van Eeden (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: DML Severity:S3 (Non-critical)
Version:8.2.0 OS:Any
Assigned to: CPU Architecture:Any
Tags: REGEXP, regular expression, regular expressions

[3 Jan 2024 9:17] Daniël van Eeden
Description:
A SELECT statement with a REGEXP on an empty table might succeed even if the regexp isn't valid.

How to repeat:
sql> CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, data VARCHAR(255));
Query OK, 0 rows affected (0.0598 sec)

sql> SELECT data FROM t1 WHERE data REGEXP '[\[,]23[\],]' LIMIT 1;
Empty set (0.0011 sec)

sql> INSERT INTO t1 VALUES (1, '');
Query OK, 1 row affected (0.0187 sec)

sql> SELECT data FROM t1 WHERE data REGEXP '[\[,]23[\],]' LIMIT 1;
ERROR: 3696 (HY000): The regular expression contains an unclosed bracket expression.

Suggested fix:
Make sure the regexp is also validated when the table is empty.
[3 Jan 2024 9:47] MySQL Verification Team
Hello Daniël,

Thank you for the report and feedback.

regards,
Umesh