Bug #103556 | CAST does not accept VARCHAR in JSON_VALUE index example | ||
---|---|---|---|
Submitted: | 3 May 2021 7:20 | Modified: | 5 May 2021 18:02 |
Reporter: | Jens Hatlak | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Documentation | Severity: | S3 (Non-critical) |
Version: | 8.0 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[3 May 2021 7:20]
Jens Hatlak
[3 May 2021 7:39]
MySQL Verification Team
Hello Jens Hatlak, Thank you for the report and feedback. regards, Umesh
[3 May 2021 7:40]
MySQL Verification Team
- 8.0.24 bin/mysql -uroot -S /tmp/mysql_ushastry.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.24 MySQL Community Server - GPL Copyright (c) 2000, 2021, Oracle and/or its affiliates. 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> create database test; Query OK, 1 row affected (0.02 sec) mysql> use test Database changed mysql> CREATE TABLE inventory( -> items JSON, -> INDEX i1 ( (JSON_VALUE(items, '$.name' RETURNING VARCHAR(50))) ), -> INDEX i2 ( (JSON_VALUE(items, '$.price' RETURNING DECIMAL(5,2))) ), -> INDEX i3 ( (JSON_VALUE(items, '$.quantity' RETURNING UNSIGNED)) ) -> ); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR(50))) ), INDEX i2 ( (JSON_VALUE(items, '$.price' RETURNING DECIMAL(5' at line 3 mysql> mysql> CREATE TABLE inventory( items JSON, INDEX i1 ( (JSON_VALUE(items, '$.name' RETURNING CHAR(50))) ), INDEX i2 ( (JSON_VALUE(items, '$.price' RETURNING DECIMAL(5,2))) ), INDEX i3 ( (JSON_VALUE(items, '$.quantity' RETURNING UNSIGNED)) ) ); Query OK, 0 rows affected (0.10 sec) mysql> show create table inventory\G *************************** 1. row *************************** Table: inventory Create Table: CREATE TABLE `inventory` ( `items` json DEFAULT NULL, KEY `i1` ((json_value(`items`, _utf8mb4'$.name' returning char(50)))), KEY `i2` ((json_value(`items`, _utf8mb4'$.price' returning decimal(5, 2)))), KEY `i3` ((json_value(`items`, _utf8mb4'$.quantity' returning unsigned))) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec)
[5 May 2021 18:03]
Jon Stephens
Fixed in mysql-relnotes rev 22495. Closed.