feat: support trino(presto) sql language (#105)
* feat(trino): intergrate prestoGrammar to dt-sql-parser * feat(trino): add trinoSQl test framework * feat(trino): intergrate test files for trinoSQL * test(trino): support alterStatement test * test(trino): support alter table set authorization statement * feat(trino): complete trinosql alter unit tests * test(trino): complete dropStatement unit cases for trinosql * test(trino): complete create statement unit cases for trinoSQL * test(trino): complete insertStatement unit cases for trinoSQl * test(trino): dropStatement test files changed to short line split * test(trino): complete selectStatement unit cases and grammar check * test(trino): complete commentStatement unit case for trinoSQL * test(trino): complete analyze commit and call clause unit case * test(trino): complete delete deny and describe statement unit case * test(trino): complete explain execute and grant statement unit case * feat(trino): improve GRANT Role grammar * test(trino): complete show statement unit case * test(trino): complete truncateTable startTransaction update and values statement unit case * test(trino): improve update statement test cases * test(trino): complete revoke revoke roles and rollback statement unit case * test(trino): add set statement test case * feat: generator new trino parser and lexer file * feat(trino): improve alter statement grammar * test(trino): complete alter statement unit cases * feat(trino): support case-insensitive lexers * fix(trino): rm unless gen files * test(trino): complete merge and reset session statement unit cases * test(trino): complete merge anduse statement unit cases * test(trino): complete prepare and refresh materialized view statement unit cases * test(trino): improve statement unit cases * test(trino): complete match recognize statement unit cases * test(trino): complete window with row pattern recognition statement unit cases
This commit is contained in:
		| @ -13,6 +13,7 @@ const entry = [ | |||||||
|     'plsql', |     'plsql', | ||||||
|     'spark', |     'spark', | ||||||
|     'flinksql', |     'flinksql', | ||||||
|  |     'trinosql', | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| function compile(language) { | function compile(language) { | ||||||
|  | |||||||
| @ -182,7 +182,7 @@ module.exports = { | |||||||
|   }, |   }, | ||||||
|  |  | ||||||
|   // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation |   // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation | ||||||
|   transformIgnorePatterns: ["/node_modules/(?!antlr4)"], |   transformIgnorePatterns: ["/node_modules/.pnpm/(?!antlr4)"], | ||||||
|  |  | ||||||
|   // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them |   // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them | ||||||
|   // unmockedModulePathPatterns: undefined, |   // unmockedModulePathPatterns: undefined, | ||||||
| @ -196,6 +196,6 @@ module.exports = { | |||||||
|   // Whether to use watchman for file crawling |   // Whether to use watchman for file crawling | ||||||
|   // watchman: true, |   // watchman: true, | ||||||
|   moduleNameMapper: { |   moduleNameMapper: { | ||||||
|     "^antlr4$": "<rootDir>/node_modules/antlr4/src/antlr4/index.web.js", |     "^antlr4$": "<rootDir>/node_modules/antlr4/dist/antlr4.web.js", | ||||||
|   }, |   }, | ||||||
| }; | }; | ||||||
|  | |||||||
							
								
								
									
										1033
									
								
								src/grammar/trinosql/TrinoSqlParser.g4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1033
									
								
								src/grammar/trinosql/TrinoSqlParser.g4
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -12,3 +12,5 @@ export * from './lib/spark/SparkSqlVisitor'; | |||||||
| export * from './lib/spark/SparkSqlListener'; | export * from './lib/spark/SparkSqlListener'; | ||||||
| export * from './lib/pgsql/PostgreSQLParserListener'; | export * from './lib/pgsql/PostgreSQLParserListener'; | ||||||
| export * from './lib/pgsql/PostgreSQLParserVisitor'; | export * from './lib/pgsql/PostgreSQLParserVisitor'; | ||||||
|  | export * from './lib/trinosql/trinoSqlParserListener'; | ||||||
|  | export * from './lib/trinosql/trinoSqlParserVisitor'; | ||||||
|  | |||||||
							
								
								
									
										655
									
								
								src/lib/trinosql/trinoSqlParser.interp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										655
									
								
								src/lib/trinosql/trinoSqlParser.interp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										538
									
								
								src/lib/trinosql/trinoSqlParser.tokens
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										538
									
								
								src/lib/trinosql/trinoSqlParser.tokens
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,538 @@ | |||||||
|  | T__0=1 | ||||||
|  | T__1=2 | ||||||
|  | T__2=3 | ||||||
|  | T__3=4 | ||||||
|  | T__4=5 | ||||||
|  | T__5=6 | ||||||
|  | T__6=7 | ||||||
|  | T__7=8 | ||||||
|  | T__8=9 | ||||||
|  | T__9=10 | ||||||
|  | T__10=11 | ||||||
|  | T__11=12 | ||||||
|  | T__12=13 | ||||||
|  | T__13=14 | ||||||
|  | T__14=15 | ||||||
|  | T__15=16 | ||||||
|  | ADD=17 | ||||||
|  | ADMIN=18 | ||||||
|  | AFTER=19 | ||||||
|  | ALL=20 | ||||||
|  | ALTER=21 | ||||||
|  | ANALYZE=22 | ||||||
|  | AND=23 | ||||||
|  | ANY=24 | ||||||
|  | ARRAY=25 | ||||||
|  | AS=26 | ||||||
|  | ASC=27 | ||||||
|  | AT=28 | ||||||
|  | AUTHORIZATION=29 | ||||||
|  | BERNOULLI=30 | ||||||
|  | BETWEEN=31 | ||||||
|  | BY=32 | ||||||
|  | CALL=33 | ||||||
|  | CASCADE=34 | ||||||
|  | CASE=35 | ||||||
|  | CAST=36 | ||||||
|  | CATALOGS=37 | ||||||
|  | COLUMN=38 | ||||||
|  | COLUMNS=39 | ||||||
|  | COMMENT=40 | ||||||
|  | COMMIT=41 | ||||||
|  | COMMITTED=42 | ||||||
|  | CONSTRAINT=43 | ||||||
|  | CREATE=44 | ||||||
|  | CROSS=45 | ||||||
|  | CUBE=46 | ||||||
|  | CURRENT=47 | ||||||
|  | CURRENT_CATALOG=48 | ||||||
|  | CURRENT_DATE=49 | ||||||
|  | CURRENT_PATH=50 | ||||||
|  | CURRENT_ROLE=51 | ||||||
|  | CURRENT_SCHEMA=52 | ||||||
|  | CURRENT_TIME=53 | ||||||
|  | CURRENT_TIMESTAMP=54 | ||||||
|  | CURRENT_USER=55 | ||||||
|  | DATA=56 | ||||||
|  | DATE=57 | ||||||
|  | DAY=58 | ||||||
|  | DEFAULT=59 | ||||||
|  | DEALLOCATE=60 | ||||||
|  | DEFINER=61 | ||||||
|  | DELETE=62 | ||||||
|  | DESC=63 | ||||||
|  | DESCRIBE=64 | ||||||
|  | DEFINE=65 | ||||||
|  | DISTINCT=66 | ||||||
|  | DISTRIBUTED=67 | ||||||
|  | DOUBLE=68 | ||||||
|  | DROP=69 | ||||||
|  | ELSE=70 | ||||||
|  | EMPTY=71 | ||||||
|  | END=72 | ||||||
|  | ESCAPE=73 | ||||||
|  | EXCEPT=74 | ||||||
|  | EXCLUDING=75 | ||||||
|  | EXECUTE=76 | ||||||
|  | EXISTS=77 | ||||||
|  | EXPLAIN=78 | ||||||
|  | EXTRACT=79 | ||||||
|  | FALSE=80 | ||||||
|  | FETCH=81 | ||||||
|  | FILTER=82 | ||||||
|  | FINAL=83 | ||||||
|  | FIRST=84 | ||||||
|  | FOLLOWING=85 | ||||||
|  | FOR=86 | ||||||
|  | FORMAT=87 | ||||||
|  | FROM=88 | ||||||
|  | FULL=89 | ||||||
|  | FUNCTIONS=90 | ||||||
|  | GRANT=91 | ||||||
|  | GRANTED=92 | ||||||
|  | GRANTS=93 | ||||||
|  | DENY=94 | ||||||
|  | GRAPHVIZ=95 | ||||||
|  | GROUP=96 | ||||||
|  | GROUPING=97 | ||||||
|  | GROUPS=98 | ||||||
|  | HAVING=99 | ||||||
|  | HOUR=100 | ||||||
|  | IF=101 | ||||||
|  | IGNORE=102 | ||||||
|  | IN=103 | ||||||
|  | INCLUDING=104 | ||||||
|  | INITIAL=105 | ||||||
|  | INNER=106 | ||||||
|  | INPUT=107 | ||||||
|  | INSERT=108 | ||||||
|  | INTERSECT=109 | ||||||
|  | INTERVAL=110 | ||||||
|  | INTO=111 | ||||||
|  | INVOKER=112 | ||||||
|  | IO=113 | ||||||
|  | IS=114 | ||||||
|  | ISOLATION=115 | ||||||
|  | JOIN=116 | ||||||
|  | JSON=117 | ||||||
|  | LAST=118 | ||||||
|  | LATERAL=119 | ||||||
|  | LEFT=120 | ||||||
|  | LEVEL=121 | ||||||
|  | LIKE=122 | ||||||
|  | LIMIT=123 | ||||||
|  | LOCAL=124 | ||||||
|  | LOCALTIME=125 | ||||||
|  | LOCALTIMESTAMP=126 | ||||||
|  | LOGICAL=127 | ||||||
|  | MAP=128 | ||||||
|  | MATCH=129 | ||||||
|  | MATCHED=130 | ||||||
|  | MATCHES=131 | ||||||
|  | MATCH_RECOGNIZE=132 | ||||||
|  | MATERIALIZED=133 | ||||||
|  | MEASURES=134 | ||||||
|  | MERGE=135 | ||||||
|  | MINUTE=136 | ||||||
|  | MONTH=137 | ||||||
|  | NATURAL=138 | ||||||
|  | NEXT=139 | ||||||
|  | NFC=140 | ||||||
|  | NFD=141 | ||||||
|  | NFKC=142 | ||||||
|  | NFKD=143 | ||||||
|  | NO=144 | ||||||
|  | NONE=145 | ||||||
|  | NORMALIZE=146 | ||||||
|  | NOT=147 | ||||||
|  | NULL=148 | ||||||
|  | NULLIF=149 | ||||||
|  | NULLS=150 | ||||||
|  | OFFSET=151 | ||||||
|  | OMIT=152 | ||||||
|  | ON=153 | ||||||
|  | ONE=154 | ||||||
|  | ONLY=155 | ||||||
|  | OPTION=156 | ||||||
|  | OR=157 | ||||||
|  | ORDER=158 | ||||||
|  | ORDINALITY=159 | ||||||
|  | OUTER=160 | ||||||
|  | OUTPUT=161 | ||||||
|  | OVER=162 | ||||||
|  | PARTITION=163 | ||||||
|  | PARTITIONS=164 | ||||||
|  | PAST=165 | ||||||
|  | PATH=166 | ||||||
|  | PATTERN=167 | ||||||
|  | PER=168 | ||||||
|  | PERMUTE=169 | ||||||
|  | POSITION=170 | ||||||
|  | PRECEDING=171 | ||||||
|  | PRECISION=172 | ||||||
|  | PREPARE=173 | ||||||
|  | PRIVILEGES=174 | ||||||
|  | PROPERTIES=175 | ||||||
|  | RANGE=176 | ||||||
|  | READ=177 | ||||||
|  | RECURSIVE=178 | ||||||
|  | REFRESH=179 | ||||||
|  | RENAME=180 | ||||||
|  | REPEATABLE=181 | ||||||
|  | REPLACE=182 | ||||||
|  | RESET=183 | ||||||
|  | RESPECT=184 | ||||||
|  | RESTRICT=185 | ||||||
|  | REVOKE=186 | ||||||
|  | RIGHT=187 | ||||||
|  | ROLE=188 | ||||||
|  | ROLES=189 | ||||||
|  | ROLLBACK=190 | ||||||
|  | ROLLUP=191 | ||||||
|  | ROW=192 | ||||||
|  | ROWS=193 | ||||||
|  | RUNNING=194 | ||||||
|  | SCHEMA=195 | ||||||
|  | SCHEMAS=196 | ||||||
|  | SECOND=197 | ||||||
|  | SECURITY=198 | ||||||
|  | SEEK=199 | ||||||
|  | SELECT=200 | ||||||
|  | SERIALIZABLE=201 | ||||||
|  | SESSION=202 | ||||||
|  | SET=203 | ||||||
|  | SETS=204 | ||||||
|  | SHOW=205 | ||||||
|  | SOME=206 | ||||||
|  | START=207 | ||||||
|  | STATS=208 | ||||||
|  | SUBSET=209 | ||||||
|  | SUBSTRING=210 | ||||||
|  | SYSTEM=211 | ||||||
|  | TABLE=212 | ||||||
|  | TABLES=213 | ||||||
|  | TABLESAMPLE=214 | ||||||
|  | TEXT=215 | ||||||
|  | THEN=216 | ||||||
|  | TIES=217 | ||||||
|  | TIME=218 | ||||||
|  | TIMESTAMP=219 | ||||||
|  | TO=220 | ||||||
|  | TRANSACTION=221 | ||||||
|  | TRUNCATE=222 | ||||||
|  | TRUE=223 | ||||||
|  | TRY_CAST=224 | ||||||
|  | TYPE=225 | ||||||
|  | UESCAPE=226 | ||||||
|  | UNBOUNDED=227 | ||||||
|  | UNCOMMITTED=228 | ||||||
|  | UNION=229 | ||||||
|  | UNMATCHED=230 | ||||||
|  | UNNEST=231 | ||||||
|  | UPDATE=232 | ||||||
|  | USE=233 | ||||||
|  | USER=234 | ||||||
|  | USING=235 | ||||||
|  | VALIDATE=236 | ||||||
|  | VALUES=237 | ||||||
|  | VERBOSE=238 | ||||||
|  | VIEW=239 | ||||||
|  | WHEN=240 | ||||||
|  | WHERE=241 | ||||||
|  | WINDOW=242 | ||||||
|  | WITH=243 | ||||||
|  | WITHOUT=244 | ||||||
|  | WORK=245 | ||||||
|  | WRITE=246 | ||||||
|  | YEAR=247 | ||||||
|  | ZONE=248 | ||||||
|  | EQ=249 | ||||||
|  | NEQ=250 | ||||||
|  | LT=251 | ||||||
|  | LTE=252 | ||||||
|  | GT=253 | ||||||
|  | GTE=254 | ||||||
|  | PLUS=255 | ||||||
|  | MINUS=256 | ||||||
|  | ASTERISK=257 | ||||||
|  | SLASH=258 | ||||||
|  | PERCENT=259 | ||||||
|  | CONCAT=260 | ||||||
|  | QUESTION_MARK=261 | ||||||
|  | STRING=262 | ||||||
|  | UNICODE_STRING=263 | ||||||
|  | BINARY_LITERAL=264 | ||||||
|  | INTEGER_VALUE=265 | ||||||
|  | DECIMAL_VALUE=266 | ||||||
|  | DOUBLE_VALUE=267 | ||||||
|  | IDENTIFIER=268 | ||||||
|  | DIGIT_IDENTIFIER=269 | ||||||
|  | QUOTED_IDENTIFIER=270 | ||||||
|  | BACKQUOTED_IDENTIFIER=271 | ||||||
|  | SEMICOLON=272 | ||||||
|  | SIMPLE_COMMENT=273 | ||||||
|  | BRACKETED_COMMENT=274 | ||||||
|  | WS=275 | ||||||
|  | UNRECOGNIZED=276 | ||||||
|  | DELIMITER=277 | ||||||
|  | '.'=1 | ||||||
|  | '('=2 | ||||||
|  | ')'=3 | ||||||
|  | ','=4 | ||||||
|  | 'SKIP'=5 | ||||||
|  | '->'=6 | ||||||
|  | '['=7 | ||||||
|  | ']'=8 | ||||||
|  | '|'=9 | ||||||
|  | '^'=10 | ||||||
|  | '$'=11 | ||||||
|  | '{-'=12 | ||||||
|  | '-}'=13 | ||||||
|  | '{'=14 | ||||||
|  | '}'=15 | ||||||
|  | '=>'=16 | ||||||
|  | 'ADD'=17 | ||||||
|  | 'ADMIN'=18 | ||||||
|  | 'AFTER'=19 | ||||||
|  | 'ALL'=20 | ||||||
|  | 'ALTER'=21 | ||||||
|  | 'ANALYZE'=22 | ||||||
|  | 'AND'=23 | ||||||
|  | 'ANY'=24 | ||||||
|  | 'ARRAY'=25 | ||||||
|  | 'AS'=26 | ||||||
|  | 'ASC'=27 | ||||||
|  | 'AT'=28 | ||||||
|  | 'AUTHORIZATION'=29 | ||||||
|  | 'BERNOULLI'=30 | ||||||
|  | 'BETWEEN'=31 | ||||||
|  | 'BY'=32 | ||||||
|  | 'CALL'=33 | ||||||
|  | 'CASCADE'=34 | ||||||
|  | 'CASE'=35 | ||||||
|  | 'CAST'=36 | ||||||
|  | 'CATALOGS'=37 | ||||||
|  | 'COLUMN'=38 | ||||||
|  | 'COLUMNS'=39 | ||||||
|  | 'COMMENT'=40 | ||||||
|  | 'COMMIT'=41 | ||||||
|  | 'COMMITTED'=42 | ||||||
|  | 'CONSTRAINT'=43 | ||||||
|  | 'CREATE'=44 | ||||||
|  | 'CROSS'=45 | ||||||
|  | 'CUBE'=46 | ||||||
|  | 'CURRENT'=47 | ||||||
|  | 'CURRENT_CATALOG'=48 | ||||||
|  | 'CURRENT_DATE'=49 | ||||||
|  | 'CURRENT_PATH'=50 | ||||||
|  | 'CURRENT_ROLE'=51 | ||||||
|  | 'CURRENT_SCHEMA'=52 | ||||||
|  | 'CURRENT_TIME'=53 | ||||||
|  | 'CURRENT_TIMESTAMP'=54 | ||||||
|  | 'CURRENT_USER'=55 | ||||||
|  | 'DATA'=56 | ||||||
|  | 'DATE'=57 | ||||||
|  | 'DAY'=58 | ||||||
|  | 'DEFAULT'=59 | ||||||
|  | 'DEALLOCATE'=60 | ||||||
|  | 'DEFINER'=61 | ||||||
|  | 'DELETE'=62 | ||||||
|  | 'DESC'=63 | ||||||
|  | 'DESCRIBE'=64 | ||||||
|  | 'DEFINE'=65 | ||||||
|  | 'DISTINCT'=66 | ||||||
|  | 'DISTRIBUTED'=67 | ||||||
|  | 'DOUBLE'=68 | ||||||
|  | 'DROP'=69 | ||||||
|  | 'ELSE'=70 | ||||||
|  | 'EMPTY'=71 | ||||||
|  | 'END'=72 | ||||||
|  | 'ESCAPE'=73 | ||||||
|  | 'EXCEPT'=74 | ||||||
|  | 'EXCLUDING'=75 | ||||||
|  | 'EXECUTE'=76 | ||||||
|  | 'EXISTS'=77 | ||||||
|  | 'EXPLAIN'=78 | ||||||
|  | 'EXTRACT'=79 | ||||||
|  | 'FALSE'=80 | ||||||
|  | 'FETCH'=81 | ||||||
|  | 'FILTER'=82 | ||||||
|  | 'FINAL'=83 | ||||||
|  | 'FIRST'=84 | ||||||
|  | 'FOLLOWING'=85 | ||||||
|  | 'FOR'=86 | ||||||
|  | 'FORMAT'=87 | ||||||
|  | 'FROM'=88 | ||||||
|  | 'FULL'=89 | ||||||
|  | 'FUNCTIONS'=90 | ||||||
|  | 'GRANT'=91 | ||||||
|  | 'GRANTED'=92 | ||||||
|  | 'GRANTS'=93 | ||||||
|  | 'DENY'=94 | ||||||
|  | 'GRAPHVIZ'=95 | ||||||
|  | 'GROUP'=96 | ||||||
|  | 'GROUPING'=97 | ||||||
|  | 'GROUPS'=98 | ||||||
|  | 'HAVING'=99 | ||||||
|  | 'HOUR'=100 | ||||||
|  | 'IF'=101 | ||||||
|  | 'IGNORE'=102 | ||||||
|  | 'IN'=103 | ||||||
|  | 'INCLUDING'=104 | ||||||
|  | 'INITIAL'=105 | ||||||
|  | 'INNER'=106 | ||||||
|  | 'INPUT'=107 | ||||||
|  | 'INSERT'=108 | ||||||
|  | 'INTERSECT'=109 | ||||||
|  | 'INTERVAL'=110 | ||||||
|  | 'INTO'=111 | ||||||
|  | 'INVOKER'=112 | ||||||
|  | 'IO'=113 | ||||||
|  | 'IS'=114 | ||||||
|  | 'ISOLATION'=115 | ||||||
|  | 'JOIN'=116 | ||||||
|  | 'JSON'=117 | ||||||
|  | 'LAST'=118 | ||||||
|  | 'LATERAL'=119 | ||||||
|  | 'LEFT'=120 | ||||||
|  | 'LEVEL'=121 | ||||||
|  | 'LIKE'=122 | ||||||
|  | 'LIMIT'=123 | ||||||
|  | 'LOCAL'=124 | ||||||
|  | 'LOCALTIME'=125 | ||||||
|  | 'LOCALTIMESTAMP'=126 | ||||||
|  | 'LOGICAL'=127 | ||||||
|  | 'MAP'=128 | ||||||
|  | 'MATCH'=129 | ||||||
|  | 'MATCHED'=130 | ||||||
|  | 'MATCHES'=131 | ||||||
|  | 'MATCH_RECOGNIZE'=132 | ||||||
|  | 'MATERIALIZED'=133 | ||||||
|  | 'MEASURES'=134 | ||||||
|  | 'MERGE'=135 | ||||||
|  | 'MINUTE'=136 | ||||||
|  | 'MONTH'=137 | ||||||
|  | 'NATURAL'=138 | ||||||
|  | 'NEXT'=139 | ||||||
|  | 'NFC'=140 | ||||||
|  | 'NFD'=141 | ||||||
|  | 'NFKC'=142 | ||||||
|  | 'NFKD'=143 | ||||||
|  | 'NO'=144 | ||||||
|  | 'NONE'=145 | ||||||
|  | 'NORMALIZE'=146 | ||||||
|  | 'NOT'=147 | ||||||
|  | 'NULL'=148 | ||||||
|  | 'NULLIF'=149 | ||||||
|  | 'NULLS'=150 | ||||||
|  | 'OFFSET'=151 | ||||||
|  | 'OMIT'=152 | ||||||
|  | 'ON'=153 | ||||||
|  | 'ONE'=154 | ||||||
|  | 'ONLY'=155 | ||||||
|  | 'OPTION'=156 | ||||||
|  | 'OR'=157 | ||||||
|  | 'ORDER'=158 | ||||||
|  | 'ORDINALITY'=159 | ||||||
|  | 'OUTER'=160 | ||||||
|  | 'OUTPUT'=161 | ||||||
|  | 'OVER'=162 | ||||||
|  | 'PARTITION'=163 | ||||||
|  | 'PARTITIONS'=164 | ||||||
|  | 'PAST'=165 | ||||||
|  | 'PATH'=166 | ||||||
|  | 'PATTERN'=167 | ||||||
|  | 'PER'=168 | ||||||
|  | 'PERMUTE'=169 | ||||||
|  | 'POSITION'=170 | ||||||
|  | 'PRECEDING'=171 | ||||||
|  | 'PRECISION'=172 | ||||||
|  | 'PREPARE'=173 | ||||||
|  | 'PRIVILEGES'=174 | ||||||
|  | 'PROPERTIES'=175 | ||||||
|  | 'RANGE'=176 | ||||||
|  | 'READ'=177 | ||||||
|  | 'RECURSIVE'=178 | ||||||
|  | 'REFRESH'=179 | ||||||
|  | 'RENAME'=180 | ||||||
|  | 'REPEATABLE'=181 | ||||||
|  | 'REPLACE'=182 | ||||||
|  | 'RESET'=183 | ||||||
|  | 'RESPECT'=184 | ||||||
|  | 'RESTRICT'=185 | ||||||
|  | 'REVOKE'=186 | ||||||
|  | 'RIGHT'=187 | ||||||
|  | 'ROLE'=188 | ||||||
|  | 'ROLES'=189 | ||||||
|  | 'ROLLBACK'=190 | ||||||
|  | 'ROLLUP'=191 | ||||||
|  | 'ROW'=192 | ||||||
|  | 'ROWS'=193 | ||||||
|  | 'RUNNING'=194 | ||||||
|  | 'SCHEMA'=195 | ||||||
|  | 'SCHEMAS'=196 | ||||||
|  | 'SECOND'=197 | ||||||
|  | 'SECURITY'=198 | ||||||
|  | 'SEEK'=199 | ||||||
|  | 'SELECT'=200 | ||||||
|  | 'SERIALIZABLE'=201 | ||||||
|  | 'SESSION'=202 | ||||||
|  | 'SET'=203 | ||||||
|  | 'SETS'=204 | ||||||
|  | 'SHOW'=205 | ||||||
|  | 'SOME'=206 | ||||||
|  | 'START'=207 | ||||||
|  | 'STATS'=208 | ||||||
|  | 'SUBSET'=209 | ||||||
|  | 'SUBSTRING'=210 | ||||||
|  | 'SYSTEM'=211 | ||||||
|  | 'TABLE'=212 | ||||||
|  | 'TABLES'=213 | ||||||
|  | 'TABLESAMPLE'=214 | ||||||
|  | 'TEXT'=215 | ||||||
|  | 'THEN'=216 | ||||||
|  | 'TIES'=217 | ||||||
|  | 'TIME'=218 | ||||||
|  | 'TIMESTAMP'=219 | ||||||
|  | 'TO'=220 | ||||||
|  | 'TRANSACTION'=221 | ||||||
|  | 'TRUNCATE'=222 | ||||||
|  | 'TRUE'=223 | ||||||
|  | 'TRY_CAST'=224 | ||||||
|  | 'TYPE'=225 | ||||||
|  | 'UESCAPE'=226 | ||||||
|  | 'UNBOUNDED'=227 | ||||||
|  | 'UNCOMMITTED'=228 | ||||||
|  | 'UNION'=229 | ||||||
|  | 'UNMATCHED'=230 | ||||||
|  | 'UNNEST'=231 | ||||||
|  | 'UPDATE'=232 | ||||||
|  | 'USE'=233 | ||||||
|  | 'USER'=234 | ||||||
|  | 'USING'=235 | ||||||
|  | 'VALIDATE'=236 | ||||||
|  | 'VALUES'=237 | ||||||
|  | 'VERBOSE'=238 | ||||||
|  | 'VIEW'=239 | ||||||
|  | 'WHEN'=240 | ||||||
|  | 'WHERE'=241 | ||||||
|  | 'WINDOW'=242 | ||||||
|  | 'WITH'=243 | ||||||
|  | 'WITHOUT'=244 | ||||||
|  | 'WORK'=245 | ||||||
|  | 'WRITE'=246 | ||||||
|  | 'YEAR'=247 | ||||||
|  | 'ZONE'=248 | ||||||
|  | '='=249 | ||||||
|  | '<'=251 | ||||||
|  | '<='=252 | ||||||
|  | '>'=253 | ||||||
|  | '>='=254 | ||||||
|  | '+'=255 | ||||||
|  | '-'=256 | ||||||
|  | '*'=257 | ||||||
|  | '/'=258 | ||||||
|  | '%'=259 | ||||||
|  | '||'=260 | ||||||
|  | '?'=261 | ||||||
|  | ';'=272 | ||||||
							
								
								
									
										848
									
								
								src/lib/trinosql/trinoSqlParserLexer.interp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										848
									
								
								src/lib/trinosql/trinoSqlParserLexer.interp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										537
									
								
								src/lib/trinosql/trinoSqlParserLexer.tokens
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										537
									
								
								src/lib/trinosql/trinoSqlParserLexer.tokens
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,537 @@ | |||||||
|  | T__0=1 | ||||||
|  | T__1=2 | ||||||
|  | T__2=3 | ||||||
|  | T__3=4 | ||||||
|  | T__4=5 | ||||||
|  | T__5=6 | ||||||
|  | T__6=7 | ||||||
|  | T__7=8 | ||||||
|  | T__8=9 | ||||||
|  | T__9=10 | ||||||
|  | T__10=11 | ||||||
|  | T__11=12 | ||||||
|  | T__12=13 | ||||||
|  | T__13=14 | ||||||
|  | T__14=15 | ||||||
|  | T__15=16 | ||||||
|  | ADD=17 | ||||||
|  | ADMIN=18 | ||||||
|  | AFTER=19 | ||||||
|  | ALL=20 | ||||||
|  | ALTER=21 | ||||||
|  | ANALYZE=22 | ||||||
|  | AND=23 | ||||||
|  | ANY=24 | ||||||
|  | ARRAY=25 | ||||||
|  | AS=26 | ||||||
|  | ASC=27 | ||||||
|  | AT=28 | ||||||
|  | AUTHORIZATION=29 | ||||||
|  | BERNOULLI=30 | ||||||
|  | BETWEEN=31 | ||||||
|  | BY=32 | ||||||
|  | CALL=33 | ||||||
|  | CASCADE=34 | ||||||
|  | CASE=35 | ||||||
|  | CAST=36 | ||||||
|  | CATALOGS=37 | ||||||
|  | COLUMN=38 | ||||||
|  | COLUMNS=39 | ||||||
|  | COMMENT=40 | ||||||
|  | COMMIT=41 | ||||||
|  | COMMITTED=42 | ||||||
|  | CONSTRAINT=43 | ||||||
|  | CREATE=44 | ||||||
|  | CROSS=45 | ||||||
|  | CUBE=46 | ||||||
|  | CURRENT=47 | ||||||
|  | CURRENT_CATALOG=48 | ||||||
|  | CURRENT_DATE=49 | ||||||
|  | CURRENT_PATH=50 | ||||||
|  | CURRENT_ROLE=51 | ||||||
|  | CURRENT_SCHEMA=52 | ||||||
|  | CURRENT_TIME=53 | ||||||
|  | CURRENT_TIMESTAMP=54 | ||||||
|  | CURRENT_USER=55 | ||||||
|  | DATA=56 | ||||||
|  | DATE=57 | ||||||
|  | DAY=58 | ||||||
|  | DEFAULT=59 | ||||||
|  | DEALLOCATE=60 | ||||||
|  | DEFINER=61 | ||||||
|  | DELETE=62 | ||||||
|  | DESC=63 | ||||||
|  | DESCRIBE=64 | ||||||
|  | DEFINE=65 | ||||||
|  | DISTINCT=66 | ||||||
|  | DISTRIBUTED=67 | ||||||
|  | DOUBLE=68 | ||||||
|  | DROP=69 | ||||||
|  | ELSE=70 | ||||||
|  | EMPTY=71 | ||||||
|  | END=72 | ||||||
|  | ESCAPE=73 | ||||||
|  | EXCEPT=74 | ||||||
|  | EXCLUDING=75 | ||||||
|  | EXECUTE=76 | ||||||
|  | EXISTS=77 | ||||||
|  | EXPLAIN=78 | ||||||
|  | EXTRACT=79 | ||||||
|  | FALSE=80 | ||||||
|  | FETCH=81 | ||||||
|  | FILTER=82 | ||||||
|  | FINAL=83 | ||||||
|  | FIRST=84 | ||||||
|  | FOLLOWING=85 | ||||||
|  | FOR=86 | ||||||
|  | FORMAT=87 | ||||||
|  | FROM=88 | ||||||
|  | FULL=89 | ||||||
|  | FUNCTIONS=90 | ||||||
|  | GRANT=91 | ||||||
|  | GRANTED=92 | ||||||
|  | GRANTS=93 | ||||||
|  | DENY=94 | ||||||
|  | GRAPHVIZ=95 | ||||||
|  | GROUP=96 | ||||||
|  | GROUPING=97 | ||||||
|  | GROUPS=98 | ||||||
|  | HAVING=99 | ||||||
|  | HOUR=100 | ||||||
|  | IF=101 | ||||||
|  | IGNORE=102 | ||||||
|  | IN=103 | ||||||
|  | INCLUDING=104 | ||||||
|  | INITIAL=105 | ||||||
|  | INNER=106 | ||||||
|  | INPUT=107 | ||||||
|  | INSERT=108 | ||||||
|  | INTERSECT=109 | ||||||
|  | INTERVAL=110 | ||||||
|  | INTO=111 | ||||||
|  | INVOKER=112 | ||||||
|  | IO=113 | ||||||
|  | IS=114 | ||||||
|  | ISOLATION=115 | ||||||
|  | JOIN=116 | ||||||
|  | JSON=117 | ||||||
|  | LAST=118 | ||||||
|  | LATERAL=119 | ||||||
|  | LEFT=120 | ||||||
|  | LEVEL=121 | ||||||
|  | LIKE=122 | ||||||
|  | LIMIT=123 | ||||||
|  | LOCAL=124 | ||||||
|  | LOCALTIME=125 | ||||||
|  | LOCALTIMESTAMP=126 | ||||||
|  | LOGICAL=127 | ||||||
|  | MAP=128 | ||||||
|  | MATCH=129 | ||||||
|  | MATCHED=130 | ||||||
|  | MATCHES=131 | ||||||
|  | MATCH_RECOGNIZE=132 | ||||||
|  | MATERIALIZED=133 | ||||||
|  | MEASURES=134 | ||||||
|  | MERGE=135 | ||||||
|  | MINUTE=136 | ||||||
|  | MONTH=137 | ||||||
|  | NATURAL=138 | ||||||
|  | NEXT=139 | ||||||
|  | NFC=140 | ||||||
|  | NFD=141 | ||||||
|  | NFKC=142 | ||||||
|  | NFKD=143 | ||||||
|  | NO=144 | ||||||
|  | NONE=145 | ||||||
|  | NORMALIZE=146 | ||||||
|  | NOT=147 | ||||||
|  | NULL=148 | ||||||
|  | NULLIF=149 | ||||||
|  | NULLS=150 | ||||||
|  | OFFSET=151 | ||||||
|  | OMIT=152 | ||||||
|  | ON=153 | ||||||
|  | ONE=154 | ||||||
|  | ONLY=155 | ||||||
|  | OPTION=156 | ||||||
|  | OR=157 | ||||||
|  | ORDER=158 | ||||||
|  | ORDINALITY=159 | ||||||
|  | OUTER=160 | ||||||
|  | OUTPUT=161 | ||||||
|  | OVER=162 | ||||||
|  | PARTITION=163 | ||||||
|  | PARTITIONS=164 | ||||||
|  | PAST=165 | ||||||
|  | PATH=166 | ||||||
|  | PATTERN=167 | ||||||
|  | PER=168 | ||||||
|  | PERMUTE=169 | ||||||
|  | POSITION=170 | ||||||
|  | PRECEDING=171 | ||||||
|  | PRECISION=172 | ||||||
|  | PREPARE=173 | ||||||
|  | PRIVILEGES=174 | ||||||
|  | PROPERTIES=175 | ||||||
|  | RANGE=176 | ||||||
|  | READ=177 | ||||||
|  | RECURSIVE=178 | ||||||
|  | REFRESH=179 | ||||||
|  | RENAME=180 | ||||||
|  | REPEATABLE=181 | ||||||
|  | REPLACE=182 | ||||||
|  | RESET=183 | ||||||
|  | RESPECT=184 | ||||||
|  | RESTRICT=185 | ||||||
|  | REVOKE=186 | ||||||
|  | RIGHT=187 | ||||||
|  | ROLE=188 | ||||||
|  | ROLES=189 | ||||||
|  | ROLLBACK=190 | ||||||
|  | ROLLUP=191 | ||||||
|  | ROW=192 | ||||||
|  | ROWS=193 | ||||||
|  | RUNNING=194 | ||||||
|  | SCHEMA=195 | ||||||
|  | SCHEMAS=196 | ||||||
|  | SECOND=197 | ||||||
|  | SECURITY=198 | ||||||
|  | SEEK=199 | ||||||
|  | SELECT=200 | ||||||
|  | SERIALIZABLE=201 | ||||||
|  | SESSION=202 | ||||||
|  | SET=203 | ||||||
|  | SETS=204 | ||||||
|  | SHOW=205 | ||||||
|  | SOME=206 | ||||||
|  | START=207 | ||||||
|  | STATS=208 | ||||||
|  | SUBSET=209 | ||||||
|  | SUBSTRING=210 | ||||||
|  | SYSTEM=211 | ||||||
|  | TABLE=212 | ||||||
|  | TABLES=213 | ||||||
|  | TABLESAMPLE=214 | ||||||
|  | TEXT=215 | ||||||
|  | THEN=216 | ||||||
|  | TIES=217 | ||||||
|  | TIME=218 | ||||||
|  | TIMESTAMP=219 | ||||||
|  | TO=220 | ||||||
|  | TRANSACTION=221 | ||||||
|  | TRUNCATE=222 | ||||||
|  | TRUE=223 | ||||||
|  | TRY_CAST=224 | ||||||
|  | TYPE=225 | ||||||
|  | UESCAPE=226 | ||||||
|  | UNBOUNDED=227 | ||||||
|  | UNCOMMITTED=228 | ||||||
|  | UNION=229 | ||||||
|  | UNMATCHED=230 | ||||||
|  | UNNEST=231 | ||||||
|  | UPDATE=232 | ||||||
|  | USE=233 | ||||||
|  | USER=234 | ||||||
|  | USING=235 | ||||||
|  | VALIDATE=236 | ||||||
|  | VALUES=237 | ||||||
|  | VERBOSE=238 | ||||||
|  | VIEW=239 | ||||||
|  | WHEN=240 | ||||||
|  | WHERE=241 | ||||||
|  | WINDOW=242 | ||||||
|  | WITH=243 | ||||||
|  | WITHOUT=244 | ||||||
|  | WORK=245 | ||||||
|  | WRITE=246 | ||||||
|  | YEAR=247 | ||||||
|  | ZONE=248 | ||||||
|  | EQ=249 | ||||||
|  | NEQ=250 | ||||||
|  | LT=251 | ||||||
|  | LTE=252 | ||||||
|  | GT=253 | ||||||
|  | GTE=254 | ||||||
|  | PLUS=255 | ||||||
|  | MINUS=256 | ||||||
|  | ASTERISK=257 | ||||||
|  | SLASH=258 | ||||||
|  | PERCENT=259 | ||||||
|  | CONCAT=260 | ||||||
|  | QUESTION_MARK=261 | ||||||
|  | STRING=262 | ||||||
|  | UNICODE_STRING=263 | ||||||
|  | BINARY_LITERAL=264 | ||||||
|  | INTEGER_VALUE=265 | ||||||
|  | DECIMAL_VALUE=266 | ||||||
|  | DOUBLE_VALUE=267 | ||||||
|  | IDENTIFIER=268 | ||||||
|  | DIGIT_IDENTIFIER=269 | ||||||
|  | QUOTED_IDENTIFIER=270 | ||||||
|  | BACKQUOTED_IDENTIFIER=271 | ||||||
|  | SEMICOLON=272 | ||||||
|  | SIMPLE_COMMENT=273 | ||||||
|  | BRACKETED_COMMENT=274 | ||||||
|  | WS=275 | ||||||
|  | UNRECOGNIZED=276 | ||||||
|  | '.'=1 | ||||||
|  | '('=2 | ||||||
|  | ')'=3 | ||||||
|  | ','=4 | ||||||
|  | 'SKIP'=5 | ||||||
|  | '->'=6 | ||||||
|  | '['=7 | ||||||
|  | ']'=8 | ||||||
|  | '|'=9 | ||||||
|  | '^'=10 | ||||||
|  | '$'=11 | ||||||
|  | '{-'=12 | ||||||
|  | '-}'=13 | ||||||
|  | '{'=14 | ||||||
|  | '}'=15 | ||||||
|  | '=>'=16 | ||||||
|  | 'ADD'=17 | ||||||
|  | 'ADMIN'=18 | ||||||
|  | 'AFTER'=19 | ||||||
|  | 'ALL'=20 | ||||||
|  | 'ALTER'=21 | ||||||
|  | 'ANALYZE'=22 | ||||||
|  | 'AND'=23 | ||||||
|  | 'ANY'=24 | ||||||
|  | 'ARRAY'=25 | ||||||
|  | 'AS'=26 | ||||||
|  | 'ASC'=27 | ||||||
|  | 'AT'=28 | ||||||
|  | 'AUTHORIZATION'=29 | ||||||
|  | 'BERNOULLI'=30 | ||||||
|  | 'BETWEEN'=31 | ||||||
|  | 'BY'=32 | ||||||
|  | 'CALL'=33 | ||||||
|  | 'CASCADE'=34 | ||||||
|  | 'CASE'=35 | ||||||
|  | 'CAST'=36 | ||||||
|  | 'CATALOGS'=37 | ||||||
|  | 'COLUMN'=38 | ||||||
|  | 'COLUMNS'=39 | ||||||
|  | 'COMMENT'=40 | ||||||
|  | 'COMMIT'=41 | ||||||
|  | 'COMMITTED'=42 | ||||||
|  | 'CONSTRAINT'=43 | ||||||
|  | 'CREATE'=44 | ||||||
|  | 'CROSS'=45 | ||||||
|  | 'CUBE'=46 | ||||||
|  | 'CURRENT'=47 | ||||||
|  | 'CURRENT_CATALOG'=48 | ||||||
|  | 'CURRENT_DATE'=49 | ||||||
|  | 'CURRENT_PATH'=50 | ||||||
|  | 'CURRENT_ROLE'=51 | ||||||
|  | 'CURRENT_SCHEMA'=52 | ||||||
|  | 'CURRENT_TIME'=53 | ||||||
|  | 'CURRENT_TIMESTAMP'=54 | ||||||
|  | 'CURRENT_USER'=55 | ||||||
|  | 'DATA'=56 | ||||||
|  | 'DATE'=57 | ||||||
|  | 'DAY'=58 | ||||||
|  | 'DEFAULT'=59 | ||||||
|  | 'DEALLOCATE'=60 | ||||||
|  | 'DEFINER'=61 | ||||||
|  | 'DELETE'=62 | ||||||
|  | 'DESC'=63 | ||||||
|  | 'DESCRIBE'=64 | ||||||
|  | 'DEFINE'=65 | ||||||
|  | 'DISTINCT'=66 | ||||||
|  | 'DISTRIBUTED'=67 | ||||||
|  | 'DOUBLE'=68 | ||||||
|  | 'DROP'=69 | ||||||
|  | 'ELSE'=70 | ||||||
|  | 'EMPTY'=71 | ||||||
|  | 'END'=72 | ||||||
|  | 'ESCAPE'=73 | ||||||
|  | 'EXCEPT'=74 | ||||||
|  | 'EXCLUDING'=75 | ||||||
|  | 'EXECUTE'=76 | ||||||
|  | 'EXISTS'=77 | ||||||
|  | 'EXPLAIN'=78 | ||||||
|  | 'EXTRACT'=79 | ||||||
|  | 'FALSE'=80 | ||||||
|  | 'FETCH'=81 | ||||||
|  | 'FILTER'=82 | ||||||
|  | 'FINAL'=83 | ||||||
|  | 'FIRST'=84 | ||||||
|  | 'FOLLOWING'=85 | ||||||
|  | 'FOR'=86 | ||||||
|  | 'FORMAT'=87 | ||||||
|  | 'FROM'=88 | ||||||
|  | 'FULL'=89 | ||||||
|  | 'FUNCTIONS'=90 | ||||||
|  | 'GRANT'=91 | ||||||
|  | 'GRANTED'=92 | ||||||
|  | 'GRANTS'=93 | ||||||
|  | 'DENY'=94 | ||||||
|  | 'GRAPHVIZ'=95 | ||||||
|  | 'GROUP'=96 | ||||||
|  | 'GROUPING'=97 | ||||||
|  | 'GROUPS'=98 | ||||||
|  | 'HAVING'=99 | ||||||
|  | 'HOUR'=100 | ||||||
|  | 'IF'=101 | ||||||
|  | 'IGNORE'=102 | ||||||
|  | 'IN'=103 | ||||||
|  | 'INCLUDING'=104 | ||||||
|  | 'INITIAL'=105 | ||||||
|  | 'INNER'=106 | ||||||
|  | 'INPUT'=107 | ||||||
|  | 'INSERT'=108 | ||||||
|  | 'INTERSECT'=109 | ||||||
|  | 'INTERVAL'=110 | ||||||
|  | 'INTO'=111 | ||||||
|  | 'INVOKER'=112 | ||||||
|  | 'IO'=113 | ||||||
|  | 'IS'=114 | ||||||
|  | 'ISOLATION'=115 | ||||||
|  | 'JOIN'=116 | ||||||
|  | 'JSON'=117 | ||||||
|  | 'LAST'=118 | ||||||
|  | 'LATERAL'=119 | ||||||
|  | 'LEFT'=120 | ||||||
|  | 'LEVEL'=121 | ||||||
|  | 'LIKE'=122 | ||||||
|  | 'LIMIT'=123 | ||||||
|  | 'LOCAL'=124 | ||||||
|  | 'LOCALTIME'=125 | ||||||
|  | 'LOCALTIMESTAMP'=126 | ||||||
|  | 'LOGICAL'=127 | ||||||
|  | 'MAP'=128 | ||||||
|  | 'MATCH'=129 | ||||||
|  | 'MATCHED'=130 | ||||||
|  | 'MATCHES'=131 | ||||||
|  | 'MATCH_RECOGNIZE'=132 | ||||||
|  | 'MATERIALIZED'=133 | ||||||
|  | 'MEASURES'=134 | ||||||
|  | 'MERGE'=135 | ||||||
|  | 'MINUTE'=136 | ||||||
|  | 'MONTH'=137 | ||||||
|  | 'NATURAL'=138 | ||||||
|  | 'NEXT'=139 | ||||||
|  | 'NFC'=140 | ||||||
|  | 'NFD'=141 | ||||||
|  | 'NFKC'=142 | ||||||
|  | 'NFKD'=143 | ||||||
|  | 'NO'=144 | ||||||
|  | 'NONE'=145 | ||||||
|  | 'NORMALIZE'=146 | ||||||
|  | 'NOT'=147 | ||||||
|  | 'NULL'=148 | ||||||
|  | 'NULLIF'=149 | ||||||
|  | 'NULLS'=150 | ||||||
|  | 'OFFSET'=151 | ||||||
|  | 'OMIT'=152 | ||||||
|  | 'ON'=153 | ||||||
|  | 'ONE'=154 | ||||||
|  | 'ONLY'=155 | ||||||
|  | 'OPTION'=156 | ||||||
|  | 'OR'=157 | ||||||
|  | 'ORDER'=158 | ||||||
|  | 'ORDINALITY'=159 | ||||||
|  | 'OUTER'=160 | ||||||
|  | 'OUTPUT'=161 | ||||||
|  | 'OVER'=162 | ||||||
|  | 'PARTITION'=163 | ||||||
|  | 'PARTITIONS'=164 | ||||||
|  | 'PAST'=165 | ||||||
|  | 'PATH'=166 | ||||||
|  | 'PATTERN'=167 | ||||||
|  | 'PER'=168 | ||||||
|  | 'PERMUTE'=169 | ||||||
|  | 'POSITION'=170 | ||||||
|  | 'PRECEDING'=171 | ||||||
|  | 'PRECISION'=172 | ||||||
|  | 'PREPARE'=173 | ||||||
|  | 'PRIVILEGES'=174 | ||||||
|  | 'PROPERTIES'=175 | ||||||
|  | 'RANGE'=176 | ||||||
|  | 'READ'=177 | ||||||
|  | 'RECURSIVE'=178 | ||||||
|  | 'REFRESH'=179 | ||||||
|  | 'RENAME'=180 | ||||||
|  | 'REPEATABLE'=181 | ||||||
|  | 'REPLACE'=182 | ||||||
|  | 'RESET'=183 | ||||||
|  | 'RESPECT'=184 | ||||||
|  | 'RESTRICT'=185 | ||||||
|  | 'REVOKE'=186 | ||||||
|  | 'RIGHT'=187 | ||||||
|  | 'ROLE'=188 | ||||||
|  | 'ROLES'=189 | ||||||
|  | 'ROLLBACK'=190 | ||||||
|  | 'ROLLUP'=191 | ||||||
|  | 'ROW'=192 | ||||||
|  | 'ROWS'=193 | ||||||
|  | 'RUNNING'=194 | ||||||
|  | 'SCHEMA'=195 | ||||||
|  | 'SCHEMAS'=196 | ||||||
|  | 'SECOND'=197 | ||||||
|  | 'SECURITY'=198 | ||||||
|  | 'SEEK'=199 | ||||||
|  | 'SELECT'=200 | ||||||
|  | 'SERIALIZABLE'=201 | ||||||
|  | 'SESSION'=202 | ||||||
|  | 'SET'=203 | ||||||
|  | 'SETS'=204 | ||||||
|  | 'SHOW'=205 | ||||||
|  | 'SOME'=206 | ||||||
|  | 'START'=207 | ||||||
|  | 'STATS'=208 | ||||||
|  | 'SUBSET'=209 | ||||||
|  | 'SUBSTRING'=210 | ||||||
|  | 'SYSTEM'=211 | ||||||
|  | 'TABLE'=212 | ||||||
|  | 'TABLES'=213 | ||||||
|  | 'TABLESAMPLE'=214 | ||||||
|  | 'TEXT'=215 | ||||||
|  | 'THEN'=216 | ||||||
|  | 'TIES'=217 | ||||||
|  | 'TIME'=218 | ||||||
|  | 'TIMESTAMP'=219 | ||||||
|  | 'TO'=220 | ||||||
|  | 'TRANSACTION'=221 | ||||||
|  | 'TRUNCATE'=222 | ||||||
|  | 'TRUE'=223 | ||||||
|  | 'TRY_CAST'=224 | ||||||
|  | 'TYPE'=225 | ||||||
|  | 'UESCAPE'=226 | ||||||
|  | 'UNBOUNDED'=227 | ||||||
|  | 'UNCOMMITTED'=228 | ||||||
|  | 'UNION'=229 | ||||||
|  | 'UNMATCHED'=230 | ||||||
|  | 'UNNEST'=231 | ||||||
|  | 'UPDATE'=232 | ||||||
|  | 'USE'=233 | ||||||
|  | 'USER'=234 | ||||||
|  | 'USING'=235 | ||||||
|  | 'VALIDATE'=236 | ||||||
|  | 'VALUES'=237 | ||||||
|  | 'VERBOSE'=238 | ||||||
|  | 'VIEW'=239 | ||||||
|  | 'WHEN'=240 | ||||||
|  | 'WHERE'=241 | ||||||
|  | 'WINDOW'=242 | ||||||
|  | 'WITH'=243 | ||||||
|  | 'WITHOUT'=244 | ||||||
|  | 'WORK'=245 | ||||||
|  | 'WRITE'=246 | ||||||
|  | 'YEAR'=247 | ||||||
|  | 'ZONE'=248 | ||||||
|  | '='=249 | ||||||
|  | '<'=251 | ||||||
|  | '<='=252 | ||||||
|  | '>'=253 | ||||||
|  | '>='=254 | ||||||
|  | '+'=255 | ||||||
|  | '-'=256 | ||||||
|  | '*'=257 | ||||||
|  | '/'=258 | ||||||
|  | '%'=259 | ||||||
|  | '||'=260 | ||||||
|  | '?'=261 | ||||||
|  | ';'=272 | ||||||
							
								
								
									
										1436
									
								
								src/lib/trinosql/trinoSqlParserLexer.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1436
									
								
								src/lib/trinosql/trinoSqlParserLexer.ts
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3259
									
								
								src/lib/trinosql/trinoSqlParserListener.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3259
									
								
								src/lib/trinosql/trinoSqlParserListener.ts
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										23211
									
								
								src/lib/trinosql/trinoSqlParserParser.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23211
									
								
								src/lib/trinosql/trinoSqlParserParser.ts
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2028
									
								
								src/lib/trinosql/trinoSqlParserVisitor.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2028
									
								
								src/lib/trinosql/trinoSqlParserVisitor.ts
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										17
									
								
								src/parser/trinosql.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/parser/trinosql.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import { CharStream, CommonTokenStream, Lexer } from 'antlr4'; | ||||||
|  | import trinoSqlLexer from '../lib/trinosql/trinoSqlParserLexer'; | ||||||
|  | import trinoSqlParser from '../lib/trinosql/trinoSqlParserParser'; | ||||||
|  | import BasicParser from './common/basicParser'; | ||||||
|  | export default class trinoSQL extends BasicParser { | ||||||
|  |     public createLexer(input: string): trinoSqlLexer { | ||||||
|  |         const chars = new CharStream(input.toUpperCase()); // Some Lexer only support uppercase token, So you need transform | ||||||
|  |         const lexer = new trinoSqlLexer(chars); | ||||||
|  |         return lexer; | ||||||
|  |     } | ||||||
|  |     public createParserFromLexer(lexer: Lexer): trinoSqlParser { | ||||||
|  |         const tokens = new CommonTokenStream(lexer); | ||||||
|  |         const parser = new trinoSqlParser(tokens); | ||||||
|  |         return parser; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								test/parser/trinosql/lexer.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								test/parser/trinosql/lexer.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | import trinoSQL from '../../../src/parser/trinosql'; | ||||||
|  |  | ||||||
|  | describe('trinoSQL Lexer tests', () => { | ||||||
|  |     const parser = new trinoSQL(); | ||||||
|  |  | ||||||
|  |     const sql = 'SELECT * FROM table1'; | ||||||
|  |     const tokens = parser.getAllTokens(sql); | ||||||
|  |  | ||||||
|  |     test('token counts', () => { | ||||||
|  |         expect(tokens.length - 1).toBe(7); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
							
								
								
									
										29
									
								
								test/parser/trinosql/listener.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								test/parser/trinosql/listener.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | |||||||
|  | import trinoSQL from '../../../src/parser/trinosql'; | ||||||
|  | import trinoSqlParserListener from '../../../src/lib/trinosql/trinoSqlParserListener'; | ||||||
|  | import { TableExpressionContext } from '../../../src/lib/trinosql/trinoSqlParser'; | ||||||
|  |  | ||||||
|  | describe('trino SQL Listener Tests', () => { | ||||||
|  |     const expectTableName = 'user1'; | ||||||
|  |     const sql = `select id,name,sex from ${expectTableName};`; | ||||||
|  |     const parser = new trinoSQL(); | ||||||
|  |  | ||||||
|  |     const parserTree = parser.parse(sql); | ||||||
|  |  | ||||||
|  |     test('Listener enterTableName', async () => { | ||||||
|  |         let result = ''; | ||||||
|  |         class MyListener extends trinoSqlParserListener { | ||||||
|  |  | ||||||
|  |             constructor() { | ||||||
|  |                 super() | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             enterTableExpression = (ctx: TableExpressionContext): void => { | ||||||
|  |                 result = ctx.getText().toLowerCase(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         const listenTableName = new MyListener(); | ||||||
|  |  | ||||||
|  |         await parser.listen(listenTableName, parserTree); | ||||||
|  |         expect(result).toBe(expectTableName); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
							
								
								
									
										34
									
								
								test/parser/trinosql/syntax/alterStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								test/parser/trinosql/syntax/alterStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     table: readSQL(__dirname, 'alter_table.sql'), | ||||||
|  |     view: readSQL(__dirname, 'alter_view.sql'), | ||||||
|  |     schema: readSQL(__dirname, 'alter_schema.sql'), | ||||||
|  |     materializedView: readSQL(__dirname, 'alter_materialized_view.sql') | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Alter Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     features.table.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  |     features.view.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |     features.schema.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |    features.materializedView.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								test/parser/trinosql/syntax/analyzeStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								test/parser/trinosql/syntax/analyzeStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     analyze: readSQL(__dirname, 'analyze.sql'), | ||||||
|  |  | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Analyze Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // analyze statements | ||||||
|  |     features.analyze.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								test/parser/trinosql/syntax/callStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								test/parser/trinosql/syntax/callStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     call: readSQL(__dirname, 'call.sql'), | ||||||
|  |  | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Call Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // call statements | ||||||
|  |     features.call.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								test/parser/trinosql/syntax/commentStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								test/parser/trinosql/syntax/commentStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     comment: readSQL(__dirname, 'comment.sql'), | ||||||
|  |  | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Comment Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // Comment statements | ||||||
|  |     features.comment.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								test/parser/trinosql/syntax/commitStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								test/parser/trinosql/syntax/commitStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     commit: readSQL(__dirname, 'commit.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Commit Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // commit statements | ||||||
|  |     features.commit.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										48
									
								
								test/parser/trinosql/syntax/createStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								test/parser/trinosql/syntax/createStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     table: readSQL(__dirname, 'create_table.sql'), | ||||||
|  |     view: readSQL(__dirname, 'create_view.sql'), | ||||||
|  |     schema: readSQL(__dirname, 'create_schema.sql'), | ||||||
|  |     role: readSQL(__dirname, 'create_role.sql'), | ||||||
|  |     tableAsSelect: readSQL(__dirname, 'create_table_as_select.sql'), | ||||||
|  |     materializedView: readSQL(__dirname, 'create_materialized_view.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Create Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |    features.table.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  |     features.view.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |     features.schema.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |  | ||||||
|  |     features.tableAsSelect.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |     features.role.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |     features.materializedView.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });  | ||||||
|  |  | ||||||
|  | }); | ||||||
|  |  | ||||||
| @ -0,0 +1,17 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     deallocatePrepare: readSQL(__dirname, 'deallocate_prepare.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL deallocatePrepare Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // deallocate_prepare statements | ||||||
|  |     features.deallocatePrepare.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								test/parser/trinosql/syntax/deleteStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								test/parser/trinosql/syntax/deleteStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     delete: readSQL(__dirname, 'delete.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Delete Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // delete statements | ||||||
|  |     features.delete.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								test/parser/trinosql/syntax/denyStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								test/parser/trinosql/syntax/denyStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     deny: readSQL(__dirname, 'deny.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Deny Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // deny statements | ||||||
|  |     features.deny.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								test/parser/trinosql/syntax/describeStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								test/parser/trinosql/syntax/describeStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     describe: readSQL(__dirname, 'describe.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Describe Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // describe statements | ||||||
|  |     features.describe.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										48
									
								
								test/parser/trinosql/syntax/dropStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								test/parser/trinosql/syntax/dropStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     table: readSQL(__dirname, 'drop_table.sql'), | ||||||
|  |     view: readSQL(__dirname, 'drop_view.sql'), | ||||||
|  |     schema: readSQL(__dirname, 'drop_schema.sql'), | ||||||
|  |     role: readSQL(__dirname, 'drop_role.sql'), | ||||||
|  |     column: readSQL(__dirname, 'drop_column.sql'), | ||||||
|  |     materializedView: readSQL(__dirname, 'drop_materialized_view.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Drop Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |    features.table.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  |     features.view.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |     features.schema.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |  | ||||||
|  |     features.column.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |     features.role.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });   | ||||||
|  |     features.materializedView.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     });  | ||||||
|  |  | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								test/parser/trinosql/syntax/executeStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								test/parser/trinosql/syntax/executeStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     execute: readSQL(__dirname, 'execute.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Execute Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // execute statements | ||||||
|  |     features.execute.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								test/parser/trinosql/syntax/explainStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								test/parser/trinosql/syntax/explainStatement.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import TrinoSQL from "../../../../src/parser/trinosql"; | ||||||
|  | import { readSQL } from "../../../helper"; | ||||||
|  |  | ||||||
|  | const features = { | ||||||
|  |     explain: readSQL(__dirname, 'explain.sql'), | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | describe('TrinoSQL Explain Statements Syntax Tests', () => { | ||||||
|  |     const parser = new TrinoSQL(); | ||||||
|  |     // explain statements | ||||||
|  |     features.explain.forEach((sql) => { | ||||||
|  |         it(sql, () => { | ||||||
|  |             expect(parser.validate(sql).length).toBe(0); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
|  |  | ||||||
| @ -0,0 +1,5 @@ | |||||||
|  | ALTER MATERIALIZED VIEW people RENAME TO users; | ||||||
|  | ALTER MATERIALIZED VIEW IF EXISTS people RENAME TO users; | ||||||
|  | ALTER MATERIALIZED VIEW people SET PROPERTIES x = 'y'; | ||||||
|  | ALTER MATERIALIZED VIEW people SET PROPERTIES foo = 123, bar = 456; | ||||||
|  | ALTER MATERIALIZED VIEW people SET PROPERTIES x = DEFAULT; | ||||||
							
								
								
									
										7
									
								
								test/parser/trinosql/syntax/fixtures/alter_schema.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								test/parser/trinosql/syntax/fixtures/alter_schema.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | ALTER SCHEMA foo RENAME TO bar; | ||||||
|  | ALTER SCHEMA foo.bar RENAME TO baz; | ||||||
|  | ALTER SCHEMA "awesome schema"."awesome table" RENAME TO "even more awesome table"; | ||||||
|  |  | ||||||
|  | ALTER SCHEMA web SET AUTHORIZATION alice; | ||||||
|  | ALTER SCHEMA web SET AUTHORIZATION ROLE alice; | ||||||
|  | ALTER SCHEMA web SET AUTHORIZATION USER alice; | ||||||
							
								
								
									
										15
									
								
								test/parser/trinosql/syntax/fixtures/alter_table.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								test/parser/trinosql/syntax/fixtures/alter_table.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | ALTER TABLE users RENAME TO people; | ||||||
|  | ALTER TABLE IF EXISTS users RENAME TO people; | ||||||
|  | ALTER TABLE users ADD COLUMN zip varchar; | ||||||
|  | ALTER TABLE IF EXISTS users ADD COLUMN IF NOT EXISTS zip varchar; | ||||||
|  | ALTER TABLE users DROP COLUMN zip; | ||||||
|  | ALTER TABLE IF EXISTS users DROP COLUMN IF EXISTS zip; | ||||||
|  | ALTER TABLE users RENAME COLUMN id TO user_id; | ||||||
|  | ALTER TABLE IF EXISTS users RENAME column IF EXISTS id to user_id; | ||||||
|  | ALTER TABLE people SET AUTHORIZATION alice; | ||||||
|  | ALTER TABLE people SET AUTHORIZATION ROLE PUBLIC; | ||||||
|  | ALTER TABLE people SET PROPERTIES x = 'y'; | ||||||
|  | ALTER TABLE people SET PROPERTIES foo = 123, "foo bar" = 456; | ||||||
|  | ALTER TABLE people SET PROPERTIES x = DEFAULT; | ||||||
|  | ALTER TABLE hive.schema.test_table EXECUTE optimize(file_size_threshold => '10MB'); | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/alter_view.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/alter_view.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | ALTER VIEW people RENAME TO users; | ||||||
|  | ALTER VIEW people SET AUTHORIZATION alice; | ||||||
|  | ALTER VIEW people SET AUTHORIZATION USER alice; | ||||||
|  | ALTER VIEW people SET AUTHORIZATION ROLE alice; | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/analyze.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/analyze.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | ANALYZE foo; | ||||||
|  | ANALYZE foo WITH ( "string" = 'bar', "long" = 42, computed = concat('ban', 'ana'), a = ARRAY[ 'v1', 'v2' ] ); | ||||||
|  | EXPLAIN ANALYZE foo; | ||||||
|  | EXPLAIN ANALYZE ANALYZE foo; | ||||||
							
								
								
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/call.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/call.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | CALL foo(); | ||||||
|  | CALL foo(123, a => 1, b => 'go', 456); | ||||||
|  | CALL catalog.schema.test(); | ||||||
							
								
								
									
										7
									
								
								test/parser/trinosql/syntax/fixtures/comment.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								test/parser/trinosql/syntax/fixtures/comment.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | COMMENT ON TABLE users IS 'master table'; | ||||||
|  |  | ||||||
|  | COMMENT ON COLUMN users.name IS 'full name'; | ||||||
|  |  | ||||||
|  | SHOW COMMENT ON COLUMN column1; | ||||||
|  |  | ||||||
|  | SHOW COMMENT ON TABLE table1; | ||||||
							
								
								
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/commit.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/commit.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | COMMIT; | ||||||
|  | COMMIT WORK; | ||||||
| @ -0,0 +1,5 @@ | |||||||
|  | CREATE MATERIALIZED VIEW a AS SELECT * FROM t; | ||||||
|  | CREATE OR REPLACE MATERIALIZED VIEW catalog.schema.matview COMMENT 'A simple materialized view' AS SELECT * FROM catalog2.schema2.tab; | ||||||
|  | CREATE OR REPLACE MATERIALIZED VIEW catalog.schema.matview COMMENT 'A simple materialized view' AS SELECT * FROM catalog2.schema2.tab; | ||||||
|  | CREATE OR REPLACE MATERIALIZED VIEW catalog.schema.matview COMMENT 'A simple materialized view'WITH (partitioned_by = ARRAY ['dateint']) AS SELECT * FROM catalog2.schema2.tab; | ||||||
|  | CREATE OR REPLACE MATERIALIZED VIEW catalog.schema.matview COMMENT 'A partitioned materialized view' WITH (partitioned_by = ARRAY ['dateint']) AS WITH a (t, u) AS (SELECT * FROM x), b AS (SELECT * FROM a) TABLE b; | ||||||
							
								
								
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/create_role.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/create_role.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | CREATE ROLE role; | ||||||
|  | CREATE ROLE role1 WITH ADMIN admin; | ||||||
|  | CREATE ROLE "role" WITH ADMIN "admin"; | ||||||
|  | CREATE ROLE "ro le" WITH ADMIN "ad min"; | ||||||
|  | CREATE ROLE "!@#$%^&*'" WITH ADMIN "ад""мін"; | ||||||
|  | CREATE ROLE role2 WITH ADMIN USER admin1; | ||||||
|  | CREATE ROLE role2 WITH ADMIN ROLE role1; | ||||||
|  | CREATE ROLE role2 WITH ADMIN CURRENT_USER; | ||||||
|  | CREATE ROLE role2 WITH ADMIN CURRENT_ROLE; | ||||||
|  | CREATE ROLE role WITH ADMIN CURRENT_ROLE IN my_catalog; | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/create_schema.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/create_schema.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | CREATE SCHEMA test; | ||||||
|  | CREATE SCHEMA IF NOT EXISTS test; | ||||||
|  | CREATE SCHEMA test WITH (a = 'apple', b = 123); | ||||||
|  | CREATE SCHEMA "some name that contains space"; | ||||||
							
								
								
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/create_table.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/create_table.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS bar (LIKE like_table); | ||||||
|  | CREATE TABLE IF NOT EXISTS bar (LIKE like_table INCLUDING PROPERTIES); | ||||||
| @ -0,0 +1,19 @@ | |||||||
|  | CREATE TABLE foo AS SELECT * FROM t; | ||||||
|  | CREATE TABLE foo(x) AS SELECT a FROM t; | ||||||
|  | CREATE TABLE foo(x,y) AS SELECT a,b FROM t; | ||||||
|  | CREATE TABLE IF NOT EXISTS foo AS SELECT * FROM t; | ||||||
|  | CREATE TABLE IF NOT EXISTS foo(x) AS SELECT a FROM t; | ||||||
|  | CREATE TABLE IF NOT EXISTS foo(x,y) AS SELECT a,b FROM t; | ||||||
|  | CREATE TABLE foo AS SELECT * FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo(x) AS SELECT a FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo(x,y) AS SELECT a,b FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT * FROM t; | ||||||
|  | CREATE TABLE foo(x) WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT a FROM t; | ||||||
|  | CREATE TABLE foo(x,y) WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT a,b FROM t; | ||||||
|  | CREATE TABLE foo WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT * FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo(x) WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT a FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo(x,y) WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT a,b FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo COMMENT 'test'WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT * FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo(x) COMMENT 'test'WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT a FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo(x,y) COMMENT 'test'WITH ( string = 'bar', long = 42, computed = 'ban' || 'ana', a  = ARRAY[ 'v1', 'v2' ] ) AS SELECT a,b FROM t WITH NO DATA; | ||||||
|  | CREATE TABLE foo(x,y) COMMENT 'test'WITH ( "string" = 'bar', "long" = 42, computed = 'ban' || 'ana', a = ARRAY[ 'v1', 'v2' ] ) AS SELECT a,b FROM t WITH NO DATA; | ||||||
							
								
								
									
										11
									
								
								test/parser/trinosql/syntax/fixtures/create_view.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								test/parser/trinosql/syntax/fixtures/create_view.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | CREATE VIEW a AS SELECT * FROM t; | ||||||
|  | CREATE OR REPLACE VIEW a AS SELECT * FROM t; | ||||||
|  | CREATE VIEW a SECURITY DEFINER AS SELECT * FROM t; | ||||||
|  | CREATE VIEW a SECURITY INVOKER AS SELECT * FROM t; | ||||||
|  | CREATE VIEW a COMMENT 'comment' SECURITY DEFINER AS SELECT * FROM t; | ||||||
|  | CREATE VIEW a COMMENT '' SECURITY INVOKER AS SELECT * FROM t; | ||||||
|  | CREATE VIEW a COMMENT 'comment' AS SELECT * FROM t; | ||||||
|  | CREATE VIEW a COMMENT '' AS SELECT * FROM t; | ||||||
|  | CREATE VIEW bar.foo AS SELECT * FROM t; | ||||||
|  | CREATE VIEW "awesome view" AS SELECT * FROM t; | ||||||
|  | CREATE VIEW "awesome schema"."awesome view" AS SELECT * FROM t; | ||||||
| @ -0,0 +1 @@ | |||||||
|  | DEALLOCATE PREPARE my_query; | ||||||
							
								
								
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/delete.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/delete.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | DELETE FROM t; | ||||||
|  | DELETE FROM "awesome table"; | ||||||
|  | DELETE FROM t WHERE a = b; | ||||||
|  | DELETE FROM lineitem | ||||||
|  | WHERE orderkey IN (SELECT orderkey FROM orders WHERE priority = 'LOW'); | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/deny.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/deny.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | DENY INSERT, DELETE ON t TO u; | ||||||
|  | DENY UPDATE ON t TO u; | ||||||
|  | DENY ALL PRIVILEGES ON TABLE t TO USER u; | ||||||
|  | DENY SELECT ON SCHEMA s TO USER u; | ||||||
							
								
								
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/describe.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/describe.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | -- DESCRIBE INPUT | ||||||
|  | DESCRIBE INPUT myquery; | ||||||
|  | -- DESCRIBE OUTPUT | ||||||
|  | DESCRIBE OUTPUT myquery; | ||||||
|  | -- DESCRIBLE  table_name | ||||||
|  | DESCRIBE table_name; | ||||||
							
								
								
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/drop_column.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/drop_column.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | ALTER TABLE foo.t DROP COLUMN c; | ||||||
|  | ALTER TABLE "t x" DROP COLUMN "c d"; | ||||||
|  | ALTER TABLE IF EXISTS foo.t DROP COLUMN c; | ||||||
|  | ALTER TABLE foo.t DROP COLUMN IF EXISTS c; | ||||||
|  | ALTER TABLE IF EXISTS foo.t DROP COLUMN IF EXISTS c; | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | DROP MATERIALIZED VIEW a; | ||||||
|  | DROP MATERIALIZED VIEW a.b; | ||||||
|  | DROP MATERIALIZED VIEW a.b.c; | ||||||
|  | DROP MATERIALIZED VIEW IF EXISTS a; | ||||||
|  | DROP MATERIALIZED VIEW IF EXISTS a.b; | ||||||
|  | DROP MATERIALIZED VIEW IF EXISTS a.b.c; | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/drop_role.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/drop_role.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | DROP ROLE role; | ||||||
|  | DROP ROLE "role"; | ||||||
|  | DROP ROLE "ro le"; | ||||||
|  | DROP ROLE "!@#$%^&*'ад""мін"; | ||||||
							
								
								
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/drop_schema.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/drop_schema.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | DROP SCHEMA test; | ||||||
|  | DROP SCHEMA test CASCADE; | ||||||
|  | DROP SCHEMA IF EXISTS test; | ||||||
|  | DROP SCHEMA IF EXISTS test RESTRICT; | ||||||
|  | DROP SCHEMA "some schema that contains space"; | ||||||
							
								
								
									
										8
									
								
								test/parser/trinosql/syntax/fixtures/drop_table.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								test/parser/trinosql/syntax/fixtures/drop_table.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | |||||||
|  | DROP TABLE a; | ||||||
|  | DROP TABLE a.b; | ||||||
|  | DROP TABLE a.b.c; | ||||||
|  | DROP TABLE a."b/y".c; | ||||||
|  | DROP TABLE IF EXISTS a; | ||||||
|  | DROP TABLE IF EXISTS a.b; | ||||||
|  | DROP TABLE IF EXISTS a.b.c; | ||||||
|  | DROP TABLE IF EXISTS a."b/y".c; | ||||||
							
								
								
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/drop_view.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/drop_view.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | DROP VIEW a; | ||||||
|  | DROP VIEW a.b; | ||||||
|  | DROP VIEW a.b.c; | ||||||
|  | DROP VIEW IF EXISTS a; | ||||||
|  | DROP VIEW IF EXISTS a.b; | ||||||
|  | DROP VIEW IF EXISTS a.b.c; | ||||||
							
								
								
									
										11
									
								
								test/parser/trinosql/syntax/fixtures/execute.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								test/parser/trinosql/syntax/fixtures/execute.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | PREPARE my_select1 FROM | ||||||
|  | SELECT name FROM nation; | ||||||
|  |  | ||||||
|  | EXECUTE my_select1; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | -- execute with using | ||||||
|  | PREPARE my_select2 FROM | ||||||
|  | SELECT name FROM nation WHERE regionkey = ? and nationkey < ?; | ||||||
|  |  | ||||||
|  | EXECUTE my_select2 USING 1, 3; | ||||||
							
								
								
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/explain.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/explain.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | EXPLAIN SELECT * FROM t; | ||||||
|  | EXPLAIN (TYPE LOGICAL) SELECT * FROM t; | ||||||
|  | EXPLAIN (TYPE LOGICAL, FORMAT TEXT) SELECT * FROM t; | ||||||
|  | -- EXPLAIN ANALYZE | ||||||
|  | EXPLAIN ANALYZE SELECT * FROM t; | ||||||
|  | EXPLAIN ANALYZE VERBOSE SELECT * FROM t; | ||||||
							
								
								
									
										15
									
								
								test/parser/trinosql/syntax/fixtures/grant.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								test/parser/trinosql/syntax/fixtures/grant.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | GRANT INSERT, DELETE ON t TO u; | ||||||
|  | GRANT UPDATE ON t TO u; | ||||||
|  | GRANT SELECT ON t TO ROLE PUBLIC WITH GRANT OPTION; | ||||||
|  | GRANT ALL PRIVILEGES ON TABLE t TO USER u; | ||||||
|  | GRANT DELETE ON "t" TO ROLE "public" WITH GRANT OPTION; | ||||||
|  | GRANT SELECT ON SCHEMA s TO USER u; | ||||||
|  | -- GRANT role | ||||||
|  | GRANT role1 TO user1; | ||||||
|  | GRANT role1, role2, role3 TO user1, USER user2, ROLE role4 WITH ADMIN OPTION; | ||||||
|  | GRANT role1 TO user1 WITH ADMIN OPTION GRANTED BY admin; | ||||||
|  | GRANT role1 TO USER user1 WITH ADMIN OPTION GRANTED BY USER admin; | ||||||
|  | GRANT role1 TO ROLE role2 WITH ADMIN OPTION GRANTED BY ROLE admin; | ||||||
|  | GRANT role1 TO ROLE role2 GRANTED BY ROLE admin; | ||||||
|  | GRANT "role1" TO ROLE "role2" GRANTED BY ROLE "admin"; | ||||||
|  | GRANT role1 TO user1 IN my_catalog; | ||||||
							
								
								
									
										1
									
								
								test/parser/trinosql/syntax/fixtures/implicit_join.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/parser/trinosql/syntax/fixtures/implicit_join.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | SELECT * FROM a, b; | ||||||
							
								
								
									
										12
									
								
								test/parser/trinosql/syntax/fixtures/insert_into.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								test/parser/trinosql/syntax/fixtures/insert_into.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | INSERT INTO orders | ||||||
|  | SELECT * FROM new_orders; | ||||||
|  |  | ||||||
|  | INSERT INTO cities VALUES (1, 'San Francisco'); | ||||||
|  |  | ||||||
|  | INSERT INTO cities VALUES (2, 'San Jose'), (3, 'Oakland'); | ||||||
|  |  | ||||||
|  | INSERT INTO nation (nationkey, name, regionkey, comment) | ||||||
|  | VALUES (26, 'POLAND', 3, 'no comment'); | ||||||
|  |  | ||||||
|  | INSERT INTO nation (nationkey, name, regionkey) | ||||||
|  | VALUES (26, 'POLAND', 3); | ||||||
							
								
								
									
										16
									
								
								test/parser/trinosql/syntax/fixtures/match_recognize.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								test/parser/trinosql/syntax/fixtures/match_recognize.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | SELECT * FROM orders MATCH_RECOGNIZE( | ||||||
|  |      PARTITION BY custkey | ||||||
|  |      ORDER BY orderdate | ||||||
|  |      MEASURES | ||||||
|  |               A.totalprice AS starting_price, | ||||||
|  |               LAST(B.totalprice) AS bottom_price, | ||||||
|  |               LAST(U.totalprice) AS top_price | ||||||
|  |      ONE ROW PER MATCH | ||||||
|  |      AFTER MATCH SKIP PAST LAST ROW | ||||||
|  |      PATTERN (A B+ C+ D+) | ||||||
|  |      SUBSET U = (C, D) | ||||||
|  |      DEFINE | ||||||
|  |               B AS totalprice < PREV(totalprice), | ||||||
|  |               C AS totalprice > PREV(totalprice) AND totalprice <= A.totalprice, | ||||||
|  |               D AS totalprice > PREV(totalprice) | ||||||
|  |      ); | ||||||
							
								
								
									
										1
									
								
								test/parser/trinosql/syntax/fixtures/merge.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/parser/trinosql/syntax/fixtures/merge.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | MERGE INTO inventory AS i   USING changes AS c   ON i.part = c.part WHEN MATCHED AND c.action = 'mod'   THEN UPDATE SET     qty = qty + c.qty   , ts = CURRENT_TIMESTAMP WHEN MATCHED AND c.action = 'del'   THEN DELETE WHEN NOT MATCHED AND c.action = 'new'   THEN INSERT (part, qty) VALUES (c.part, c.qty); | ||||||
							
								
								
									
										9
									
								
								test/parser/trinosql/syntax/fixtures/prepare.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								test/parser/trinosql/syntax/fixtures/prepare.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | PREPARE myquery FROM select * from foo; | ||||||
|  | PREPARE myquery FROM SELECT ?, ? FROM foo; | ||||||
|  | PREPARE myquery FROM SELECT * FROM foo LIMIT ?; | ||||||
|  | PREPARE myquery FROM SELECT ?, ? FROM foo LIMIT ?; | ||||||
|  | PREPARE myquery FROM SELECT ? FROM foo FETCH FIRST ? ROWS ONLY; | ||||||
|  | PREPARE myquery FROM SELECT ?, ? FROM foo FETCH NEXT ? ROWS WITH TIES; | ||||||
|  | PREPARE myquery FROM SELECT ?, ? FROM foo OFFSET ? ROWS; | ||||||
|  | PREPARE myquery FROM SELECT ? FROM foo OFFSET ? ROWS LIMIT ?; | ||||||
|  | PREPARE myquery FROM SELECT ? FROM foo OFFSET ? ROWS FETCH FIRST ? ROWS WITH TIES; | ||||||
| @ -0,0 +1,2 @@ | |||||||
|  | REFRESH MATERIALIZED VIEW test; | ||||||
|  | REFRESH MATERIALIZED VIEW "some name that contains space"; | ||||||
							
								
								
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/reset_session.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/reset_session.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | RESET SESSION foo.bar; | ||||||
|  | RESET SESSION foo; | ||||||
							
								
								
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/revoke.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/revoke.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | REVOKE INSERT, DELETE ON t FROM u; | ||||||
|  | REVOKE UPDATE ON t FROM u; | ||||||
|  | REVOKE GRANT OPTION FOR SELECT ON t FROM ROLE PUBLIC; | ||||||
|  | REVOKE ALL PRIVILEGES ON TABLE t FROM USER u; | ||||||
|  | REVOKE DELETE ON TABLE "t" FROM "u"; | ||||||
|  | REVOKE SELECT ON SCHEMA s FROM USER u; | ||||||
							
								
								
									
										7
									
								
								test/parser/trinosql/syntax/fixtures/revoke_roles.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								test/parser/trinosql/syntax/fixtures/revoke_roles.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | REVOKE role1 FROM user1; | ||||||
|  | REVOKE ADMIN OPTION FOR role1, role2, role3 FROM user1, USER user2, ROLE role4; | ||||||
|  | REVOKE ADMIN OPTION FOR role1 FROM user1 GRANTED BY admin; | ||||||
|  | REVOKE ADMIN OPTION FOR role1 FROM USER user1 GRANTED BY USER admin; | ||||||
|  | REVOKE role1 FROM ROLE role2 GRANTED BY ROLE admin; | ||||||
|  | REVOKE "role1" FROM ROLE "role2" GRANTED BY ROLE "admin"; | ||||||
|  | REVOKE role1 FROM user1 IN my_catalog; | ||||||
| @ -0,0 +1,2 @@ | |||||||
|  | ROLLBACK; | ||||||
|  | ROLLBACK WORK; | ||||||
							
								
								
									
										117
									
								
								test/parser/trinosql/syntax/fixtures/select.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								test/parser/trinosql/syntax/fixtures/select.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,117 @@ | |||||||
|  | -- DOUBLE IN Query | ||||||
|  | SELECT 123.456E7 FROM DUAL; | ||||||
|  | -- GROUP BY  | ||||||
|  | SELECT * FROM table1 GROUP BY a; | ||||||
|  | SELECT * FROM table1 GROUP BY a, b; | ||||||
|  | SELECT * FROM table1 GROUP BY (); | ||||||
|  | -- GROUP BY GROUPING SETS | ||||||
|  | SELECT * FROM table1 GROUP BY GROUPING SETS (a); | ||||||
|  | SELECT a, b, GROUPING(a, b) FROM table1 GROUP BY GROUPING SETS ((a), (b)); | ||||||
|  | -- GROUP BY ROLLUP | ||||||
|  | SELECT * FROM table1 GROUP BY ALL GROUPING SETS ((a, b), (a), ()), CUBE (c), ROLLUP (d); | ||||||
|  | SELECT * FROM table1 GROUP BY DISTINCT GROUPING SETS ((a, b), (a), ()), CUBE (c), ROLLUP (d); | ||||||
|  | -- GROUP BY CUBE | ||||||
|  | SELECT origin_state, destination_state, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY CUBE (origin_state, destination_state); | ||||||
|  | -- GROUP BY Combining multiple grouping expressions | ||||||
|  | SELECT origin_state, destination_state, origin_zip, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY | ||||||
|  |     GROUPING SETS ((origin_state, destination_state)), | ||||||
|  |     ROLLUP (origin_zip); | ||||||
|  |  | ||||||
|  | SELECT origin_state, destination_state, origin_zip, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY GROUPING SETS ( | ||||||
|  |     (origin_state, destination_state, origin_zip), | ||||||
|  |     (origin_state, destination_state) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | SELECT origin_state, destination_state, origin_zip, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY | ||||||
|  |     GROUPING SETS ((origin_state, destination_state)), | ||||||
|  |     GROUPING SETS ((origin_zip), ()); | ||||||
|  | -- GROUP BY ALL and DISTINCT quantifiers  | ||||||
|  | SELECT origin_state, destination_state, origin_zip, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY ALL | ||||||
|  |     CUBE (origin_state, destination_state), | ||||||
|  |     ROLLUP (origin_state, origin_zip); | ||||||
|  |  | ||||||
|  | SELECT origin_state, destination_state, origin_zip, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY GROUPING SETS ( | ||||||
|  |     (origin_state, destination_state, origin_zip), | ||||||
|  |     (origin_state, origin_zip), | ||||||
|  |     (origin_state, destination_state, origin_zip), | ||||||
|  |     (origin_state, origin_zip), | ||||||
|  |     (origin_state, destination_state), | ||||||
|  |     (origin_state), | ||||||
|  |     (origin_state, destination_state), | ||||||
|  |     (origin_state), | ||||||
|  |     (origin_state, destination_state), | ||||||
|  |     (origin_state), | ||||||
|  |     (destination_state), | ||||||
|  |     () | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | SELECT origin_state, destination_state, origin_zip, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY DISTINCT | ||||||
|  |     CUBE (origin_state, destination_state), | ||||||
|  |     ROLLUP (origin_state, origin_zip); | ||||||
|  |  | ||||||
|  | SELECT origin_state, destination_state, origin_zip, sum(package_weight) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY GROUPING SETS ( | ||||||
|  |     (origin_state, destination_state, origin_zip), | ||||||
|  |     (origin_state, origin_zip), | ||||||
|  |     (origin_state, destination_state), | ||||||
|  |     (origin_state), | ||||||
|  |     (destination_state), | ||||||
|  |     () | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | -- GROUP BY GROUPING operation | ||||||
|  | SELECT origin_state, origin_zip, destination_state, sum(package_weight), | ||||||
|  |        grouping(origin_state, origin_zip, destination_state) | ||||||
|  | FROM shipping | ||||||
|  | GROUP BY GROUPING SETS ( | ||||||
|  |     (origin_state), | ||||||
|  |     (origin_state, origin_zip), | ||||||
|  |     (destination_state) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | -- ORDER BY  | ||||||
|  | SELECT * FROM table1 ORDER BY a; | ||||||
|  | -- Select expressions | ||||||
|  | SELECT (CAST(ROW(1, true) AS ROW(field1 bigint, field2 boolean))).* AS (alias1, alias2); | ||||||
|  | SELECT (CAST(ROW(1, true) AS ROW(field1 bigint, field2 boolean))).*; | ||||||
|  | SELECT (ROW(1, true)).*; | ||||||
|  | -- LIMIT | ||||||
|  | SELECT * FROM table1 LIMIT 2; | ||||||
|  | SELECT * FROM table1 LIMIT ALL; | ||||||
|  | SELECT * FROM (VALUES (1, '1'), (2, '2')) LIMIT ALL; | ||||||
|  | -- HAVING | ||||||
|  | SELECT count(*), mktsegment, nationkey, | ||||||
|  |        CAST(sum(acctbal) AS bigint) AS totalbal | ||||||
|  | FROM customer | ||||||
|  | GROUP BY mktsegment, nationkey | ||||||
|  | HAVING sum(acctbal) > 5700000 | ||||||
|  | ORDER BY totalbal DESC; | ||||||
|  | -- WINDOW | ||||||
|  | SELECT orderkey, clerk, totalprice, | ||||||
|  |       rank() OVER w AS rnk | ||||||
|  | FROM orders | ||||||
|  | WINDOW w AS (PARTITION BY clerk ORDER BY totalprice DESC) | ||||||
|  | ORDER BY count() OVER w, clerk, rnk | ||||||
|  | -- AGGREGATION FILTER/ ORDER BY | ||||||
|  | SELECT SUM(x) FILTER (WHERE x > 4); | ||||||
|  | SELECT array_agg(x ORDER BY t.y) FROM t; | ||||||
|  | -- INTERSECT | ||||||
|  | SELECT 123 INTERSECT DISTINCT SELECT 123 INTERSECT ALL SELECT 123; | ||||||
|  | -- substring_built_in_function | ||||||
|  | SELECT substring('string' FROM 2); | ||||||
|  | SELECT substring('string' FROM 2 FOR 3); | ||||||
							
								
								
									
										56
									
								
								test/parser/trinosql/syntax/fixtures/select_with_ unnest.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								test/parser/trinosql/syntax/fixtures/select_with_ unnest.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | |||||||
|  | SELECT * FROM UNNEST(ARRAY[1,2]) AS t(number); | ||||||
|  |  | ||||||
|  | SELECT * FROM UNNEST( | ||||||
|  |         map_from_entries( | ||||||
|  |             ARRAY[ | ||||||
|  |                 ('SQL',1974), | ||||||
|  |                 ('Java', 1995) | ||||||
|  |             ] | ||||||
|  |         ) | ||||||
|  | ) AS t(language, first_appeared_year); | ||||||
|  |  | ||||||
|  | SELECT * | ||||||
|  | FROM UNNEST( | ||||||
|  |         ARRAY[ | ||||||
|  |             ROW('Java',  1995), | ||||||
|  |             ROW('SQL' , 1974)], | ||||||
|  |         ARRAY[ | ||||||
|  |             ROW(false), | ||||||
|  |             ROW(true)] | ||||||
|  | ) as t(language,first_appeared_year,declarative); | ||||||
|  |  | ||||||
|  | SELECT a, b, rownumber | ||||||
|  | FROM UNNEST ( | ||||||
|  |     ARRAY[2, 5], | ||||||
|  |     ARRAY[7, 8, 9] | ||||||
|  |      ) WITH ORDINALITY AS t(a, b, rownumber); | ||||||
|  |  | ||||||
|  | SELECT * FROM UNNEST (ARRAY[]) AS t(value); | ||||||
|  |  | ||||||
|  | SELECT * FROM UNNEST (CAST(null AS ARRAY(integer))) AS t(number); | ||||||
|  |  | ||||||
|  | SELECT student, score | ||||||
|  | FROM ( | ||||||
|  |    VALUES | ||||||
|  |       ('John', ARRAY[7, 10, 9]), | ||||||
|  |       ('Mary', ARRAY[4, 8, 9]) | ||||||
|  | ) AS tests (student, scores) | ||||||
|  | CROSS JOIN UNNEST(scores) AS t(score); | ||||||
|  |  | ||||||
|  | SELECT numbers, animals, n, a | ||||||
|  | FROM ( | ||||||
|  |   VALUES | ||||||
|  |     (ARRAY[2, 5], ARRAY['dog', 'cat', 'bird']), | ||||||
|  |     (ARRAY[7, 8, 9], ARRAY['cow', 'pig']) | ||||||
|  | ) AS x (numbers, animals) | ||||||
|  | CROSS JOIN UNNEST(numbers, animals) AS t (n, a); | ||||||
|  |  | ||||||
|  | SELECT runner, checkpoint | ||||||
|  | FROM ( | ||||||
|  |    VALUES | ||||||
|  |       ('Joe', ARRAY[10, 20, 30, 42]), | ||||||
|  |       ('Roger', ARRAY[10]), | ||||||
|  |       ('Dave', ARRAY[]), | ||||||
|  |       ('Levi', NULL) | ||||||
|  | ) AS marathon (runner, checkpoints) | ||||||
|  | LEFT JOIN UNNEST(checkpoints) AS t(checkpoint) ON TRUE; | ||||||
							
								
								
									
										28
									
								
								test/parser/trinosql/syntax/fixtures/select_with_clause.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								test/parser/trinosql/syntax/fixtures/select_with_clause.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | SELECT a, b | ||||||
|  | FROM ( | ||||||
|  |   SELECT a, MAX(b) AS b FROM t GROUP BY a | ||||||
|  | ) AS x; | ||||||
|  |  | ||||||
|  | WITH x AS (SELECT a, MAX(b) AS b FROM t GROUP BY a) | ||||||
|  | SELECT a, b FROM x; | ||||||
|  |  | ||||||
|  | WITH | ||||||
|  |   t1 AS (SELECT a, MAX(b) AS b FROM x GROUP BY a), | ||||||
|  |   t2 AS (SELECT a, AVG(d) AS d FROM y GROUP BY a) | ||||||
|  | SELECT t1.*, t2.* | ||||||
|  | FROM t1 | ||||||
|  | JOIN t2 ON t1.a = t2.a; | ||||||
|  |  | ||||||
|  | WITH | ||||||
|  |   x AS (SELECT a FROM t), | ||||||
|  |   y AS (SELECT a AS b FROM x), | ||||||
|  |   z AS (SELECT b AS c FROM y) | ||||||
|  | SELECT c FROM z; | ||||||
|  |  | ||||||
|  | WITH RECURSIVE t(n) AS ( | ||||||
|  |     VALUES (1) | ||||||
|  |     UNION ALL | ||||||
|  |     SELECT n + 1 FROM t WHERE n < 4 | ||||||
|  | ) | ||||||
|  | SELECT sum(n) FROM t; | ||||||
|  |  | ||||||
| @ -0,0 +1,4 @@ | |||||||
|  | SELECT EXISTS(SELECT 1); | ||||||
|  | SELECT EXISTS(SELECT 1) = EXISTS(SELECT 2); | ||||||
|  | SELECT NOT EXISTS(SELECT 1) = EXISTS(SELECT 2); | ||||||
|  | SELECT (NOT EXISTS(SELECT 1)) = EXISTS(SELECT 2); | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | SELECT * FROM table1 FETCH FIRST 2 ROWS ONLY; | ||||||
|  | SELECT * FROM table1 FETCH NEXT ROW ONLY; | ||||||
|  | SELECT * FROM (VALUES (1, '1'), (2, '2')) FETCH FIRST ROW ONLY; | ||||||
|  | SELECT * FROM (VALUES (1, '1'), (2, '2')) FETCH FIRST ROW WITH TIES; | ||||||
|  | SELECT * FROM table1 FETCH FIRST 2 ROWS WITH TIES; | ||||||
|  | SELECT * FROM table1 FETCH NEXT ROW WITH TIES; | ||||||
							
								
								
									
										23
									
								
								test/parser/trinosql/syntax/fixtures/select_with_join.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								test/parser/trinosql/syntax/fixtures/select_with_join.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | SELECT * FROM users CROSS JOIN UNNEST(friends) WITH ordinality; | ||||||
|  | -- LATERAL | ||||||
|  | SELECT name, x, y | ||||||
|  | FROM nation | ||||||
|  | CROSS JOIN LATERAL (SELECT name || ' :-' AS x) | ||||||
|  | CROSS JOIN LATERAL (SELECT x || ')' AS y); | ||||||
|  |  | ||||||
|  | -- Qualifying column names# | ||||||
|  |  | ||||||
|  | SELECT nation.name, region.name | ||||||
|  | FROM nation | ||||||
|  | CROSS JOIN region; | ||||||
|  |  | ||||||
|  | SELECT n.name, r.name | ||||||
|  | FROM nation AS n | ||||||
|  | CROSS JOIN region AS r; | ||||||
|  |  | ||||||
|  | SELECT n.name, r.name | ||||||
|  | FROM nation n | ||||||
|  | CROSS JOIN region r; | ||||||
|  |  | ||||||
|  | SELECT * FROM a CROSS JOIN b LEFT JOIN c ON true; | ||||||
|  | SELECT * FROM a CROSS JOIN b NATURAL JOIN c CROSS JOIN d NATURAL JOIN e; | ||||||
| @ -0,0 +1,4 @@ | |||||||
|  | SELECT * FROM table1 OFFSET 2 ROWS; | ||||||
|  | SELECT * FROM table1 OFFSET 2; | ||||||
|  | SELECT * FROM (VALUES (1, '1'), (2, '2')) OFFSET 2 ROWS; | ||||||
|  | SELECT * FROM (VALUES (1, '1'), (2, '2')) OFFSET 2; | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | SELECT col1.f1, col2, col3.f1.f2.f3 FROM table1; | ||||||
|  | SELECT col1.f1[0], col2, col3[2].f2.f3, col4[4] FROM table1; | ||||||
|  | SELECT CAST(ROW(11, 12) AS ROW(COL0 INTEGER, COL1 INTEGER)).col0; | ||||||
|  | -- ALL COLUMNS | ||||||
|  | SELECT ROW (1, 'a', true).*; | ||||||
|  | SELECT ROW (1, 'a', true).* AS (f1, f2, f3); | ||||||
| @ -0,0 +1,16 @@ | |||||||
|  | -- UNION | ||||||
|  | SELECT 13 | ||||||
|  | UNION | ||||||
|  | SELECT 42; | ||||||
|  |  | ||||||
|  | SELECT 13 | ||||||
|  | UNION | ||||||
|  | SELECT * FROM (VALUES 42, 13); | ||||||
|  | -- INTERSECT | ||||||
|  | SELECT * FROM (VALUES 13, 42) | ||||||
|  | INTERSECT | ||||||
|  | SELECT 13; | ||||||
|  | --EXCEPT | ||||||
|  | SELECT * FROM (VALUES 13, 42) | ||||||
|  | EXCEPT | ||||||
|  | SELECT 13; | ||||||
| @ -0,0 +1,20 @@ | |||||||
|  | -- EXISTS | ||||||
|  | SELECT name | ||||||
|  | FROM nation | ||||||
|  | WHERE EXISTS ( | ||||||
|  |      SELECT * | ||||||
|  |      FROM region | ||||||
|  |      WHERE region.regionkey = nation.regionkey | ||||||
|  | ); | ||||||
|  | -- IN | ||||||
|  | SELECT name | ||||||
|  | FROM nation | ||||||
|  | WHERE regionkey IN ( | ||||||
|  |      SELECT regionkey | ||||||
|  |      FROM region | ||||||
|  |      WHERE name = 'AMERICA' OR name = 'AFRICA' | ||||||
|  | ); | ||||||
|  | -- Scalar subquery | ||||||
|  | SELECT name | ||||||
|  | FROM nation | ||||||
|  | WHERE regionkey = (SELECT max(regionkey) FROM region); | ||||||
| @ -0,0 +1,10 @@ | |||||||
|  | SELECT * | ||||||
|  | FROM users TABLESAMPLE BERNOULLI (50); | ||||||
|  |  | ||||||
|  | SELECT * | ||||||
|  | FROM users TABLESAMPLE SYSTEM (75); | ||||||
|  |  | ||||||
|  | SELECT o.*, i.* | ||||||
|  | FROM orders o TABLESAMPLE SYSTEM (10) | ||||||
|  | JOIN lineitem i TABLESAMPLE BERNOULLI (40) | ||||||
|  |   ON o.orderkey = i.orderkey; | ||||||
| @ -0,0 +1,2 @@ | |||||||
|  | SELECT 123 UNION DISTINCT | ||||||
|  | SELECT 123 UNION ALL SELECT 123; | ||||||
							
								
								
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/set_path.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/set_path.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | SET PATH iLikeToEat.apples, andBananas; | ||||||
|  | SET PATH "schemas,with"."grammar.in", "their!names"; | ||||||
							
								
								
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/set_role.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/set_role.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | SET ROLE ALL; | ||||||
|  | SET ROLE NONE; | ||||||
|  | SET ROLE role; | ||||||
|  | SET ROLE "role"; | ||||||
|  | SET ROLE role IN my_catalog; | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/set_session.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/set_session.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | SET SESSION foo = 'bar'; | ||||||
|  | SET SESSION foo.bar = 'baz'; | ||||||
|  | SET SESSION foo.bar.boo = 'baz'; | ||||||
|  | SET SESSION foo.bar = 'ban' || 'ana'; | ||||||
							
								
								
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/set_time_zone.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/set_time_zone.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | SET TIME ZONE LOCAL; | ||||||
|  |  | ||||||
|  | SET TIME ZONE '-08:00'; | ||||||
|  |  | ||||||
|  | SET TIME ZONE INTERVAL '10' HOUR; | ||||||
|  | SET TIME ZONE INTERVAL -'08:00' HOUR TO MINUTE; | ||||||
|  |  | ||||||
|  | SET TIME ZONE 'America/Los_Angeles'; | ||||||
|  |  | ||||||
|  | SET TIME ZONE concat_ws('/', 'America', 'Los_Angeles'); | ||||||
							
								
								
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_catalogs.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_catalogs.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | SHOW CATALOGS; | ||||||
|  | SHOW CATALOGS LIKE '%'; | ||||||
|  | SHOW CATALOGS LIKE '%$_%' ESCAPE '$'; | ||||||
							
								
								
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/show_columns.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								test/parser/trinosql/syntax/fixtures/show_columns.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | SHOW COLUMNS FROM a; | ||||||
|  | SHOW COLUMNS FROM a.b; | ||||||
|  | SHOW COLUMNS FROM "awesome table"; | ||||||
|  | SHOW COLUMNS FROM "awesome schema"."awesome table"; | ||||||
|  | SHOW COLUMNS FROM a.b LIKE '%$_%' ESCAPE '$'; | ||||||
							
								
								
									
										16
									
								
								test/parser/trinosql/syntax/fixtures/show_create.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								test/parser/trinosql/syntax/fixtures/show_create.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | SHOW CREATE TABLE sf1.orders; | ||||||
|  |  | ||||||
|  | SHOW CREATE SCHEMA IF NOT EXISTS traffic; | ||||||
|  |  | ||||||
|  | SHOW CREATE VIEW test AS | ||||||
|  | SELECT orderkey, orderstatus, totalprice / 2 AS half | ||||||
|  | FROM orders; | ||||||
|  |  | ||||||
|  | SHOW CREATE MATERIALIZED VIEW cancelled_orders | ||||||
|  | AS | ||||||
|  |     SELECT orderkey, totalprice | ||||||
|  |     FROM orders | ||||||
|  |     WHERE orderstatus = 3; | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_functions.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_functions.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | SHOW FUNCTIONS; | ||||||
|  | SHOW FUNCTIONS LIKE '%'; | ||||||
|  | SHOW FUNCTIONS LIKE '%' ESCAPE '$'; | ||||||
							
								
								
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_grants.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_grants.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | SHOW GRANTS ON TABLE t; | ||||||
|  | SHOW GRANTS ON t; | ||||||
|  | SHOW GRANTS; | ||||||
| @ -0,0 +1,2 @@ | |||||||
|  | SHOW ROLE GRANTS; | ||||||
|  | SHOW ROLE GRANTS FROM catalog; | ||||||
							
								
								
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/show_roles.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/parser/trinosql/syntax/fixtures/show_roles.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | SHOW ROLES; | ||||||
|  | SHOW ROLES FROM foo; | ||||||
|  | SHOW ROLES IN foo; | ||||||
|  | SHOW CURRENT ROLES; | ||||||
|  | SHOW CURRENT ROLES FROM foo; | ||||||
|  | SHOW CURRENT ROLES IN foo; | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/show_schemas.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/show_schemas.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | SHOW SCHEMAS; | ||||||
|  | SHOW SCHEMAS FROM foo; | ||||||
|  | SHOW SCHEMAS IN foo LIKE '%'; | ||||||
|  | SHOW SCHEMAS IN foo LIKE '%$_%' ESCAPE '$'; | ||||||
							
								
								
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_session.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/show_session.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | SHOW SESSION; | ||||||
|  | SHOW SESSION LIKE '%'; | ||||||
|  | SHOW SESSION LIKE '%' ESCAPE '$'; | ||||||
							
								
								
									
										1
									
								
								test/parser/trinosql/syntax/fixtures/show_stats.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/parser/trinosql/syntax/fixtures/show_stats.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | SHOW STATS FOR a; | ||||||
| @ -0,0 +1,3 @@ | |||||||
|  | SHOW STATS FOR (SELECT * FROM a); | ||||||
|  | SHOW STATS FOR (SELECT * FROM a WHERE field > 0); | ||||||
|  | SHOW STATS FOR (SELECT * FROM a WHERE field > 0 or field < 0); | ||||||
							
								
								
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/show_tables.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/parser/trinosql/syntax/fixtures/show_tables.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | SHOW TABLES; | ||||||
|  | SHOW TABLES FROM a; | ||||||
|  | SHOW TABLES FROM "awesome schema"; | ||||||
|  | SHOW TABLES IN a LIKE '%$_%' ESCAPE '$'; | ||||||
							
								
								
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/start_transaction.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/start_transaction.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | START TRANSACTION; | ||||||
|  | START TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; | ||||||
|  | START TRANSACTION ISOLATION LEVEL READ COMMITTED; | ||||||
|  | START TRANSACTION ISOLATION LEVEL REPEATABLE READ; | ||||||
|  | START TRANSACTION ISOLATION LEVEL SERIALIZABLE; | ||||||
|  | START TRANSACTION READ ONLY; | ||||||
|  | START TRANSACTION READ WRITE; | ||||||
|  | START TRANSACTION ISOLATION LEVEL READ COMMITTED, READ ONLY; | ||||||
|  | START TRANSACTION READ ONLY, ISOLATION LEVEL READ COMMITTED; | ||||||
|  | START TRANSACTION READ WRITE, ISOLATION LEVEL SERIALIZABLE; | ||||||
| @ -0,0 +1,2 @@ | |||||||
|  | SELECT substring('string' FROM 2); | ||||||
|  | SELECT substring('string' FROM 2 FOR 3); | ||||||
							
								
								
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/truncate_table.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								test/parser/trinosql/syntax/fixtures/truncate_table.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | TRUNCATE TABLE a; | ||||||
|  | TRUNCATE TABLE a.b; | ||||||
|  | TRUNCATE TABLE a.b.c; | ||||||
							
								
								
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/update.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								test/parser/trinosql/syntax/fixtures/update.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | UPDATE foo_tablen  SET bar = 23, baz = 3.1415E0, bletch = 'barf' WHERE (nothing = 'fun'); | ||||||
|  |  | ||||||
|  | UPDATE new_hires SET manager = ( | ||||||
|  |     SELECT | ||||||
|  |       e.name | ||||||
|  |     FROM | ||||||
|  |       employees e | ||||||
|  |     WHERE | ||||||
|  |       e.employee_id = new_hires.manager_id | ||||||
|  | ); | ||||||
							
								
								
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/use.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/use.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | USE hive.finance; | ||||||
|  | USE information_schema; | ||||||
							
								
								
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/values.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/parser/trinosql/syntax/fixtures/values.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | VALUES ('a', 1, 2.2e0), ('b', 2, 3.3e0); | ||||||
|  | SELECT * FROM (VALUES ('a', 1, 2.2e0), ('b', 2, 3.3e0)); | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | SELECT cust_key, value OVER w, label OVER w | ||||||
|  |     FROM orders | ||||||
|  |     WINDOW w AS ( | ||||||
|  |                  PARTITION BY cust_key | ||||||
|  |                  ORDER BY order_date | ||||||
|  |                  MEASURES | ||||||
|  |                         RUNNING LAST(total_price) AS value, | ||||||
|  |                         CLASSIFIER() AS label | ||||||
|  |                  ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING | ||||||
|  |                  PATTERN (A B+ C+) | ||||||
|  |                  DEFINE | ||||||
|  |                         B AS B.value < PREV (B.value), | ||||||
|  |                         C AS C.value > PREV (C.value) | ||||||
|  |                 ); | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user