Skip to content

Commit 8c594cf

Browse files
authored
fix(impala): update impala nonReserved and keywords use as functionName (#229)
1 parent 484c881 commit 8c594cf

File tree

6 files changed

+3957
-4180
lines changed

6 files changed

+3957
-4180
lines changed

src/grammar/impala/ImpalaSqlParser.g4

Lines changed: 29 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ tableNamePath: identifier (DOT identifier)*;
382382

383383
viewNamePath: identifier (DOT identifier)*;
384384

385-
functionNamePath: qualifiedName;
385+
functionNamePath: reservedKeywordsUsedAsFuncName | qualifiedName;
386386

387387
columnNamePath: qualifiedName;
388388

@@ -861,99 +861,59 @@ number
861861
| MINUS? INTEGER_VALUE #integerLiteral
862862
;
863863

864+
reservedKeywordsUsedAsFuncName
865+
: KW_TRUNCATE
866+
| KW_CAST
867+
| KW_CURRENT_DATE
868+
| KW_CURRENT_TIMESTAMP
869+
| KW_DAY
870+
| KW_EXTRACT
871+
| KW_HOUR
872+
| KW_MINUTE
873+
| KW_MONTH
874+
| KW_SECOND
875+
| KW_YEAR
876+
| KW_CASE
877+
| KW_LEFT
878+
| KW_REPLACE
879+
| KW_RIGHT
880+
| KW_SUBSTRING
881+
| KW_USER
882+
;
864883

865884
nonReserved
866885
// IMPORTANT: this rule must only contain tokens. Nested rules are not supported. See SqlParser.exitNonReserved
867-
: KW_ADD
868-
| KW_ALL
869-
| KW_ANY
870-
| KW_ARRAY
871-
| KW_ASC
872-
| KW_AT
873-
| KW_BERNOULLI
874-
| KW_CASCADE
875-
| KW_COLUMN
876-
| KW_COLUMNS
877-
| KW_COMMENT
878-
| KW_CURRENT
879-
| KW_DATA
880-
| KW_DATABASE
881-
| KW_DATABASES
886+
: KW_BERNOULLI
882887
| KW_DAY
883888
| KW_DAYS
884-
| KW_DESC
885889
| KW_EXCLUDING
886-
| KW_EXPLAIN
887-
| KW_FILTER
888-
| KW_FIRST
889-
| KW_FOLLOWING
890-
| KW_FORMAT
891-
| KW_FUNCTIONS
892-
| KW_GRANT
893890
| KW_HOUR
894-
| KW_IF
895891
| KW_INCLUDING
896-
| KW_INTERVAL
897-
| KW_LAST
898-
| KW_LATERAL
899-
| KW_LIMIT
900-
| KW_MAP
901892
| KW_MINUTE
893+
| KW_MINUTES
902894
| KW_MONTH
895+
| KW_MONTHS
903896
| KW_NFC
904897
| KW_NFD
905898
| KW_NFKC
906899
| KW_NFKD
907-
| KW_NULLS
908-
| KW_OFFSET
909900
| KW_OPTION
910901
| KW_ORDINALITY
911-
| KW_OVER
912-
| KW_PARTITION
913-
| KW_PARTITIONS
914-
| KW_PARQUET
915-
| KW_POSITION
916-
| KW_PRECEDING
917902
| KW_PRIVILEGES
918903
| KW_PROPERTIES
919-
| KW_RANGE
920-
| KW_RENAME
921-
| KW_REPEATABLE
922-
| KW_REPLACE
923-
| KW_RESTRICT
924-
| KW_REVOKE
925-
| KW_ROLE
926-
| KW_ROLES
927-
| KW_ROW
928-
| KW_ROWS
929-
| KW_SCHEMA
930-
| KW_SCHEMAS
931904
| KW_SECOND
932905
| KW_SECONDS
933-
| KW_SET
934-
| KW_SHOW
935-
| KW_SOME
936-
| KW_STATS
937906
| KW_SUBSTRING
938907
| KW_SYSTEM
939-
| KW_TABLES
940-
| KW_TABLESAMPLE
941-
| KW_TRUNCATE
942-
| KW_TO
943908
| KW_TRY_CAST
944-
| KW_UNBOUNDED
945-
| KW_USE
946909
| KW_USER
947-
| KW_UNKNOWN
948-
| KW_VIEW
949910
| KW_VIEWS
950911
| KW_YEAR
951-
| KW_DEFAULT
952-
| KW_TEXTFILE
953912
| KW_ORC
954-
| KW_AVRO
955-
| KW_SEQUENCEFILE
956-
| KW_RCFILE
957-
| KW_IREGEXP
958-
| KW_ILIKE
913+
| KW_CURRENT_TIMESTAMP
914+
| KW_CURRENT_USER
915+
| KW_EXTRACT
916+
| KW_KEY
917+
| KW_LOCALTIME
918+
| KW_SHUTDOWN
959919
;

src/lib/impala/ImpalaSqlParser.interp

Lines changed: 2 additions & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)