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 2017/04/25 03:53:43 UTC

[2/3] calcite git commit: [CALCITE-1759] Add SQL:2014 reserved words to parser

[CALCITE-1759] Add SQL:2014 reserved words to parser

Between SQL:2011 and SQL:2014, the following keywords were added:
ARRAY_MAX_CARDINALITY, BEGIN_FRAME, BEGIN_PARTITION, CLASSIFIER,
CURRENT_ROW, DEFINE, EMPTY, END_FRAME, END_PARTITION, FRAME_ROW, GROUPS,
INITIAL, MATCHES, MATCH_NUMBER, MATCH_RECOGNIZE, OMIT, ONE, PATTERN,
PER, PERCENT, PERIOD, PORTION, RUNNING, SEEK, SHOW, SKIP, SUBSET,
SYSTEM_TIME, VALUE_OF. All of these are now reserved in Calcite; some of
them were reserved already.

SQL:2014 removed: DAYS, FOREVER, HOURS, KEEP, MAX_CARDINALITY, MINUTES,
SECONDS. None of these were ever reserved in Calcite.

The following became reserved in SQL:2011, and are now reserved in
Calcite: LAG, LEAG, LIKE_REGEX, NTH_VALUE, NTILE, OCCURRENCES_REGEX,
POSITION_REGEX, SUBSTRING_REGEX, TRANSLATE_REGEX, TRIM_ARRAY, TRUNCATE,
VERSIONING.

Sort the reserved word list in the parser.


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/d97c14c5
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/d97c14c5
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/d97c14c5

Branch: refs/heads/master
Commit: d97c14c5dd62ed55da4d771e585973213affcb6e
Parents: aed5bca
Author: Hongbin Ma <ma...@apache.org>
Authored: Sun Apr 16 22:14:17 2017 +0800
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Apr 24 18:23:24 2017 -0700

----------------------------------------------------------------------
 core/src/main/codegen/templates/Parser.jj       |  78 +-
 .../calcite/sql/parser/SqlParserTest.java       | 904 ++++++++++---------
 .../apache/calcite/sql/test/SqlAdvisorTest.java |   4 +
 .../java/org/apache/calcite/test/JdbcTest.java  |   2 +-
 .../calcite/test/SqlToRelConverterTest.java     |   2 +-
 .../apache/calcite/test/SqlValidatorTest.java   |  18 +-
 .../calcite/test/SqlToRelConverterTest.xml      |   2 +-
 .../apache/calcite/adapter/file/SqlTest.java    |   2 +-
 site/_docs/reference.md                         |  45 +-
 9 files changed, 588 insertions(+), 469 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/d97c14c5/core/src/main/codegen/templates/Parser.jj
----------------------------------------------------------------------
diff --git a/core/src/main/codegen/templates/Parser.jj b/core/src/main/codegen/templates/Parser.jj
index 9b04cb5..64d5936 100644
--- a/core/src/main/codegen/templates/Parser.jj
+++ b/core/src/main/codegen/templates/Parser.jj
@@ -855,7 +855,7 @@ void Arg0(List list, ExprContext exprContext) :
         name = SimpleIdentifier() <NAMED_ARGUMENT_ASSIGNMENT>
     ]
     (
-        <DEFAULT_KW> {
+        <DEFAULT_> {
             e = SqlStdOperatorTable.DEFAULT.createCall(getPos());
         }
     |
@@ -883,7 +883,7 @@ void Arg(List list, ExprContext exprContext) :
         name = SimpleIdentifier() <NAMED_ARGUMENT_ASSIGNMENT>
     ]
     (
-        <DEFAULT_KW> {
+        <DEFAULT_> {
             e = SqlStdOperatorTable.DEFAULT.createCall(getPos());
         }
     |
@@ -5132,6 +5132,8 @@ SqlIdentifier ReservedFunctionName() :
         | <FUSION>
         | <GROUPING>
         | <HOUR>
+        | <LAG>
+        | <LEAD>
         | <LAST_VALUE>
         | <LN>
         | <LOCALTIME>
@@ -5142,6 +5144,7 @@ SqlIdentifier ReservedFunctionName() :
         | <MINUTE>
         | <MOD>
         | <MONTH>
+        | <NTILE>
         | <NULLIF>
         | <OCTET_LENGTH>
         | <PERCENT_RANK>
@@ -5156,6 +5159,7 @@ SqlIdentifier ReservedFunctionName() :
         | <STDDEV_SAMP>
         | <SUM>
         | <UPPER>
+        | <TRUNCATE>
         | <USER>
         | <VAR_POP>
         | <VAR_SAMP>
@@ -5238,6 +5242,9 @@ SqlNode JdbcFunctionCall() :
             // INSERT is a reserved word, but we need to handle {fn insert}
             <INSERT> { name = unquotedIdentifier(); }
         |
+            // TRUNCATE is a reserved word, but we need to handle {fn truncate}
+            <TRUNCATE> { name = unquotedIdentifier(); }
+        |
             // For cases like {fn power(1,2)} and {fn lower('a')}
             id = ReservedFunctionName() { name = id.getSimple(); }
         |
@@ -5448,12 +5455,14 @@ SqlPostfixOperator PostfixRowOperator() :
     | < ALL: "ALL" >
     | < ALLOCATE: "ALLOCATE" >
     | < ALLOW: "ALLOW" >
-    | < ALWAYS: "ALWAYS" >
     | < ALTER: "ALTER" >
+    | < ALWAYS: "ALWAYS" >
     | < AND: "AND" >
     | < ANY: "ANY" >
+    | < APPLY: "APPLY" >
     | < ARE: "ARE" >
     | < ARRAY: "ARRAY" >
+    | < ARRAY_MAX_CARDINALITY: "ARRAY_MAX_CARDINALITY" >
     | < AS: "AS" >
     | < ASC: "ASC" >
     | < ASENSITIVE: "ASENSITIVE" >
@@ -5468,6 +5477,8 @@ SqlPostfixOperator PostfixRowOperator() :
     | < AVG: "AVG" >
     | < BEFORE: "BEFORE" >
     | < BEGIN: "BEGIN" >
+    | < BEGIN_FRAME: "BEGIN_FRAME" >
+    | < BEGIN_PARTITION: "BEGIN_PARTITION" >
     | < BERNOULLI: "BERNOULLI" >
     | < BETWEEN: "BETWEEN" >
     | < BIGINT: "BIGINT" >
@@ -5502,6 +5513,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < CHARACTERISTICS: "CHARACTERISTICS" >
     | < CHARACTERS: "CHARACTERS" >
     | < CHECK: "CHECK" >
+    | < CLASSIFIER: "CLASSIFIER" >
     | < CLASS_ORIGIN: "CLASS_ORIGIN" >
     | < CLOB: "CLOB" >
     | < CLOSE: "CLOSE" >
@@ -5531,8 +5543,8 @@ SqlPostfixOperator PostfixRowOperator() :
     | < CONSTRAINTS: "CONSTRAINTS" >
     | < CONSTRUCTOR: "CONSTRUCTOR" >
     | < CONTAINS: "CONTAINS" >
-    | < CONVERT: "CONVERT" >
     | < CONTINUE: "CONTINUE" >
+    | < CONVERT: "CONVERT" >
     | < CORR: "CORR" >
     | < CORRESPONDING: "CORRESPONDING" >
     | < COUNT: "COUNT" >
@@ -5548,6 +5560,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < CURRENT_DEFAULT_TRANSFORM_GROUP: "CURRENT_DEFAULT_TRANSFORM_GROUP" >
     | < CURRENT_PATH: "CURRENT_PATH" >
     | < CURRENT_ROLE: "CURRENT_ROLE" >
+    | < CURRENT_ROW: "CURRENT_ROW" >
     | < CURRENT_SCHEMA: "CURRENT_SCHEMA" >
     | < CURRENT_TIME: "CURRENT_TIME" >
     | < CURRENT_TIMESTAMP: "CURRENT_TIMESTAMP" >
@@ -5567,7 +5580,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < DECADE: "DECADE" >
     | < DECIMAL: "DECIMAL" >
     | < DECLARE: "DECLARE" >
-    | < DEFAULT_KW: "DEFAULT" >
+    | < DEFAULT_: "DEFAULT" >
     | < DEFAULTS: "DEFAULTS" >
     | < DEFERRABLE: "DEFERRABLE" >
     | < DEFERRED: "DEFERRED" >
@@ -5580,8 +5593,8 @@ SqlPostfixOperator PostfixRowOperator() :
     | < DEPTH: "DEPTH" >
     | < DEREF: "DEREF" >
     | < DERIVED: "DERIVED" >
-    | < DESCRIBE: "DESCRIBE" >
     | < DESC: "DESC" >
+    | < DESCRIBE: "DESCRIBE" >
     | < DESCRIPTION: "DESCRIPTION" >
     | < DESCRIPTOR: "DESCRIPTOR" >
     | < DETERMINISTIC: "DETERMINISTIC" >
@@ -5601,8 +5614,11 @@ SqlPostfixOperator PostfixRowOperator() :
     | < EACH: "EACH" >
     | < ELEMENT: "ELEMENT" >
     | < ELSE: "ELSE" >
+    | < EMPTY: "EMPTY" >
     | < END: "END" >
     | < END_EXEC: "END-EXEC" >
+    | < END_FRAME: "END_FRAME" >
+    | < END_PARTITION: "END_PARTITION" >
     | < EPOCH: "EPOCH" >
     | < EQUALS: "EQUALS" >
     | < ESCAPE: "ESCAPE" >
@@ -5616,8 +5632,8 @@ SqlPostfixOperator PostfixRowOperator() :
     | < EXISTS: "EXISTS" >
     | < EXP: "EXP" >
     | < EXPLAIN: "EXPLAIN" >
-    | < EXTERNAL: "EXTERNAL" >
     | < EXTEND: "EXTEND" >
+    | < EXTERNAL: "EXTERNAL" >
     | < EXTRACT: "EXTRACT" >
     | < FALSE: "FALSE" >
     | < FETCH: "FETCH" >
@@ -5633,6 +5649,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < FORTRAN: "FORTRAN" >
     | < FOUND: "FOUND" >
     | < FRAC_SECOND: "FRAC_SECOND" >
+    | < FRAME_ROW: "FRAME_ROW" >
     | < FREE: "FREE" >
     | < FROM: "FROM" >
     | < FULL: "FULL" >
@@ -5649,6 +5666,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < GRANTED: "GRANTED" >
     | < GROUP: "GROUP" >
     | < GROUPING: "GROUPING" >
+    | < GROUPS: "GROUPS" >
     | < HAVING: "HAVING" >
     | < HIERARCHY: "HIERARCHY" >
     | < HOLD: "HOLD" >
@@ -5658,9 +5676,10 @@ SqlPostfixOperator PostfixRowOperator() :
     | < IMPLEMENTATION: "IMPLEMENTATION" >
     | < IMPORT: "IMPORT" >
     | < IN: "IN" >
-    | < INDICATOR: "INDICATOR" >
     | < INCLUDING: "INCLUDING" >
     | < INCREMENT: "INCREMENT" >
+    | < INDICATOR: "INDICATOR" >
+    | < INITIAL: "INITIAL" >
     | < INITIALLY: "INITIALLY" >
     | < INNER: "INNER" >
     | < INOUT: "INOUT" >
@@ -5686,17 +5705,20 @@ SqlPostfixOperator PostfixRowOperator() :
     | < KEY_MEMBER: "KEY_MEMBER" >
     | < KEY_TYPE: "KEY_TYPE" >
     | < LABEL: "LABEL" >
+    | < LAG: "LAG" >
     | < LANGUAGE: "LANGUAGE" >
     | < LARGE: "LARGE" >
     | < LAST: "LAST" >
     | < LAST_VALUE: "LAST_VALUE" >
     | < LATERAL: "LATERAL" >
+    | < LEAD: "LEAD" >
     | < LEADING: "LEADING" >
     | < LEFT: "LEFT" >
     | < LENGTH: "LENGTH" >
     | < LEVEL: "LEVEL" >
     | < LIBRARY: "LIBRARY" >
     | < LIKE: "LIKE" >
+    | < LIKE_REGEX: "LIKE_REGEX" >
     | < LIMIT: "LIMIT" >
     | < LN: "LN" >
     | < LOCAL: "LOCAL" >
@@ -5708,6 +5730,8 @@ SqlPostfixOperator PostfixRowOperator() :
     | < MAP: "MAP" >
     | < MATCH: "MATCH" >
     | < MATCHED: "MATCHED" >
+    | < MATCHES: "MATCHES" >
+    | < MATCH_NUMBER: "MATCH_NUMBER">
     | < MATCH_RECOGNIZE: "MATCH_RECOGNIZE">
     | < MAX: "MAX" >
     | < MAXVALUE: "MAXVALUE" >
@@ -5727,7 +5751,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < MODIFIES: "MODIFIES" >
     | < MODULE: "MODULE" >
     | < MONTH: "MONTH" >
-    | < MORE_KW: "MORE" >
+    | < MORE_: "MORE" >
     | < MULTISET: "MULTISET" >
     | < MUMPS: "MUMPS" >
     | < NAME: "NAME" >
@@ -5744,6 +5768,8 @@ SqlPostfixOperator PostfixRowOperator() :
     | < NORMALIZE: "NORMALIZE" >
     | < NORMALIZED: "NORMALIZED" >
     | < NOT: "NOT" >
+    | < NTH_VALUE: "NTH_VALUE" >
+    | < NTILE: "NTILE" >
     | < NULL: "NULL" >
     | < NULLABLE: "NULLABLE" >
     | < NULLIF: "NULLIF" >
@@ -5751,12 +5777,15 @@ SqlPostfixOperator PostfixRowOperator() :
     | < NUMBER: "NUMBER" >
     | < NUMERIC: "NUMERIC" >
     | < OBJECT: "OBJECT" >
+    | < OCCURRENCES_REGEX: "OCCURRENCES_REGEX" >
     | < OCTET_LENGTH: "OCTET_LENGTH" >
     | < OCTETS: "OCTETS" >
     | < OF: "OF" >
     | < OFFSET: "OFFSET" >
     | < OLD: "OLD" >
+    | < OMIT: "OMIT" >
     | < ON: "ON" >
+    | < ONE: "ONE" >
     | < ONLY: "ONLY" >
     | < OPEN: "OPEN" >
     | < OPTION: "OPTION" >
@@ -5787,15 +5816,21 @@ SqlPostfixOperator PostfixRowOperator() :
     | < PASSTHROUGH: "PASSTHROUGH" >
     | < PATH: "PATH" >
     | < PATTERN: "PATTERN" >
-    | < PERMUTE: "PERMUTE" >
-    | < PERCENT_RANK: "PERCENT_RANK" >
+    | < PER: "PER" >
+    | < PERCENT: "PERCENT" >
     | < PERCENTILE_CONT: "PERCENTILE_CONT" >
     | < PERCENTILE_DISC: "PERCENTILE_DISC" >
+    | < PERCENT_RANK: "PERCENT_RANK" >
+    | < PERIOD: "PERIOD" >
+    | < PERMUTE: "PERMUTE" >
     | < PLACING: "PLACING" >
     | < PLAN: "PLAN" >
     | < PLI: "PLI" >
+    | < PORTION: "PORTION" >
     | < POSITION: "POSITION" >
+    | < POSITION_REGEX: "POSITION_REGEX" >
     | < POWER: "POWER" >
+    | < PRECEDES: "PRECEDES" >
     | < PRECEDING: "PRECEDING" >
     | < PRECISION: "PRECISION" >
     | < PREPARE: "PREPARE" >
@@ -5866,6 +5901,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < SECOND: "SECOND" >
     | < SECTION: "SECTION" >
     | < SECURITY: "SECURITY" >
+    | < SEEK: "SEEK" >
     | < SELECT: "SELECT" >
     | < SELF: "SELF" >
     | < SENSITIVE: "SENSITIVE" >
@@ -5878,9 +5914,11 @@ SqlPostfixOperator PostfixRowOperator() :
     | < SET: "SET" >
     | < SETS: "SETS" >
     | < SET_MINUS: "MINUS">
+    | < SHOW: "SHOW" >
     | < SIMILAR: "SIMILAR" >
     | < SIMPLE: "SIMPLE" >
     | < SIZE: "SIZE" >
+    | < SKIP_: "SKIP" >
     | < SMALLINT: "SMALLINT" >
     | < SOME: "SOME" >
     | < SOURCE: "SOURCE" >
@@ -5953,11 +5991,15 @@ SqlPostfixOperator PostfixRowOperator() :
     | < STYLE: "STYLE" >
     | < SUBCLASS_ORIGIN: "SUBCLASS_ORIGIN" >
     | < SUBMULTISET: "SUBMULTISET" >
-    | < SUBSTRING: "SUBSTRING" >
+    | < SUBSET: "SUBSET" >
     | < SUBSTITUTE: "SUBSTITUTE" >
+    | < SUBSTRING: "SUBSTRING" >
+    | < SUBSTRING_REGEX: "SUBSTRING_REGEX" >
+    | < SUCCEEDS: "SUCCEEDS" >
     | < SUM: "SUM" >
     | < SYMMETRIC: "SYMMETRIC" >
     | < SYSTEM: "SYSTEM" >
+    | < SYSTEM_TIME: "SYSTEM_TIME" >
     | < SYSTEM_USER: "SYSTEM_USER" >
     | < TABLE: "TABLE" >
     | < TABLE_NAME: "TABLE_NAME" >
@@ -5982,6 +6024,7 @@ SqlPostfixOperator PostfixRowOperator() :
     | < TRANSFORM: "TRANSFORM" >
     | < TRANSFORMS: "TRANSFORMS" >
     | < TRANSLATE: "TRANSLATE" >
+    | < TRANSLATE_REGEX: "TRANSLATE_REGEX" >
     | < TRANSLATION: "TRANSLATION" >
     | < TREAT: "TREAT" >
     | < TRIGGER: "TRIGGER" >
@@ -5989,7 +6032,9 @@ SqlPostfixOperator PostfixRowOperator() :
     | < TRIGGER_NAME: "TRIGGER_NAME" >
     | < TRIGGER_SCHEMA: "TRIGGER_SCHEMA" >
     | < TRIM: "TRIM" >
+    | < TRIM_ARRAY: "TRIM_ARRAY" >
     | < TRUE: "TRUE" >
+    | < TRUNCATE: "TRUNCATE" >
     | < TYPE: "TYPE" >
     | < UESCAPE: "UESCAPE" >
     | < UNBOUNDED: "UNBOUNDED" >
@@ -6012,12 +6057,14 @@ SqlPostfixOperator PostfixRowOperator() :
     | < USING: "USING" >
     | < VALUE: "VALUE" >
     | < VALUES: "VALUES" >
+    | < VALUE_OF: "VALUE_OF" >
     | < VAR_POP: "VAR_POP" >
     | < VAR_SAMP: "VAR_SAMP" >
-    | < VARCHAR: "VARCHAR" >
     | < VARBINARY: "VARBINARY" >
+    | < VARCHAR: "VARCHAR" >
     | < VARYING: "VARYING" >
     | < VERSION: "VERSION" >
+    | < VERSIONING: "VERSIONING" >
     | < VIEW: "VIEW" >
     | < WEEK: "WEEK" >
     | < WHEN: "WHEN" >
@@ -6034,7 +6081,6 @@ SqlPostfixOperator PostfixRowOperator() :
     | < XML: "XML" >
     | < YEAR: "YEAR" >
     | < ZONE: "ZONE" >
-    | < APPLY: "APPLY" >
   <#-- additional parser keywords are included here -->
   <#list parser.keywords as keyword>
     | < ${keyword}: "${keyword}" >
@@ -6113,7 +6159,6 @@ String CommonNonReservedKeyWord() :
         | <CONSTRAINT_SCHEMA>
         | <CONSTRAINTS>
         | <CONSTRUCTOR>
-        | <CONTAINS>
         | <CONTINUE>
         | <CURSOR_NAME>
         | <DATA>
@@ -6140,7 +6185,6 @@ String CommonNonReservedKeyWord() :
         | <DYNAMIC_FUNCTION>
         | <DYNAMIC_FUNCTION_CODE>
         | <EPOCH>
-        | <EQUALS>
         | <EXCEPTION>
         | <EXCLUDE>
         | <EXCLUDING>
@@ -6189,7 +6233,7 @@ String CommonNonReservedKeyWord() :
         | <MESSAGE_TEXT>
         | <MILLENNIUM>
         | <MINVALUE>
-        | <MORE_KW>
+        | <MORE_>
         | <MUMPS>
         | <NAME>
         | <NAMES>

http://git-wip-us.apache.org/repos/asf/calcite/blob/d97c14c5/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
----------------------------------------------------------------------
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 e743622..37c6c3a 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
@@ -80,442 +80,471 @@ public class SqlParserTest {
    * List of reserved keywords.
    *
    * <p>Each keyword is followed by tokens indicating whether it is reserved in
-   * the SQL:92, SQL:99, SQL:2003 standards and in Calcite.
+   * the SQL:92, SQL:99, SQL:2003, SQL:2011, SQL:2014 standards and in Calcite.
    *
    * <p>The standard keywords are derived from
-   * <a href="http://developer.mimer.com/validator/sql-reserved-words.tml">Mimer</a>.
+   * <a href="http://developer.mimer.com/validator/sql-reserved-words.tml">Mimer</a>
+   * and from the specification.
    *
    * <p>If a new <b>reserved</b> keyword is added to the parser, include it in
    * this list, flagged "c". If the keyword is not intended to be a reserved
    * keyword, add it to the non-reserved keyword list in the parser.
    */
   private static final List<String> RESERVED_KEYWORDS = ImmutableList.of(
-      "ABS",                                                    "2011", "c",
-      "ABSOLUTE",                           "92", "99",
-      "ACTION",                             "92", "99",
-      "ADD",                                "92", "99", "2003",
-      "AFTER",                                    "99",
-      "ALL",                                "92", "99", "2003", "2011", "c",
-      "ALLOCATE",                           "92", "99", "2003", "2011", "c",
-      "ALLOW",                                                          "c",
-      "ALTER",                              "92", "99", "2003", "2011", "c",
-      "AND",                                "92", "99", "2003", "2011", "c",
-      "ANY",                                "92", "99", "2003", "2011", "c",
-      "ARE",                                "92", "99", "2003", "2011", "c",
-      "ARRAY",                                    "99", "2003", "2011", "c",
-      "ARRAY_AGG",                                              "2011",
-      "AS",                                 "92", "99", "2003", "2011", "c",
-      "ASC",                                "92", "99",
-      "ASENSITIVE",                               "99", "2003", "2011", "c",
-      "ASSERTION",                          "92", "99",
-      "ASYMMETRIC",                               "99", "2003", "2011", "c",
-      "AT",                                 "92", "99", "2003", "2011", "c",
-      "ATOMIC",                                   "99", "2003", "2011", "c",
-      "AUTHORIZATION",                      "92", "99", "2003", "2011", "c",
-      "AVG",                                "92",               "2011", "c",
-      "BEFORE",                                   "99",
-      "BEGIN",                              "92", "99", "2003", "2011", "c",
-      "BETWEEN",                            "92", "99", "2003", "2011", "c",
-      "BIGINT",                                         "2003", "2011", "c",
-      "BINARY",                                   "99", "2003", "2011", "c",
-      "BIT",                                "92", "99",                 "c",
-      "BIT_LENGTH",                         "92",
-      "BLOB",                                     "99", "2003", "2011", "c",
-      "BOOLEAN",                                  "99", "2003", "2011", "c",
-      "BOTH",                               "92", "99", "2003", "2011", "c",
-      "BREADTH",                                  "99",
-      "BY",                                 "92", "99", "2003", "2011", "c",
-      "CALL",                               "92", "99", "2003", "2011", "c",
-      "CALLED",                                         "2003", "2011", "c",
-      "CARDINALITY",                                            "2011", "c",
-      "CASCADE",                            "92", "99",
-      "CASCADED",                           "92", "99", "2003", "2011", "c",
-      "CASE",                               "92", "99", "2003", "2011", "c",
-      "CAST",                               "92", "99", "2003", "2011", "c",
-      "CATALOG",                            "92", "99",
-      "CEIL",                                                   "2011", "c",
-      "CEILING",                                                "2011", "c",
-      "CHAR",                               "92", "99", "2003", "2011", "c",
-      "CHARACTER",                          "92", "99", "2003", "2011", "c",
-      "CHARACTER_LENGTH",                   "92",               "2011", "c",
-      "CHAR_LENGTH",                        "92",               "2011", "c",
-      "CHECK",                              "92", "99", "2003", "2011", "c",
-      "CLOB",                                     "99", "2003", "2011", "c",
-      "CLOSE",                              "92", "99", "2003", "2011", "c",
-      "COALESCE",                           "92",               "2011", "c",
-      "COLLATE",                            "92", "99", "2003", "2011", "c",
-      "COLLATION",                          "92", "99",
-      "COLLECT",                                                "2011", "c",
-      "COLUMN",                             "92", "99", "2003", "2011", "c",
-      "COMMIT",                             "92", "99", "2003", "2011", "c",
-      "CONDITION",                          "92", "99", "2003", "2011", "c",
-      "CONNECT",                            "92", "99", "2003", "2011", "c",
-      "CONNECTION",                         "92", "99",
-      "CONSTRAINT",                         "92", "99", "2003", "2011", "c",
-      "CONSTRAINTS",                        "92", "99",
-      "CONSTRUCTOR",                              "99",
-      "CONTAINS",                           "92",
-      "CONTINUE",                           "92", "99", "2003",
-      "CONVERT",                            "92",               "2011", "c",
-      "CORR",                                                   "2011", "c",
-      "CORRESPONDING",                      "92", "99", "2003", "2011", "c",
-      "COUNT",                              "92",               "2011", "c",
-      "COVAR_POP",                                              "2011", "c",
-      "COVAR_SAMP",                                             "2011", "c",
-      "CREATE",                             "92", "99", "2003", "2011", "c",
-      "CROSS",                              "92", "99", "2003", "2011", "c",
-      "CUBE",                                     "99", "2003", "2011", "c",
-      "CUME_DIST",                                              "2011", "c",
-      "CURRENT",                            "92", "99", "2003", "2011", "c",
-      "CURRENT_CATALOG",                                        "2011", "c",
-      "CURRENT_DATE",                       "92", "99", "2003", "2011", "c",
-      "CURRENT_DEFAULT_TRANSFORM_GROUP",          "99", "2003", "2011", "c",
-      "CURRENT_PATH",                       "92", "99", "2003", "2011", "c",
-      "CURRENT_ROLE",                             "99", "2003", "2011", "c",
-      "CURRENT_SCHEMA",                                         "2011", "c",
-      "CURRENT_TIME",                       "92", "99", "2003", "2011", "c",
-      "CURRENT_TIMESTAMP",                  "92", "99", "2003", "2011", "c",
-      "CURRENT_TRANSFORM_GROUP_FOR_TYPE",         "99", "2003", "2011", "c",
-      "CURRENT_USER",                       "92", "99", "2003", "2011", "c",
-      "CURSOR",                             "92", "99", "2003", "2011", "c",
-      "CYCLE",                                    "99", "2003", "2011", "c",
-      "DATA",                                     "99",
-      "DATE",                               "92", "99", "2003", "2011", "c",
-      "DAY",                                "92", "99", "2003", "2011", "c",
-      "DAYS",                                                   "2011",
-      "DEALLOCATE",                         "92", "99", "2003", "2011", "c",
-      "DEC",                                "92", "99", "2003", "2011", "c",
-      "DECIMAL",                            "92", "99", "2003", "2011", "c",
-      "DECLARE",                            "92", "99", "2003", "2011", "c",
-      "DEFAULT",                            "92", "99", "2003", "2011", "c",
-      "DEFERRABLE",                         "92", "99",
-      "DEFERRED",                           "92", "99",
-      "DEFINE",                                                           "c",
-      "DELETE",                             "92", "99", "2003", "2011", "c",
-      "DENSE_RANK",                                             "2011", "c",
-      "DEPTH",                                    "99",
-      "DEREF",                                    "99", "2003", "2011", "c",
-      "DESC",                               "92", "99",
-      "DESCRIBE",                           "92", "99", "2003", "2011", "c",
-      "DESCRIPTOR",                         "92", "99",
-      "DETERMINISTIC",                      "92", "99", "2003", "2011", "c",
-      "DIAGNOSTICS",                        "92", "99",
-      "DISALLOW",                                                       "c",
-      "DISCONNECT",                         "92", "99", "2003", "2011", "c",
-      "DISTINCT",                           "92", "99", "2003", "2011", "c",
-      "DO",                                 "92", "99", "2003",
-      "DOMAIN",                             "92", "99",
-      "DOUBLE",                             "92", "99", "2003", "2011", "c",
-      "DROP",                               "92", "99", "2003", "2011", "c",
-      "DYNAMIC",                                  "99", "2003", "2011", "c",
-      "EACH",                                     "99", "2003", "2011", "c",
-      "ELEMENT",                                        "2003", "2011", "c",
-      "ELSE",                               "92", "99", "2003", "2011", "c",
-      "ELSEIF",                             "92", "99", "2003",
-      "END",                                "92", "99", "2003", "2011", "c",
-      "END-EXEC",                                               "2011", "c",
-      "EQUALS",                                   "99",
-      "ESCAPE",                             "92", "99", "2003", "2011", "c",
-      "EVERY",                                                  "2011", "c",
-      "EXCEPT",                             "92", "99", "2003", "2011", "c",
-      "EXCEPTION",                          "92", "99",
-      "EXEC",                               "92", "99", "2003", "2011", "c",
-      "EXECUTE",                            "92", "99", "2003", "2011", "c",
-      "EXISTS",                             "92", "99", "2003", "2011", "c",
-      "EXIT",                               "92", "99", "2003",
-      "EXP",                                                    "2011", "c",
-      "EXPLAIN",                                                        "c",
-      "EXTEND",                                                         "c",
-      "EXTERNAL",                           "92", "99", "2003", "2011", "c",
-      "EXTRACT",                            "92",               "2011", "c",
-      "FALSE",                              "92", "99", "2003", "2011", "c",
-      "FETCH",                              "92", "99", "2003", "2011", "c",
-      "FILTER",                                   "99", "2003", "2011", "c",
-      "FIRST",                              "92", "99",
-      "FIRST_VALUE",                                            "2011", "c",
-      "FLOAT",                              "92", "99", "2003", "2011", "c",
-      "FLOOR",                                                  "2011", "c",
-      "FOR",                                "92", "99", "2003", "2011", "c",
-      "FOREIGN",                            "92", "99", "2003", "2011", "c",
-      "FOREVER",                                                "2011",
-      "FOUND",                              "92", "99",
-      "FREE",                                     "99", "2003", "2011", "c",
-      "FROM",                               "92", "99", "2003", "2011", "c",
-      "FULL",                               "92", "99", "2003", "2011", "c",
-      "FUNCTION",                           "92", "99", "2003", "2011", "c",
-      "FUSION",                                                 "2011", "c",
-      "GENERAL",                                  "99",
-      "GET",                                "92", "99", "2003", "2011", "c",
-      "GLOBAL",                             "92", "99", "2003", "2011", "c",
-      "GO",                                 "92", "99",
-      "GOTO",                               "92", "99",
-      "GRANT",                              "92", "99", "2003", "2011", "c",
-      "GROUP",                              "92", "99", "2003", "2011", "c",
-      "GROUPING",                                 "99", "2003", "2011", "c",
-      "HANDLER",                            "92", "99", "2003",
-      "HAVING",                             "92", "99", "2003", "2011", "c",
-      "HOLD",                                     "99", "2003", "2011", "c",
-      "HOUR",                               "92", "99", "2003", "2011", "c",
-      "HOURS",                                                  "2011",
-      "IDENTITY",                           "92", "99", "2003", "2011", "c",
-      "IF",                                 "92", "99", "2003",
-      "IMMEDIATE",                          "92", "99", "2003",
-      "IMPORT",                                                         "c",
-      "IN",                                 "92", "99", "2003", "2011", "c",
-      "INDICATOR",                          "92", "99", "2003", "2011", "c",
-      "INITIALLY",                          "92", "99",
-      "INNER",                              "92", "99", "2003", "2011", "c",
-      "INOUT",                              "92", "99", "2003", "2011", "c",
-      "INPUT",                              "92", "99", "2003",
-      "INSENSITIVE",                        "92", "99", "2003", "2011", "c",
-      "INSERT",                             "92", "99", "2003", "2011", "c",
-      "INT",                                "92", "99", "2003", "2011", "c",
-      "INTEGER",                            "92", "99", "2003", "2011", "c",
-      "INTERSECT",                          "92", "99", "2003", "2011", "c",
-      "INTERSECTION",                                           "2011", "c",
-      "INTERVAL",                           "92", "99", "2003", "2011", "c",
-      "INTO",                               "92", "99", "2003", "2011", "c",
-      "IS",                                 "92", "99", "2003", "2011", "c",
-      "ISOLATION",                          "92", "99",
-      "ITERATE",                                  "99", "2003",
-      "JOIN",                               "92", "99", "2003", "2011", "c",
-      "KEEP",                                                   "2011",
-      "KEY",                                "92", "99",
-      "LAG",                                                    "2011",
-      "LANGUAGE",                           "92", "99", "2003", "2011", "c",
-      "LARGE",                                    "99", "2003", "2011", "c",
-      "LAST",                               "92", "99",
-      "LAST_VALUE",                                             "2011", "c",
-      "LATERAL",                                  "99", "2003", "2011", "c",
-      "LEAD",                                                   "2011",
-      "LEADING",                            "92", "99", "2003", "2011", "c",
-      "LEAVE",                              "92", "99", "2003",
-      "LEFT",                               "92", "99", "2003", "2011", "c",
-      "LEVEL",                              "92", "99",
-      "LIKE",                               "92", "99", "2003", "2011", "c",
-      "LIKE_REGEX",                                             "2011",
-      "LIMIT",                                                          "c",
-      "LN",                                                     "2011", "c",
-      "LOCAL",                              "92", "99", "2003", "2011", "c",
-      "LOCALTIME",                                "99", "2003", "2011", "c",
-      "LOCALTIMESTAMP",                           "99", "2003", "2011", "c",
-      "LOCATOR",                                  "99",
-      "LOOP",                               "92", "99", "2003",
-      "LOWER",                              "92",               "2011", "c",
-      "MAP",                                      "99",
-      "MATCH",                              "92", "99", "2003", "2011", "c",
-      "MATCH_RECOGNIZE",                                                "c",
-      "MAX",                                "92",               "2011", "c",
-      "MAX_CARDINALITY",                                        "2011",
-      "MEASURES",                                                       "c",
-      "MEMBER",                                         "2003", "2011", "c",
-      "MERGE",                                          "2003", "2011", "c",
-      "METHOD",                                   "99", "2003", "2011", "c",
-      "MIN",                                "92",               "2011", "c",
-      "MINUS",                                                          "c",
-      "MINUTE",                             "92", "99", "2003", "2011", "c",
-      "MINUTES",                                                "2011",
-      "MOD",                                                    "2011", "c",
-      "MODIFIES",                                 "99", "2003", "2011", "c",
-      "MODULE",                             "92", "99", "2003", "2011", "c",
-      "MONTH",                              "92", "99", "2003", "2011", "c",
-      "MULTISET",                                       "2003", "2011", "c",
-      "NAMES",                              "92", "99",
-      "NATIONAL",                           "92", "99", "2003", "2011", "c",
-      "NATURAL",                            "92", "99", "2003", "2011", "c",
-      "NCHAR",                              "92", "99", "2003", "2011", "c",
-      "NCLOB",                                    "99", "2003", "2011", "c",
-      "NEW",                                      "99", "2003", "2011", "c",
-      "NEXT",                               "92", "99",                 "c",
-      "NO",                                 "92", "99", "2003", "2011", "c",
-      "NONE",                                     "99", "2003", "2011", "c",
-      "NORMALIZE",                                              "2011", "c",
-      "NOT",                                "92", "99", "2003", "2011", "c",
-      "NTH_VALUE",                                              "2011",
-      "NTILE",                                                  "2011",
-      "NULL",                               "92", "99", "2003", "2011", "c",
-      "NULLIF",                             "92",               "2011", "c",
-      "NUMERIC",                            "92", "99", "2003", "2011", "c",
-      "OBJECT",                                   "99",
-      "OCCURRENCES_REGEX",                                      "2011",
-      "OCTET_LENGTH",                       "92",               "2011", "c",
-      "OF",                                 "92", "99", "2003", "2011", "c",
-      "OFFSET",                                                 "2011", "c",
-      "OLD",                                      "99", "2003", "2011", "c",
-      "ON",                                 "92", "99", "2003", "2011", "c",
-      "ONLY",                               "92", "99", "2003", "2011", "c",
-      "OPEN",                               "92", "99", "2003", "2011", "c",
-      "OPTION",                             "92", "99",
-      "OR",                                 "92", "99", "2003", "2011", "c",
-      "ORDER",                              "92", "99", "2003", "2011", "c",
-      "ORDINALITY",                               "99",
-      "OUT",                                "92", "99", "2003", "2011", "c",
-      "OUTER",                              "92", "99", "2003", "2011", "c",
-      "OUTPUT",                             "92", "99", "2003",
-      "OVER",                                     "99", "2003", "2011", "c",
-      "OVERLAPS",                           "92", "99", "2003", "2011", "c",
-      "OVERLAY",                                                "2011", "c",
-      "PAD",                                "92", "99",
-      "PARAMETER",                          "92", "99", "2003", "2011", "c",
-      "PARTIAL",                            "92", "99",
-      "PARTITION",                                "99", "2003", "2011", "c",
-      "PATH",                               "92", "99",
-      "PATTERN",                                                          "c",
-      "PERCENTILE_CONT",                                        "2011", "c",
-      "PERCENTILE_DISC",                                        "2011", "c",
-      "PERCENT_RANK",                                           "2011", "c",
-      "PERMUTE",                                                        "c",
-      "POSITION",                           "92",               "2011", "c",
-      "POSITION_REGEX",                                         "2011",
-      "POWER",                                                  "2011", "c",
-      "PRECISION",                          "92", "99", "2003", "2011", "c",
-      "PREPARE",                            "92", "99", "2003", "2011", "c",
-      "PRESERVE",                           "92", "99",
-      "PREV",                                                             "c",
-      "PRIMARY",                            "92", "99", "2003", "2011", "c",
-      "PRIOR",                              "92", "99",
-      "PRIVILEGES",                         "92", "99",
-      "PROCEDURE",                          "92", "99", "2003", "2011", "c",
-      "PUBLIC",                             "92", "99",
-      "RANGE",                                    "99", "2003", "2011", "c",
-      "RANK",                                                   "2011", "c",
-      "READ",                               "92", "99",
-      "READS",                                    "99", "2003", "2011", "c",
-      "REAL",                               "92", "99", "2003", "2011", "c",
-      "RECURSIVE",                                "99", "2003", "2011", "c",
-      "REF",                                      "99", "2003", "2011", "c",
-      "REFERENCES",                         "92", "99", "2003", "2011", "c",
-      "REFERENCING",                              "99", "2003", "2011", "c",
-      "REGR_AVGX",                                              "2011", "c",
-      "REGR_AVGY",                                              "2011", "c",
-      "REGR_COUNT",                                             "2011", "c",
-      "REGR_INTERCEPT",                                         "2011", "c",
-      "REGR_R2",                                                "2011", "c",
-      "REGR_SLOPE",                                             "2011", "c",
-      "REGR_SXX",                                               "2011", "c",
-      "REGR_SXY",                                               "2011", "c",
-      "REGR_SYY",                                               "2011", "c",
-      "RELATIVE",                           "92", "99",
-      "RELEASE",                                  "99", "2003", "2011", "c",
-      "REPEAT",                             "92", "99", "2003",
-      "RESET",                                                          "c",
-      "RESIGNAL",                           "92", "99", "2003",
-      "RESTRICT",                           "92", "99",
-      "RESULT",                                   "99", "2003", "2011", "c",
-      "RETURN",                             "92", "99", "2003", "2011", "c",
-      "RETURNS",                            "92", "99", "2003", "2011", "c",
-      "REVOKE",                             "92", "99", "2003", "2011", "c",
-      "RIGHT",                              "92", "99", "2003", "2011", "c",
-      "ROLE",                                     "99",
-      "ROLLBACK",                           "92", "99", "2003", "2011", "c",
-      "ROLLUP",                                   "99", "2003", "2011", "c",
-      "ROUTINE",                            "92", "99",
-      "ROW",                                      "99", "2003", "2011", "c",
-      "ROWS",                               "92", "99", "2003", "2011", "c",
-      "ROW_NUMBER",                                             "2011", "c",
-      "RUNNING",                                                          "c",
-      "SAVEPOINT",                                "99", "2003", "2011", "c",
-      "SCHEMA",                             "92", "99",
-      "SCOPE",                                    "99", "2003", "2011", "c",
-      "SCROLL",                             "92", "99", "2003", "2011", "c",
-      "SEARCH",                                   "99", "2003", "2011", "c",
-      "SECOND",                             "92", "99", "2003", "2011", "c",
-      "SECONDS",                                                "2011",
-      "SECTION",                            "92", "99",
-      "SELECT",                             "92", "99", "2003", "2011", "c",
-      "SENSITIVE",                                "99", "2003", "2011", "c",
-      "SESSION",                            "92", "99",
-      "SESSION_USER",                       "92", "99", "2003", "2011", "c",
-      "SET",                                "92", "99", "2003", "2011", "c",
-      "SETS",                                     "99",
-      "SIGNAL",                             "92", "99", "2003",
-      "SIMILAR",                                  "99", "2003", "2011", "c",
-      "SIZE",                               "92", "99",
-      "SMALLINT",                           "92", "99", "2003", "2011", "c",
-      "SOME",                               "92", "99", "2003", "2011", "c",
-      "SPACE",                              "92", "99",
-      "SPECIFIC",                           "92", "99", "2003", "2011", "c",
-      "SPECIFICTYPE",                             "99", "2003", "2011", "c",
-      "SQL",                                "92", "99", "2003", "2011", "c",
-      "SQLCODE",                            "92",
-      "SQLERROR",                           "92",
-      "SQLEXCEPTION",                       "92", "99", "2003", "2011", "c",
-      "SQLSTATE",                           "92", "99", "2003", "2011", "c",
-      "SQLWARNING",                         "92", "99", "2003", "2011", "c",
-      "SQRT",                                                   "2011", "c",
-      "START",                                    "99", "2003", "2011", "c",
-      "STATE",                                    "99",
-      "STATIC",                                   "99", "2003", "2011", "c",
-      "STDDEV_POP",                                             "2011", "c",
-      "STDDEV_SAMP",                                            "2011", "c",
-      "STREAM",                                                         "c",
-      "SUBMULTISET",                                    "2003", "2011", "c",
-      "SUBSTRING",                          "92",               "2011", "c",
-      "SUBSTRING_REGEX",                                        "2011",
-      "SUM",                                "92",               "2011", "c",
-      "SYMMETRIC",                                "99", "2003", "2011", "c",
-      "SYSTEM",                                   "99", "2003", "2011", "c",
-      "SYSTEM_USER",                        "92", "99", "2003", "2011", "c",
-      "TABLE",                              "92", "99", "2003", "2011", "c",
-      "TABLESAMPLE",                                    "2003", "2011", "c",
-      "TEMPORARY",                          "92", "99",
-      "THEN",                               "92", "99", "2003", "2011", "c",
-      "TIME",                               "92", "99", "2003", "2011", "c",
-      "TIMESTAMP",                          "92", "99", "2003", "2011", "c",
-      "TIMEZONE_HOUR",                      "92", "99", "2003", "2011", "c",
-      "TIMEZONE_MINUTE",                    "92", "99", "2003", "2011", "c",
-      "TINYINT",                                                        "c",
-      "TO",                                 "92", "99", "2003", "2011", "c",
-      "TRAILING",                           "92", "99", "2003", "2011", "c",
-      "TRANSACTION",                        "92", "99",
-      "TRANSLATE",                          "92",               "2011", "c",
-      "TRANSLATE_REGEX",                                        "2011",
-      "TRANSLATION",                        "92", "99", "2003", "2011", "c",
-      "TREAT",                                    "99", "2003", "2011", "c",
-      "TRIGGER",                                  "99", "2003", "2011", "c",
-      "TRIM",                               "92",               "2011", "c",
-      "TRIM_ARRAY",                                             "2011",
-      "TRUE",                               "92", "99", "2003", "2011", "c",
-      "TRUNCATE",                                               "2011",
-      "UESCAPE",                                                "2011", "c",
-      "UNDER",                                    "99",
-      "UNDO",                               "92", "99", "2003",
-      "UNION",                              "92", "99", "2003", "2011", "c",
-      "UNIQUE",                             "92", "99", "2003", "2011", "c",
-      "UNKNOWN",                            "92", "99", "2003", "2011", "c",
-      "UNNEST",                                   "99", "2003", "2011", "c",
-      "UNTIL",                              "92", "99", "2003",
-      "UPDATE",                             "92", "99", "2003", "2011", "c",
-      "UPPER",                              "92",               "2011", "c",
-      "UPSERT",                                                         "c",
-      "USAGE",                              "92", "99",
-      "USER",                               "92", "99", "2003", "2011", "c",
-      "USING",                              "92", "99", "2003", "2011", "c",
-      "VALUE",                              "92", "99", "2003", "2011", "c",
-      "VALUES",                             "92", "99", "2003", "2011", "c",
-      "VARBINARY",                                              "2011", "c",
-      "VARCHAR",                            "92", "99", "2003", "2011", "c",
-      "VARYING",                            "92", "99", "2003", "2011", "c",
-      "VAR_POP",                                                "2011", "c",
-      "VAR_SAMP",                                               "2011", "c",
-      "VERSION",                                                "2011",
-      "VERSIONING",                                             "2011",
-      "VERSIONS",                                               "2011",
-      "VIEW",                               "92", "99",
-      "WHEN",                               "92", "99", "2003", "2011", "c",
-      "WHENEVER",                           "92", "99", "2003", "2011", "c",
-      "WHERE",                              "92", "99", "2003", "2011", "c",
-      "WHILE",                              "92", "99", "2003",
-      "WIDTH_BUCKET",                                           "2011", "c",
-      "WINDOW",                                   "99", "2003", "2011", "c",
-      "WITH",                               "92", "99", "2003", "2011", "c",
-      "WITHIN",                                   "99", "2003", "2011", "c",
-      "WITHOUT",                                  "99", "2003", "2011", "c",
-      "WORK",                               "92", "99",
-      "WRITE",                              "92", "99",
-      "YEAR",                               "92", "99", "2003", "2011", "c",
-      "YEARS",                                                  "2011",
-      "ZONE",                               "92", "99");
+      "ABS",                                               "2011", "2014", "c",
+      "ABSOLUTE",                      "92", "99",
+      "ACTION",                        "92", "99",
+      "ADD",                           "92", "99", "2003",
+      "AFTER",                               "99",
+      "ALL",                           "92", "99", "2003", "2011", "2014", "c",
+      "ALLOCATE",                      "92", "99", "2003", "2011", "2014", "c",
+      "ALLOW",                                                             "c",
+      "ALTER",                         "92", "99", "2003", "2011", "2014", "c",
+      "AND",                           "92", "99", "2003", "2011", "2014", "c",
+      "ANY",                           "92", "99", "2003", "2011", "2014", "c",
+      "ARE",                           "92", "99", "2003", "2011", "2014", "c",
+      "ARRAY",                               "99", "2003", "2011", "2014", "c",
+      "ARRAY_AGG",                                         "2011",
+      "ARRAY_MAX_CARDINALITY",                                     "2014", "c",
+      "AS",                            "92", "99", "2003", "2011", "2014", "c",
+      "ASC",                           "92", "99",
+      "ASENSITIVE",                          "99", "2003", "2011", "2014", "c",
+      "ASSERTION",                     "92", "99",
+      "ASYMMETRIC",                          "99", "2003", "2011", "2014", "c",
+      "AT",                            "92", "99", "2003", "2011", "2014", "c",
+      "ATOMIC",                              "99", "2003", "2011", "2014", "c",
+      "AUTHORIZATION",                 "92", "99", "2003", "2011", "2014", "c",
+      "AVG",                           "92",               "2011", "2014", "c",
+      "BEFORE",                              "99",
+      "BEGIN",                         "92", "99", "2003", "2011", "2014", "c",
+      "BEGIN_FRAME",                                               "2014", "c",
+      "BEGIN_PARTITION",                                           "2014", "c",
+      "BETWEEN",                       "92", "99", "2003", "2011", "2014", "c",
+      "BIGINT",                                    "2003", "2011", "2014", "c",
+      "BINARY",                              "99", "2003", "2011", "2014", "c",
+      "BIT",                           "92", "99",                         "c",
+      "BIT_LENGTH",                    "92",
+      "BLOB",                                "99", "2003", "2011", "2014", "c",
+      "BOOLEAN",                             "99", "2003", "2011", "2014", "c",
+      "BOTH",                          "92", "99", "2003", "2011", "2014", "c",
+      "BREADTH",                             "99",
+      "BY",                            "92", "99", "2003", "2011", "2014", "c",
+      "CALL",                          "92", "99", "2003", "2011", "2014", "c",
+      "CALLED",                                    "2003", "2011", "2014", "c",
+      "CARDINALITY",                                       "2011", "2014", "c",
+      "CASCADE",                       "92", "99",
+      "CASCADED",                      "92", "99", "2003", "2011", "2014", "c",
+      "CASE",                          "92", "99", "2003", "2011", "2014", "c",
+      "CAST",                          "92", "99", "2003", "2011", "2014", "c",
+      "CATALOG",                       "92", "99",
+      "CEIL",                                              "2011", "2014", "c",
+      "CEILING",                                           "2011", "2014", "c",
+      "CHAR",                          "92", "99", "2003", "2011", "2014", "c",
+      "CHARACTER",                     "92", "99", "2003", "2011", "2014", "c",
+      "CHARACTER_LENGTH",              "92",               "2011", "2014", "c",
+      "CHAR_LENGTH",                   "92",               "2011", "2014", "c",
+      "CHECK",                         "92", "99", "2003", "2011", "2014", "c",
+      "CLASSIFIER",                                                "2014", "c",
+      "CLOB",                                "99", "2003", "2011", "2014", "c",
+      "CLOSE",                         "92", "99", "2003", "2011", "2014", "c",
+      "COALESCE",                      "92",               "2011", "2014", "c",
+      "COLLATE",                       "92", "99", "2003", "2011", "2014", "c",
+      "COLLATION",                     "92", "99",
+      "COLLECT",                                           "2011", "2014", "c",
+      "COLUMN",                        "92", "99", "2003", "2011", "2014", "c",
+      "COMMIT",                        "92", "99", "2003", "2011", "2014", "c",
+      "CONDITION",                     "92", "99", "2003", "2011", "2014", "c",
+      "CONNECT",                       "92", "99", "2003", "2011", "2014", "c",
+      "CONNECTION",                    "92", "99",
+      "CONSTRAINT",                    "92", "99", "2003", "2011", "2014", "c",
+      "CONSTRAINTS",                   "92", "99",
+      "CONSTRUCTOR",                         "99",
+      "CONTAINS",                      "92",               "2011", "2014", "c",
+      "CONTINUE",                      "92", "99", "2003",
+      "CONVERT",                       "92",               "2011", "2014", "c",
+      "CORR",                                              "2011", "2014", "c",
+      "CORRESPONDING",                 "92", "99", "2003", "2011", "2014", "c",
+      "COUNT",                         "92",               "2011", "2014", "c",
+      "COVAR_POP",                                         "2011", "2014", "c",
+      "COVAR_SAMP",                                        "2011", "2014", "c",
+      "CREATE",                        "92", "99", "2003", "2011", "2014", "c",
+      "CROSS",                         "92", "99", "2003", "2011", "2014", "c",
+      "CUBE",                                "99", "2003", "2011", "2014", "c",
+      "CUME_DIST",                                         "2011", "2014", "c",
+      "CURRENT",                       "92", "99", "2003", "2011", "2014", "c",
+      "CURRENT_CATALOG",                                   "2011", "2014", "c",
+      "CURRENT_DATE",                  "92", "99", "2003", "2011", "2014", "c",
+      "CURRENT_DEFAULT_TRANSFORM_GROUP",     "99", "2003", "2011", "2014", "c",
+      "CURRENT_PATH",                  "92", "99", "2003", "2011", "2014", "c",
+      "CURRENT_ROLE",                        "99", "2003", "2011", "2014", "c",
+      "CURRENT_ROW",                                               "2014", "c",
+      "CURRENT_SCHEMA",                                    "2011", "2014", "c",
+      "CURRENT_TIME",                  "92", "99", "2003", "2011", "2014", "c",
+      "CURRENT_TIMESTAMP",             "92", "99", "2003", "2011", "2014", "c",
+      "CURRENT_TRANSFORM_GROUP_FOR_TYPE",    "99", "2003", "2011", "2014", "c",
+      "CURRENT_USER",                  "92", "99", "2003", "2011", "2014", "c",
+      "CURSOR",                        "92", "99", "2003", "2011", "2014", "c",
+      "CYCLE",                               "99", "2003", "2011", "2014", "c",
+      "DATA",                                "99",
+      "DATE",                          "92", "99", "2003", "2011", "2014", "c",
+      "DAY",                           "92", "99", "2003", "2011", "2014", "c",
+      "DAYS",                                              "2011",
+      "DEALLOCATE",                    "92", "99", "2003", "2011", "2014", "c",
+      "DEC",                           "92", "99", "2003", "2011", "2014", "c",
+      "DECIMAL",                       "92", "99", "2003", "2011", "2014", "c",
+      "DECLARE",                       "92", "99", "2003", "2011", "2014", "c",
+      "DEFAULT",                       "92", "99", "2003", "2011", "2014", "c",
+      "DEFERRABLE",                    "92", "99",
+      "DEFERRED",                      "92", "99",
+      "DEFINE",                                                    "2014", "c",
+      "DELETE",                        "92", "99", "2003", "2011", "2014", "c",
+      "DENSE_RANK",                                        "2011", "2014", "c",
+      "DEPTH",                               "99",
+      "DEREF",                               "99", "2003", "2011", "2014", "c",
+      "DESC",                          "92", "99",
+      "DESCRIBE",                      "92", "99", "2003", "2011", "2014", "c",
+      "DESCRIPTOR",                    "92", "99",
+      "DETERMINISTIC",                 "92", "99", "2003", "2011", "2014", "c",
+      "DIAGNOSTICS",                   "92", "99",
+      "DISALLOW",                                                          "c",
+      "DISCONNECT",                    "92", "99", "2003", "2011", "2014", "c",
+      "DISTINCT",                      "92", "99", "2003", "2011", "2014", "c",
+      "DO",                            "92", "99", "2003",
+      "DOMAIN",                        "92", "99",
+      "DOUBLE",                        "92", "99", "2003", "2011", "2014", "c",
+      "DROP",                          "92", "99", "2003", "2011", "2014", "c",
+      "DYNAMIC",                             "99", "2003", "2011", "2014", "c",
+      "EACH",                                "99", "2003", "2011", "2014", "c",
+      "ELEMENT",                                   "2003", "2011", "2014", "c",
+      "ELSE",                          "92", "99", "2003", "2011", "2014", "c",
+      "ELSEIF",                        "92", "99", "2003",
+      "EMPTY",                                                     "2014", "c",
+      "END",                           "92", "99", "2003", "2011", "2014", "c",
+      "END-EXEC",                                          "2011", "2014", "c",
+      "END_FRAME",                                                 "2014", "c",
+      "END_PARTITION",                                             "2014", "c",
+      "EQUALS",                              "99",                 "2014", "c",
+      "ESCAPE",                        "92", "99", "2003", "2011", "2014", "c",
+      "EVERY",                                             "2011", "2014", "c",
+      "EXCEPT",                        "92", "99", "2003", "2011", "2014", "c",
+      "EXCEPTION",                     "92", "99",
+      "EXEC",                          "92", "99", "2003", "2011", "2014", "c",
+      "EXECUTE",                       "92", "99", "2003", "2011", "2014", "c",
+      "EXISTS",                        "92", "99", "2003", "2011", "2014", "c",
+      "EXIT",                          "92", "99", "2003",
+      "EXP",                                               "2011", "2014", "c",
+      "EXPLAIN",                                                           "c",
+      "EXTEND",                                                            "c",
+      "EXTERNAL",                      "92", "99", "2003", "2011", "2014", "c",
+      "EXTRACT",                       "92",               "2011", "2014", "c",
+      "FALSE",                         "92", "99", "2003", "2011", "2014", "c",
+      "FETCH",                         "92", "99", "2003", "2011", "2014", "c",
+      "FILTER",                              "99", "2003", "2011", "2014", "c",
+      "FIRST",                         "92", "99",
+      "FIRST_VALUE",                                       "2011", "2014", "c",
+      "FLOAT",                         "92", "99", "2003", "2011", "2014", "c",
+      "FLOOR",                                             "2011", "2014", "c",
+      "FOR",                           "92", "99", "2003", "2011", "2014", "c",
+      "FOREIGN",                       "92", "99", "2003", "2011", "2014", "c",
+      "FOREVER",                                           "2011",
+      "FOUND",                         "92", "99",
+      "FRAME_ROW",                                                 "2014", "c",
+      "FREE",                                "99", "2003", "2011", "2014", "c",
+      "FROM",                          "92", "99", "2003", "2011", "2014", "c",
+      "FULL",                          "92", "99", "2003", "2011", "2014", "c",
+      "FUNCTION",                      "92", "99", "2003", "2011", "2014", "c",
+      "FUSION",                                            "2011", "2014", "c",
+      "GENERAL",                             "99",
+      "GET",                           "92", "99", "2003", "2011", "2014", "c",
+      "GLOBAL",                        "92", "99", "2003", "2011", "2014", "c",
+      "GO",                            "92", "99",
+      "GOTO",                          "92", "99",
+      "GRANT",                         "92", "99", "2003", "2011", "2014", "c",
+      "GROUP",                         "92", "99", "2003", "2011", "2014", "c",
+      "GROUPING",                            "99", "2003", "2011", "2014", "c",
+      "GROUPS",                                                    "2014", "c",
+      "HANDLER",                       "92", "99", "2003",
+      "HAVING",                        "92", "99", "2003", "2011", "2014", "c",
+      "HOLD",                                "99", "2003", "2011", "2014", "c",
+      "HOUR",                          "92", "99", "2003", "2011", "2014", "c",
+      "HOURS",                                             "2011",
+      "IDENTITY",                      "92", "99", "2003", "2011", "2014", "c",
+      "IF",                            "92", "99", "2003",
+      "IMMEDIATE",                     "92", "99", "2003",
+      "IMMEDIATELY",
+      "IMPORT",                                                            "c",
+      "IN",                            "92", "99", "2003", "2011", "2014", "c",
+      "INDICATOR",                     "92", "99", "2003", "2011", "2014", "c",
+      "INITIAL",                                                   "2014", "c",
+      "INITIALLY",                     "92", "99",
+      "INNER",                         "92", "99", "2003", "2011", "2014", "c",
+      "INOUT",                         "92", "99", "2003", "2011", "2014", "c",
+      "INPUT",                         "92", "99", "2003",
+      "INSENSITIVE",                   "92", "99", "2003", "2011", "2014", "c",
+      "INSERT",                        "92", "99", "2003", "2011", "2014", "c",
+      "INT",                           "92", "99", "2003", "2011", "2014", "c",
+      "INTEGER",                       "92", "99", "2003", "2011", "2014", "c",
+      "INTERSECT",                     "92", "99", "2003", "2011", "2014", "c",
+      "INTERSECTION",                                      "2011", "2014", "c",
+      "INTERVAL",                      "92", "99", "2003", "2011", "2014", "c",
+      "INTO",                          "92", "99", "2003", "2011", "2014", "c",
+      "IS",                            "92", "99", "2003", "2011", "2014", "c",
+      "ISOLATION",                     "92", "99",
+      "ITERATE",                             "99", "2003",
+      "JOIN",                          "92", "99", "2003", "2011", "2014", "c",
+      "KEEP",                                              "2011",
+      "KEY",                           "92", "99",
+      "LAG",                                               "2011", "2014", "c",
+      "LANGUAGE",                      "92", "99", "2003", "2011", "2014", "c",
+      "LARGE",                               "99", "2003", "2011", "2014", "c",
+      "LAST",                          "92", "99",
+      "LAST_VALUE",                                        "2011", "2014", "c",
+      "LATERAL",                             "99", "2003", "2011", "2014", "c",
+      "LEAD",                                              "2011", "2014", "c",
+      "LEADING",                       "92", "99", "2003", "2011", "2014", "c",
+      "LEAVE",                         "92", "99", "2003",
+      "LEFT",                          "92", "99", "2003", "2011", "2014", "c",
+      "LEVEL",                         "92", "99",
+      "LIKE",                          "92", "99", "2003", "2011", "2014", "c",
+      "LIKE_REGEX",                                        "2011", "2014", "c",
+      "LIMIT",                                                             "c",
+      "LN",                                                "2011", "2014", "c",
+      "LOCAL",                         "92", "99", "2003", "2011", "2014", "c",
+      "LOCALTIME",                           "99", "2003", "2011", "2014", "c",
+      "LOCALTIMESTAMP",                      "99", "2003", "2011", "2014", "c",
+      "LOCATOR",                             "99",
+      "LOOP",                          "92", "99", "2003",
+      "LOWER",                         "92",               "2011", "2014", "c",
+      "MAP",                                 "99",
+      "MATCH",                         "92", "99", "2003", "2011", "2014", "c",
+      "MATCHES",                                                   "2014", "c",
+      "MATCH_NUMBER",                                              "2014", "c",
+      "MATCH_RECOGNIZE",                                           "2014", "c",
+      "MAX",                           "92",               "2011", "2014", "c",
+      "MAX_CARDINALITY",                                   "2011",
+      "MEASURES",                                                          "c",
+      "MEMBER",                                    "2003", "2011", "2014", "c",
+      "MERGE",                                     "2003", "2011", "2014", "c",
+      "METHOD",                              "99", "2003", "2011", "2014", "c",
+      "MIN",                           "92",               "2011", "2014", "c",
+      "MINUS",                                                             "c",
+      "MINUTE",                        "92", "99", "2003", "2011", "2014", "c",
+      "MINUTES",                                           "2011",
+      "MOD",                                               "2011", "2014", "c",
+      "MODIFIES",                            "99", "2003", "2011", "2014", "c",
+      "MODULE",                        "92", "99", "2003", "2011", "2014", "c",
+      "MONTH",                         "92", "99", "2003", "2011", "2014", "c",
+      "MULTISET",                                  "2003", "2011", "2014", "c",
+      "NAMES",                         "92", "99",
+      "NATIONAL",                      "92", "99", "2003", "2011", "2014", "c",
+      "NATURAL",                       "92", "99", "2003", "2011", "2014", "c",
+      "NCHAR",                         "92", "99", "2003", "2011", "2014", "c",
+      "NCLOB",                               "99", "2003", "2011", "2014", "c",
+      "NEW",                                 "99", "2003", "2011", "2014", "c",
+      "NEXT",                          "92", "99",                         "c",
+      "NO",                            "92", "99", "2003", "2011", "2014", "c",
+      "NONE",                                "99", "2003", "2011", "2014", "c",
+      "NORMALIZE",                                         "2011", "2014", "c",
+      "NOT",                           "92", "99", "2003", "2011", "2014", "c",
+      "NTH_VALUE",                                         "2011", "2014", "c",
+      "NTILE",                                             "2011", "2014", "c",
+      "NULL",                          "92", "99", "2003", "2011", "2014", "c",
+      "NULLIF",                        "92",               "2011", "2014", "c",
+      "NUMERIC",                       "92", "99", "2003", "2011", "2014", "c",
+      "OBJECT",                              "99",
+      "OCCURRENCES_REGEX",                                 "2011", "2014", "c",
+      "OCTET_LENGTH",                  "92",               "2011", "2014", "c",
+      "OF",                            "92", "99", "2003", "2011", "2014", "c",
+      "OFFSET",                                            "2011", "2014", "c",
+      "OLD",                                 "99", "2003", "2011", "2014", "c",
+      "OMIT",                                                      "2014", "c",
+      "ON",                            "92", "99", "2003", "2011", "2014", "c",
+      "ONE",                                                       "2014", "c",
+      "ONLY",                          "92", "99", "2003", "2011", "2014", "c",
+      "OPEN",                          "92", "99", "2003", "2011", "2014", "c",
+      "OPTION",                        "92", "99",
+      "OR",                            "92", "99", "2003", "2011", "2014", "c",
+      "ORDER",                         "92", "99", "2003", "2011", "2014", "c",
+      "ORDINALITY",                          "99",
+      "OUT",                           "92", "99", "2003", "2011", "2014", "c",
+      "OUTER",                         "92", "99", "2003", "2011", "2014", "c",
+      "OUTPUT",                        "92", "99", "2003",
+      "OVER",                                "99", "2003", "2011", "2014", "c",
+      "OVERLAPS",                      "92", "99", "2003", "2011", "2014", "c",
+      "OVERLAY",                                           "2011", "2014", "c",
+      "PAD",                           "92", "99",
+      "PARAMETER",                     "92", "99", "2003", "2011", "2014", "c",
+      "PARTIAL",                       "92", "99",
+      "PARTITION",                           "99", "2003", "2011", "2014", "c",
+      "PATH",                          "92", "99",
+      "PATTERN",                                                   "2014", "c",
+      "PER",                                                       "2014", "c",
+      "PERCENT",                                                   "2014", "c",
+      "PERCENTILE_CONT",                                   "2011", "2014", "c",
+      "PERCENTILE_DISC",                                   "2011", "2014", "c",
+      "PERCENT_RANK",                                      "2011", "2014", "c",
+      "PERIOD",                                                    "2014", "c",
+      "PERMUTE",                                                           "c",
+      "PORTION",                                                   "2014", "c",
+      "POSITION",                      "92",               "2011", "2014", "c",
+      "POSITION_REGEX",                                    "2011", "2014", "c",
+      "POWER",                                             "2011", "2014", "c",
+      "PRECEDES",                                                  "2014", "c",
+      "PRECISION",                     "92", "99", "2003", "2011", "2014", "c",
+      "PREPARE",                       "92", "99", "2003", "2011", "2014", "c",
+      "PRESERVE",                      "92", "99",
+      "PREV",                                                              "c",
+      "PRIMARY",                       "92", "99", "2003", "2011", "2014", "c",
+      "PRIOR",                         "92", "99",
+      "PRIVILEGES",                    "92", "99",
+      "PROCEDURE",                     "92", "99", "2003", "2011", "2014", "c",
+      "PUBLIC",                        "92", "99",
+      "RANGE",                               "99", "2003", "2011", "2014", "c",
+      "RANK",                                              "2011", "2014", "c",
+      "READ",                          "92", "99",
+      "READS",                               "99", "2003", "2011", "2014", "c",
+      "REAL",                          "92", "99", "2003", "2011", "2014", "c",
+      "RECURSIVE",                           "99", "2003", "2011", "2014", "c",
+      "REF",                                 "99", "2003", "2011", "2014", "c",
+      "REFERENCES",                    "92", "99", "2003", "2011", "2014", "c",
+      "REFERENCING",                         "99", "2003", "2011", "2014", "c",
+      "REGR_AVGX",                                         "2011", "2014", "c",
+      "REGR_AVGY",                                         "2011", "2014", "c",
+      "REGR_COUNT",                                        "2011", "2014", "c",
+      "REGR_INTERCEPT",                                    "2011", "2014", "c",
+      "REGR_R2",                                           "2011", "2014", "c",
+      "REGR_SLOPE",                                        "2011", "2014", "c",
+      "REGR_SXX",                                          "2011", "2014", "c",
+      "REGR_SXY",                                          "2011", "2014", "c",
+      "REGR_SYY",                                          "2011", "2014", "c",
+      "RELATIVE",                      "92", "99",
+      "RELEASE",                             "99", "2003", "2011", "2014", "c",
+      "REPEAT",                        "92", "99", "2003",
+      "RESET",                                                             "c",
+      "RESIGNAL",                      "92", "99", "2003",
+      "RESTRICT",                      "92", "99",
+      "RESULT",                              "99", "2003", "2011", "2014", "c",
+      "RETURN",                        "92", "99", "2003", "2011", "2014", "c",
+      "RETURNS",                       "92", "99", "2003", "2011", "2014", "c",
+      "REVOKE",                        "92", "99", "2003", "2011", "2014", "c",
+      "RIGHT",                         "92", "99", "2003", "2011", "2014", "c",
+      "ROLE",                                "99",
+      "ROLLBACK",                      "92", "99", "2003", "2011", "2014", "c",
+      "ROLLUP",                              "99", "2003", "2011", "2014", "c",
+      "ROUTINE",                       "92", "99",
+      "ROW",                                 "99", "2003", "2011", "2014", "c",
+      "ROWS",                          "92", "99", "2003", "2011", "2014", "c",
+      "ROW_NUMBER",                                        "2011", "2014", "c",
+      "RUNNING",                                                   "2014", "c",
+      "SAVEPOINT",                           "99", "2003", "2011", "2014", "c",
+      "SCHEMA",                        "92", "99",
+      "SCOPE",                               "99", "2003", "2011", "2014", "c",
+      "SCROLL",                        "92", "99", "2003", "2011", "2014", "c",
+      "SEARCH",                              "99", "2003", "2011", "2014", "c",
+      "SECOND",                        "92", "99", "2003", "2011", "2014", "c",
+      "SECONDS",                                           "2011",
+      "SECTION",                       "92", "99",
+      "SEEK",                                                      "2014", "c",
+      "SELECT",                        "92", "99", "2003", "2011", "2014", "c",
+      "SENSITIVE",                           "99", "2003", "2011", "2014", "c",
+      "SESSION",                       "92", "99",
+      "SESSION_USER",                  "92", "99", "2003", "2011", "2014", "c",
+      "SET",                           "92", "99", "2003", "2011", "2014", "c",
+      "SETS",                                "99",
+      "SHOW",                                                      "2014", "c",
+      "SIGNAL",                        "92", "99", "2003",
+      "SIMILAR",                             "99", "2003", "2011", "2014", "c",
+      "SIZE",                          "92", "99",
+      "SKIP",                                                      "2014", "c",
+      "SMALLINT",                      "92", "99", "2003", "2011", "2014", "c",
+      "SOME",                          "92", "99", "2003", "2011", "2014", "c",
+      "SPACE",                         "92", "99",
+      "SPECIFIC",                      "92", "99", "2003", "2011", "2014", "c",
+      "SPECIFICTYPE",                        "99", "2003", "2011", "2014", "c",
+      "SQL",                           "92", "99", "2003", "2011", "2014", "c",
+      "SQLCODE",                       "92",
+      "SQLERROR",                      "92",
+      "SQLEXCEPTION",                  "92", "99", "2003", "2011", "2014", "c",
+      "SQLSTATE",                      "92", "99", "2003", "2011", "2014", "c",
+      "SQLWARNING",                    "92", "99", "2003", "2011", "2014", "c",
+      "SQRT",                                              "2011", "2014", "c",
+      "START",                               "99", "2003", "2011", "2014", "c",
+      "STATE",                               "99",
+      "STATIC",                              "99", "2003", "2011", "2014", "c",
+      "STDDEV_POP",                                        "2011", "2014", "c",
+      "STDDEV_SAMP",                                       "2011", "2014", "c",
+      "STREAM",                                                            "c",
+      "SUBMULTISET",                               "2003", "2011", "2014", "c",
+      "SUBSET",                                                    "2014", "c",
+      "SUBSTRING",                     "92",               "2011", "2014", "c",
+      "SUBSTRING_REGEX",                                   "2011", "2014", "c",
+      "SUCCEEDS",                                                  "2014", "c",
+      "SUM",                           "92",               "2011", "2014", "c",
+      "SYMMETRIC",                           "99", "2003", "2011", "2014", "c",
+      "SYSTEM",                              "99", "2003", "2011", "2014", "c",
+      "SYSTEM_TIME",                                               "2014", "c",
+      "SYSTEM_USER",                   "92", "99", "2003", "2011", "2014", "c",
+      "TABLE",                         "92", "99", "2003", "2011", "2014", "c",
+      "TABLESAMPLE",                               "2003", "2011", "2014", "c",
+      "TEMPORARY",                     "92", "99",
+      "THEN",                          "92", "99", "2003", "2011", "2014", "c",
+      "TIME",                          "92", "99", "2003", "2011", "2014", "c",
+      "TIMESTAMP",                     "92", "99", "2003", "2011", "2014", "c",
+      "TIMEZONE_HOUR",                 "92", "99", "2003", "2011", "2014", "c",
+      "TIMEZONE_MINUTE",               "92", "99", "2003", "2011", "2014", "c",
+      "TINYINT",                                                           "c",
+      "TO",                            "92", "99", "2003", "2011", "2014", "c",
+      "TRAILING",                      "92", "99", "2003", "2011", "2014", "c",
+      "TRANSACTION",                   "92", "99",
+      "TRANSLATE",                     "92",               "2011", "2014", "c",
+      "TRANSLATE_REGEX",                                   "2011", "2014", "c",
+      "TRANSLATION",                   "92", "99", "2003", "2011", "2014", "c",
+      "TREAT",                               "99", "2003", "2011", "2014", "c",
+      "TRIGGER",                             "99", "2003", "2011", "2014", "c",
+      "TRIM",                          "92",               "2011", "2014", "c",
+      "TRIM_ARRAY",                                        "2011", "2014", "c",
+      "TRUE",                          "92", "99", "2003", "2011", "2014", "c",
+      "TRUNCATE",                                          "2011", "2014", "c",
+      "UESCAPE",                                           "2011", "2014", "c",
+      "UNDER",                               "99",
+      "UNDO",                          "92", "99", "2003",
+      "UNION",                         "92", "99", "2003", "2011", "2014", "c",
+      "UNIQUE",                        "92", "99", "2003", "2011", "2014", "c",
+      "UNKNOWN",                       "92", "99", "2003", "2011", "2014", "c",
+      "UNNEST",                              "99", "2003", "2011", "2014", "c",
+      "UNTIL",                         "92", "99", "2003",
+      "UPDATE",                        "92", "99", "2003", "2011", "2014", "c",
+      "UPPER",                         "92",               "2011", "2014", "c",
+      "UPSERT",                                                            "c",
+      "USAGE",                         "92", "99",
+      "USER",                          "92", "99", "2003", "2011", "2014", "c",
+      "USING",                         "92", "99", "2003", "2011", "2014", "c",
+      "VALUE",                         "92", "99", "2003", "2011", "2014", "c",
+      "VALUES",                        "92", "99", "2003", "2011", "2014", "c",
+      "VALUE_OF",                                                  "2014", "c",
+      "VARBINARY",                                         "2011", "2014", "c",
+      "VARCHAR",                       "92", "99", "2003", "2011", "2014", "c",
+      "VARYING",                       "92", "99", "2003", "2011", "2014", "c",
+      "VAR_POP",                                           "2011", "2014", "c",
+      "VAR_SAMP",                                          "2011", "2014", "c",
+      "VERSION",                                           "2011",
+      "VERSIONING",                                        "2011", "2014", "c",
+      "VERSIONS",                                          "2011",
+      "VIEW",                          "92", "99",
+      "WHEN",                          "92", "99", "2003", "2011", "2014", "c",
+      "WHENEVER",                      "92", "99", "2003", "2011", "2014", "c",
+      "WHERE",                         "92", "99", "2003", "2011", "2014", "c",
+      "WHILE",                         "92", "99", "2003",
+      "WIDTH_BUCKET",                                      "2011", "2014", "c",
+      "WINDOW",                              "99", "2003", "2011", "2014", "c",
+      "WITH",                          "92", "99", "2003", "2011", "2014", "c",
+      "WITHIN",                              "99", "2003", "2011", "2014", "c",
+      "WITHOUT",                             "99", "2003", "2011", "2014", "c",
+      "WORK",                          "92", "99",
+      "WRITE",                         "92", "99",
+      "YEAR",                          "92", "99", "2003", "2011", "2014", "c",
+      "YEARS",                                             "2011",
+      "ZONE",                          "92", "99");
 
   private static final String ANY = "(?s).*";
 
@@ -628,6 +657,7 @@ public class SqlParserTest {
       case "99":
       case "2003":
       case "2011":
+      case "2014":
       case "c":
         assert r != null;
         if (dialect == null || dialect.equals(w)) {
@@ -1602,7 +1632,7 @@ public class SqlParserTest {
     // SQL standard does not allow WITH to contain WITH
     checkFails("with emp2 as (select * from emp)\n"
             + "^with^ dept2 as (select * from dept)\n"
-            + "select 1 as one from emp, dept",
+            + "select 1 as uno from emp, dept",
         "(?s)Encountered \"with\" at .*");
   }
 
@@ -1611,10 +1641,10 @@ public class SqlParserTest {
     check("with emp2 as (select * from emp)\n"
             + "(\n"
             + "  with dept2 as (select * from dept)\n"
-            + "  select 1 as one from empDept)",
+            + "  select 1 as uno from empDept)",
         "WITH `EMP2` AS (SELECT *\n"
             + "FROM `EMP`) (WITH `DEPT2` AS (SELECT *\n"
-            + "FROM `DEPT`) (SELECT 1 AS `ONE`\n"
+            + "FROM `DEPT`) (SELECT 1 AS `UNO`\n"
             + "FROM `EMPDEPT`))");
   }
 
@@ -2172,8 +2202,8 @@ public class SqlParserTest {
     checkExpSame("'foo'");
     checkExpSame("100");
     check(
-        "select 1 as one, 'x' as x, null as n from emp",
-        "SELECT 1 AS `ONE`, 'x' AS `X`, NULL AS `N`\n"
+        "select 1 as uno, 'x' as x, null as n from emp",
+        "SELECT 1 AS `UNO`, 'x' AS `X`, NULL AS `N`\n"
             + "FROM `EMP`");
 
     // Even though it looks like a date, it's just a string.
@@ -6865,9 +6895,11 @@ public class SqlParserTest {
       }
     }
 
-    assertThat("At least one new reserved keyword is added in parser. "
-        + "Make sure to check the new keywords are intended to be a reserved keywords.",
-        reservedKeywords, is(getReservedKeywords()));
+    final String reason = "The parser has at least one new reserved keyword. "
+        + "Are you sure it should be reserved? Difference:\n"
+        + DiffTestCase.diffLines(ImmutableList.copyOf(getReservedKeywords()),
+            ImmutableList.copyOf(reservedKeywords));
+    assertThat(reason, reservedKeywords, is(getReservedKeywords()));
   }
 
   /** Generates a copy of {@code reference.md} with the current set of key

http://git-wip-us.apache.org/repos/asf/calcite/blob/d97c14c5/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java b/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java
index d598fbf..356709b 100644
--- a/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java
+++ b/core/src/test/java/org/apache/calcite/sql/test/SqlAdvisorTest.java
@@ -157,7 +157,9 @@ public class SqlAdvisorTest extends SqlValidatorTestCase {
           "KEYWORD(GROUPING)",
           "KEYWORD(HOUR)",
           "KEYWORD(INTERVAL)",
+          "KEYWORD(LAG)",
           "KEYWORD(LAST_VALUE)",
+          "KEYWORD(LEAD)",
           "KEYWORD(LN)",
           "KEYWORD(LOCALTIME)",
           "KEYWORD(LOCALTIMESTAMP)",
@@ -171,6 +173,7 @@ public class SqlAdvisorTest extends SqlValidatorTestCase {
           "KEYWORD(NEW)",
           "KEYWORD(NEXT)",
           "KEYWORD(NOT)",
+          "KEYWORD(NTILE)",
           "KEYWORD(NULL)",
           "KEYWORD(NULLIF)",
           "KEYWORD(OCTET_LENGTH)",
@@ -199,6 +202,7 @@ public class SqlAdvisorTest extends SqlValidatorTestCase {
           "KEYWORD(TRANSLATE)",
           "KEYWORD(TRIM)",
           "KEYWORD(TRUE)",
+          "KEYWORD(TRUNCATE)",
           "KEYWORD(UNKNOWN)",
           "KEYWORD(UPPER)",
           "KEYWORD(USER)",

http://git-wip-us.apache.org/repos/asf/calcite/blob/d97c14c5/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index 8138ebf..6819052 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -376,7 +376,7 @@ public class JdbcTest {
           .runs();
 
       modelWithView(
-          "select \"name\", \"empid\" as e, \"salary\", \"empid\" + 3 as e3, 1 as one\n"
+          "select \"name\", \"empid\" as e, \"salary\", \"empid\" + 3 as e3, 1 as uno\n"
               + "from \"MUTABLE_EMPLOYEES\"\n"
               + "where \"commission\" = 100 AND \"deptno\" = 20",
           true)

http://git-wip-us.apache.org/repos/asf/calcite/blob/d97c14c5/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
index 494ec44..64ff7a5 100644
--- a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
+++ b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
@@ -97,7 +97,7 @@ public class SqlToRelConverterTest extends SqlToRelTestBase {
 
   @Test public void testAliasList() {
     final String sql = "select a + b from (\n"
-        + "  select deptno, 1 as one, name from dept\n"
+        + "  select deptno, 1 as uno, name from dept\n"
         + ") as d(a, b, c)\n"
         + "where c like 'X%'";
     sql(sql).ok();