This is an automated email from the ASF dual-hosted git repository.

wenchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 901c740  [SPARK-27161][SQL][FOLLOWUP] Drops non-keywords from 
docs/sql-keywords.md
901c740 is described below

commit 901c7408a42a807927542c41181688bdc8132bdf
Author: Takeshi Yamamuro <[email protected]>
AuthorDate: Tue Mar 19 20:18:40 2019 +0800

    [SPARK-27161][SQL][FOLLOWUP] Drops non-keywords from docs/sql-keywords.md
    
    ## What changes were proposed in this pull request?
    This pr is a follow-up of #24093 and includes fixes below;
     - Lists up all the keywords of Spark only (that is, drops non-keywords 
there); I listed up all the keywords of ANSI SQL-2011 in the previous commit 
(SPARK-26215).
     - Sorts the keywords in `SqlBase.g4` in a alphabetical order
    
    ## How was this patch tested?
    Pass Jenkins.
    
    Closes #24125 from maropu/SPARK-27161-FOLLOWUP.
    
    Authored-by: Takeshi Yamamuro <[email protected]>
    Signed-off-by: Wenchen Fan <[email protected]>
---
 docs/sql-keywords.md                               | 330 +--------------
 .../apache/spark/sql/catalyst/parser/SqlBase.g4    | 445 +++++++++++----------
 .../parser/TableIdentifierParserSuite.scala        | 325 +--------------
 .../sql-tests/results/describe-query.sql.out       |   2 +-
 4 files changed, 235 insertions(+), 867 deletions(-)

diff --git a/docs/sql-keywords.md b/docs/sql-keywords.md
index 5ba3ad8..40f7586 100644
--- a/docs/sql-keywords.md
+++ b/docs/sql-keywords.md
@@ -19,79 +19,36 @@ Below is a list of all the keywords in Spark SQL.
 <table class="table">
   <tr><th rowspan="2" style="vertical-align: middle;"><b>Keyword</b></th><th 
colspan="2"><b>Spark SQL</b></th><th rowspan="2" style="vertical-align: 
middle;"><b>SQL-2011</b></th></tr>
   <tr><th><b>ANSI mode</b></th><th><b>default mode</b></th></tr>
-  
<tr><td>ABS</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ABSOLUTE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ACOS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ACTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>ADD</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>AFTER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>ALL</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ALLOCATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ALTER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ANALYZE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>AND</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ANTI</td><td>reserved</td><td>strict-non-reserved</td><td>non-reserved</td></tr>
   <tr><td>ANY</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ARE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ARCHIVE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>ARRAY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ARRAY_AGG</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ARRAY_MAX_CARDINALITY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>AS</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ASC</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ASENSITIVE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ASIN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ASSERTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ASYMMETRIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>AT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ATAN</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ATOMIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>AUTHORIZATION</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>AVG</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BEFORE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>BEGIN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BEGIN_FRAME</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BEGIN_PARTITION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>BETWEEN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BIGINT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BINARY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BIT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>BIT_LENGTH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>BLOB</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BOOLEAN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>BOTH</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>BREADTH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>BUCKET</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>BUCKETS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>BY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CACHE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CALL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CALLED</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CARDINALITY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CASCADE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CASCADED</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>CASE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>CAST</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CATALOG</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CEIL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CEILING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CHANGE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CHAR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CHAR_LENGTH</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CHARACTER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CHARACTER_LENGTH</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CHECK</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CLASSIFIER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>CLEAR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CLOB</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CLOSE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CLUSTER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>CLUSTERED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>COALESCE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CODEGEN</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>COLLATE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>COLLATION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>COLLECT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>COLLECTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>COLUMN</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>COLUMNS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
@@ -101,102 +58,40 @@ Below is a list of all the keywords in Spark SQL.
   
<tr><td>COMPACTIONS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>COMPUTE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>CONCATENATE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CONDITION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CONNECT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CONNECTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>CONSTRAINT</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CONSTRAINTS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CONSTRUCTOR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CONTAINS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CONTINUE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CONVERT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>COPY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>CORR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CORRESPONDING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>COS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>COSH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>COST</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>COUNT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>COVAR_POP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>COVAR_SAMP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CREATE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CROSS</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
   
<tr><td>CUBE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CUME_DIST</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CURRENT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURRENT_CATALOG</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CURRENT_DATE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURRENT_DEFAULT_TRANSFORM_GROUP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURRENT_PATH</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURRENT_ROLE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURRENT_ROW</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURRENT_SCHEMA</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CURRENT_TIME</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CURRENT_TIMESTAMP</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURRENT_TRANSFORM_GROUP_FOR_TYPE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>CURRENT_USER</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CURSOR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>CYCLE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DATA</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DATABASE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DATABASES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>DAY</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DAYS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DBPROPERTIES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DEALLOCATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DEC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DECFLOAT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DECIMAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DECLARE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DEFAULT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DEFERRABLE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DEFERRED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DEFINE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DEFINED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DELETE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DELIMITED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DENSE_RANK</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DEPTH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DEREF</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DESC</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DESCRIBE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>QUERY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DESCRIPTOR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DETERMINISTIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DFS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DIAGNOSTICS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DIRECTORIES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DIRECTORY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DISCONNECT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DISTINCT</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DISTRIBUTE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>DIV</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DO</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DOMAIN</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>DOUBLE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>DROP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>DYNAMIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>EACH</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ELEMENT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>ELSE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ELSEIF</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>EMPTY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>END</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>END_FRAME</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>END_PARTITION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>EQUALS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ESCAPE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ESCAPED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>EVERY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>EXCEPT</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>EXCEPTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>EXCHANGE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>EXEC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>EXECUTE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>EXISTS</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>EXIT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>EXP</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>EXPLAIN</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>EXPORT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>EXTENDED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
@@ -206,243 +101,108 @@ Below is a list of all the keywords in Spark SQL.
   
<tr><td>FETCH</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>FIELDS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>FILEFORMAT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>FILTER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>FIRST</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>FIRST_VALUE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>FLOAT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>FOLLOWING</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>FOR</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>FOREIGN</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>FORMAT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>FORMATTED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>FOUND</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>FRAME_ROW</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>FREE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>FROM</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>FULL</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
   
<tr><td>FUNCTION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>FUNCTIONS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>FUSION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>GENERAL</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>GET</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>GLOBAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>GO</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>GOTO</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>GRANT</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>GROUP</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>GROUPING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>GROUPS</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>HANDLER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>HAVING</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>HOLD</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>HOUR</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>HOURS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>IDENTITY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>IF</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>IGNORE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>IMMEDIATE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>IMPORT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>IN</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>INDICATOR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>INDEX</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>INDEXES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>INITIAL</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>INITIALLY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>INNER</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>INOUT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>INPATH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>INPUT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>INPUTFORMAT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>INSENSITIVE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>INSERT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>INT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>INTEGER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>INTERSECT</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>INTERSECTION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>INTERVAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>INTO</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>IS</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ISOLATION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>ITEMS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ITERATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>JOIN</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>JSON_ARRAY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_ARRAYAGG</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_EXISTS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_OBJECT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_OBJECTAGG</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_QUERY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_TABLE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_TABLE_PRIMITIVE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>JSON_VALUE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>KEY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>KEYS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LAG</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LANGUAGE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>LARGE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LAST</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LAST_VALUE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LATERAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LAZY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LEAD</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LEADING</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>LEAVE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LEFT</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>LEVEL</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>LIKE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>LIKE_REGEX</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LIMIT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>LINES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>LIST</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LISTAGG</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LOAD</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>LOCAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>LOCALTIME</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>LOCALTIMESTAMP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>LOCATION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LOCATOR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>LOCK</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>LOCKS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LOG</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LOG10</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>LOGICAL</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>LOOP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>LOWER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>MACRO</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>MAP</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>MATCH</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>MATCH_NUMBER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>MATCH_RECOGNIZE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>MATCHES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>MAX</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>MEMBER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>MERGE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>METHOD</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>MICROSECOND</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>MICROSECONDS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>MILLISECOND</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>MILLISECONDS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>MIN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>MINUS</td><td>reserved</td><td>reserved</td><td>non-reserved</td></tr>
+  
<tr><td>MINUS</td><td>reserved</td><td>strict-non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>MINUTE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>MINUTES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>MOD</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>MODIFIES</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>MODULE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>MONTH</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>MONTHS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>MSCK</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>MULTISET</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NAMES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>NATIONAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>NATURAL</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NCHAR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NCLOB</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NEW</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NEXT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>NO</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NONE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NORMALIZE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>NOT</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NTH_VALUE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NTILE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>NULL</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>NULLS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>NULLIF</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>NUMERIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>OBJECT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>OCCURRENCES_REGEX</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>OCTET_LENGTH</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>OF</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>OFFSET</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>OLD</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>OMIT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>ON</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ONE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>ONLY</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>OPEN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>OPTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>OPTIONS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>OR</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ORDER</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ORDINALITY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>OUT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>OUTER</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>OUTPUT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>OUTPUTFORMAT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>OVER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>OVERLAPS</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>OVERLAY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>OVERWRITE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PAD</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PARAMETER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PARTIAL</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>PARTITION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>PARTITIONED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>PARTITIONS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PATH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PATTERN</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PERCENT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PERCENT_RANK</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PERCENTILE_CONT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PERCENTILE_DISC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PERCENTLIT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PERIOD</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
+  
<tr><td>PERCENT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>PIVOT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PORTION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>POSITION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>POSITION_REGEX</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>POWER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PRECEDES</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>PRECEDING</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PRECISION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PREPARE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PRESERVE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>PRIMARY</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>PRINCIPALS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PRIOR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PRIVILEGES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PROCEDURE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>PTF</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>PUBLIC</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>PURGE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
+  
<tr><td>QUERY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>RANGE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>RANK</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>READ</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>READS</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>RECORDREADER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>RECORDWRITER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>RECURSIVE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>RECOVER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>REDUCE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>REF</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>REFERENCES</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REFERENCING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>REFRESH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>REGR_AVGX</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_AVGY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_COUNT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_INTERCEPT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_R2</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_SLOPE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_SXX</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_SXY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>REGR_SYY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>RELATIVE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>RELEASE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>RENAME</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>REPAIR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>REPEAT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>REPLACE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>RESET</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>RESIGNAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>RESTRICT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>RESULT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>RETURN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>RETURNS</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>REVOKE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>RIGHT</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
   
<tr><td>RLIKE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
@@ -450,142 +210,62 @@ Below is a list of all the keywords in Spark SQL.
   
<tr><td>ROLES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>ROLLBACK</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ROLLUP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ROUTINE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>ROW</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>ROW_NUMBER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>ROWS</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>RUNNING</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SAVEPOINT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SCHEMA</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SCOPE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SCROLL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SEARCH</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SECOND</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SECONDS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SECTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SEEK</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>SELECT</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SEMI</td><td>reserved</td><td>strict-non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SENSITIVE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SEPARATED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>SERDE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>SERDEPROPERTIES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SESSION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>SESSION_USER</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SET</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SETS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>SHOW</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SIGNAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SIMILAR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SIN</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SINH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SIZE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SKIP</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>SKEWED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SMALLINT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>SOME</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>SORT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>SORTED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SPACE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SPECIFIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SPECIFICTYPE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SQL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SQLCODE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SQLERROR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SQLEXCEPTION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SQLSTATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SQLWARNING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SQRT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>START</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>STATE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>STATIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>STATISTICS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>STDDEV_POP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>STDDEV_SAMP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>STORED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>STRATIFY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>STRUCT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SUBMULTISET</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SUBSET</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>SUBSTRING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SUBSTRING_REGEX</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SUCCEEDS</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SUM</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SYMMETRIC</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SYSTEM</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SYSTEM_TIME</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>SYSTEM_USER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>TABLE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>TABLES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>TABLESAMPLE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TAN</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>TANH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>TBLPROPERTIES</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>TEMPORARY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>TERMINATED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>THEN</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TIME</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TIMESTAMP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TIMEZONE_HOUR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TIMEZONE_MINUTE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>TO</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>TOUCH</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>TRAILING</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>TRANSACTION</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>TRANSACTIONS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>TRANSFORM</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>TRANSLATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TRANSLATE_REGEX</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TRANSLATION</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TREAT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TRIGGER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TRIM</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>TRIM_ARRAY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>TRUE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>TRUNCATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>UESCAPE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>UNARCHIVE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>UNBOUNDED</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>UNCACHE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>UNDER</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>UNDO</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>UNION</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
   
<tr><td>UNIQUE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>UNKNOWN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>UNLOCK</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>UNNEST</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>UNSET</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>UNTIL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>UPDATE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>UPPER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>USAGE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   
<tr><td>USE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>USER</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>USING</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VALUE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>VALUES</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VALUE_OF</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VAR_POP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VAR_SAMP</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VARBINARY</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VARCHAR</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VARYING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>VERSIONING</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>VIEW</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
+  
<tr><td>WEEK</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
+  
<tr><td>WEEKS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>WHEN</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>WHENEVER</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>WHERE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>WHILE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>WIDTH_BUCKET</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>WINDOW</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
   <tr><td>WITH</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>WITHIN</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>WITHOUT</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
-  
<tr><td>WEEK</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>WEEKS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>WORK</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>WRITE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
   <tr><td>YEAR</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
   
<tr><td>YEARS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
-  
<tr><td>ZONE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
 </table>
diff --git 
a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 
b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4
index 4d02d62..77d30fb 100644
--- 
a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4
+++ 
b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4
@@ -903,9 +903,9 @@ ansiNonReserved
     | PARTITION
     | PARTITIONED
     | PARTITIONS
-    | PERCENT
     | PERCENTLIT
     | PIVOT
+    | POSITION
     | PRECEDING
     | PRINCIPALS
     | PURGE
@@ -1179,6 +1179,7 @@ nonReserved
     | ROLLUP
     | ROW
     | ROWS
+    | SCHEMA
     | SECOND
     | SECONDS
     | SELECT
@@ -1233,257 +1234,261 @@ nonReserved
     | YEARS
     ;
 
+// NOTE: If you add a new token in the list below, you should update the list 
of keywords
+// in `docs/sql-keywords.md`. If the token is a non-reserved keyword,
+// please update `ansiNonReserved` and `nonReserved` as well.
+
 //============================
 // Start of the keywords list
 //============================
-SELECT: 'SELECT';
-FROM: 'FROM';
 ADD: 'ADD';
-AS: 'AS';
+AFTER: 'AFTER';
 ALL: 'ALL';
+ALTER: 'ALTER';
+ANALYZE: 'ANALYZE';
+AND: 'AND';
+ANTI: 'ANTI';
 ANY: 'ANY';
-DISTINCT: 'DISTINCT';
-WHERE: 'WHERE';
-GROUP: 'GROUP';
-BY: 'BY';
-GROUPING: 'GROUPING';
-SETS: 'SETS';
-CUBE: 'CUBE';
-ROLLUP: 'ROLLUP';
-ORDER: 'ORDER';
-HAVING: 'HAVING';
-LIMIT: 'LIMIT';
+ARCHIVE: 'ARCHIVE';
+ARRAY: 'ARRAY';
+AS: 'AS';
+ASC: 'ASC';
 AT: 'AT';
-OR: 'OR';
-AND: 'AND';
-IN: 'IN';
-NOT: 'NOT' | '!';
-NO: 'NO';
-EXISTS: 'EXISTS';
+AUTHORIZATION: 'AUTHORIZATION';
 BETWEEN: 'BETWEEN';
-LIKE: 'LIKE';
-RLIKE: 'RLIKE' | 'REGEXP';
-IS: 'IS';
-NULL: 'NULL';
-TRUE: 'TRUE';
-FALSE: 'FALSE';
-NULLS: 'NULLS';
-ASC: 'ASC';
-DESC: 'DESC';
-FOR: 'FOR';
-INTERVAL: 'INTERVAL';
-YEAR: 'YEAR';
-YEARS: 'YEARS';
-MONTH: 'MONTH';
-MONTHS: 'MONTHS';
-WEEK: 'WEEK';
-WEEKS: 'WEEKS';
-DAY: 'DAY';
-DAYS: 'DAYS';
-HOUR: 'HOUR';
-HOURS: 'HOURS';
-MINUTE: 'MINUTE';
-MINUTES: 'MINUTES';
-SECOND: 'SECOND';
-SECONDS: 'SECONDS';
-MILLISECOND: 'MILLISECOND';
-MILLISECONDS: 'MILLISECONDS';
-MICROSECOND: 'MICROSECOND';
-MICROSECONDS: 'MICROSECONDS';
+BOTH: 'BOTH';
+BUCKET: 'BUCKET';
+BUCKETS: 'BUCKETS';
+BY: 'BY';
+CACHE: 'CACHE';
+CASCADE: 'CASCADE';
 CASE: 'CASE';
-WHEN: 'WHEN';
-THEN: 'THEN';
-ELSE: 'ELSE';
-END: 'END';
-JOIN: 'JOIN';
-CROSS: 'CROSS';
-OUTER: 'OUTER';
-INNER: 'INNER';
-LEFT: 'LEFT';
-SEMI: 'SEMI';
-RIGHT: 'RIGHT';
-FULL: 'FULL';
-NATURAL: 'NATURAL';
-ON: 'ON';
-PIVOT: 'PIVOT';
-LATERAL: 'LATERAL';
-WINDOW: 'WINDOW';
-OVER: 'OVER';
-PARTITION: 'PARTITION';
-RANGE: 'RANGE';
-ROWS: 'ROWS';
-UNBOUNDED: 'UNBOUNDED';
-PRECEDING: 'PRECEDING';
-FOLLOWING: 'FOLLOWING';
-CURRENT: 'CURRENT';
-FIRST: 'FIRST';
-AFTER: 'AFTER';
-LAST: 'LAST';
-ROW: 'ROW';
-WITH: 'WITH';
-VALUES: 'VALUES';
-CREATE: 'CREATE';
-TABLE: 'TABLE';
-QUERY: 'QUERY';
-DIRECTORY: 'DIRECTORY';
-VIEW: 'VIEW';
-REPLACE: 'REPLACE';
-INSERT: 'INSERT';
-DELETE: 'DELETE';
-INTO: 'INTO';
-DESCRIBE: 'DESCRIBE';
-EXPLAIN: 'EXPLAIN';
-FORMAT: 'FORMAT';
-LOGICAL: 'LOGICAL';
-CODEGEN: 'CODEGEN';
-COST: 'COST';
 CAST: 'CAST';
-SHOW: 'SHOW';
-TABLES: 'TABLES';
-COLUMNS: 'COLUMNS';
+CHANGE: 'CHANGE';
+CHECK: 'CHECK';
+CLEAR: 'CLEAR';
+CLUSTER: 'CLUSTER';
+CLUSTERED: 'CLUSTERED';
+CODEGEN: 'CODEGEN';
+COLLATE: 'COLLATE';
+COLLECTION: 'COLLECTION';
 COLUMN: 'COLUMN';
-USE: 'USE';
-PARTITIONS: 'PARTITIONS';
-FUNCTIONS: 'FUNCTIONS';
-DROP: 'DROP';
-UNION: 'UNION';
-EXCEPT: 'EXCEPT';
-SETMINUS: 'MINUS';
-INTERSECT: 'INTERSECT';
-TO: 'TO';
-TABLESAMPLE: 'TABLESAMPLE';
-STRATIFY: 'STRATIFY';
-ALTER: 'ALTER';
-RENAME: 'RENAME';
-ARRAY: 'ARRAY';
-MAP: 'MAP';
-STRUCT: 'STRUCT';
+COLUMNS: 'COLUMNS';
 COMMENT: 'COMMENT';
-SET: 'SET';
-RESET: 'RESET';
-DATA: 'DATA';
-START: 'START';
-TRANSACTION: 'TRANSACTION';
 COMMIT: 'COMMIT';
-ROLLBACK: 'ROLLBACK';
-MACRO: 'MACRO';
-IGNORE: 'IGNORE';
-BOTH: 'BOTH';
-LEADING: 'LEADING';
-TRAILING: 'TRAILING';
-IF: 'IF';
-POSITION: 'POSITION';
-EXTRACT: 'EXTRACT';
-PERCENTLIT: 'PERCENT';
-BUCKET: 'BUCKET';
-OUT: 'OUT';
-OF: 'OF';
-SORT: 'SORT';
-CLUSTER: 'CLUSTER';
-DISTRIBUTE: 'DISTRIBUTE';
-OVERWRITE: 'OVERWRITE';
-TRANSFORM: 'TRANSFORM';
-REDUCE: 'REDUCE';
-USING: 'USING';
-SERDE: 'SERDE';
-SERDEPROPERTIES: 'SERDEPROPERTIES';
-RECORDREADER: 'RECORDREADER';
-RECORDWRITER: 'RECORDWRITER';
-DELIMITED: 'DELIMITED';
-FIELDS: 'FIELDS';
-TERMINATED: 'TERMINATED';
-COLLECTION: 'COLLECTION';
-ITEMS: 'ITEMS';
-KEYS: 'KEYS';
-ESCAPED: 'ESCAPED';
-LINES: 'LINES';
-SEPARATED: 'SEPARATED';
-FUNCTION: 'FUNCTION';
-EXTENDED: 'EXTENDED';
-REFRESH: 'REFRESH';
-CLEAR: 'CLEAR';
-CACHE: 'CACHE';
-UNCACHE: 'UNCACHE';
-LAZY: 'LAZY';
-FORMATTED: 'FORMATTED';
-GLOBAL: 'GLOBAL';
-TEMPORARY: 'TEMPORARY' | 'TEMP';
-OPTIONS: 'OPTIONS';
-UNSET: 'UNSET';
-TBLPROPERTIES: 'TBLPROPERTIES';
-DBPROPERTIES: 'DBPROPERTIES';
-BUCKETS: 'BUCKETS';
-SKEWED: 'SKEWED';
-STORED: 'STORED';
-DIRECTORIES: 'DIRECTORIES';
-LOCATION: 'LOCATION';
-EXCHANGE: 'EXCHANGE';
-ARCHIVE: 'ARCHIVE';
-UNARCHIVE: 'UNARCHIVE';
-FILEFORMAT: 'FILEFORMAT';
-TOUCH: 'TOUCH';
 COMPACT: 'COMPACT';
+COMPACTIONS: 'COMPACTIONS';
+COMPUTE: 'COMPUTE';
 CONCATENATE: 'CONCATENATE';
-CHANGE: 'CHANGE';
-CASCADE: 'CASCADE';
-RESTRICT: 'RESTRICT';
-CLUSTERED: 'CLUSTERED';
-SORTED: 'SORTED';
-PURGE: 'PURGE';
-INPUTFORMAT: 'INPUTFORMAT';
-OUTPUTFORMAT: 'OUTPUTFORMAT';
-SCHEMA: 'SCHEMA';
+CONSTRAINT: 'CONSTRAINT';
+COST: 'COST';
+CREATE: 'CREATE';
+CROSS: 'CROSS';
+CUBE: 'CUBE';
+CURRENT: 'CURRENT';
+CURRENT_DATE: 'CURRENT_DATE';
+CURRENT_TIME: 'CURRENT_TIME';
+CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
+CURRENT_USER: 'CURRENT_USER';
+DATA: 'DATA';
 DATABASE: 'DATABASE';
 DATABASES: 'DATABASES' | 'SCHEMAS';
+DAY: 'DAY';
+DAYS: 'DAYS';
+DBPROPERTIES: 'DBPROPERTIES';
+DEFINED: 'DEFINED';
+DELETE: 'DELETE';
+DELIMITED: 'DELIMITED';
+DESC: 'DESC';
+DESCRIBE: 'DESCRIBE';
 DFS: 'DFS';
-TRUNCATE: 'TRUNCATE';
-ANALYZE: 'ANALYZE';
-COMPUTE: 'COMPUTE';
-LIST: 'LIST';
-STATISTICS: 'STATISTICS';
-PARTITIONED: 'PARTITIONED';
+DIRECTORIES: 'DIRECTORIES';
+DIRECTORY: 'DIRECTORY';
+DISTINCT: 'DISTINCT';
+DISTRIBUTE: 'DISTRIBUTE';
+DROP: 'DROP';
+ELSE: 'ELSE';
+END: 'END';
+ESCAPED: 'ESCAPED';
+EXCEPT: 'EXCEPT';
+EXCHANGE: 'EXCHANGE';
+EXISTS: 'EXISTS';
+EXPLAIN: 'EXPLAIN';
+EXPORT: 'EXPORT';
+EXTENDED: 'EXTENDED';
 EXTERNAL: 'EXTERNAL';
-DEFINED: 'DEFINED';
-REVOKE: 'REVOKE';
+EXTRACT: 'EXTRACT';
+FALSE: 'FALSE';
+FETCH: 'FETCH';
+FIELDS: 'FIELDS';
+FILEFORMAT: 'FILEFORMAT';
+FIRST: 'FIRST';
+FOLLOWING: 'FOLLOWING';
+FOR: 'FOR';
+FOREIGN: 'FOREIGN';
+FORMAT: 'FORMAT';
+FORMATTED: 'FORMATTED';
+FROM: 'FROM';
+FULL: 'FULL';
+FUNCTION: 'FUNCTION';
+FUNCTIONS: 'FUNCTIONS';
+GLOBAL: 'GLOBAL';
 GRANT: 'GRANT';
-LOCK: 'LOCK';
-UNLOCK: 'UNLOCK';
-MSCK: 'MSCK';
-REPAIR: 'REPAIR';
-RECOVER: 'RECOVER';
-EXPORT: 'EXPORT';
+GROUP: 'GROUP';
+GROUPING: 'GROUPING';
+HAVING: 'HAVING';
+HOUR: 'HOUR';
+HOURS: 'HOURS';
+IF: 'IF';
+IGNORE: 'IGNORE';
 IMPORT: 'IMPORT';
-LOAD: 'LOAD';
-ROLE: 'ROLE';
-ROLES: 'ROLES';
-COMPACTIONS: 'COMPACTIONS';
-PRINCIPALS: 'PRINCIPALS';
-TRANSACTIONS: 'TRANSACTIONS';
+IN: 'IN';
 INDEX: 'INDEX';
 INDEXES: 'INDEXES';
-LOCKS: 'LOCKS';
-OPTION: 'OPTION';
-ANTI: 'ANTI';
-LOCAL: 'LOCAL';
+INNER: 'INNER';
 INPATH: 'INPATH';
-AUTHORIZATION: 'AUTHORIZATION';
-CHECK: 'CHECK';
-COLLATE: 'COLLATE';
-CONSTRAINT: 'CONSTRAINT';
-CURRENT_DATE: 'CURRENT_DATE';
-CURRENT_TIME: 'CURRENT_TIME';
-CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
-CURRENT_USER: 'CURRENT_USER';
-FETCH: 'FETCH';
-FOREIGN: 'FOREIGN';
+INPUTFORMAT: 'INPUTFORMAT';
+INSERT: 'INSERT';
+INTERSECT: 'INTERSECT';
+INTERVAL: 'INTERVAL';
+INTO: 'INTO';
+IS: 'IS';
+ITEMS: 'ITEMS';
+JOIN: 'JOIN';
+KEYS: 'KEYS';
+LAST: 'LAST';
+LATERAL: 'LATERAL';
+LAZY: 'LAZY';
+LEADING: 'LEADING';
+LEFT: 'LEFT';
+LIKE: 'LIKE';
+LIMIT: 'LIMIT';
+LINES: 'LINES';
+LIST: 'LIST';
+LOAD: 'LOAD';
+LOCAL: 'LOCAL';
+LOCATION: 'LOCATION';
+LOCK: 'LOCK';
+LOCKS: 'LOCKS';
+LOGICAL: 'LOGICAL';
+MACRO: 'MACRO';
+MAP: 'MAP';
+MICROSECOND: 'MICROSECOND';
+MICROSECONDS: 'MICROSECONDS';
+MILLISECOND: 'MILLISECOND';
+MILLISECONDS: 'MILLISECONDS';
+MINUTE: 'MINUTE';
+MINUTES: 'MINUTES';
+MONTH: 'MONTH';
+MONTHS: 'MONTHS';
+MSCK: 'MSCK';
+NATURAL: 'NATURAL';
+NO: 'NO';
+NOT: 'NOT' | '!';
+NULL: 'NULL';
+NULLS: 'NULLS';
+OF: 'OF';
+ON: 'ON';
 ONLY: 'ONLY';
+OPTION: 'OPTION';
+OPTIONS: 'OPTIONS';
+OR: 'OR';
+ORDER: 'ORDER';
+OUT: 'OUT';
+OUTER: 'OUTER';
+OUTPUTFORMAT: 'OUTPUTFORMAT';
+OVER: 'OVER';
 OVERLAPS: 'OVERLAPS';
+OVERWRITE: 'OVERWRITE';
+PARTITION: 'PARTITION';
+PARTITIONED: 'PARTITIONED';
+PARTITIONS: 'PARTITIONS';
+PERCENTLIT: 'PERCENT';
+PIVOT: 'PIVOT';
+POSITION: 'POSITION';
+PRECEDING: 'PRECEDING';
 PRIMARY: 'PRIMARY';
+PRINCIPALS: 'PRINCIPALS';
+PURGE: 'PURGE';
+QUERY: 'QUERY';
+RANGE: 'RANGE';
+RECORDREADER: 'RECORDREADER';
+RECORDWRITER: 'RECORDWRITER';
+RECOVER: 'RECOVER';
+REDUCE: 'REDUCE';
 REFERENCES: 'REFERENCES';
+REFRESH: 'REFRESH';
+RENAME: 'RENAME';
+REPAIR: 'REPAIR';
+REPLACE: 'REPLACE';
+RESET: 'RESET';
+RESTRICT: 'RESTRICT';
+REVOKE: 'REVOKE';
+RIGHT: 'RIGHT';
+RLIKE: 'RLIKE' | 'REGEXP';
+ROLE: 'ROLE';
+ROLES: 'ROLES';
+ROLLBACK: 'ROLLBACK';
+ROLLUP: 'ROLLUP';
+ROW: 'ROW';
+ROWS: 'ROWS';
+SCHEMA: 'SCHEMA';
+SECOND: 'SECOND';
+SECONDS: 'SECONDS';
+SELECT: 'SELECT';
+SEMI: 'SEMI';
+SEPARATED: 'SEPARATED';
+SERDE: 'SERDE';
+SERDEPROPERTIES: 'SERDEPROPERTIES';
 SESSION_USER: 'SESSION_USER';
+SET: 'SET';
+SETMINUS: 'MINUS';
+SETS: 'SETS';
+SHOW: 'SHOW';
+SKEWED: 'SKEWED';
 SOME: 'SOME';
+SORT: 'SORT';
+SORTED: 'SORTED';
+START: 'START';
+STATISTICS: 'STATISTICS';
+STORED: 'STORED';
+STRATIFY: 'STRATIFY';
+STRUCT: 'STRUCT';
+TABLE: 'TABLE';
+TABLES: 'TABLES';
+TABLESAMPLE: 'TABLESAMPLE';
+TBLPROPERTIES: 'TBLPROPERTIES';
+TEMPORARY: 'TEMPORARY' | 'TEMP';
+TERMINATED: 'TERMINATED';
+THEN: 'THEN';
+TO: 'TO';
+TOUCH: 'TOUCH';
+TRAILING: 'TRAILING';
+TRANSACTION: 'TRANSACTION';
+TRANSACTIONS: 'TRANSACTIONS';
+TRANSFORM: 'TRANSFORM';
+TRUE: 'TRUE';
+TRUNCATE: 'TRUNCATE';
+UNARCHIVE: 'UNARCHIVE';
+UNBOUNDED: 'UNBOUNDED';
+UNCACHE: 'UNCACHE';
+UNION: 'UNION';
 UNIQUE: 'UNIQUE';
+UNLOCK: 'UNLOCK';
+UNSET: 'UNSET';
+USE: 'USE';
 USER: 'USER';
+USING: 'USING';
+VALUES: 'VALUES';
+VIEW: 'VIEW';
+WEEK: 'WEEK';
+WEEKS: 'WEEKS';
+WHEN: 'WHEN';
+WHERE: 'WHERE';
+WINDOW: 'WINDOW';
+WITH: 'WITH';
+YEAR: 'YEAR';
+YEARS: 'YEARS';
 //============================
 // End of the keywords list
 //============================
diff --git 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
index 4dfd817..f86ce16 100644
--- 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
+++ 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
@@ -295,81 +295,38 @@ class TableIdentifierParserSuite extends SparkFunSuite 
with SQLHelper {
     "where",
     "with")
 
-  // All the keywords in `docs/sql-reserved-and-non-reserved-key-words.md` are 
listed below:
+  // All the keywords in `docs/sql-keywords.md` are listed below:
   val allCandidateKeywords = Set(
-    "abs",
-    "absolute",
-    "acos",
-    "action",
     "add",
     "after",
     "all",
-    "allocate",
     "alter",
     "analyze",
     "and",
     "anti",
     "any",
     "archive",
-    "are",
     "array",
-    "array_agg",
-    "array_max_cardinality",
     "as",
     "asc",
-    "asensitive",
-    "asin",
-    "assertion",
-    "asymmetric",
     "at",
-    "atan",
-    "atomic",
     "authorization",
-    "avg",
-    "before",
-    "begin",
-    "begin_frame",
-    "begin_partition",
     "between",
-    "bigint",
-    "binary",
-    "bit",
-    "bit_length",
-    "blob",
-    "boolean",
     "both",
-    "breadth",
     "bucket",
     "buckets",
     "by",
     "cache",
-    "call",
-    "called",
-    "cardinality",
     "cascade",
-    "cascaded",
     "case",
     "cast",
-    "catalog",
-    "ceil",
-    "ceiling",
     "change",
-    "char",
-    "char_length",
-    "character",
-    "character_length",
     "check",
-    "classifier",
     "clear",
-    "clob",
-    "close",
     "cluster",
     "clustered",
-    "coalesce",
     "codegen",
     "collate",
-    "collation",
-    "collect",
     "collection",
     "column",
     "columns",
@@ -379,101 +336,40 @@ class TableIdentifierParserSuite extends SparkFunSuite 
with SQLHelper {
     "compactions",
     "compute",
     "concatenate",
-    "condition",
-    "connect",
-    "connection",
     "constraint",
-    "constraints",
-    "constructor",
-    "contains",
-    "continue",
-    "convert",
-    "copy",
-    "corr",
-    "corresponding",
-    "cos",
-    "cosh",
     "cost",
-    "count",
-    "covar_pop",
-    "covar_samp",
     "create",
     "cross",
     "cube",
-    "cume_dist",
     "current",
-    "current_catalog",
     "current_date",
-    "current_default_transform_group",
-    "current_path",
-    "current_role",
-    "current_row",
-    "current_schema",
     "current_time",
     "current_timestamp",
-    "current_transform_group_for_type",
     "current_user",
-    "cursor",
-    "cycle",
     "data",
     "database",
     "databases",
-    "date",
     "day",
     "days",
     "dbproperties",
-    "deallocate",
-    "dec",
-    "decfloat",
-    "decimal",
-    "declare",
-    "default",
-    "deferrable",
-    "deferred",
-    "define",
     "defined",
     "delete",
     "delimited",
-    "dense_rank",
-    "depth",
-    "deref",
     "desc",
     "describe",
-    "descriptor",
-    "deterministic",
     "dfs",
-    "diagnostics",
     "directories",
     "directory",
-    "disconnect",
     "distinct",
     "distribute",
     "div",
-    "do",
-    "domain",
-    "double",
     "drop",
-    "dynamic",
-    "each",
-    "element",
     "else",
-    "elseif",
-    "empty",
     "end",
-    "end_frame",
-    "end_partition",
-    "equals",
-    "escape",
     "escaped",
-    "every",
     "except",
-    "exception",
     "exchange",
-    "exec",
-    "execute",
     "exists",
-    "exit",
-    "exp",
     "explain",
     "export",
     "extended",
@@ -483,241 +379,108 @@ class TableIdentifierParserSuite extends SparkFunSuite 
with SQLHelper {
     "fetch",
     "fields",
     "fileformat",
-    "filter",
     "first",
-    "first_value",
-    "float",
     "following",
     "for",
     "foreign",
     "format",
     "formatted",
-    "found",
-    "frame_row",
-    "free",
     "from",
     "full",
     "function",
     "functions",
-    "fusion",
-    "general",
-    "get",
     "global",
-    "go",
-    "goto",
     "grant",
     "group",
     "grouping",
-    "groups",
-    "handler",
     "having",
-    "hold",
     "hour",
     "hours",
-    "identity",
     "if",
     "ignore",
-    "immediate",
     "import",
     "in",
     "index",
     "indexes",
-    "indicator",
-    "initial",
-    "initially",
     "inner",
-    "inout",
     "inpath",
-    "input",
     "inputformat",
-    "insensitive",
     "insert",
-    "int",
-    "integer",
     "intersect",
-    "intersection",
     "interval",
     "into",
     "is",
-    "isolation",
     "items",
-    "iterate",
     "join",
-    "json_array",
-    "json_arrayagg",
-    "json_exists",
-    "json_object",
-    "json_objectagg",
-    "json_query",
-    "json_table",
-    "json_table_primitive",
-    "json_value",
-    "key",
     "keys",
-    "lag",
-    "language",
-    "large",
     "last",
-    "last_value",
     "lateral",
     "lazy",
-    "lead",
     "leading",
-    "leave",
     "left",
-    "level",
     "like",
-    "like_regex",
     "limit",
     "lines",
     "list",
-    "listagg",
-    "ln",
     "load",
     "local",
-    "localtime",
-    "localtimestamp",
     "location",
-    "locator",
     "lock",
     "locks",
-    "log",
-    "log10",
     "logical",
-    "loop",
-    "lower",
     "macro",
     "map",
-    "match",
-    "match_number",
-    "match_recognize",
-    "matches",
-    "max",
-    "member",
-    "merge",
-    "method",
     "microsecond",
     "microseconds",
     "millisecond",
     "milliseconds",
-    "min",
     "minus",
     "minute",
     "minutes",
-    "mod",
-    "modifies",
-    "module",
     "month",
     "months",
     "msck",
-    "multiset",
-    "names",
-    "national",
     "natural",
-    "nchar",
-    "nclob",
-    "new",
-    "next",
     "no",
-    "none",
-    "normalize",
     "not",
-    "nth_value",
-    "ntile",
     "null",
-    "nullif",
     "nulls",
-    "numeric",
-    "object",
-    "occurrences_regex",
-    "octet_length",
     "of",
-    "offset",
-    "old",
-    "omit",
     "on",
-    "one",
     "only",
-    "open",
     "option",
     "options",
     "or",
     "order",
-    "ordinality",
     "out",
     "outer",
-    "output",
     "outputformat",
     "over",
     "overlaps",
-    "overlay",
     "overwrite",
-    "pad",
-    "parameter",
-    "partial",
     "partition",
     "partitioned",
     "partitions",
-    "path",
-    "pattern",
-    "per",
     "percent",
-    "percent_rank",
-    "percentile_cont",
-    "percentile_disc",
-    "percentlit",
-    "period",
     "pivot",
-    "portion",
-    "power",
-    "precedes",
+    "position",
     "preceding",
-    "precision",
-    "prepare",
-    "preserve",
     "primary",
     "principals",
-    "prior",
-    "privileges",
-    "procedure",
-    "ptf",
-    "public",
     "purge",
+    "query",
     "range",
-    "rank",
-    "read",
-    "reads",
-    "real",
     "recordreader",
     "recordwriter",
     "recover",
-    "recursive",
     "reduce",
-    "ref",
     "references",
-    "referencing",
     "refresh",
-    "regr_avgx",
-    "regr_avgy",
-    "regr_count",
-    "regr_intercept",
-    "regr_r2",
-    "regr_slope",
-    "regr_sxx",
-    "regr_sxy",
-    "regr_syy",
-    "relative",
-    "release",
     "rename",
     "repair",
-    "repeat",
     "replace",
     "reset",
-    "resignal",
     "restrict",
-    "result",
-    "return",
-    "returns",
     "revoke",
     "right",
     "rlike",
@@ -725,144 +488,64 @@ class TableIdentifierParserSuite extends SparkFunSuite 
with SQLHelper {
     "roles",
     "rollback",
     "rollup",
-    "routine",
     "row",
-    "row_number",
     "rows",
-    "running",
-    "savepoint",
     "schema",
-    "scope",
-    "scroll",
-    "search",
     "second",
     "seconds",
-    "section",
-    "seek",
     "select",
     "semi",
-    "sensitive",
     "separated",
     "serde",
     "serdeproperties",
-    "session",
     "session_user",
     "set",
     "sets",
     "show",
-    "signal",
-    "similar",
-    "sin",
-    "sinh",
-    "size",
     "skewed",
-    "skip",
-    "smallint",
     "some",
     "sort",
     "sorted",
-    "space",
-    "specific",
-    "specifictype",
-    "sql",
-    "sqlcode",
-    "sqlerror",
-    "sqlexception",
-    "sqlstate",
-    "sqlwarning",
-    "sqrt",
     "start",
-    "state",
-    "static",
     "statistics",
-    "stddev_pop",
-    "stddev_samp",
     "stored",
     "stratify",
     "struct",
-    "submultiset",
-    "subset",
-    "substring",
-    "substring_regex",
-    "succeeds",
-    "sum",
-    "symmetric",
-    "system",
-    "system_time",
-    "system_user",
     "table",
     "tables",
     "tablesample",
-    "tan",
-    "tanh",
     "tblproperties",
     "temporary",
     "terminated",
     "then",
-    "time",
-    "timestamp",
-    "timezone_hour",
-    "timezone_minute",
     "to",
     "touch",
     "trailing",
     "transaction",
     "transactions",
     "transform",
-    "translate",
-    "translate_regex",
-    "translation",
-    "treat",
-    "trigger",
-    "trim",
-    "trim_array",
     "true",
     "truncate",
-    "uescape",
     "unarchive",
     "unbounded",
     "uncache",
-    "under",
-    "undo",
     "union",
     "unique",
-    "unknown",
     "unlock",
-    "unnest",
     "unset",
-    "until",
-    "update",
-    "upper",
-    "usage",
     "use",
     "user",
     "using",
-    "value",
-    "value_of",
     "values",
-    "var_pop",
-    "var_samp",
-    "varbinary",
-    "varchar",
-    "varying",
-    "versioning",
     "view",
     "week",
     "weeks",
     "when",
-    "whenever",
     "where",
-    "while",
-    "width_bucket",
     "window",
     "with",
-    "within",
-    "without",
-    "work",
-    "write",
     "year",
-    "years",
-    "zone")
+    "years")
 
   val reservedKeywordsInAnsiMode = Set(
     "all",
diff --git 
a/sql/core/src/test/resources/sql-tests/results/describe-query.sql.out 
b/sql/core/src/test/resources/sql-tests/results/describe-query.sql.out
index 9209ce1..9205b70 100644
--- a/sql/core/src/test/resources/sql-tests/results/describe-query.sql.out
+++ b/sql/core/src/test/resources/sql-tests/results/describe-query.sql.out
@@ -145,7 +145,7 @@ struct<>
 -- !query 13 output
 org.apache.spark.sql.catalyst.parser.ParseException
 
-mismatched input 'insert' expecting {<EOF>, '(', ',', 'SELECT', 'WHERE', 
'GROUP', 'ORDER', 'HAVING', 'LIMIT', 'JOIN', 'CROSS', 'INNER', 'LEFT', 'SEMI', 
'RIGHT', 'FULL', 'NATURAL', 'PIVOT', 'LATERAL', 'WINDOW', 'UNION', 'EXCEPT', 
'MINUS', 'INTERSECT', 'SORT', 'CLUSTER', 'DISTRIBUTE', 'ANTI'}(line 3, pos 5)
+mismatched input 'insert' expecting {<EOF>, '(', ',', 'ANTI', 'CLUSTER', 
'CROSS', 'DISTRIBUTE', 'EXCEPT', 'FULL', 'GROUP', 'HAVING', 'INNER', 
'INTERSECT', 'JOIN', 'LATERAL', 'LEFT', 'LIMIT', 'NATURAL', 'ORDER', 'PIVOT', 
'RIGHT', 'SELECT', 'SEMI', 'MINUS', 'SORT', 'UNION', 'WHERE', 'WINDOW'}(line 3, 
pos 5)
 
 == SQL ==
 DESCRIBE


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to