| Bug #119904 | In MySQL 9.6.0, Reserved is set 0 for SETS | ||
|---|---|---|---|
| Submitted: | 11 Feb 19:27 | Modified: | 23 Apr 10:34 |
| Reporter: | Sabalesh Mahajan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Parser | Severity: | S3 (Non-critical) |
| Version: | 9.6.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[11 Feb 19:29]
Sabalesh Mahajan
Small correction, 1 Reserve instead of 2 reserve. 1 Reserve and 1 Keyword is added.
[17 Feb 7:49]
Roy Lyseng
Thank you for the bug report. According to the SQL standard, SETS should be a non-reserved word.
[23 Apr 10:34]
Edward Gilmore
Posted by developer: Added the following note to the MySQL Server 9.7.0 release notes: The SETS keyword was not included in the parser's identifier keyword lists, preventing its use as an unquoted identifier.
[23 Apr 20:06]
Evan Elias
There are at least six other mistakes in information_schema.keywords.reserved in recent MySQL releases; see https://bugs.mysql.com/bug.php?id=114874 from a year ago. As of 9.7.0 these keywords are still treated as reserved by the server's grammar, but they are incorrectly listed as non-reserved in information_schema.keywords: CUBE (8.0+) MANUAL (8.4+) PARALLEL (8.4+) QUALIFY (8.4+) TABLESAMPLE (8.4+) EXTERNAL (9.4+)

Description: In MySQL 9.6.0, 2 new reserved keywords were added and one of them is set to 0 in information_schema.keywords SETS VALIDATE Reserved is set to 0 for SETS instead of 1. How to repeat: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 9.6.0 Copyright (c) 2000, 2026, 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> SELECT * FROM information_schema.keywords where word IN ('SETS'); +------+----------+ | WORD | RESERVED | +------+----------+ | SETS | 0 | +------+----------+ 1 row in set (0.003 sec) Test ---------- mysql> create table sets (col1 int); 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 'sets (col1 int)' at line 1 Suggested fix: Fix ------------------- Set reserved = 1 in the Information_schema.keywords