This is an automated email from the ASF dual-hosted git repository.
dongjoon 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 14b1312 [SPARK-27103][SQL][MINOR] List SparkSql reserved keywords in
alphabet order
14b1312 is described below
commit 14b13127276012163b3db6eebb5e6e8708efc50e
Author: SongYadong <[email protected]>
AuthorDate: Fri Mar 8 10:51:39 2019 -0800
[SPARK-27103][SQL][MINOR] List SparkSql reserved keywords in alphabet order
## What changes were proposed in this pull request?
This PR tries to correct spark-sql reserved keywords' position in list if
they are not in alphabetical order.
In test suite some repeated words are removed. Also some comments are added
for remind.
## How was this patch tested?
Existing unit tests.
Closes #23985 from SongYadong/sql_reserved_alphabet.
Authored-by: SongYadong <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
---
.../apache/spark/sql/catalyst/parser/SqlBase.g4 | 501 +++++++++++++++++++--
.../parser/TableIdentifierParserSuite.scala | 288 ++++++++++--
2 files changed, 718 insertions(+), 71 deletions(-)
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 46fff80..d2164ec 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
@@ -765,62 +765,485 @@ number
//
// Let's say you add a new token `NEWTOKEN` and this is not reserved
regardless of a `spark.sql.parser.ansi.enabled`
// value. In this case, you must add a token `NEWTOKEN` in both
`ansiNonReserved` and `nonReserved`.
+//
+// It is recommended to list them in alphabetical order.
// The list of the reserved keywords when `spark.sql.parser.ansi.enabled` is
true. Currently, we only reserve
// the ANSI keywords that almost all the ANSI SQL standards (SQL-92, SQL-99,
SQL-2003, SQL-2008, SQL-2011,
// and SQL-2016) and PostgreSQL reserve.
ansiReserved
- : ALL | AND | ANTI | ANY | AS | AUTHORIZATION | BOTH | CASE | CAST | CHECK
| COLLATE | COLUMN | CONSTRAINT | CREATE
- | CROSS | CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | CURRENT_USER |
DISTINCT | ELSE | END | EXCEPT | FALSE
- | FETCH | FOR | FOREIGN | FROM | FULL | GRANT | GROUP | HAVING | IN |
INNER | INTERSECT | INTO | JOIN | IS
- | LEADING | LEFT | NATURAL | NOT | NULL | ON | ONLY | OR | ORDER | OUTER |
OVERLAPS | PRIMARY | REFERENCES | RIGHT
- | SELECT | SEMI | SESSION_USER | SETMINUS | SOME | TABLE | THEN | TO |
TRAILING | UNION | UNIQUE | USER | USING
- | WHEN | WHERE | WITH
+ : ALL
+ | AND
+ | ANTI
+ | ANY
+ | AS
+ | AUTHORIZATION
+ | BOTH
+ | CASE
+ | CAST
+ | CHECK
+ | COLLATE
+ | COLUMN
+ | CONSTRAINT
+ | CREATE
+ | CROSS
+ | CURRENT_DATE
+ | CURRENT_TIME
+ | CURRENT_TIMESTAMP
+ | CURRENT_USER
+ | DISTINCT
+ | ELSE
+ | END
+ | EXCEPT
+ | FALSE
+ | FETCH
+ | FOR
+ | FOREIGN
+ | FROM
+ | FULL
+ | GRANT
+ | GROUP
+ | HAVING
+ | IN
+ | INNER
+ | INTERSECT
+ | INTO
+ | IS
+ | JOIN
+ | LEADING
+ | LEFT
+ | NATURAL
+ | NOT
+ | NULL
+ | ON
+ | ONLY
+ | OR
+ | ORDER
+ | OUTER
+ | OVERLAPS
+ | PRIMARY
+ | REFERENCES
+ | RIGHT
+ | SELECT
+ | SEMI
+ | SESSION_USER
+ | SETMINUS
+ | SOME
+ | TABLE
+ | THEN
+ | TO
+ | TRAILING
+ | UNION
+ | UNIQUE
+ | USER
+ | USING
+ | WHEN
+ | WHERE
+ | WITH
;
// The list of the non-reserved keywords when `spark.sql.parser.ansi.enabled`
is true.
ansiNonReserved
- : ADD | AFTER | ALTER | ANALYZE | ARCHIVE | ARRAY | ASC | AT | BETWEEN |
BUCKET | BUCKETS | BY | CACHE | CASCADE
- | CHANGE | CLEAR | CLUSTER | CLUSTERED | CODEGEN | COLLECTION | COLUMNS |
COMMENT | COMMIT | COMPACT | COMPACTIONS
- | COMPUTE | CONCATENATE | COST | CUBE | CURRENT | DATA | DATABASE |
DATABASES | DBPROPERTIES | DEFINED | DELETE
- | DELIMITED | DESC | DESCRIBE | DFS | DIRECTORIES | DIRECTORY | DISTRIBUTE
| DIV | DROP | ESCAPED | EXCHANGE
- | EXISTS | EXPLAIN | EXPORT | EXTENDED | EXTERNAL | EXTRACT | FIELDS |
FILEFORMAT | FIRST | FOLLOWING | FORMAT
- | FORMATTED | FUNCTION | FUNCTIONS | GLOBAL | GROUPING | IF | IGNORE |
IMPORT | INDEX | INDEXES | INPATH
- | INPUTFORMAT | INSERT | INTERVAL | ITEMS | KEYS | LAST | LATERAL | LAZY |
LIKE | LIMIT | LINES | LIST | LOAD
- | LOCAL | LOCATION | LOCK | LOCKS | LOGICAL | MACRO | MAP | MSCK | NO |
NULLS | OF | OPTION | OPTIONS | OUT
- | OUTPUTFORMAT | OVER | OVERWRITE | PARTITION | PARTITIONED | PARTITIONS |
PERCENT | PERCENTLIT | PIVOT | PRECEDING
- | PRINCIPALS | PURGE | QUERY | RANGE | RECORDREADER | RECORDWRITER |
RECOVER | REDUCE | REFRESH | RENAME | REPAIR | REPLACE
- | RESET | RESTRICT | REVOKE | RLIKE | ROLE | ROLES | ROLLBACK | ROLLUP |
ROW | ROWS | SCHEMA | SEPARATED | SERDE
- | SERDEPROPERTIES | SET | SETS | SHOW | SKEWED | SORT | SORTED | START |
STATISTICS | STORED | STRATIFY | STRUCT
- | TABLES | TABLESAMPLE | TBLPROPERTIES | TEMPORARY | TERMINATED | TOUCH |
TRANSACTION | TRANSACTIONS | TRANSFORM
- | TRUE | TRUNCATE | UNARCHIVE | UNBOUNDED | UNCACHE | UNLOCK | UNSET | USE
| VALUES | VIEW | WINDOW
+ : ADD
+ | AFTER
+ | ALTER
+ | ANALYZE
+ | ARCHIVE
+ | ARRAY
+ | ASC
+ | AT
+ | BETWEEN
+ | BUCKET
+ | BUCKETS
+ | BY
+ | CACHE
+ | CASCADE
+ | CHANGE
+ | CLEAR
+ | CLUSTER
+ | CLUSTERED
+ | CODEGEN
+ | COLLECTION
+ | COLUMNS
+ | COMMENT
+ | COMMIT
+ | COMPACT
+ | COMPACTIONS
+ | COMPUTE
+ | CONCATENATE
+ | COST
+ | CUBE
+ | CURRENT
+ | DATA
+ | DATABASE
+ | DATABASES
+ | DBPROPERTIES
+ | DEFINED
+ | DELETE
+ | DELIMITED
+ | DESC
+ | DESCRIBE
+ | DFS
+ | DIRECTORIES
+ | DIRECTORY
+ | DISTRIBUTE
+ | DIV
+ | DROP
+ | ESCAPED
+ | EXCHANGE
+ | EXISTS
+ | EXPLAIN
+ | EXPORT
+ | EXTENDED
+ | EXTERNAL
+ | EXTRACT
+ | FIELDS
+ | FILEFORMAT
+ | FIRST
+ | FOLLOWING
+ | FORMAT
+ | FORMATTED
+ | FUNCTION
+ | FUNCTIONS
+ | GLOBAL
+ | GROUPING
+ | IF
+ | IGNORE
+ | IMPORT
+ | INDEX
+ | INDEXES
+ | INPATH
+ | INPUTFORMAT
+ | INSERT
+ | INTERVAL
+ | ITEMS
+ | KEYS
+ | LAST
+ | LATERAL
+ | LAZY
+ | LIKE
+ | LIMIT
+ | LINES
+ | LIST
+ | LOAD
+ | LOCAL
+ | LOCATION
+ | LOCK
+ | LOCKS
+ | LOGICAL
+ | MACRO
+ | MAP
+ | MSCK
+ | NO
+ | NULLS
+ | OF
+ | OPTION
+ | OPTIONS
+ | OUT
+ | OUTPUTFORMAT
+ | OVER
+ | OVERWRITE
+ | PARTITION
+ | PARTITIONED
+ | PARTITIONS
+ | PERCENT
+ | PERCENTLIT
+ | PIVOT
+ | PRECEDING
+ | PRINCIPALS
+ | PURGE
+ | QUERY
+ | RANGE
+ | RECORDREADER
+ | RECORDWRITER
+ | RECOVER
+ | REDUCE
+ | REFRESH
+ | RENAME
+ | REPAIR
+ | REPLACE
+ | RESET
+ | RESTRICT
+ | REVOKE
+ | RLIKE
+ | ROLE
+ | ROLES
+ | ROLLBACK
+ | ROLLUP
+ | ROW
+ | ROWS
+ | SCHEMA
+ | SEPARATED
+ | SERDE
+ | SERDEPROPERTIES
+ | SET
+ | SETS
+ | SHOW
+ | SKEWED
+ | SORT
+ | SORTED
+ | START
+ | STATISTICS
+ | STORED
+ | STRATIFY
+ | STRUCT
+ | TABLES
+ | TABLESAMPLE
+ | TBLPROPERTIES
+ | TEMPORARY
+ | TERMINATED
+ | TOUCH
+ | TRANSACTION
+ | TRANSACTIONS
+ | TRANSFORM
+ | TRUE
+ | TRUNCATE
+ | UNARCHIVE
+ | UNBOUNDED
+ | UNCACHE
+ | UNLOCK
+ | UNSET
+ | USE
+ | VALUES
+ | VIEW
+ | WINDOW
;
defaultReserved
- : ANTI | CROSS | EXCEPT | FULL | INNER | INTERSECT | JOIN | LEFT | NATURAL
| ON | RIGHT | SEMI | SETMINUS | UNION
+ : ANTI
+ | CROSS
+ | EXCEPT
+ | FULL
+ | INNER
+ | INTERSECT
+ | JOIN
+ | LEFT
+ | NATURAL
+ | ON
+ | RIGHT
+ | SEMI
+ | SETMINUS
+ | UNION
| USING
;
nonReserved
- : ADD | AFTER | ALL | ALTER | ANALYZE | AND | ANY | ARCHIVE | ARRAY | AS |
ASC | AT | AUTHORIZATION | BETWEEN
- | BOTH | BUCKET | BUCKETS | BY | CACHE | CASCADE | CASE | CAST | CHANGE |
CHECK | CLEAR | CLUSTER | CLUSTERED
- | CODEGEN | COLLATE | COLLECTION | COLUMN | COLUMNS | COMMENT | COMMIT |
COMPACT | COMPACTIONS | COMPUTE
- | CONCATENATE | CONSTRAINT | COST | CREATE | CUBE | CURRENT | CURRENT_DATE
| CURRENT_TIME | CURRENT_TIMESTAMP
- | CURRENT_USER | DATA | DATABASE | DATABASES | DBPROPERTIES | DEFINED |
DELETE | DELIMITED | DESC | DESCRIBE | DFS
- | DIRECTORIES | DIRECTORY | DISTINCT | DISTRIBUTE | DIV | DROP | ELSE |
END | ESCAPED | EXCHANGE | EXISTS | EXPLAIN
- | EXPORT | EXTENDED | EXTERNAL | EXTRACT | FALSE | FETCH | FIELDS |
FILEFORMAT | FIRST | FOLLOWING | FOR | FOREIGN
- | FORMAT | FORMATTED | FROM | FUNCTION | FUNCTIONS | GLOBAL | GRANT |
GROUP | GROUPING | HAVING | IF | IGNORE
- | IMPORT | IN | INDEX | INDEXES | INPATH | INPUTFORMAT | INSERT | INTERVAL
| INTO | IS | ITEMS | KEYS | LAST
- | LATERAL | LAZY | LEADING | LIKE | LIMIT | LINES | LIST | LOAD | LOCAL |
LOCATION | LOCK | LOCKS | LOGICAL | MACRO
- | MAP | MSCK | NO | NOT | NULL | NULLS | OF | ONLY | OPTION | OPTIONS | OR
| ORDER | OUT | OUTER | OUTPUTFORMAT
- | OVER | OVERLAPS | OVERWRITE | PARTITION | PARTITIONED | PARTITIONS |
PERCENTLIT | PIVOT | POSITION | PRECEDING
- | PRIMARY | PRINCIPALS | PURGE | QUERY | RANGE | RECORDREADER |
RECORDWRITER | RECOVER | REDUCE | REFERENCES | REFRESH
- | RENAME | REPAIR | REPLACE | RESET | RESTRICT | REVOKE | RLIKE | ROLE |
ROLES | ROLLBACK | ROLLUP | ROW | ROWS
- | SELECT | SEPARATED | SERDE | SERDEPROPERTIES | SESSION_USER | SET | SETS
| SHOW | SKEWED | SOME | SORT | SORTED
- | START | STATISTICS | STORED | STRATIFY | STRUCT | TABLE | TABLES |
TABLESAMPLE | TBLPROPERTIES | TEMPORARY
- | TERMINATED | THEN | TO | TOUCH | TRAILING | TRANSACTION | TRANSACTIONS |
TRANSFORM | TRUE | TRUNCATE | UNARCHIVE
- | UNBOUNDED | UNCACHE | UNLOCK | UNIQUE | UNSET | USE | USER | VALUES |
VIEW | WHEN | WHERE | WINDOW | WITH
+ : ADD
+ | AFTER
+ | ALL
+ | ALTER
+ | ANALYZE
+ | AND
+ | ANY
+ | ARCHIVE
+ | ARRAY
+ | AS
+ | ASC
+ | AT
+ | AUTHORIZATION
+ | BETWEEN
+ | BOTH
+ | BUCKET
+ | BUCKETS
+ | BY
+ | CACHE
+ | CASCADE
+ | CASE
+ | CAST
+ | CHANGE
+ | CHECK
+ | CLEAR
+ | CLUSTER
+ | CLUSTERED
+ | CODEGEN
+ | COLLATE
+ | COLLECTION
+ | COLUMN
+ | COLUMNS
+ | COMMENT
+ | COMMIT
+ | COMPACT
+ | COMPACTIONS
+ | COMPUTE
+ | CONCATENATE
+ | CONSTRAINT
+ | COST
+ | CREATE
+ | CUBE
+ | CURRENT
+ | CURRENT_DATE
+ | CURRENT_TIME
+ | CURRENT_TIMESTAMP
+ | CURRENT_USER
+ | DATA
+ | DATABASE
+ | DATABASES
+ | DBPROPERTIES
+ | DEFINED
+ | DELETE
+ | DELIMITED
+ | DESC
+ | DESCRIBE
+ | DFS
+ | DIRECTORIES
+ | DIRECTORY
+ | DISTINCT
+ | DISTRIBUTE
+ | DIV
+ | DROP
+ | ELSE
+ | END
+ | ESCAPED
+ | EXCHANGE
+ | EXISTS
+ | EXPLAIN
+ | EXPORT
+ | EXTENDED
+ | EXTERNAL
+ | EXTRACT
+ | FALSE
+ | FETCH
+ | FIELDS
+ | FILEFORMAT
+ | FIRST
+ | FOLLOWING
+ | FOR
+ | FOREIGN
+ | FORMAT
+ | FORMATTED
+ | FROM
+ | FUNCTION
+ | FUNCTIONS
+ | GLOBAL
+ | GRANT
+ | GROUP
+ | GROUPING
+ | HAVING
+ | IF
+ | IGNORE
+ | IMPORT
+ | IN
+ | INDEX
+ | INDEXES
+ | INPATH
+ | INPUTFORMAT
+ | INSERT
+ | INTERVAL
+ | INTO
+ | IS
+ | ITEMS
+ | KEYS
+ | LAST
+ | LATERAL
+ | LAZY
+ | LEADING
+ | LIKE
+ | LIMIT
+ | LINES
+ | LIST
+ | LOAD
+ | LOCAL
+ | LOCATION
+ | LOCK
+ | LOCKS
+ | LOGICAL
+ | MACRO
+ | MAP
+ | MSCK
+ | NO
+ | NOT
+ | NULL
+ | NULLS
+ | OF
+ | ONLY
+ | OPTION
+ | OPTIONS
+ | OR
+ | ORDER
+ | OUT
+ | OUTER
+ | OUTPUTFORMAT
+ | OVER
+ | OVERLAPS
+ | OVERWRITE
+ | PARTITION
+ | PARTITIONED
+ | PARTITIONS
+ | PERCENTLIT
+ | PIVOT
+ | POSITION
+ | PRECEDING
+ | PRIMARY
+ | PRINCIPALS
+ | PURGE
+ | QUERY
+ | RANGE
+ | RECORDREADER
+ | RECORDWRITER
+ | RECOVER
+ | REDUCE
+ | REFERENCES
+ | REFRESH
+ | RENAME
+ | REPAIR
+ | REPLACE
+ | RESET
+ | RESTRICT
+ | REVOKE
+ | RLIKE
+ | ROLE
+ | ROLES
+ | ROLLBACK
+ | ROLLUP
+ | ROW
+ | ROWS
+ | SELECT
+ | SEPARATED
+ | SERDE
+ | SERDEPROPERTIES
+ | SESSION_USER
+ | SET
+ | SETS
+ | SHOW
+ | SKEWED
+ | SOME
+ | SORT
+ | SORTED
+ | START
+ | STATISTICS
+ | STORED
+ | STRATIFY
+ | STRUCT
+ | TABLE
+ | TABLES
+ | TABLESAMPLE
+ | TBLPROPERTIES
+ | TEMPORARY
+ | TERMINATED
+ | THEN
+ | TO
+ | TOUCH
+ | TRAILING
+ | TRANSACTION
+ | TRANSACTIONS
+ | TRANSFORM
+ | TRUE
+ | TRUNCATE
+ | UNARCHIVE
+ | UNBOUNDED
+ | UNCACHE
+ | UNIQUE
+ | UNLOCK
+ | UNSET
+ | USE
+ | USER
+ | VALUES
+ | VIEW
+ | WHEN
+ | WHERE
+ | WINDOW
+ | WITH
;
SELECT: 'SELECT';
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 489b7f3..3d41c27 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
@@ -23,39 +23,263 @@ class TableIdentifierParserSuite extends SparkFunSuite {
import CatalystSqlParser._
// Add "$elem$", "$value$" & "$key$"
- val hiveNonReservedKeyword = Array("add", "admin", "after", "analyze",
"archive", "asc", "before",
- "bucket", "buckets", "cascade", "change", "cluster", "clustered",
"clusterstatus", "collection",
- "columns", "comment", "compact", "compactions", "compute", "concatenate",
"continue", "cost",
- "data", "day", "databases", "datetime", "dbproperties", "deferred",
"defined", "delimited",
- "dependency", "desc", "directories", "directory", "disable", "distribute",
- "enable", "escaped", "exclusive", "explain", "export", "fields", "file",
"fileformat", "first",
- "format", "formatted", "functions", "hold_ddltime", "hour",
"idxproperties", "ignore", "index",
- "indexes", "inpath", "inputdriver", "inputformat", "items", "jar", "keys",
"key_type", "last",
- "limit", "offset", "lines", "load", "location", "lock", "locks",
"logical", "long", "mapjoin",
- "materialized", "metadata", "minus", "minute", "month", "msck", "noscan",
"no_drop", "nulls",
- "offline", "option", "outputdriver", "outputformat", "overwrite", "owner",
"partitioned",
- "partitions", "plus", "pretty", "principals", "protection", "purge",
"read", "readonly",
- "rebuild", "recordreader", "recordwriter", "reload", "rename", "repair",
"replace",
- "replication", "restrict", "rewrite", "role", "roles", "schemas", "second",
- "serde", "serdeproperties", "server", "sets", "shared", "show",
"show_database", "skewed",
- "sort", "sorted", "ssl", "statistics", "stored", "streamtable", "string",
"struct", "tables",
- "tblproperties", "temporary", "terminated", "tinyint", "touch",
"transactions", "unarchive",
- "undo", "uniontype", "unlock", "unset", "unsigned", "uri", "use", "utc",
"utctimestamp",
- "view", "while", "year", "work", "transaction", "write", "isolation",
"level", "snapshot",
- "autocommit", "all", "any", "alter", "array", "as", "authorization",
"between", "bigint",
- "binary", "boolean", "both", "by", "create", "cube", "current_date",
"current_timestamp",
- "cursor", "date", "decimal", "delete", "describe", "double", "drop",
"exists", "external",
- "false", "fetch", "float", "for", "grant", "group", "grouping", "import",
"in",
- "insert", "int", "into", "is", "pivot", "lateral", "like", "local",
"none", "null",
- "of", "order", "out", "outer", "partition", "percent", "procedure",
"query", "range", "reads",
- "revoke", "rollup", "row", "rows", "set", "smallint", "table",
"timestamp", "to", "trigger",
- "true", "truncate", "update", "user", "values", "with", "regexp", "rlike",
- "bigint", "binary", "boolean", "current_date", "current_timestamp",
"date", "double", "float",
- "int", "smallint", "timestamp", "at", "position", "both", "leading",
"trailing", "extract")
+ // It is recommended to list them in alphabetical order.
+ val hiveNonReservedKeyword = Array(
+ "add",
+ "admin",
+ "after",
+ "all",
+ "alter",
+ "analyze",
+ "any",
+ "archive",
+ "array",
+ "as",
+ "asc",
+ "at",
+ "authorization",
+ "autocommit",
+ "before",
+ "between",
+ "bigint",
+ "binary",
+ "boolean",
+ "both",
+ "bucket",
+ "buckets",
+ "by",
+ "cascade",
+ "change",
+ "cluster",
+ "clustered",
+ "clusterstatus",
+ "collection",
+ "columns",
+ "comment",
+ "compact",
+ "compactions",
+ "compute",
+ "concatenate",
+ "continue",
+ "cost",
+ "create",
+ "cube",
+ "current_date",
+ "current_timestamp",
+ "cursor",
+ "data",
+ "databases",
+ "date",
+ "datetime",
+ "day",
+ "dbproperties",
+ "decimal",
+ "deferred",
+ "defined",
+ "delete",
+ "delimited",
+ "dependency",
+ "desc",
+ "describe",
+ "directories",
+ "directory",
+ "disable",
+ "distribute",
+ "double",
+ "drop",
+ "enable",
+ "escaped",
+ "exclusive",
+ "exists",
+ "explain",
+ "export",
+ "external",
+ "extract",
+ "false",
+ "fetch",
+ "fields",
+ "file",
+ "fileformat",
+ "first",
+ "float",
+ "for",
+ "format",
+ "formatted",
+ "functions",
+ "grant",
+ "group",
+ "grouping",
+ "hold_ddltime",
+ "hour",
+ "idxproperties",
+ "ignore",
+ "import",
+ "in",
+ "index",
+ "indexes",
+ "inpath",
+ "inputdriver",
+ "inputformat",
+ "insert",
+ "int",
+ "into",
+ "is",
+ "isolation",
+ "items",
+ "jar",
+ "key_type",
+ "keys",
+ "last",
+ "lateral",
+ "leading",
+ "level",
+ "like",
+ "limit",
+ "lines",
+ "load",
+ "local",
+ "location",
+ "lock",
+ "locks",
+ "logical",
+ "long",
+ "mapjoin",
+ "materialized",
+ "metadata",
+ "minus",
+ "minute",
+ "month",
+ "msck",
+ "no_drop",
+ "none",
+ "noscan",
+ "null",
+ "nulls",
+ "of",
+ "offline",
+ "offset",
+ "option",
+ "order",
+ "out",
+ "outer",
+ "outputdriver",
+ "outputformat",
+ "overwrite",
+ "owner",
+ "partition",
+ "partitioned",
+ "partitions",
+ "percent",
+ "pivot",
+ "plus",
+ "position",
+ "pretty",
+ "principals",
+ "procedure",
+ "protection",
+ "purge",
+ "query",
+ "range",
+ "read",
+ "readonly",
+ "reads",
+ "rebuild",
+ "recordreader",
+ "recordwriter",
+ "regexp",
+ "reload",
+ "rename",
+ "repair",
+ "replace",
+ "replication",
+ "restrict",
+ "revoke",
+ "rewrite",
+ "rlike",
+ "role",
+ "roles",
+ "rollup",
+ "row",
+ "rows",
+ "schemas",
+ "second",
+ "serde",
+ "serdeproperties",
+ "server",
+ "set",
+ "sets",
+ "shared",
+ "show",
+ "show_database",
+ "skewed",
+ "smallint",
+ "snapshot",
+ "sort",
+ "sorted",
+ "ssl",
+ "statistics",
+ "stored",
+ "streamtable",
+ "string",
+ "struct",
+ "table",
+ "tables",
+ "tblproperties",
+ "temporary",
+ "terminated",
+ "timestamp",
+ "tinyint",
+ "to",
+ "touch",
+ "trailing",
+ "transaction",
+ "transactions",
+ "trigger",
+ "true",
+ "truncate",
+ "unarchive",
+ "undo",
+ "uniontype",
+ "unlock",
+ "unset",
+ "unsigned",
+ "update",
+ "uri",
+ "use",
+ "user",
+ "utc",
+ "utctimestamp",
+ "values",
+ "view",
+ "while",
+ "with",
+ "work",
+ "write",
+ "year")
- val hiveStrictNonReservedKeyword = Seq("anti", "full", "inner", "left",
"semi", "right",
- "natural", "union", "intersect", "except", "database", "on", "join",
"cross", "select", "from",
- "where", "having", "from", "to", "table", "with", "not")
+ val hiveStrictNonReservedKeyword = Seq(
+ "anti",
+ "cross",
+ "database",
+ "except",
+ "from",
+ "full",
+ "having",
+ "inner",
+ "intersect",
+ "join",
+ "left",
+ "natural",
+ "not",
+ "on",
+ "right",
+ "select",
+ "semi",
+ "table",
+ "to",
+ "union",
+ "where",
+ "with")
test("table identifier") {
// Regular names.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]