| Bug #93630 | regexp_substr does not work in virtual column | ||
|---|---|---|---|
| Submitted: | 16 Dec 2018 15:10 | Modified: | 16 Dec 2018 21:35 |
| Reporter: | sinai yoktan | Email Updates: | |
| Status: | Not a Bug | Impact on me: | |
| Category: | MySQL Server: DML | Severity: | S3 (Non-critical) |
| Version: | 8.0.11 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | regex virtual column | ||
[16 Dec 2018 15:29]
MySQL Verification Team
Thank you for the bug report. Please paste here the result you get.
C:\DBS>8.0\bin\mysql -uroot -p
Enter password: **********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.13 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> USE test
Database changed
mysql> CREATE TABLE `test_table` (
-> `id` int(11) NOT NULL,
-> `test` varchar(45) GENERATED ALWAYS AS (regexp_substr('X.Y.Z','[^.]+',1,2)) VIRTUAL
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Query OK, 0 rows affected (0.10 sec)
mysql> INSERT INTO test_table(id) VALUES (1);
Query OK, 1 row affected (0.03 sec)
mysql> SELECT * FROM test_table;
+----+------+
| id | test |
+----+------+
| 1 | Y |
+----+------+
1 row in set (0.00 sec)
mysql>
[16 Dec 2018 16:22]
sinai yoktan
i was able to reproduce the bug on mysql version 8.0.11 via docker, but not on mysql 8.0.13 (via docker) it appears that this issue was resolved, thanks
[16 Dec 2018 21:35]
MySQL Verification Team
Thank you for the feedback.

Description: virtual column that is created using the regexp_substr function returns 0 instead of the expected value How to repeat: CREATE TABLE `test_table` ( `id` int(11) NOT NULL, `test` varchar(45) GENERATED ALWAYS AS (regexp_substr('X.Y.Z','[^.]+',1,2)) VIRTUAL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; INSERT INTO test_table(id) VALUES (1); SELECT * FROM test_table;