You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2020/08/07 23:08:18 UTC
[calcite] 01/06: Make SQL parser's SQL-92 reserved words consistent
with actual SQL-92 standard
This is an automated email from the ASF dual-hosted git repository.
jhyde pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
commit ffd7b37d2eace6635a1b21ea3221bd1d3b3e30a7
Author: Julian Hyde <jh...@apache.org>
AuthorDate: Thu Jul 16 14:39:26 2020 -0700
Make SQL parser's SQL-92 reserved words consistent with actual SQL-92 standard
---
.../calcite/sql/parser/SqlAbstractParserImpl.java | 23 +++++++++++++++++++---
.../apache/calcite/sql/parser/SqlParserTest.java | 10 ++++------
2 files changed, 24 insertions(+), 9 deletions(-)
diff --git a/core/src/main/java/org/apache/calcite/sql/parser/SqlAbstractParserImpl.java b/core/src/main/java/org/apache/calcite/sql/parser/SqlAbstractParserImpl.java
index 9ee7bfb..2fa63cc 100644
--- a/core/src/main/java/org/apache/calcite/sql/parser/SqlAbstractParserImpl.java
+++ b/core/src/main/java/org/apache/calcite/sql/parser/SqlAbstractParserImpl.java
@@ -73,6 +73,7 @@ public abstract class SqlAbstractParserImpl {
"BIT_LENGTH",
"BOTH",
"BY",
+ "CALL",
"CASCADE",
"CASCADED",
"CASE",
@@ -89,10 +90,12 @@ public abstract class SqlAbstractParserImpl {
"COLLATION",
"COLUMN",
"COMMIT",
+ "CONDITION",
"CONNECT",
"CONNECTION",
"CONSTRAINT",
"CONSTRAINTS",
+ "CONTAINS",
"CONTINUE",
"CONVERT",
"CORRESPONDING",
@@ -101,6 +104,7 @@ public abstract class SqlAbstractParserImpl {
"CROSS",
"CURRENT",
"CURRENT_DATE",
+ "CURRENT_PATH",
"CURRENT_TIME",
"CURRENT_TIMESTAMP",
"CURRENT_USER",
@@ -118,6 +122,7 @@ public abstract class SqlAbstractParserImpl {
"DESC",
"DESCRIBE",
"DESCRIPTOR",
+ "DETERMINISTIC",
"DIAGNOSTICS",
"DISCONNECT",
"DISTINCT",
@@ -126,7 +131,6 @@ public abstract class SqlAbstractParserImpl {
"DROP",
"ELSE",
"END",
- "END-EXEC",
"ESCAPE",
"EXCEPT",
"EXCEPTION",
@@ -144,6 +148,7 @@ public abstract class SqlAbstractParserImpl {
"FOUND",
"FROM",
"FULL",
+ "FUNCTION",
"GET",
"GLOBAL",
"GO",
@@ -155,10 +160,12 @@ public abstract class SqlAbstractParserImpl {
"IDENTITY",
"IMMEDIATE",
"IN",
+ "INADD",
"INDICATOR",
"INITIALLY",
"INNER",
- "INADD",
+ "INOUT",
+ "INPUT",
"INSENSITIVE",
"INSERT",
"INT",
@@ -202,11 +209,15 @@ public abstract class SqlAbstractParserImpl {
"OPTION",
"OR",
"ORDER",
- "OUTER",
+ "OUT",
"OUTADD",
+ "OUTER",
+ "OUTPUT",
"OVERLAPS",
"PAD",
+ "PARAMETER",
"PARTIAL",
+ "PATH",
"POSITION",
"PRECISION",
"PREPARE",
@@ -221,9 +232,12 @@ public abstract class SqlAbstractParserImpl {
"REFERENCES",
"RELATIVE",
"RESTRICT",
+ "RETURN",
+ "RETURNS",
"REVOKE",
"RIGHT",
"ROLLBACK",
+ "ROUTINE",
"ROWS",
"SCHEMA",
"SCROLL",
@@ -237,10 +251,13 @@ public abstract class SqlAbstractParserImpl {
"SMALLINT",
"SOME",
"SPACE",
+ "SPECIFIC",
"SQL",
"SQLCODE",
"SQLERROR",
+ "SQLEXCEPTION",
"SQLSTATE",
+ "SQLWARNING",
"SUBSTRING",
"SUM",
"SYSTEM_USER",
diff --git a/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java b/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
index 3c4bf76..68be810 100644
--- a/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
+++ b/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
@@ -7507,12 +7507,10 @@ public class SqlParserTest {
if (metadata.isKeyword(s) && metadata.isReservedWord(s)) {
reservedKeywords.add(s);
}
- if (false) {
- // Cannot enable this test yet, because the parser's list of SQL:92
- // reserved words is not consistent with keywords("92").
- assertThat(s, metadata.isSql92ReservedWord(s),
- is(keywords92.contains(s)));
- }
+ // Check that the parser's list of SQL:92
+ // reserved words is consistent with keywords("92").
+ assertThat(s, metadata.isSql92ReservedWord(s),
+ is(keywords92.contains(s)));
}
final String reason = "The parser has at least one new reserved keyword. "