1 %name PerfettoSqlParser 2 %token_prefix TK_ 3 %start_symbol input 4 5 %include { 6 #include <stddef.h> 7 8 #define YYNOERRORRECOVERY 1 9 } 10 11 %token CREATE REPLACE PERFETTO MACRO INCLUDE MODULE RETURNS FUNCTION. 12 13 %left OR. 14 %left AND. 15 %right NOT. 16 %left IS MATCH LIKE_KW BETWEEN IN ISNULL NOTNULL NE EQ. 17 %left GT LE LT GE. 18 %right ESCAPE. 19 %left BITAND BITOR LSHIFT RSHIFT. 20 %left PLUS MINUS. 21 %left STAR SLASH REM. 22 %left CONCAT PTR. 23 %left COLLATE. 24 %right BITNOT. 25 %nonassoc ON. 26 27 %fallback ID 28 ABORT ACTION AFTER ANALYZE ASC ATTACH BEFORE BEGIN BY CASCADE CAST COLUMNKW 29 CONFLICT DATABASE DEFERRED DESC DETACH DO 30 EACH END EXCLUSIVE EXPLAIN FAIL FOR 31 IGNORE IMMEDIATE INITIALLY INSTEAD LIKE_KW MATCH NO PLAN 32 QUERY KEY OF OFFSET PRAGMA RAISE RECURSIVE RELEASE REPLACE RESTRICT ROW ROWS 33 ROLLBACK SAVEPOINT TEMP TRIGGER VACUUM VIEW VIRTUAL WITH WITHOUT 34 NULLS FIRST LAST 35 EXCEPT INTERSECT UNION 36 CURRENT FOLLOWING PARTITION PRECEDING RANGE UNBOUNDED 37 EXCLUDE GROUPS OTHERS TIES 38 WITHIN 39 GENERATED ALWAYS 40 MATERIALIZED 41 REINDEX RENAME CTIME_KW IF 42 . 43 %wildcard ANY. 44 45 // Reprint of input file "buildtools/sqlite_src/src/parse.y". 46 // Symbols: 47 // 0 $ 160 ELSE 48 // 1 SEMI 161 INDEX 49 // 2 EXPLAIN 162 ALTER 50 // 3 QUERY 163 ADD 51 // 4 PLAN 164 WINDOW 52 // 5 BEGIN 165 OVER 53 // 6 TRANSACTION 166 FILTER 54 // 7 DEFERRED 167 COLUMN 55 // 8 IMMEDIATE 168 AGG_FUNCTION 56 // 9 EXCLUSIVE 169 AGG_COLUMN 57 // 10 COMMIT 170 TRUEFALSE 58 // 11 END 171 ISNOT 59 // 12 ROLLBACK 172 FUNCTION 60 // 13 SAVEPOINT 173 UMINUS 61 // 14 RELEASE 174 UPLUS 62 // 15 TO 175 TRUTH 63 // 16 TABLE 176 REGISTER 64 // 17 CREATE 177 VECTOR 65 // 18 IF 178 SELECT_COLUMN 66 // 19 NOT 179 IF_NULL_ROW 67 // 20 EXISTS 180 ASTERISK 68 // 21 TEMP 181 SPAN 69 // 22 LP 182 ERROR 70 // 23 RP 183 SPACE 71 // 24 AS 184 ILLEGAL 72 // 25 COMMA 185 input 73 // 26 WITHOUT 186 cmdlist 74 // 27 ABORT 187 ecmd 75 // 28 ACTION 188 cmdx 76 // 29 AFTER 189 explain 77 // 30 ANALYZE 190 cmd 78 // 31 ASC 191 transtype 79 // 32 ATTACH 192 trans_opt 80 // 33 BEFORE 193 nm 81 // 34 BY 194 savepoint_opt 82 // 35 CASCADE 195 create_table 83 // 36 CAST 196 create_table_args 84 // 37 CONFLICT 197 createkw 85 // 38 DATABASE 198 temp 86 // 39 DESC 199 ifnotexists 87 // 40 DETACH 200 dbnm 88 // 41 EACH 201 columnlist 89 // 42 FAIL 202 conslist_opt 90 // 43 OR 203 table_option_set 91 // 44 AND 204 select 92 // 45 IS 205 table_option 93 // 46 MATCH 206 columnname 94 // 47 LIKE_KW 207 carglist 95 // 48 BETWEEN 208 typetoken 96 // 49 IN 209 typename 97 // 50 ISNULL 210 signed 98 // 51 NOTNULL 211 plus_num 99 // 52 NE 212 minus_num 100 // 53 EQ 213 scanpt 101 // 54 GT 214 scantok 102 // 55 LE 215 ccons 103 // 56 LT 216 term 104 // 57 GE 217 expr 105 // 58 ESCAPE 218 onconf 106 // 59 ID 219 sortorder 107 // 60 COLUMNKW 220 autoinc 108 // 61 DO 221 eidlist_opt 109 // 62 FOR 222 refargs 110 // 63 IGNORE 223 defer_subclause 111 // 64 INITIALLY 224 generated 112 // 65 INSTEAD 225 refarg 113 // 66 NO 226 refact 114 // 67 KEY 227 init_deferred_pred_opt 115 // 68 OF 228 conslist 116 // 69 OFFSET 229 tconscomma 117 // 70 PRAGMA 230 tcons 118 // 71 RAISE 231 sortlist 119 // 72 RECURSIVE 232 eidlist 120 // 73 REPLACE 233 defer_subclause_opt 121 // 74 RESTRICT 234 orconf 122 // 75 ROW 235 resolvetype 123 // 76 ROWS 236 raisetype 124 // 77 TRIGGER 237 ifexists 125 // 78 VACUUM 238 fullname 126 // 79 VIEW 239 selectnowith 127 // 80 VIRTUAL 240 oneselect 128 // 81 WITH 241 wqlist 129 // 82 NULLS 242 multiselect_op 130 // 83 FIRST 243 distinct 131 // 84 LAST 244 selcollist 132 // 85 CURRENT 245 from 133 // 86 FOLLOWING 246 where_opt 134 // 87 PARTITION 247 groupby_opt 135 // 88 PRECEDING 248 having_opt 136 // 89 RANGE 249 orderby_opt 137 // 90 UNBOUNDED 250 limit_opt 138 // 91 EXCLUDE 251 window_clause 139 // 92 GROUPS 252 values 140 // 93 OTHERS 253 nexprlist 141 // 94 TIES 254 sclp 142 // 95 GENERATED 255 as 143 // 96 ALWAYS 256 seltablist 144 // 97 MATERIALIZED 257 stl_prefix 145 // 98 REINDEX 258 joinop 146 // 99 RENAME 259 on_using 147 // 100 CTIME_KW 260 indexed_by 148 // 101 ANY 261 exprlist 149 // 102 BITAND 262 xfullname 150 // 103 BITOR 263 idlist 151 // 104 LSHIFT 264 indexed_opt 152 // 105 RSHIFT 265 nulls 153 // 106 PLUS 266 with 154 // 107 MINUS 267 where_opt_ret 155 // 108 STAR 268 setlist 156 // 109 SLASH 269 insert_cmd 157 // 110 REM 270 idlist_opt 158 // 111 CONCAT 271 upsert 159 // 112 PTR 272 returning 160 // 113 COLLATE 273 filter_over 161 // 114 BITNOT 274 likeop 162 // 115 ON 275 between_op 163 // 116 INDEXED 276 in_op 164 // 117 STRING 277 paren_exprlist 165 // 118 JOIN_KW 278 case_operand 166 // 119 CONSTRAINT 279 case_exprlist 167 // 120 DEFAULT 280 case_else 168 // 121 NULL 281 uniqueflag 169 // 122 PRIMARY 282 collate 170 // 123 UNIQUE 283 vinto 171 // 124 CHECK 284 nmnum 172 // 125 REFERENCES 285 trigger_decl 173 // 126 AUTOINCR 286 trigger_cmd_list 174 // 127 INSERT 287 trigger_time 175 // 128 DELETE 288 trigger_event 176 // 129 UPDATE 289 foreach_clause 177 // 130 SET 290 when_clause 178 // 131 DEFERRABLE 291 trigger_cmd 179 // 132 FOREIGN 292 trnm 180 // 133 DROP 293 tridxby 181 // 134 UNION 294 database_kw_opt 182 // 135 ALL 295 key_opt 183 // 136 EXCEPT 296 add_column_fullname 184 // 137 INTERSECT 297 kwcolumn_opt 185 // 138 SELECT 298 create_vtab 186 // 139 VALUES 299 vtabarglist 187 // 140 DISTINCT 300 vtabarg 188 // 141 DOT 301 vtabargtoken 189 // 142 FROM 302 lp 190 // 143 JOIN 303 anylist 191 // 144 USING 304 wqitem 192 // 145 ORDER 305 wqas 193 // 146 GROUP 306 windowdefn_list 194 // 147 HAVING 307 windowdefn 195 // 148 LIMIT 308 window 196 // 149 WHERE 309 frame_opt 197 // 150 RETURNING 310 part_opt 198 // 151 INTO 311 filter_clause 199 // 152 NOTHING 312 over_clause 200 // 153 FLOAT 313 range_or_rows 201 // 154 BLOB 314 frame_bound 202 // 155 INTEGER 315 frame_bound_s 203 // 156 VARIABLE 316 frame_bound_e 204 // 157 CASE 317 frame_exclude_opt 205 // 158 WHEN 318 frame_exclude 206 // 159 THEN 207 explain ::= EXPLAIN. 208 explain ::= EXPLAIN QUERY PLAN. 209 cmdx ::= cmd. 210 cmd ::= BEGIN transtype trans_opt. 211 transtype ::=. 212 transtype ::= DEFERRED. 213 transtype ::= IMMEDIATE. 214 transtype ::= EXCLUSIVE. 215 cmd ::= COMMIT|END trans_opt. 216 cmd ::= ROLLBACK trans_opt. 217 cmd ::= SAVEPOINT nm. 218 cmd ::= RELEASE savepoint_opt nm. 219 cmd ::= ROLLBACK trans_opt TO savepoint_opt nm. 220 create_table ::= createkw temp TABLE ifnotexists nm dbnm. 221 createkw ::= CREATE. 222 ifnotexists ::=. 223 ifnotexists ::= IF NOT EXISTS. 224 temp ::= TEMP. 225 temp ::=. 226 create_table_args ::= LP columnlist conslist_opt RP table_option_set. 227 create_table_args ::= AS select. 228 table_option_set ::=. 229 table_option_set ::= table_option_set COMMA table_option. 230 table_option ::= WITHOUT nm. 231 table_option ::= nm. 232 columnname ::= nm typetoken. 233 typetoken ::=. 234 typetoken ::= typename LP signed RP. 235 typetoken ::= typename LP signed COMMA signed RP. 236 typename ::= typename ID|STRING. 237 scanpt ::=. 238 scantok ::=. 239 ccons ::= CONSTRAINT nm. 240 ccons ::= DEFAULT scantok term. 241 ccons ::= DEFAULT LP expr RP. 242 ccons ::= DEFAULT PLUS scantok term. 243 ccons ::= DEFAULT MINUS scantok term. 244 ccons ::= DEFAULT scantok ID|INDEXED. 245 ccons ::= NOT NULL onconf. 246 ccons ::= PRIMARY KEY sortorder onconf autoinc. 247 ccons ::= UNIQUE onconf. 248 ccons ::= CHECK LP expr RP. 249 ccons ::= REFERENCES nm eidlist_opt refargs. 250 ccons ::= defer_subclause. 251 ccons ::= COLLATE ID|STRING. 252 generated ::= LP expr RP. 253 generated ::= LP expr RP ID. 254 autoinc ::=. 255 autoinc ::= AUTOINCR. 256 refargs ::=. 257 refargs ::= refargs refarg. 258 refarg ::= MATCH nm. 259 refarg ::= ON INSERT refact. 260 refarg ::= ON DELETE refact. 261 refarg ::= ON UPDATE refact. 262 refact ::= SET NULL. 263 refact ::= SET DEFAULT. 264 refact ::= CASCADE. 265 refact ::= RESTRICT. 266 refact ::= NO ACTION. 267 defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt. 268 defer_subclause ::= DEFERRABLE init_deferred_pred_opt. 269 init_deferred_pred_opt ::=. 270 init_deferred_pred_opt ::= INITIALLY DEFERRED. 271 init_deferred_pred_opt ::= INITIALLY IMMEDIATE. 272 conslist_opt ::=. 273 tconscomma ::= COMMA. 274 tcons ::= CONSTRAINT nm. 275 tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf. 276 tcons ::= UNIQUE LP sortlist RP onconf. 277 tcons ::= CHECK LP expr RP onconf. 278 tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt. 279 defer_subclause_opt ::=. 280 onconf ::=. 281 onconf ::= ON CONFLICT resolvetype. 282 orconf ::=. 283 orconf ::= OR resolvetype. 284 resolvetype ::= IGNORE. 285 resolvetype ::= REPLACE. 286 cmd ::= DROP TABLE ifexists fullname. 287 ifexists ::= IF EXISTS. 288 ifexists ::=. 289 cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select. 290 cmd ::= DROP VIEW ifexists fullname. 291 cmd ::= select. 292 select ::= WITH wqlist selectnowith. 293 select ::= WITH RECURSIVE wqlist selectnowith. 294 select ::= selectnowith. 295 selectnowith ::= selectnowith multiselect_op oneselect. 296 multiselect_op ::= UNION. 297 multiselect_op ::= UNION ALL. 298 multiselect_op ::= EXCEPT|INTERSECT. 299 oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt. 300 oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt. 301 values ::= VALUES LP nexprlist RP. 302 values ::= values COMMA LP nexprlist RP. 303 distinct ::= DISTINCT. 304 distinct ::= ALL. 305 distinct ::=. 306 sclp ::=. 307 selcollist ::= sclp scanpt expr scanpt as. 308 selcollist ::= sclp scanpt STAR. 309 selcollist ::= sclp scanpt nm DOT STAR. 310 as ::= AS nm. 311 as ::=. 312 from ::=. 313 from ::= FROM seltablist. 314 stl_prefix ::= seltablist joinop. 315 stl_prefix ::=. 316 seltablist ::= stl_prefix nm dbnm as on_using. 317 seltablist ::= stl_prefix nm dbnm as indexed_by on_using. 318 seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using. 319 seltablist ::= stl_prefix LP select RP as on_using. 320 seltablist ::= stl_prefix LP seltablist RP as on_using. 321 dbnm ::=. 322 dbnm ::= DOT nm. 323 fullname ::= nm. 324 fullname ::= nm DOT nm. 325 xfullname ::= nm. 326 xfullname ::= nm DOT nm. 327 xfullname ::= nm DOT nm AS nm. 328 xfullname ::= nm AS nm. 329 joinop ::= COMMA|JOIN. 330 joinop ::= JOIN_KW JOIN. 331 joinop ::= JOIN_KW nm JOIN. 332 joinop ::= JOIN_KW nm nm JOIN. 333 on_using ::= ON expr. 334 on_using ::= USING LP idlist RP. 335 on_using ::=. [OR] 336 indexed_opt ::=. 337 indexed_by ::= INDEXED BY nm. 338 indexed_by ::= NOT INDEXED. 339 orderby_opt ::=. 340 orderby_opt ::= ORDER BY sortlist. 341 sortlist ::= sortlist COMMA expr sortorder nulls. 342 sortlist ::= expr sortorder nulls. 343 sortorder ::= ASC. 344 sortorder ::= DESC. 345 sortorder ::=. 346 nulls ::= NULLS FIRST. 347 nulls ::= NULLS LAST. 348 nulls ::=. 349 groupby_opt ::=. 350 groupby_opt ::= GROUP BY nexprlist. 351 having_opt ::=. 352 having_opt ::= HAVING expr. 353 limit_opt ::=. 354 limit_opt ::= LIMIT expr. 355 limit_opt ::= LIMIT expr OFFSET expr. 356 limit_opt ::= LIMIT expr COMMA expr. 357 cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret. 358 where_opt ::=. 359 where_opt ::= WHERE expr. 360 where_opt_ret ::=. 361 where_opt_ret ::= WHERE expr. 362 where_opt_ret ::= RETURNING selcollist. 363 where_opt_ret ::= WHERE expr RETURNING selcollist. 364 cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret. 365 setlist ::= setlist COMMA nm EQ expr. 366 setlist ::= setlist COMMA LP idlist RP EQ expr. 367 setlist ::= nm EQ expr. 368 setlist ::= LP idlist RP EQ expr. 369 cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert. 370 cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning. 371 upsert ::=. 372 upsert ::= RETURNING selcollist. 373 upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert. 374 upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert. 375 upsert ::= ON CONFLICT DO NOTHING returning. 376 upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning. 377 returning ::= RETURNING selcollist. 378 insert_cmd ::= INSERT orconf. 379 insert_cmd ::= REPLACE. 380 idlist_opt ::=. 381 idlist_opt ::= LP idlist RP. 382 idlist ::= idlist COMMA nm. 383 idlist ::= nm. 384 expr ::= LP expr RP. 385 expr ::= ID|INDEXED|JOIN_KW. 386 expr ::= nm DOT nm. 387 expr ::= nm DOT nm DOT nm. 388 term ::= NULL|FLOAT|BLOB. 389 term ::= STRING. 390 term ::= INTEGER. 391 expr ::= VARIABLE. 392 expr ::= expr COLLATE ID|STRING. 393 expr ::= CAST LP expr AS typetoken RP. 394 expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP. 395 expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP. 396 expr ::= ID|INDEXED|JOIN_KW LP STAR RP. 397 expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over. 398 expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over. 399 expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over. 400 term ::= CTIME_KW. 401 expr ::= LP nexprlist COMMA expr RP. 402 expr ::= expr AND expr. 403 expr ::= expr OR expr. 404 expr ::= expr LT|GT|GE|LE expr. 405 expr ::= expr EQ|NE expr. 406 expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr. 407 expr ::= expr PLUS|MINUS expr. 408 expr ::= expr STAR|SLASH|REM expr. 409 expr ::= expr CONCAT expr. 410 likeop ::= NOT LIKE_KW|MATCH. 411 expr ::= expr likeop expr. [LIKE_KW] 412 expr ::= expr likeop expr ESCAPE expr. [LIKE_KW] 413 expr ::= expr ISNULL|NOTNULL. 414 expr ::= expr NOT NULL. 415 expr ::= expr IS expr. 416 expr ::= expr IS NOT expr. 417 expr ::= expr IS NOT DISTINCT FROM expr. 418 expr ::= expr IS DISTINCT FROM expr. 419 expr ::= NOT expr. 420 expr ::= BITNOT expr. 421 expr ::= PLUS|MINUS expr. [BITNOT] 422 expr ::= expr PTR expr. 423 between_op ::= BETWEEN. 424 between_op ::= NOT BETWEEN. 425 expr ::= expr between_op expr AND expr. [BETWEEN] 426 in_op ::= IN. 427 in_op ::= NOT IN. 428 expr ::= expr in_op LP exprlist RP. [IN] 429 expr ::= LP select RP. 430 expr ::= expr in_op LP select RP. [IN] 431 expr ::= expr in_op nm dbnm paren_exprlist. [IN] 432 expr ::= EXISTS LP select RP. 433 expr ::= CASE case_operand case_exprlist case_else END. 434 case_exprlist ::= case_exprlist WHEN expr THEN expr. 435 case_exprlist ::= WHEN expr THEN expr. 436 case_else ::= ELSE expr. 437 case_else ::=. 438 case_operand ::=. 439 exprlist ::=. 440 nexprlist ::= nexprlist COMMA expr. 441 nexprlist ::= expr. 442 paren_exprlist ::=. 443 paren_exprlist ::= LP exprlist RP. 444 cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt. 445 uniqueflag ::= UNIQUE. 446 uniqueflag ::=. 447 eidlist_opt ::=. 448 eidlist_opt ::= LP eidlist RP. 449 eidlist ::= eidlist COMMA nm collate sortorder. 450 eidlist ::= nm collate sortorder. 451 collate ::=. 452 collate ::= COLLATE ID|STRING. 453 cmd ::= DROP INDEX ifexists fullname. 454 cmd ::= VACUUM vinto. 455 cmd ::= VACUUM nm vinto. 456 vinto ::= INTO expr. 457 vinto ::=. 458 cmd ::= PRAGMA nm dbnm. 459 cmd ::= PRAGMA nm dbnm EQ nmnum. 460 cmd ::= PRAGMA nm dbnm LP nmnum RP. 461 cmd ::= PRAGMA nm dbnm EQ minus_num. 462 cmd ::= PRAGMA nm dbnm LP minus_num RP. 463 plus_num ::= PLUS INTEGER|FLOAT. 464 minus_num ::= MINUS INTEGER|FLOAT. 465 cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END. 466 trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause. 467 trigger_time ::= BEFORE|AFTER. 468 trigger_time ::= INSTEAD OF. 469 trigger_time ::=. 470 trigger_event ::= DELETE|INSERT. 471 trigger_event ::= UPDATE. 472 trigger_event ::= UPDATE OF idlist. 473 when_clause ::=. 474 when_clause ::= WHEN expr. 475 trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI. 476 trigger_cmd_list ::= trigger_cmd SEMI. 477 trnm ::= nm DOT nm. 478 tridxby ::= INDEXED BY nm. 479 tridxby ::= NOT INDEXED. 480 trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt. 481 trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt. 482 trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt. 483 trigger_cmd ::= scanpt select scanpt. 484 expr ::= RAISE LP IGNORE RP. 485 expr ::= RAISE LP raisetype COMMA nm RP. 486 raisetype ::= ROLLBACK. 487 raisetype ::= ABORT. 488 raisetype ::= FAIL. 489 cmd ::= DROP TRIGGER ifexists fullname. 490 cmd ::= ATTACH database_kw_opt expr AS expr key_opt. 491 cmd ::= DETACH database_kw_opt expr. 492 key_opt ::=. 493 key_opt ::= KEY expr. 494 cmd ::= REINDEX. 495 cmd ::= REINDEX nm dbnm. 496 cmd ::= ANALYZE. 497 cmd ::= ANALYZE nm dbnm. 498 cmd ::= ALTER TABLE fullname RENAME TO nm. 499 cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist. 500 cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm. 501 add_column_fullname ::= fullname. 502 cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm. 503 cmd ::= create_vtab. 504 cmd ::= create_vtab LP vtabarglist RP. 505 create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm. 506 vtabarg ::=. 507 vtabargtoken ::= ANY. 508 vtabargtoken ::= lp anylist RP. 509 lp ::= LP. 510 with ::= WITH wqlist. 511 with ::= WITH RECURSIVE wqlist. 512 wqas ::= AS. 513 wqas ::= AS MATERIALIZED. 514 wqas ::= AS NOT MATERIALIZED. 515 wqitem ::= nm eidlist_opt wqas LP select RP. 516 wqlist ::= wqitem. 517 wqlist ::= wqlist COMMA wqitem. 518 windowdefn_list ::= windowdefn_list COMMA windowdefn. 519 windowdefn ::= nm AS LP window RP. 520 window ::= PARTITION BY nexprlist orderby_opt frame_opt. 521 window ::= nm PARTITION BY nexprlist orderby_opt frame_opt. 522 window ::= ORDER BY sortlist frame_opt. 523 window ::= nm ORDER BY sortlist frame_opt. 524 window ::= nm frame_opt. 525 frame_opt ::=. 526 frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt. 527 frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt. 528 range_or_rows ::= RANGE|ROWS|GROUPS. 529 frame_bound_s ::= frame_bound. 530 frame_bound_s ::= UNBOUNDED PRECEDING. 531 frame_bound_e ::= frame_bound. 532 frame_bound_e ::= UNBOUNDED FOLLOWING. 533 frame_bound ::= expr PRECEDING|FOLLOWING. 534 frame_bound ::= CURRENT ROW. 535 frame_exclude_opt ::=. 536 frame_exclude_opt ::= EXCLUDE frame_exclude. 537 frame_exclude ::= NO OTHERS. 538 frame_exclude ::= CURRENT ROW. 539 frame_exclude ::= GROUP|TIES. 540 window_clause ::= WINDOW windowdefn_list. 541 filter_over ::= filter_clause over_clause. 542 filter_over ::= over_clause. 543 filter_over ::= filter_clause. 544 over_clause ::= OVER LP window RP. 545 over_clause ::= OVER nm. 546 filter_clause ::= FILTER LP WHERE expr RP. 547 input ::= cmdlist. 548 cmdlist ::= cmdlist ecmd. 549 cmdlist ::= ecmd. 550 ecmd ::= SEMI. 551 ecmd ::= cmdx SEMI. 552 ecmd ::= explain cmdx SEMI. 553 trans_opt ::=. 554 trans_opt ::= TRANSACTION. 555 trans_opt ::= TRANSACTION nm. 556 savepoint_opt ::= SAVEPOINT. 557 savepoint_opt ::=. 558 cmd ::= create_table create_table_args. 559 table_option_set ::= table_option. 560 columnlist ::= columnlist COMMA columnname carglist. 561 columnlist ::= columnname carglist. 562 nm ::= ID|INDEXED|JOIN_KW. 563 nm ::= STRING. 564 typetoken ::= typename. 565 typename ::= ID|STRING. 566 signed ::= plus_num. 567 signed ::= minus_num. 568 carglist ::= carglist ccons. 569 carglist ::=. 570 ccons ::= NULL onconf. 571 ccons ::= GENERATED ALWAYS AS generated. 572 ccons ::= AS generated. 573 conslist_opt ::= COMMA conslist. 574 conslist ::= conslist tconscomma tcons. 575 conslist ::= tcons. 576 tconscomma ::=. 577 defer_subclause_opt ::= defer_subclause. 578 resolvetype ::= raisetype. 579 selectnowith ::= oneselect. 580 oneselect ::= values. 581 sclp ::= selcollist COMMA. 582 as ::= ID|STRING. 583 indexed_opt ::= indexed_by. 584 returning ::=. 585 expr ::= term. 586 likeop ::= LIKE_KW|MATCH. 587 case_operand ::= expr. 588 exprlist ::= nexprlist. 589 nmnum ::= plus_num. 590 nmnum ::= nm. 591 nmnum ::= ON. 592 nmnum ::= DELETE. 593 nmnum ::= DEFAULT. 594 plus_num ::= INTEGER|FLOAT. 595 foreach_clause ::=. 596 foreach_clause ::= FOR EACH ROW. 597 trnm ::= nm. 598 tridxby ::=. 599 database_kw_opt ::= DATABASE. 600 database_kw_opt ::=. 601 kwcolumn_opt ::=. 602 kwcolumn_opt ::= COLUMNKW. 603 vtabarglist ::= vtabarg. 604 vtabarglist ::= vtabarglist COMMA vtabarg. 605 vtabarg ::= vtabarg vtabargtoken. 606 anylist ::=. 607 anylist ::= anylist LP anylist RP. 608 anylist ::= anylist ANY. 609 with ::=. 610 windowdefn_list ::= windowdefn. 611 window ::= frame_opt. 612 613 %token SPACE ILLEGAL. 614