diff --git a/docs/_data/menu-sql.yaml b/docs/_data/menu-sql.yaml index cd065ea01dda..9bbb115bcdda 100644 --- a/docs/_data/menu-sql.yaml +++ b/docs/_data/menu-sql.yaml @@ -70,6 +70,8 @@ url: sql-migration-guide-upgrade.html - text: Compatibility with Apache Hive url: sql-migration-guide-hive-compatibility.html + - text: SQL Reserved/Non-Reserved Keywords + url: sql-reserved-and-non-reserved-keywords.html - text: Reference url: sql-reference.html subitems: diff --git a/docs/sql-reserved-and-non-reserved-keywords.md b/docs/sql-reserved-and-non-reserved-keywords.md new file mode 100644 index 000000000000..321fb3f00acb --- /dev/null +++ b/docs/sql-reserved-and-non-reserved-keywords.md @@ -0,0 +1,574 @@ +--- +layout: global +title: SQL Reserved/Non-Reserved Keywords +displayTitle: SQL Reserved/Non-Reserved Keywords +--- + +In Spark SQL, there are 2 kinds of keywords: non-reserved and reserved. Non-reserved keywords have a +special meaning only in particular contexts and can be used as identifiers (e.g., table names, view names, +column names, column aliases, table aliases) in other contexts. Reserved keywords can't be used as +table alias, but can be used as other identifiers. + +The list of reserved and non-reserved keywords can change according to the config +`spark.sql.parser.ansi.enabled`, which is false by default. + +
| Keyword | Spark SQL | SQL-2011 | |
|---|---|---|---|
| ANSI mode | default mode | ||
| ABS | non-reserved | non-reserved | reserved |
| ABSOLUTE | non-reserved | non-reserved | non-reserved |
| ACOS | non-reserved | non-reserved | non-reserved |
| ACTION | non-reserved | non-reserved | non-reserved |
| ADD | non-reserved | non-reserved | non-reserved |
| AFTER | non-reserved | non-reserved | non-reserved |
| ALL | reserved | non-reserved | reserved |
| ALLOCATE | non-reserved | non-reserved | reserved |
| ALTER | non-reserved | non-reserved | reserved |
| ANALYZE | non-reserved | non-reserved | non-reserved |
| AND | reserved | non-reserved | reserved |
| ANTI | reserved | reserved | non-reserved |
| ANY | reserved | non-reserved | reserved |
| ARE | non-reserved | non-reserved | reserved |
| ARCHIVE | non-reserved | non-reserved | non-reserved |
| ARRAY | non-reserved | non-reserved | reserved |
| ARRAY_AGG | non-reserved | non-reserved | reserved |
| ARRAY_MAX_CARDINALITY | non-reserved | non-reserved | reserved |
| AS | reserved | non-reserved | reserved |
| ASC | non-reserved | non-reserved | non-reserved |
| ASENSITIVE | non-reserved | non-reserved | reserved |
| ASIN | non-reserved | non-reserved | reserved |
| ASSERTION | non-reserved | non-reserved | non-reserved |
| ASYMMETRIC | non-reserved | non-reserved | reserved |
| AT | non-reserved | non-reserved | reserved |
| ATAN | non-reserved | non-reserved | non-reserved |
| ATOMIC | non-reserved | non-reserved | reserved |
| AUTHORIZATION | reserved | non-reserved | reserved |
| AVG | non-reserved | non-reserved | reserved |
| BEFORE | non-reserved | non-reserved | non-reserved |
| BEGIN | non-reserved | non-reserved | reserved |
| BEGIN_FRAME | non-reserved | non-reserved | reserved |
| BEGIN_PARTITION | non-reserved | non-reserved | reserved |
| BETWEEN | non-reserved | non-reserved | reserved |
| BIGINT | non-reserved | non-reserved | reserved |
| BINARY | non-reserved | non-reserved | reserved |
| BIT | non-reserved | non-reserved | non-reserved |
| BIT_LENGTH | non-reserved | non-reserved | non-reserved |
| BLOB | non-reserved | non-reserved | reserved |
| BOOLEAN | non-reserved | non-reserved | reserved |
| BOTH | reserved | non-reserved | reserved |
| BREADTH | non-reserved | non-reserved | non-reserved |
| BUCKET | non-reserved | non-reserved | non-reserved |
| BUCKETS | non-reserved | non-reserved | non-reserved |
| BY | non-reserved | non-reserved | reserved |
| CACHE | non-reserved | non-reserved | non-reserved |
| CALL | non-reserved | non-reserved | reserved |
| CALLED | non-reserved | non-reserved | reserved |
| CARDINALITY | non-reserved | non-reserved | reserved |
| CASCADE | non-reserved | non-reserved | reserved |
| CASCADED | non-reserved | non-reserved | reserved |
| CASE | reserved | non-reserved | reserved |
| CAST | reserved | non-reserved | reserved |
| CATALOG | non-reserved | non-reserved | non-reserved |
| CEIL | non-reserved | non-reserved | reserved |
| CEILING | non-reserved | non-reserved | reserved |
| CHANGE | non-reserved | non-reserved | non-reserved |
| CHAR | non-reserved | non-reserved | reserved |
| CHAR_LENGTH | non-reserved | non-reserved | reserved |
| CHARACTER | non-reserved | non-reserved | reserved |
| CHARACTER_LENGTH | non-reserved | non-reserved | reserved |
| CHECK | reserved | non-reserved | reserved |
| CLASSIFIER | non-reserved | non-reserved | non-reserved |
| CLEAR | non-reserved | non-reserved | non-reserved |
| CLOB | non-reserved | non-reserved | reserved |
| CLOSE | non-reserved | non-reserved | reserved |
| CLUSTER | non-reserved | non-reserved | non-reserved |
| CLUSTERED | non-reserved | non-reserved | non-reserved |
| COALESCE | non-reserved | non-reserved | reserved |
| CODEGEN | non-reserved | non-reserved | non-reserved |
| COLLATE | reserved | non-reserved | reserved |
| COLLATION | non-reserved | non-reserved | non-reserved |
| COLLECT | non-reserved | non-reserved | reserved |
| COLLECTION | non-reserved | non-reserved | non-reserved |
| COLUMN | reserved | non-reserved | reserved |
| COLUMNS | non-reserved | non-reserved | non-reserved |
| COMMENT | non-reserved | non-reserved | non-reserved |
| COMMIT | non-reserved | non-reserved | reserved |
| COMPACT | non-reserved | non-reserved | non-reserved |
| COMPACTIONS | non-reserved | non-reserved | non-reserved |
| COMPUTE | non-reserved | non-reserved | non-reserved |
| CONCATENATE | non-reserved | non-reserved | non-reserved |
| CONDITION | non-reserved | non-reserved | reserved |
| CONNECT | non-reserved | non-reserved | non-reserved |
| CONNECTION | non-reserved | non-reserved | non-reserved |
| CONSTRAINT | reserved | non-reserved | reserved |
| CONSTRAINTS | non-reserved | non-reserved | non-reserved |
| CONSTRUCTOR | non-reserved | non-reserved | non-reserved |
| CONTAINS | non-reserved | non-reserved | non-reserved |
| CONTINUE | non-reserved | non-reserved | non-reserved |
| CONVERT | non-reserved | non-reserved | reserved |
| COPY | non-reserved | non-reserved | non-reserved |
| CORR | non-reserved | non-reserved | reserved |
| CORRESPONDING | non-reserved | non-reserved | reserved |
| COS | non-reserved | non-reserved | non-reserved |
| COSH | non-reserved | non-reserved | non-reserved |
| COST | non-reserved | non-reserved | non-reserved |
| COUNT | non-reserved | non-reserved | reserved |
| COVAR_POP | non-reserved | non-reserved | reserved |
| COVAR_SAMP | non-reserved | non-reserved | reserved |
| CREATE | reserved | non-reserved | reserved |
| CROSS | reserved | reserved | reserved |
| CUBE | non-reserved | non-reserved | reserved |
| CUME_DIST | non-reserved | non-reserved | reserved |
| CURRENT | non-reserved | non-reserved | reserved |
| CURRENT_CATALOG | non-reserved | non-reserved | reserved |
| CURRENT_DATE | reserved | non-reserved | reserved |
| CURRENT_DEFAULT_TRANSFORM_GROUP | non-reserved | non-reserved | reserved |
| CURRENT_PATH | non-reserved | non-reserved | reserved |
| CURRENT_ROLE | non-reserved | non-reserved | reserved |
| CURRENT_ROW | non-reserved | non-reserved | reserved |
| CURRENT_SCHEMA | non-reserved | non-reserved | reserved |
| CURRENT_TIME | reserved | non-reserved | reserved |
| CURRENT_TIMESTAMP | reserved | non-reserved | reserved |
| CURRENT_TRANSFORM_GROUP_FOR_TYPE | non-reserved | non-reserved | reserved |
| CURRENT_USER | reserved | non-reserved | reserved |
| CURSOR | non-reserved | non-reserved | reserved |
| CYCLE | non-reserved | non-reserved | reserved |
| DATA | non-reserved | non-reserved | non-reserved |
| DATABASE | non-reserved | non-reserved | non-reserved |
| DATABASES | non-reserved | non-reserved | non-reserved |
| DATE | non-reserved | non-reserved | reserved |
| DAY | non-reserved | non-reserved | reserved |
| DBPROPERTIES | non-reserved | non-reserved | non-reserved |
| DEALLOCATE | non-reserved | non-reserved | reserved |
| DEC | non-reserved | non-reserved | reserved |
| DECFLOAT | non-reserved | non-reserved | non-reserved |
| DECIMAL | non-reserved | non-reserved | reserved |
| DECLARE | non-reserved | non-reserved | reserved |
| DEFAULT | non-reserved | non-reserved | reserved |
| DEFERRABLE | non-reserved | non-reserved | non-reserved |
| DEFERRED | non-reserved | non-reserved | non-reserved |
| DEFINE | non-reserved | non-reserved | non-reserved |
| DEFINED | non-reserved | non-reserved | non-reserved |
| DELETE | non-reserved | non-reserved | reserved |
| DELIMITED | non-reserved | non-reserved | non-reserved |
| DENSE_RANK | non-reserved | non-reserved | reserved |
| DEPTH | non-reserved | non-reserved | non-reserved |
| DEREF | non-reserved | non-reserved | reserved |
| DESC | non-reserved | non-reserved | non-reserved |
| DESCRIBE | non-reserved | non-reserved | reserved |
| DESCRIPTOR | non-reserved | non-reserved | non-reserved |
| DETERMINISTIC | non-reserved | non-reserved | reserved |
| DFS | non-reserved | non-reserved | non-reserved |
| DIAGNOSTICS | non-reserved | non-reserved | non-reserved |
| DIRECTORIES | non-reserved | non-reserved | non-reserved |
| DIRECTORY | non-reserved | non-reserved | non-reserved |
| DISCONNECT | non-reserved | non-reserved | reserved |
| DISTINCT | reserved | non-reserved | reserved |
| DISTRIBUTE | non-reserved | non-reserved | non-reserved |
| DIV | non-reserved | non-reserved | non-reserved |
| DO | non-reserved | non-reserved | reserved |
| DOMAIN | non-reserved | non-reserved | non-reserved |
| DOUBLE | non-reserved | non-reserved | reserved |
| DROP | non-reserved | non-reserved | reserved |
| DYNAMIC | non-reserved | non-reserved | reserved |
| EACH | non-reserved | non-reserved | reserved |
| ELEMENT | non-reserved | non-reserved | reserved |
| ELSE | reserved | non-reserved | reserved |
| ELSEIF | non-reserved | non-reserved | reserved |
| EMPTY | non-reserved | non-reserved | non-reserved |
| END | reserved | non-reserved | reserved |
| END_FRAME | non-reserved | non-reserved | reserved |
| END_PARTITION | non-reserved | non-reserved | reserved |
| EQUALS | non-reserved | non-reserved | non-reserved |
| ESCAPE | non-reserved | non-reserved | reserved |
| ESCAPED | non-reserved | non-reserved | non-reserved |
| EVERY | non-reserved | non-reserved | reserved |
| EXCEPT | reserved | reserved | reserved |
| EXCEPTION | non-reserved | non-reserved | non-reserved |
| EXCHANGE | non-reserved | non-reserved | non-reserved |
| EXEC | non-reserved | non-reserved | reserved |
| EXECUTE | non-reserved | non-reserved | reserved |
| EXISTS | non-reserved | non-reserved | reserved |
| EXIT | non-reserved | non-reserved | non-reserved |
| EXP | non-reserved | non-reserved | non-reserved |
| EXPLAIN | non-reserved | non-reserved | non-reserved |
| EXPORT | non-reserved | non-reserved | non-reserved |
| EXTENDED | non-reserved | non-reserved | non-reserved |
| EXTERNAL | non-reserved | non-reserved | reserved |
| EXTRACT | non-reserved | non-reserved | reserved |
| FALSE | reserved | non-reserved | reserved |
| FETCH | reserved | non-reserved | reserved |
| FIELDS | non-reserved | non-reserved | non-reserved |
| FILEFORMAT | non-reserved | non-reserved | non-reserved |
| FILTER | non-reserved | non-reserved | reserved |
| FIRST | non-reserved | non-reserved | non-reserved |
| FIRST_VALUE | non-reserved | non-reserved | reserved |
| FLOAT | non-reserved | non-reserved | reserved |
| FOLLOWING | non-reserved | non-reserved | non-reserved |
| FOR | reserved | non-reserved | reserved |
| FOREIGN | reserved | non-reserved | reserved |
| FORMAT | non-reserved | non-reserved | non-reserved |
| FORMATTED | non-reserved | non-reserved | non-reserved |
| FOUND | non-reserved | non-reserved | non-reserved |
| FRAME_ROW | non-reserved | non-reserved | reserved |
| FREE | non-reserved | non-reserved | reserved |
| FROM | reserved | non-reserved | reserved |
| FULL | reserved | reserved | reserved |
| FUNCTION | non-reserved | non-reserved | reserved |
| FUNCTIONS | non-reserved | non-reserved | non-reserved |
| FUSION | non-reserved | non-reserved | non-reserved |
| GENERAL | non-reserved | non-reserved | non-reserved |
| GET | non-reserved | non-reserved | reserved |
| GLOBAL | non-reserved | non-reserved | reserved |
| GO | non-reserved | non-reserved | non-reserved |
| GOTO | non-reserved | non-reserved | non-reserved |
| GRANT | reserved | non-reserved | reserved |
| GROUP | reserved | non-reserved | reserved |
| GROUPING | non-reserved | non-reserved | reserved |
| GROUPS | non-reserved | non-reserved | reserved |
| HANDLER | non-reserved | non-reserved | reserved |
| HAVING | reserved | non-reserved | reserved |
| HOLD | non-reserved | non-reserved | reserved |
| HOUR | non-reserved | non-reserved | reserved |
| IDENTITY | non-reserved | non-reserved | reserved |
| IF | non-reserved | non-reserved | reserved |
| IGNORE | non-reserved | non-reserved | non-reserved |
| IMMEDIATE | non-reserved | non-reserved | non-reserved |
| IMPORT | non-reserved | non-reserved | non-reserved |
| IN | reserved | non-reserved | reserved |
| INDICATOR | non-reserved | non-reserved | reserved |
| INDEX | non-reserved | non-reserved | non-reserved |
| INDEXES | non-reserved | non-reserved | non-reserved |
| INITIAL | non-reserved | non-reserved | non-reserved |
| INITIALLY | non-reserved | non-reserved | non-reserved |
| INNER | reserved | reserved | reserved |
| INOUT | non-reserved | non-reserved | reserved |
| INPATH | non-reserved | non-reserved | non-reserved |
| INPUT | non-reserved | non-reserved | non-reserved |
| INPUTFORMAT | non-reserved | non-reserved | non-reserved |
| INSENSITIVE | non-reserved | non-reserved | reserved |
| INSERT | non-reserved | non-reserved | reserved |
| INT | non-reserved | non-reserved | reserved |
| INTEGER | non-reserved | non-reserved | reserved |
| INTERSECT | reserved | reserved | reserved |
| INTERSECTION | non-reserved | non-reserved | reserved |
| INTERVAL | non-reserved | non-reserved | reserved |
| INTO | reserved | non-reserved | reserved |
| IS | reserved | non-reserved | reserved |
| ISOLATION | non-reserved | non-reserved | non-reserved |
| ITEMS | non-reserved | non-reserved | non-reserved |
| ITERATE | non-reserved | non-reserved | reserved |
| JOIN | reserved | reserved | reserved |
| JSON_ARRAY | non-reserved | non-reserved | non-reserved |
| JSON_ARRAYAGG | non-reserved | non-reserved | non-reserved |
| JSON_EXISTS | non-reserved | non-reserved | non-reserved |
| JSON_OBJECT | non-reserved | non-reserved | non-reserved |
| JSON_OBJECTAGG | non-reserved | non-reserved | non-reserved |
| JSON_QUERY | non-reserved | non-reserved | non-reserved |
| JSON_TABLE | non-reserved | non-reserved | non-reserved |
| JSON_TABLE_PRIMITIVE | non-reserved | non-reserved | non-reserved |
| JSON_VALUE | non-reserved | non-reserved | non-reserved |
| KEY | non-reserved | non-reserved | non-reserved |
| KEYS | non-reserved | non-reserved | non-reserved |
| LAG | non-reserved | non-reserved | non-reserved |
| LANGUAGE | non-reserved | non-reserved | reserved |
| LARGE | non-reserved | non-reserved | reserved |
| LAST | non-reserved | non-reserved | non-reserved |
| LAST_VALUE | non-reserved | non-reserved | reserved |
| LATERAL | non-reserved | non-reserved | reserved |
| LAZY | non-reserved | non-reserved | non-reserved |
| LEAD | non-reserved | non-reserved | reserved |
| LEADING | reserved | non-reserved | reserved |
| LEAVE | non-reserved | non-reserved | reserved |
| LEFT | reserved | reserved | reserved |
| LEVEL | non-reserved | non-reserved | non-reserved |
| LIKE | non-reserved | non-reserved | reserved |
| LIKE_REGEX | non-reserved | non-reserved | reserved |
| LIMIT | non-reserved | non-reserved | non-reserved |
| LINES | non-reserved | non-reserved | non-reserved |
| LIST | non-reserved | non-reserved | non-reserved |
| LISTAGG | non-reserved | non-reserved | non-reserved |
| LN | non-reserved | non-reserved | reserved |
| LOAD | non-reserved | non-reserved | non-reserved |
| LOCAL | non-reserved | non-reserved | reserved |
| LOCALTIME | non-reserved | non-reserved | reserved |
| LOCALTIMESTAMP | non-reserved | non-reserved | reserved |
| LOCATION | non-reserved | non-reserved | non-reserved |
| LOCATOR | non-reserved | non-reserved | non-reserved |
| LOCK | non-reserved | non-reserved | non-reserved |
| LOCKS | non-reserved | non-reserved | non-reserved |
| LOG | non-reserved | non-reserved | non-reserved |
| LOG10 | non-reserved | non-reserved | non-reserved |
| LOGICAL | non-reserved | non-reserved | non-reserved |
| LOOP | non-reserved | non-reserved | reserved |
| LOWER | non-reserved | non-reserved | reserved |
| MACRO | non-reserved | non-reserved | non-reserved |
| MAP | non-reserved | non-reserved | non-reserved |
| MATCH | non-reserved | non-reserved | reserved |
| MATCH_NUMBER | non-reserved | non-reserved | non-reserved |
| MATCH_RECOGNIZE | non-reserved | non-reserved | non-reserved |
| MATCHES | non-reserved | non-reserved | non-reserved |
| MAX | non-reserved | non-reserved | reserved |
| MEMBER | non-reserved | non-reserved | reserved |
| MERGE | non-reserved | non-reserved | reserved |
| METHOD | non-reserved | non-reserved | reserved |
| MIN | non-reserved | non-reserved | reserved |
| MINUS | reserved | reserved | non-reserved |
| MINUTE | non-reserved | non-reserved | reserved |
| MOD | non-reserved | non-reserved | reserved |
| MODIFIES | non-reserved | non-reserved | reserved |
| MODULE | non-reserved | non-reserved | reserved |
| MONTH | non-reserved | non-reserved | reserved |
| MSCK | non-reserved | non-reserved | non-reserved |
| MULTISET | non-reserved | non-reserved | reserved |
| NAMES | non-reserved | non-reserved | non-reserved |
| NATIONAL | non-reserved | non-reserved | reserved |
| NATURAL | reserved | reserved | reserved |
| NCHAR | non-reserved | non-reserved | reserved |
| NCLOB | non-reserved | non-reserved | reserved |
| NEW | non-reserved | non-reserved | reserved |
| NEXT | non-reserved | non-reserved | non-reserved |
| NO | non-reserved | non-reserved | reserved |
| NONE | non-reserved | non-reserved | reserved |
| NORMALIZE | non-reserved | non-reserved | reserved |
| NOT | reserved | non-reserved | reserved |
| NTH_VALUE | non-reserved | non-reserved | reserved |
| NTILE | non-reserved | non-reserved | reserved |
| NULL | reserved | non-reserved | reserved |
| NULLS | non-reserved | non-reserved | non-reserved |
| NULLIF | non-reserved | non-reserved | reserved |
| NUMERIC | non-reserved | non-reserved | reserved |
| OBJECT | non-reserved | non-reserved | non-reserved |
| OCCURRENCES_REGEX | non-reserved | non-reserved | non-reserved |
| OCTET_LENGTH | non-reserved | non-reserved | reserved |
| OF | non-reserved | non-reserved | reserved |
| OFFSET | non-reserved | non-reserved | reserved |
| OLD | non-reserved | non-reserved | reserved |
| OMIT | non-reserved | non-reserved | non-reserved |
| ON | reserved | reserved | reserved |
| ONE | non-reserved | non-reserved | non-reserved |
| ONLY | reserved | non-reserved | reserved |
| OPEN | non-reserved | non-reserved | reserved |
| OPTION | non-reserved | non-reserved | non-reserved |
| OPTIONS | non-reserved | non-reserved | non-reserved |
| OR | reserved | non-reserved | reserved |
| ORDER | reserved | non-reserved | reserved |
| ORDINALITY | non-reserved | non-reserved | non-reserved |
| OUT | non-reserved | non-reserved | reserved |
| OUTER | reserved | non-reserved | reserved |
| OUTPUT | non-reserved | non-reserved | non-reserved |
| OUTPUTFORMAT | non-reserved | non-reserved | non-reserved |
| OVER | non-reserved | non-reserved | non-reserved |
| OVERLAPS | reserved | non-reserved | reserved |
| OVERLAY | non-reserved | non-reserved | reserved |
| OVERWRITE | non-reserved | non-reserved | non-reserved |
| PAD | non-reserved | non-reserved | non-reserved |
| PARAMETER | non-reserved | non-reserved | reserved |
| PARTIAL | non-reserved | non-reserved | non-reserved |
| PARTITION | non-reserved | non-reserved | reserved |
| PARTITIONED | non-reserved | non-reserved | non-reserved |
| PARTITIONS | non-reserved | non-reserved | non-reserved |
| PATH | non-reserved | non-reserved | non-reserved |
| PATTERN | non-reserved | non-reserved | non-reserved |
| PER | non-reserved | non-reserved | non-reserved |
| PERCENT | non-reserved | non-reserved | reserved |
| PERCENT_RANK | non-reserved | non-reserved | reserved |
| PERCENTILE_CONT | non-reserved | non-reserved | reserved |
| PERCENTILE_DISC | non-reserved | non-reserved | reserved |
| PERCENTLIT | non-reserved | non-reserved | non-reserved |
| PERIOD | non-reserved | non-reserved | reserved |
| PIVOT | non-reserved | non-reserved | non-reserved |
| PORTION | non-reserved | non-reserved | reserved |
| POSITION | non-reserved | non-reserved | reserved |
| POSITION_REGEX | non-reserved | non-reserved | reserved |
| POWER | non-reserved | non-reserved | reserved |
| PRECEDES | non-reserved | non-reserved | reserved |
| PRECEDING | non-reserved | non-reserved | non-reserved |
| PRECISION | non-reserved | non-reserved | reserved |
| PREPARE | non-reserved | non-reserved | reserved |
| PRESERVE | non-reserved | non-reserved | non-reserved |
| PRIMARY | reserved | non-reserved | reserved |
| PRINCIPALS | non-reserved | non-reserved | non-reserved |
| PRIOR | non-reserved | non-reserved | non-reserved |
| PRIVILEGES | non-reserved | non-reserved | non-reserved |
| PROCEDURE | non-reserved | non-reserved | reserved |
| PTF | non-reserved | non-reserved | non-reserved |
| PUBLIC | non-reserved | non-reserved | non-reserved |
| PURGE | non-reserved | non-reserved | non-reserved |
| RANGE | non-reserved | non-reserved | reserved |
| RANK | non-reserved | non-reserved | reserved |
| READ | non-reserved | non-reserved | non-reserved |
| READS | non-reserved | non-reserved | reserved |
| REAL | non-reserved | non-reserved | reserved |
| RECORDREADER | non-reserved | non-reserved | non-reserved |
| RECORDWRITER | non-reserved | non-reserved | non-reserved |
| RECURSIVE | non-reserved | non-reserved | reserved |
| RECOVER | non-reserved | non-reserved | non-reserved |
| REDUCE | non-reserved | non-reserved | non-reserved |
| REF | non-reserved | non-reserved | reserved |
| REFERENCES | reserved | non-reserved | reserved |
| REFERENCING | non-reserved | non-reserved | reserved |
| REFRESH | non-reserved | non-reserved | non-reserved |
| REGR_AVGX | non-reserved | non-reserved | reserved |
| REGR_AVGY | non-reserved | non-reserved | reserved |
| REGR_COUNT | non-reserved | non-reserved | reserved |
| REGR_INTERCEPT | non-reserved | non-reserved | reserved |
| REGR_R2 | non-reserved | non-reserved | reserved |
| REGR_SLOPE | non-reserved | non-reserved | reserved |
| REGR_SXX | non-reserved | non-reserved | reserved |
| REGR_SXY | non-reserved | non-reserved | reserved |
| REGR_SYY | non-reserved | non-reserved | reserved |
| RELATIVE | non-reserved | non-reserved | non-reserved |
| RELEASE | non-reserved | non-reserved | reserved |
| RENAME | non-reserved | non-reserved | non-reserved |
| REPAIR | non-reserved | non-reserved | non-reserved |
| REPEAT | non-reserved | non-reserved | reserved |
| REPLACE | non-reserved | non-reserved | non-reserved |
| RESET | non-reserved | non-reserved | non-reserved |
| RESIGNAL | non-reserved | non-reserved | reserved |
| RESTRICT | non-reserved | non-reserved | non-reserved |
| RESULT | non-reserved | non-reserved | reserved |
| RETURN | non-reserved | non-reserved | reserved |
| RETURNS | non-reserved | non-reserved | reserved |
| REVOKE | non-reserved | non-reserved | reserved |
| RIGHT | reserved | reserved | reserved |
| RLIKE | non-reserved | non-reserved | non-reserved |
| ROLE | non-reserved | non-reserved | non-reserved |
| ROLES | non-reserved | non-reserved | non-reserved |
| ROLLBACK | non-reserved | non-reserved | reserved |
| ROLLUP | non-reserved | non-reserved | reserved |
| ROUTINE | non-reserved | non-reserved | non-reserved |
| ROW | non-reserved | non-reserved | reserved |
| ROW_NUMBER | non-reserved | non-reserved | reserved |
| ROWS | non-reserved | non-reserved | reserved |
| RUNNING | non-reserved | non-reserved | non-reserved |
| SAVEPOINT | non-reserved | non-reserved | reserved |
| SCHEMA | non-reserved | non-reserved | non-reserved |
| SCOPE | non-reserved | non-reserved | reserved |
| SCROLL | non-reserved | non-reserved | reserved |
| SEARCH | non-reserved | non-reserved | reserved |
| SECOND | non-reserved | non-reserved | reserved |
| SECTION | non-reserved | non-reserved | non-reserved |
| SEEK | non-reserved | non-reserved | non-reserved |
| SELECT | reserved | non-reserved | reserved |
| SEMI | reserved | reserved | non-reserved |
| SENSITIVE | non-reserved | non-reserved | reserved |
| SEPARATED | non-reserved | non-reserved | non-reserved |
| SERDE | non-reserved | non-reserved | non-reserved |
| SERDEPROPERTIES | non-reserved | non-reserved | non-reserved |
| SESSION | non-reserved | non-reserved | non-reserved |
| SESSION_USER | reserved | non-reserved | reserved |
| SET | non-reserved | non-reserved | reserved |
| SETS | non-reserved | non-reserved | non-reserved |
| SHOW | non-reserved | non-reserved | non-reserved |
| SIGNAL | non-reserved | non-reserved | reserved |
| SIMILAR | non-reserved | non-reserved | reserved |
| SIN | non-reserved | non-reserved | non-reserved |
| SINH | non-reserved | non-reserved | non-reserved |
| SIZE | non-reserved | non-reserved | non-reserved |
| SKIP | non-reserved | non-reserved | non-reserved |
| SKEWED | non-reserved | non-reserved | non-reserved |
| SMALLINT | non-reserved | non-reserved | reserved |
| SOME | reserved | non-reserved | reserved |
| SORT | non-reserved | non-reserved | non-reserved |
| SORTED | non-reserved | non-reserved | non-reserved |
| SPACE | non-reserved | non-reserved | non-reserved |
| SPECIFIC | non-reserved | non-reserved | reserved |
| SPECIFICTYPE | non-reserved | non-reserved | reserved |
| SQL | non-reserved | non-reserved | reserved |
| SQLCODE | non-reserved | non-reserved | non-reserved |
| SQLERROR | non-reserved | non-reserved | non-reserved |
| SQLEXCEPTION | non-reserved | non-reserved | reserved |
| SQLSTATE | non-reserved | non-reserved | reserved |
| SQLWARNING | non-reserved | non-reserved | reserved |
| SQRT | non-reserved | non-reserved | reserved |
| START | non-reserved | non-reserved | reserved |
| STATE | non-reserved | non-reserved | non-reserved |
| STATIC | non-reserved | non-reserved | reserved |
| STATISTICS | non-reserved | non-reserved | non-reserved |
| STDDEV_POP | non-reserved | non-reserved | reserved |
| STDDEV_SAMP | non-reserved | non-reserved | reserved |
| STORED | non-reserved | non-reserved | non-reserved |
| STRATIFY | non-reserved | non-reserved | non-reserved |
| STRUCT | non-reserved | non-reserved | non-reserved |
| SUBMULTISET | non-reserved | non-reserved | reserved |
| SUBSET | non-reserved | non-reserved | non-reserved |
| SUBSTRING | non-reserved | non-reserved | reserved |
| SUBSTRING_REGEX | non-reserved | non-reserved | reserved |
| SUCCEEDS | non-reserved | non-reserved | reserved |
| SUM | non-reserved | non-reserved | reserved |
| SYMMETRIC | non-reserved | non-reserved | reserved |
| SYSTEM | non-reserved | non-reserved | reserved |
| SYSTEM_TIME | non-reserved | non-reserved | reserved |
| SYSTEM_USER | non-reserved | non-reserved | reserved |
| TABLE | reserved | non-reserved | reserved |
| TABLES | non-reserved | non-reserved | non-reserved |
| TABLESAMPLE | non-reserved | non-reserved | reserved |
| TAN | non-reserved | non-reserved | non-reserved |
| TANH | non-reserved | non-reserved | non-reserved |
| TBLPROPERTIES | non-reserved | non-reserved | non-reserved |
| TEMPORARY | non-reserved | non-reserved | non-reserved |
| TERMINATED | non-reserved | non-reserved | non-reserved |
| THEN | reserved | non-reserved | reserved |
| TIME | non-reserved | non-reserved | reserved |
| TIMESTAMP | non-reserved | non-reserved | reserved |
| TIMEZONE_HOUR | non-reserved | non-reserved | reserved |
| TIMEZONE_MINUTE | non-reserved | non-reserved | reserved |
| TO | reserved | non-reserved | reserved |
| TOUCH | non-reserved | non-reserved | non-reserved |
| TRAILING | reserved | non-reserved | reserved |
| TRANSACTION | non-reserved | non-reserved | non-reserved |
| TRANSACTIONS | non-reserved | non-reserved | non-reserved |
| TRANSFORM | non-reserved | non-reserved | non-reserved |
| TRANSLATE | non-reserved | non-reserved | reserved |
| TRANSLATE_REGEX | non-reserved | non-reserved | reserved |
| TRANSLATION | non-reserved | non-reserved | reserved |
| TREAT | non-reserved | non-reserved | reserved |
| TRIGGER | non-reserved | non-reserved | reserved |
| TRIM | non-reserved | non-reserved | reserved |
| TRIM_ARRAY | non-reserved | non-reserved | reserved |
| TRUE | non-reserved | non-reserved | reserved |
| TRUNCATE | non-reserved | non-reserved | reserved |
| UESCAPE | non-reserved | non-reserved | reserved |
| UNARCHIVE | non-reserved | non-reserved | non-reserved |
| UNBOUNDED | non-reserved | non-reserved | non-reserved |
| UNCACHE | non-reserved | non-reserved | non-reserved |
| UNDER | non-reserved | non-reserved | non-reserved |
| UNDO | non-reserved | non-reserved | reserved |
| UNION | reserved | reserved | reserved |
| UNIQUE | reserved | non-reserved | reserved |
| UNKNOWN | non-reserved | non-reserved | reserved |
| UNLOCK | non-reserved | non-reserved | non-reserved |
| UNNEST | non-reserved | non-reserved | reserved |
| UNSET | non-reserved | non-reserved | non-reserved |
| UNTIL | non-reserved | non-reserved | reserved |
| UPDATE | non-reserved | non-reserved | reserved |
| UPPER | non-reserved | non-reserved | reserved |
| USAGE | non-reserved | non-reserved | non-reserved |
| USE | non-reserved | non-reserved | non-reserved |
| USER | reserved | non-reserved | reserved |
| USING | reserved | reserved | reserved |
| VALUE | non-reserved | non-reserved | reserved |
| VALUES | non-reserved | non-reserved | reserved |
| VALUE_OF | non-reserved | non-reserved | reserved |
| VAR_POP | non-reserved | non-reserved | reserved |
| VAR_SAMP | non-reserved | non-reserved | reserved |
| VARBINARY | non-reserved | non-reserved | reserved |
| VARCHAR | non-reserved | non-reserved | reserved |
| VARYING | non-reserved | non-reserved | reserved |
| VERSIONING | non-reserved | non-reserved | reserved |
| VIEW | non-reserved | non-reserved | non-reserved |
| WHEN | reserved | non-reserved | reserved |
| WHENEVER | non-reserved | non-reserved | reserved |
| WHERE | reserved | non-reserved | reserved |
| WHILE | non-reserved | non-reserved | reserved |
| WIDTH_BUCKET | non-reserved | non-reserved | reserved |
| WINDOW | non-reserved | non-reserved | reserved |
| WITH | reserved | non-reserved | reserved |
| WITHIN | non-reserved | non-reserved | reserved |
| WITHOUT | non-reserved | non-reserved | reserved |
| WORK | non-reserved | non-reserved | non-reserved |
| WRITE | non-reserved | non-reserved | non-reserved |
| YEAR | non-reserved | non-reserved | reserved |
| ZONE | non-reserved | non-reserved | non-reserved |