sqllogictest

Check-in [fb75130b8f]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:More changes in support of evidence testing.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: fb75130b8f275ec3b744c9e3c36a39ed14a81957
User & Date: drh 2010-12-07 03:38:51.000
Context
2011-01-25
20:41
Update to the SQLite 3.7.5 beta. check-in: d3e28e8083 user: drh tags: trunk
2010-12-07
03:38
More changes in support of evidence testing. check-in: fb75130b8f user: drh tags: trunk
03:33
Update makefiles to build SQLite with the necessary options. Update SQLite to the latest version. Change run-all.sh so that it runs tests in sorted order. check-in: ab656a0873 user: drh tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/Makefile.no-odbc.
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
OPTS += -DSQLITE_OMIT_COMPLETE
#OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE
OPTS += -DSQLITE_OMIT_DATETIME_FUNCS
OPTS += -DSQLITE_OMIT_GET_TABLE
OPTS += -DSQLITE_OMIT_INCRBLOB
OPTS += -DSQLITE_OMIT_LOAD_EXTENSION
OPTS += -DSQLITE_OMIT_MEMORYDB
OPTS += -DSQLITE_OMIT_PRAGMA
OPTS += -DSQLITE_OMIT_REINDEX
OPTS += -DSQLITE_OMIT_SHARED_CACHE
OPTS += -DSQLITE_OMIT_TCL_VARIABLE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_UTF16
OPTS += -DSQLITE_OMIT_VACUUM
OPTS += -DSQLITE_OMIT_VIRTUALTABLE







|
|







43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
OPTS += -DSQLITE_OMIT_COMPLETE
#OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE
OPTS += -DSQLITE_OMIT_DATETIME_FUNCS
OPTS += -DSQLITE_OMIT_GET_TABLE
OPTS += -DSQLITE_OMIT_INCRBLOB
OPTS += -DSQLITE_OMIT_LOAD_EXTENSION
OPTS += -DSQLITE_OMIT_MEMORYDB
#OPTS += -DSQLITE_OMIT_PRAGMA
#OPTS += -DSQLITE_OMIT_REINDEX
OPTS += -DSQLITE_OMIT_SHARED_CACHE
OPTS += -DSQLITE_OMIT_TCL_VARIABLE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_UTF16
OPTS += -DSQLITE_OMIT_VACUUM
OPTS += -DSQLITE_OMIT_VIRTUALTABLE
Changes to src/sqlite3.c.
100214
100215
100216
100217
100218
100219
100220
100221
100222
100223
100224
100225
100226
100227
100228
100229
100230
100231
100232
100233
100234
100235
100236
100237

100238
100239
100240
100241
100242
100243
100244
100245
100246
100247
100248
100249
100250
100251
100252
100253
100254
100255
100256
100257
**    sqlite3ParserARG_FETCH     Code to extract %extra_argument from yypParser
**    YYNSTATE           the combined number of states.
**    YYNRULE            the number of rules in the grammar
**    YYERRORSYMBOL      is the code number of the error symbol.  If not
**                       defined, then do no error processing.
*/
#define YYCODETYPE unsigned char
#define YYNOCODE 240
#define YYACTIONTYPE unsigned short int
#define YYWILDCARD 67
#define sqlite3ParserTOKENTYPE Token
typedef union {
  int yyinit;
  sqlite3ParserTOKENTYPE yy0;
  struct {int value; int mask;} yy13;
  u8 yy44;
  ExprSpan yy64;
  struct TrigEvent yy132;
  IdList* yy160;
  Expr* yy178;
  int yy230;
  Select* yy239;
  TriggerStep* yy247;
  struct LimitVal yy270;

  SrcList* yy285;
  struct LikeOp yy440;
  ExprList* yy462;
} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#endif
#define sqlite3ParserARG_SDECL Parse *pParse;
#define sqlite3ParserARG_PDECL ,Parse *pParse
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
#define YYNSTATE 560
#define YYNRULE 289
#define YYFALLBACK 1
#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)

/* The yyzerominor constant is used to initialize instances of
** YYMINORTYPE objects to zero. */







|






|
|
|
|
|
|
|
|
<
|
>
|
|
|








|
|







100214
100215
100216
100217
100218
100219
100220
100221
100222
100223
100224
100225
100226
100227
100228
100229
100230
100231
100232
100233
100234
100235

100236
100237
100238
100239
100240
100241
100242
100243
100244
100245
100246
100247
100248
100249
100250
100251
100252
100253
100254
100255
100256
100257
**    sqlite3ParserARG_FETCH     Code to extract %extra_argument from yypParser
**    YYNSTATE           the combined number of states.
**    YYNRULE            the number of rules in the grammar
**    YYERRORSYMBOL      is the code number of the error symbol.  If not
**                       defined, then do no error processing.
*/
#define YYCODETYPE unsigned char
#define YYNOCODE 241
#define YYACTIONTYPE unsigned short int
#define YYWILDCARD 67
#define sqlite3ParserTOKENTYPE Token
typedef union {
  int yyinit;
  sqlite3ParserTOKENTYPE yy0;
  Expr* yy2;
  u8 yy18;
  ExprSpan yy22;
  struct {int value; int mask;} yy47;
  SrcList* yy67;
  ExprList* yy82;
  struct TrigEvent yy210;
  IdList* yy240;

  struct LimitVal yy244;
  TriggerStep* yy347;
  int yy412;
  struct LikeOp yy438;
  Select* yy459;
} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#endif
#define sqlite3ParserARG_SDECL Parse *pParse;
#define sqlite3ParserARG_PDECL ,Parse *pParse
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
#define YYNSTATE 579
#define YYNRULE 301
#define YYFALLBACK 1
#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)

/* The yyzerominor constant is used to initialize instances of
** YYMINORTYPE objects to zero. */
100313
100314
100315
100316
100317
100318
100319
100320
100321
100322
100323
100324
100325
100326
100327
100328
100329
100330
100331
100332
100333
100334
100335
100336
100337
100338
100339
100340
100341

100342
100343
100344
100345
100346
100347
100348
100349
100350
100351
100352
100353
100354
100355
100356
100357
100358
100359
100360
100361
100362
100363
100364
100365
100366
100367
100368
100369
100370
100371
100372
100373
100374
100375
100376
100377

100378
100379
100380
100381
100382
100383
100384
100385
100386
100387
100388
100389
100390
100391
100392
100393
100394
100395
100396
100397
100398
100399
100400
100401
100402
100403
100404
100405
100406
100407
100408
100409
100410
100411
100412
100413
100414
100415
100416
100417
100418
100419
100420
100421
100422
100423
100424
100425
100426
100427
100428
100429
100430
100431
100432
100433
100434
100435
100436
100437
100438
100439
100440
100441
100442
100443
100444
100445
100446
100447
100448
100449
100450
100451
100452
100453
100454
100455
100456
100457
100458
100459
100460
100461
100462
100463




100464
100465
100466
100467
100468
100469
100470
100471
100472
100473
100474
100475
100476
100477
100478
100479
100480
100481
100482
100483
100484
100485
100486
100487
100488
100489
100490
100491
100492
100493
100494
100495
100496
100497
100498
100499
100500
100501
100502
100503
100504
100505
100506
100507
100508
100509
100510
100511
100512
100513
100514
100515
100516
100517
100518
100519
100520
100521
100522
100523
100524
100525
100526
100527
100528
100529
100530
100531
100532
100533
100534
100535
100536
100537
100538
100539
100540
100541
100542
100543
100544
100545
100546
100547
100548
100549
100550
100551
100552
100553
100554
100555
100556
100557
100558
100559
100560
100561
100562
100563
100564
100565
100566
100567
100568
100569
100570
100571
100572
100573
100574
100575
100576
100577
100578
100579
100580
100581
100582
100583
100584
100585
100586
100587
100588
100589
100590
100591
100592
100593
100594
100595
100596
100597
100598
100599
100600
100601
100602
100603
100604
100605
100606
100607




100608
100609
100610
100611
100612
100613
100614
100615
100616
100617
100618
100619
100620
100621
100622
100623
100624
100625
100626
100627
100628
100629
100630
100631
100632
100633
100634
100635
100636
100637
100638
100639
100640
100641
100642
100643
100644
100645
100646
100647
100648
100649
100650
100651

100652
100653
100654
100655
100656
100657
100658
100659
100660
100661
100662
100663
100664
100665
100666
100667
100668
100669
100670
100671
100672
100673
100674
100675
100676
100677
100678
100679
100680
100681
100682
100683
100684
100685
100686
100687
100688
100689
100690
100691
100692
100693
100694
100695
100696
100697
100698
100699
100700
100701
100702
100703
100704
100705
100706
100707
100708
100709
100710
100711
100712
100713
100714
100715
100716
100717
100718
100719
100720
100721
100722
100723
100724
100725
100726
100727
100728
100729
100730
100731
100732
100733
100734
100735
100736
100737
100738
100739
100740
100741
100742
100743
100744


100745
100746
100747
100748
100749
100750
100751
**                     yy_action.  Used to detect hash collisions.
**  yy_shift_ofst[]    For each state, the offset into yy_action for
**                     shifting terminals.
**  yy_reduce_ofst[]   For each state, the offset into yy_action for
**                     shifting non-terminals after a reduce.
**  yy_default[]       Default action for each state.
*/
#define YY_ACTTAB_COUNT (1415)
static const YYACTIONTYPE yy_action[] = {
 /*     0 */   281,  296,  505,  504,   14,  151,  168,  527,   48,   48,
 /*    10 */    48,   48,   41,   46,   46,   46,   46,   45,   45,   44,
 /*    20 */    44,   44,   43,  216,  218,  283,  553,  552,  446,  445,
 /*    30 */   520,  514,   48,   48,   48,   48,  307,   46,   46,   46,
 /*    40 */    46,   45,   45,   44,   44,   44,   43,  216,  557,   49,
 /*    50 */    50,   40,  512,  511,  513,  513,   47,   47,   48,   48,
 /*    60 */    48,   48,  215,   46,   46,   46,   46,   45,   45,   44,
 /*    70 */    44,   44,   43,  216,  281,  527,  364,  294,  509,  509,
 /*    80 */    25,   46,   46,   46,   46,   45,   45,   44,   44,   44,
 /*    90 */    43,  216,  294,  273,  550,  549,  145,  366,  319,  337,
 /*   100 */   334,  333,  316,  280,  520,  514,  498,  422,  194,   51,
 /*   110 */   332,  484,  369,   45,   45,   44,   44,   44,   43,  216,
 /*   120 */   483,  531,   82,   49,   50,   40,  512,  511,  513,  513,
 /*   130 */    47,   47,   48,   48,   48,   48,  538,   46,   46,   46,
 /*   140 */    46,   45,   45,   44,   44,   44,   43,  216,  281,  235,
 /*   150 */   204,  436,  437,  121,  156,  127,  255,  340,  250,  339,
 /*   160 */   148,  496,  366,  353,  551,  204,  366,  246,  343,  175,
 /*   170 */   127,  255,  340,  250,  339,  148,  183,  369,  520,  514,
 /*   180 */   145,  369,  246,  337,  334,  333,  531,   75,  527,  456,
 /*   190 */   531,   82,  234,  525,  332,  241,  195,   49,   50,   40,

 /*   200 */   512,  511,  513,  513,   47,   47,   48,   48,   48,   48,
 /*   210 */   530,   46,   46,   46,   46,   45,   45,   44,   44,   44,
 /*   220 */    43,  216,  281,  395,  523,  523,  523,  212,  502,  502,
 /*   230 */     1,  309,  353,  342,  553,  552,  366,  354,  532,  237,
 /*   240 */   145,  239,  533,  337,  334,  333,  551,  553,  552,  373,
 /*   250 */   556,  369,  520,  514,  332,  219,  527,  120,  532,  601,
 /*   260 */   531,   75,  533,  186,  553,  552,  178,  177,  176,  396,
 /*   270 */   602,   49,   50,   40,  512,  511,  513,  513,   47,   47,
 /*   280 */    48,   48,   48,   48,  603,   46,   46,   46,   46,   45,
 /*   290 */    45,   44,   44,   44,   43,  216,  281,  530,  201,  421,
 /*   300 */   351,  211,  550,  549,   58,  366,  193,  132,  553,  552,
 /*   310 */   537,   57,  155,  462,  551,  550,  549,  230,  306,  229,
 /*   320 */   369,  301,  553,  552,  481,  147,  520,  514,  218,  531,
 /*   330 */    82,  454,  550,  549,  172,  412,  151,  226,  527,   31,
 /*   340 */   534,  478,  548,  547,  546,   49,   50,   40,  512,  511,
 /*   350 */   513,  513,   47,   47,   48,   48,   48,   48,  477,   46,
 /*   360 */    46,   46,   46,   45,   45,   44,   44,   44,   43,  216,
 /*   370 */   281,  349,  154,  507,  461,   55,  550,  549,   56,  284,
 /*   380 */   196,  223,  527,  225,  463,  276,  275,  274,  158,  272,
 /*   390 */   550,  549,  385,   44,   44,   44,   43,  216,  254,  421,
 /*   400 */   520,  514,  364,  396,  509,  509,  527,  271,  474,  253,
 /*   410 */   411,   57,   53,   28,  551,  510,  553,  552,  170,   49,
 /*   420 */    50,   40,  512,  511,  513,  513,   47,   47,   48,   48,
 /*   430 */    48,   48,  396,   46,   46,   46,   46,   45,   45,   44,
 /*   440 */    44,   44,   43,  216,  281,  366,  247,  465,  458,  345,
 /*   450 */   527,  230,  306,  229,  508,  184,  496,  346,   37,  224,
 /*   460 */   369,  551,  218,  435,   42,   39,  135,  495,  479,  531,
 /*   470 */    63,  405,  405,  322,  520,  514,  174,  173,  338,  146,
 /*   480 */   230,  303,  221,  291,  456,  434,  282,  401,  525,  530,
 /*   490 */   472,  218,  150,   49,   50,   40,  512,  511,  513,  513,
 /*   500 */    47,   47,   48,   48,   48,   48,  506,   46,   46,   46,
 /*   510 */    46,   45,   45,   44,   44,   44,   43,  216,  281,  523,
 /*   520 */   523,  523,  441,  163,  403,  312,  366,  162,  404,  479,
 /*   530 */   497,  519,  518,  313,  430,  292,  146,  366,  134,  136,
 /*   540 */   366,  369,  320,  364,  169,  509,  509,  181,  520,  514,
 /*   550 */   531,   81,  369,  516,  515,  369,  364,  443,  509,  509,

 /*   560 */   182,  531,   67,  479,  531,   67,  399,   49,   50,   40,
 /*   570 */   512,  511,  513,  513,   47,   47,   48,   48,   48,   48,
 /*   580 */   517,   46,   46,   46,   46,   45,   45,   44,   44,   44,
 /*   590 */    43,  216,  281,  491,  530,  494,  243,  491,  244,  134,
 /*   600 */   146,  264,  553,  552,  805,  329,  330,  286,  146,  490,
 /*   610 */   285,  314,  364,  490,  509,  509,  362,  505,  504,  560,
 /*   620 */   558,  298,  520,  514,  479,  489,  551,  450,  400,  489,
 /*   630 */   146,  357,  493,  188,  180,  188,  147,   32,  449,   30,
 /*   640 */    23,   49,   50,   40,  512,  511,  513,  513,   47,   47,
 /*   650 */    48,   48,   48,   48,  192,   46,   46,   46,   46,   45,
 /*   660 */    45,   44,   44,   44,   43,  216,  281,  530,  530,  530,
 /*   670 */   550,  549,  850,  165,  374,    2,  389,  215,  150,  299,
 /*   680 */   179,  132,  414,  440,  366,   42,   39,  135,  530,  415,
 /*   690 */   284,  308,  470,  308,  153,  246,  520,  514,  218,  369,
 /*   700 */   202,  492,  498,  361,  194,  217,   54,  551,  531,   62,
 /*   710 */   300,  305,   15,  315,   27,   49,   50,   40,  512,  511,
 /*   720 */   513,  513,   47,   47,   48,   48,   48,   48,  366,   46,
 /*   730 */    46,   46,   46,   45,   45,   44,   44,   44,   43,  216,
 /*   740 */   281,  366,  388,  369,   16,  247,  191,  187,  366,  536,
 /*   750 */   423,    4,  531,   59,  366,  295,  369,  488,  426,  366,
 /*   760 */   551,  366,  470,  369,   11,  531,   84,  559,    2,  369,
 /*   770 */   520,  514,  531,   87,  369,   10,  369,  551,  531,   85,
 /*   780 */   530,  530,  203,  531,   94,  531,   93,  452,  451,   49,
 /*   790 */    38,   40,  512,  511,  513,  513,   47,   47,   48,   48,
 /*   800 */    48,   48,  366,   46,   46,   46,   46,   45,   45,   44,
 /*   810 */    44,   44,   43,  216,  281,  366,  247,  369,  366,  247,
 /*   820 */   247,  474,  314,  309,  185,  321,  531,   96,  398,  451,
 /*   830 */   369,  551,  470,  369,  551,  551,  119,  551,  551,  531,
 /*   840 */    97,  149,  531,  122,  520,  514,  554,  551,  314,  377,
 /*   850 */   476,   16,  468,  290,  474,  474,  289,  288,  530,  460,
 /*   860 */   210,  551,  459,  551,   50,   40,  512,  511,  513,  513,
 /*   870 */    47,   47,   48,   48,   48,   48,  366,   46,   46,   46,
 /*   880 */    46,   45,   45,   44,   44,   44,   43,  216,  281,  366,
 /*   890 */   197,  369,  366,  259,  257,  287,  131,  366,  535,  130,
 /*   900 */   531,  123,   43,  216,  369,  366,  426,  369,  366,  542,
 /*   910 */   366,  228,  369,  531,   88,  209,  531,   92,  520,  514,
 /*   920 */   369,  531,   91,  369,  551,  369,  500,  214,  433,  531,
 /*   930 */    83,   21,  531,   90,  531,   66,  336,  200,  117,   40,
 /*   940 */   512,  511,  513,  513,   47,   47,   48,   48,   48,   48,
 /*   950 */   245,   46,   46,   46,   46,   45,   45,   44,   44,   44,
 /*   960 */    43,  216,   36,  360,  541,    3,  366,  116,  235,  370,
 /*   970 */   552,   20,  235,  331,  558,  298,  115,  144,  327,  551,
 /*   980 */   363,  369,  366,  551,  409,   36,  360,  551,    3,  366,
 /*   990 */   531,   86,  370,  552,  253,  540,  167,  369,  113,  358,
 /*  1000 */   112,  323,  128,  363,  369,  402,  531,  126,  150,  496,
 /*  1010 */   551,  384,  235,  531,  125,  220,  232,  551,  366,  235,
 /*  1020 */   366,  406,  358,  139,  366,  235,  111,  551,   13,   33,
 /*  1030 */    34,  464,  496,  369,  551,  369,   35,  368,  367,  369,
 /*  1040 */   551,  525,  531,  124,  531,   65,  394,  138,  531,   80,
 /*  1050 */   235,  137,   33,   34,  366,  382,  366,  391,  109,   35,
 /*  1060 */   368,  367,  381,   18,  525,  551,   17,  106,  380,  369,
 /*  1070 */     9,  369,  523,  523,  523,  522,  521,   12,  531,   79,
 /*  1080 */   531,   64,  218,  108,   36,  360,  365,    3,  366,  235,
 /*  1090 */   383,  370,  552,  199,  366,  523,  523,  523,  522,  521,
 /*  1100 */    12,  551,  363,  369,  551,  366,  386,   26,  360,  369,
 /*  1110 */     3,  366,  531,   78,  370,  552,  101,   99,  531,   77,
 /*  1120 */   369,  358,   98,    8,  376,  363,  369,  297,  524,  531,
 /*  1130 */    89,  496,  198,  375,  355,  531,   76,   95,  208,  114,
 /*  1140 */   366,  487,  366,  551,  358,  160,  366,  555,  545,  551,
 /*  1150 */   544,   33,   34,  366,  496,  369,  551,  369,   35,  368,
 /*  1160 */   367,  369,  372,  525,  531,   74,  531,   73,  369,  475,
 /*  1170 */   531,   72,  543,  471,   33,   34,  469,  531,   61,  371,
 /*  1180 */   159,   35,  368,  367,  551,  366,  525,  366,  551,  249,
 /*  1190 */   366,  551,  439,    6,  523,  523,  523,  522,  521,   12,
 /*  1200 */   369,  366,  369,  157,  551,  369,  529,  551,  366,  531,
 /*  1210 */    60,  531,   71,  218,  531,   70,  369,  523,  523,  523,
 /*  1220 */   522,  521,   12,  369,  344,  531,   69,  248,  419,  242,
 /*  1230 */   240,  238,  531,   68,   23,  236,  267,  231,  317,  369,
 /*  1240 */   393,  392,  551,  551,  551,  551,  551,  310,  531,    7,
 /*  1250 */   551,  263,  551,  551,  133,  551,  551,  348,  262,  268,
 /*  1260 */   350,  265,  551,  266,   24,  352,  551,  528,   29,  551,
 /*  1270 */    52,  213,  551,  551,  486,  152,  164,  260,   22,  347,
 /*  1280 */   473,  258,  341,  467,  466,  256,  453,  448,  293,  447,
 /*  1290 */   251,  444,  443,  118,  442,  279,  206,  418,  143,  207,
 /*  1300 */   417,  416,  278,  328,  424,  205,  410,  142,  324,  326,
 /*  1310 */   141,   19,  129,  166,  107,  190,  408,  140,  233,  318,
 /*  1320 */   407,  397,  110,  304,  539,  387,  105,  379,  104,  526,
 /*  1330 */   485,  103,  102,  100,  161,  428,  311,  482,  227,  261,
 /*  1340 */   503,  171,  252,  501,  269,  429,  440,  427,  425,  390,
 /*  1350 */   499,  335,  277,  216,  851,  480,  359,  222,  851,  851,
 /*  1360 */   851,  851,  457,  455,  851,  851,  438,  851,  432,  431,
 /*  1370 */   851,  851,  356,    5,  378,  270,  302,  420,  413,  851,
 /*  1380 */   851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
 /*  1390 */   851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
 /*  1400 */   851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
 /*  1410 */   851,  851,  189,  851,  325,




};
static const YYCODETYPE yy_lookahead[] = {
 /*     0 */    19,  167,  168,  169,   22,   24,   24,   26,   77,   78,
 /*    10 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   88,
 /*    20 */    89,   90,   91,   92,  116,  153,   26,   27,    7,    8,
 /*    30 */    49,   50,   77,   78,   79,   80,  128,   82,   83,   84,
 /*    40 */    85,   86,   87,   88,   89,   90,   91,   92,    1,   68,
 /*    50 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*    60 */    79,   80,  228,   82,   83,   84,   85,   86,   87,   88,
 /*    70 */    89,   90,   91,   92,   19,   94,  112,   19,  114,  115,
 /*    80 */    25,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*    90 */    91,   92,   19,   15,   94,   95,   96,  148,  226,   99,
 /*   100 */   100,  101,  230,  161,   49,   50,  164,  165,  166,   54,
 /*   110 */   110,   32,  163,   86,   87,   88,   89,   90,   91,   92,
 /*   120 */    41,  172,  173,   68,   69,   70,   71,   72,   73,   74,
 /*   130 */    75,   76,   77,   78,   79,   80,   23,   82,   83,   84,
 /*   140 */    85,   86,   87,   88,   89,   90,   91,   92,   19,  148,
 /*   150 */    92,   97,   98,   24,   96,   97,   98,   99,  100,  101,
 /*   160 */   102,   66,  148,  214,  163,   92,  148,  109,  219,   25,
 /*   170 */    97,   98,   99,  100,  101,  102,  158,  163,   49,   50,
 /*   180 */    96,  163,  109,   99,  100,  101,  172,  173,   26,   94,
 /*   190 */   172,  173,  191,   98,  110,   16,   22,   68,   69,   70,
 /*   200 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   210 */   192,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   220 */    91,   92,   19,   11,  129,  130,  131,  213,  129,  130,
 /*   230 */    22,  148,  214,   88,   26,   27,  148,  219,  113,   60,
 /*   240 */    96,   62,  117,   99,  100,  101,  163,   26,   27,  144,
 /*   250 */   145,  163,   49,   50,  110,  150,   94,  152,  113,  118,
 /*   260 */   172,  173,  117,  158,   26,   27,  105,  106,  107,   57,
 /*   270 */   118,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   280 */    77,   78,   79,   80,  118,   82,   83,   84,   85,   86,
 /*   290 */    87,   88,   89,   90,   91,   92,   19,  192,  215,  148,
 /*   300 */   212,  213,   94,   95,   22,  148,  204,  205,   26,   27,
 /*   310 */   159,  160,  118,   23,  163,   94,   95,  105,  106,  107,
 /*   320 */   163,  216,   26,   27,   25,   50,   49,   50,  116,  172,
 /*   330 */   173,  163,   94,   95,  183,  184,   24,   16,   26,  136,
 /*   340 */   172,  120,    7,    8,    9,   68,   69,   70,   71,   72,
 /*   350 */    73,   74,   75,   76,   77,   78,   79,   80,  120,   82,
 /*   360 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   370 */    19,  214,  118,   23,   23,   25,   94,   95,   22,  104,
 /*   380 */     5,   60,   26,   62,   88,   10,   11,   12,   13,   14,
 /*   390 */    94,   95,   17,   88,   89,   90,   91,   92,   98,  148,
 /*   400 */    49,   50,  112,   57,  114,  115,   94,  156,  164,  109,
 /*   410 */   159,  160,   22,  136,  163,  113,   26,   27,  119,   68,
 /*   420 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   430 */    79,   80,   57,   82,   83,   84,   85,   86,   87,   88,
 /*   440 */    89,   90,   91,   92,   19,  148,  148,  203,   23,   19,
 /*   450 */    94,  105,  106,  107,   23,  158,   66,   27,   22,  138,
 /*   460 */   163,  163,  116,   36,  220,  221,  222,   23,   25,  172,
 /*   470 */   173,  105,  106,  107,   49,   50,   86,   87,   51,   25,
 /*   480 */   105,  106,  107,  185,   94,   58,  111,   21,   98,  192,
 /*   490 */    23,  116,   25,   68,   69,   70,   71,   72,   73,   74,
 /*   500 */    75,   76,   77,   78,   79,   80,   23,   82,   83,   84,
 /*   510 */    85,   86,   87,   88,   89,   90,   91,   92,   19,  129,
 /*   520 */   130,  131,   23,   23,   30,   19,  148,   23,   34,   25,
 /*   530 */    23,   49,   50,   27,   23,  108,   25,  148,   95,   25,
 /*   540 */   148,  163,   48,  112,   22,  114,  115,   22,   49,   50,
 /*   550 */   172,  173,  163,   71,   72,  163,  112,  103,  114,  115,
 /*   560 */   158,  172,  173,  120,  172,  173,  100,   68,   69,   70,
 /*   570 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   580 */    98,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   590 */    91,   92,   19,   12,  192,   11,   23,   12,   23,   95,
 /*   600 */    25,  223,   26,   27,  138,   19,   23,  218,   25,   28,
 /*   610 */   218,  148,  112,   28,  114,  115,  167,  168,  169,    0,
 /*   620 */     1,    2,   49,   50,  120,   44,  163,   46,   23,   44,
 /*   630 */    25,   46,   23,  158,  158,  158,   50,  135,   57,  137,
 /*   640 */   126,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   650 */    77,   78,   79,   80,  158,   82,   83,   84,   85,   86,
 /*   660 */    87,   88,   89,   90,   91,   92,   19,  192,  192,  192,
 /*   670 */    94,   95,  140,  141,  142,  143,   23,  228,   25,   97,
 /*   680 */   204,  205,  179,  180,  148,  220,  221,  222,  192,  186,
 /*   690 */   104,  216,  148,  216,   25,  109,   49,   50,  116,  163,
 /*   700 */   237,   23,  164,  165,  166,  195,  231,  163,  172,  173,
 /*   710 */   128,  236,  202,  236,   25,   68,   69,   70,   71,   72,
 /*   720 */    73,   74,   75,   76,   77,   78,   79,   80,  148,   82,
 /*   730 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   740 */    19,  148,   23,  163,   25,  148,  158,  158,  148,  170,
 /*   750 */   171,   35,  172,  173,  148,  211,  163,   23,  179,  148,
 /*   760 */   163,  148,  148,  163,   25,  172,  173,  142,  143,  163,
 /*   770 */    49,   50,  172,  173,  163,   35,  163,  163,  172,  173,
 /*   780 */   192,  192,  185,  172,  173,  172,  173,  188,  189,   68,
 /*   790 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   800 */    79,   80,  148,   82,   83,   84,   85,   86,   87,   88,
 /*   810 */    89,   90,   91,   92,   19,  148,  148,  163,  148,  148,
 /*   820 */   148,  164,  148,  148,  158,  211,  172,  173,  188,  189,
 /*   830 */   163,  163,  148,  163,  163,  163,   22,  163,  163,  172,
 /*   840 */   173,   35,  172,  173,   49,   50,  148,  163,  148,   23,
 /*   850 */   120,   25,   27,  185,  164,  164,  185,  185,  192,   23,
 /*   860 */   203,  163,   23,  163,   69,   70,   71,   72,   73,   74,
 /*   870 */    75,   76,   77,   78,   79,   80,  148,   82,   83,   84,
 /*   880 */    85,   86,   87,   88,   89,   90,   91,   92,   19,  148,
 /*   890 */   215,  163,  148,  203,  203,  211,  118,  148,  171,   39,
 /*   900 */   172,  173,   91,   92,  163,  148,  179,  163,  148,  148,
 /*   910 */   148,  237,  163,  172,  173,   52,  172,  173,   49,   50,
 /*   920 */   163,  172,  173,  163,  163,  163,   86,   87,   29,  172,
 /*   930 */   173,   22,  172,  173,  172,  173,   52,  237,   22,   70,
 /*   940 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   950 */    23,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   960 */    91,   92,   19,   20,  148,   22,  148,   22,  148,   26,
 /*   970 */    27,   22,  148,   52,    1,    2,   22,  102,   19,  163,
 /*   980 */    37,  163,  148,  163,   20,   19,   20,  163,   22,  148,
 /*   990 */   172,  173,   26,   27,  109,  148,   24,  163,  104,   56,
 /*  1000 */    53,   43,  148,   37,  163,   53,  172,  173,   25,   66,
 /*  1010 */   163,  191,  148,  172,  173,  191,  138,  163,  148,  148,
 /*  1020 */   148,   59,   56,  104,  148,  148,   22,  163,    5,   86,
 /*  1030 */    87,   88,   66,  163,  163,  163,   93,   94,   95,  163,
 /*  1040 */   163,   98,  172,  173,  172,  173,    1,  118,  172,  173,
 /*  1050 */   148,   35,   86,   87,  148,  191,  148,   27,  108,   93,
 /*  1060 */    94,   95,  191,   76,   98,  163,   76,  119,  191,  163,
 /*  1070 */    22,  163,  129,  130,  131,  132,  133,  134,  172,  173,
 /*  1080 */   172,  173,  116,  127,   19,   20,  148,   22,  148,  148,
 /*  1090 */    20,   26,   27,  191,  148,  129,  130,  131,  132,  133,
 /*  1100 */   134,  163,   37,  163,  163,  148,    1,   19,   20,  163,
 /*  1110 */    22,  148,  172,  173,   26,   27,  119,  108,  172,  173,
 /*  1120 */   163,   56,  127,   22,  128,   37,  163,    3,  148,  172,
 /*  1130 */   173,   66,  191,    4,  148,  172,  173,  162,  178,  178,
 /*  1140 */   148,  148,  148,  163,   56,    6,  148,  147,  147,  163,
 /*  1150 */   147,   86,   87,  148,   66,  163,  163,  163,   93,   94,
 /*  1160 */    95,  163,  147,   98,  172,  173,  172,  173,  163,  148,
 /*  1170 */   172,  173,   13,  148,   86,   87,  148,  172,  173,  157,
 /*  1180 */   149,   93,   94,   95,  163,  148,   98,  148,  163,  148,
 /*  1190 */   148,  163,  148,   25,  129,  130,  131,  132,  133,  134,
 /*  1200 */   163,  148,  163,  149,  163,  163,  192,  163,  148,  172,
 /*  1210 */   173,  172,  173,  116,  172,  173,  163,  129,  130,  131,
 /*  1220 */   132,  133,  134,  163,  148,  172,  173,  148,  148,  148,
 /*  1230 */   148,  148,  172,  173,  126,  148,  198,  148,  148,  163,
 /*  1240 */   148,  148,  163,  163,  163,  163,  163,  148,  172,  173,
 /*  1250 */   163,  148,  163,  163,  148,  163,  163,  148,  148,  197,
 /*  1260 */   123,  200,  163,  199,  124,  122,  163,  201,  135,  163,
 /*  1270 */   125,  224,  163,  163,  155,  118,  155,  208,  104,  121,
 /*  1280 */   209,  208,  104,  209,  209,  208,  174,  174,   47,  182,
 /*  1290 */   174,  176,  103,   22,  174,  177,   92,  174,  154,  227,
 /*  1300 */   174,  174,  177,   18,  182,  227,  155,  154,   45,  155,
 /*  1310 */   154,  135,   68,  217,   22,  155,  155,  154,  234,  155,
 /*  1320 */   235,  187,  187,   18,  151,  197,  190,  197,  190,  164,
 /*  1330 */   175,  190,  190,  187,  217,  164,  238,  175,  238,  207,
 /*  1340 */   229,  194,  175,  229,  196,  175,  180,  175,  164,  197,
 /*  1350 */   164,  176,  146,   92,  239,  206,  225,  207,  239,  239,
 /*  1360 */   239,  239,  172,  172,  239,  239,  181,  239,  181,  181,
 /*  1370 */   239,  239,  189,  194,  197,  193,  207,  184,  184,  239,
 /*  1380 */   239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
 /*  1390 */   239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
 /*  1400 */   239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
 /*  1410 */   239,  239,  232,  239,  233,




};
#define YY_SHIFT_USE_DFLT (-93)
#define YY_SHIFT_COUNT (373)
#define YY_SHIFT_MIN   (-92)
#define YY_SHIFT_MAX   (1305)
static const short yy_shift_ofst[] = {
 /*     0 */   973,  966,  375,  966, 1065, 1065,    0,  -19, 1065, 1065,
 /*    10 */  1065, 1065, 1065,  346,  576,  943, 1065, 1065, 1065, 1065,
 /*    20 */  1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
 /*    30 */  1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
 /*    40 */  1088, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
 /*    50 */  1065, 1065, 1065, 1065,  212,  840,  840,  162, 1097,   55,
 /*    60 */   573,  499,  425,  351,  277,  203,  129,  647,  647,  647,
 /*    70 */   647,  647,  647,  647,  647,  647,  647,  647,  647,  647,
 /*    80 */   647,  647,  647,  721,  647,  795,  869,  869,  -69,  -45,
 /*    90 */   -45,  -45,  -45,  -45,   -1,   58,   27,  305,  576,  576,
 /*   100 */   576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
 /*   110 */   576,  576,  576,  576,  586,  576,  576,  576,  576,  576,
 /*   120 */   466,  162,  811, 1261,  -93,  -93,  -93,  390,   73,  581,
 /*   130 */   581,  296,  282,  238,  221,  208,  576,  576,  576,  576,
 /*   140 */   576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
 /*   150 */   576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
 /*   160 */   576,  582,  312,  312,  312,  619,  -92, 1097, 1097, 1097,
 /*   170 */   -93,  -93,  144,   95,   95,   84,  427,  427,  427,  504,
 /*   180 */   500,  585,  444,  431,  290,  -36,  -36,  -36,  -36,  366,
 /*   190 */   494,  -36,  -36,  443,  356,  145,  335,  514,  430,  430,
 /*   200 */   506,  514,  506,  454,  162,   79,  162,   79,  275,   79,
 /*   210 */   430,   79,   79,  502,   99,   99,  162,  299,  125,  -18,
 /*   220 */  1292, 1244, 1108, 1305, 1305, 1305, 1305, 1108, 1292, 1244,
 /*   230 */  1244, 1157, 1285, 1176, 1263, 1157, 1157, 1285, 1157, 1285,
 /*   240 */  1157, 1285, 1271, 1178, 1178, 1178, 1241, 1204, 1204, 1271,
 /*   250 */  1178, 1189, 1178, 1241, 1178, 1178, 1158, 1174, 1158, 1174,
 /*   260 */  1158, 1174, 1157, 1157, 1133, 1145, 1143, 1140, 1137, 1108,
 /*   270 */  1097, 1168, 1159, 1159, 1139, 1139, 1139, 1139,  -93,  -93,
 /*   280 */   -93,  482,  321,  179,  161,  826,  719,  653,  605,  583,
 /*   290 */   575,  511,   54,   21,  300,  467,  350, 1129, 1124,  996,
 /*   300 */  1101,  995, 1009,  997, 1070, 1105,  948, 1048,  956,  990,
 /*   310 */   987,  950, 1030, 1016,  929, 1045, 1023, 1004,  919,  878,
 /*   320 */   952,  983,  947,  962,  958,  894,  972,  964,  959,  885,
 /*   330 */   875,  954,  921,  949,  945,  927,  916,  884,  899,  909,
 /*   340 */   863,  860,  839,  836,  778,  825,  806,  814,  730,  689,
 /*   350 */   740,  739,  716,  689,  734,  678,  669,  609,  525,  584,
 /*   360 */   522,  507,  483,  436,  302,  254,  194,  166,  152,  141,
 /*   370 */   174,  113,   78,   47,

};
#define YY_REDUCE_USE_DFLT (-167)
#define YY_REDUCE_COUNT (280)
#define YY_REDUCE_MIN   (-166)
#define YY_REDUCE_MAX   (1206)
static const short yy_reduce_ofst[] = {
 /*     0 */   532,   18,  105,  297,   88,  -51,  151,  244,  392,  389,
 /*    10 */   157,   14,  378,  475,  251, 1076, 1060, 1053, 1042, 1039,
 /*    20 */  1037, 1005,  998,  994,  992,  963,  957,  946,  940,  908,
 /*    30 */   906,  876,  872,  870,  841,  834,  818,  762,  760,  757,
 /*    40 */   749,  744,  741,  728,  670,  667,  654,  613,  611,  606,
 /*    50 */   600,  593,  580,  536,  477,  449, -166,  -58,  476,  465,
 /*    60 */   465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
 /*    70 */   465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
 /*    80 */   465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
 /*    90 */   465,  465,  465,  465,  465,  579,  465,  465,  824,  675,
 /*   100 */   941,  902,  877,  871,  864,  820,  700,  684,  674,   83,
 /*   110 */   463,  672,  614,    1,  503,  671,  668,  597,  298,  544,
 /*   120 */  -128,  538,  465,  465,  465,  465,  465,  168,  727,  640,
 /*   130 */   599,  938, 1110, 1109, 1106, 1103, 1099, 1093, 1092, 1090,
 /*   140 */  1089, 1087, 1083, 1082, 1081, 1080, 1079, 1044, 1041, 1028,
 /*   150 */  1025, 1021,  993,  986,  980,  938,  854,  847,  816,  761,
 /*   160 */   698,  666,  691,  690,  657,  625,  589,  588,  496,  402,
 /*   170 */   102,  510, 1194, 1191, 1190, 1193, 1188, 1187, 1185, 1149,
 /*   180 */  1182, 1183, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1181,
 /*   190 */  1180, 1182, 1182, 1149, 1186, 1179, 1206, 1177, 1169, 1150,
 /*   200 */  1100, 1152, 1098, 1175, 1184, 1172, 1171, 1170, 1166, 1167,
 /*   210 */  1132, 1162, 1155, 1131, 1114, 1111, 1165, 1148, 1147, 1173,
 /*   220 */  1117, 1146, 1130, 1142, 1141, 1138, 1136, 1128, 1096, 1135,
 /*   230 */  1134, 1164, 1163, 1085, 1084, 1161, 1160, 1156, 1154, 1153,
 /*   240 */  1151, 1144, 1125, 1127, 1126, 1123, 1122, 1078, 1072, 1118,
 /*   250 */  1120, 1115, 1116, 1107, 1113, 1112, 1075, 1077, 1074, 1073,
 /*   260 */  1071, 1069, 1121, 1119, 1047, 1066, 1061, 1064, 1038, 1062,
 /*   270 */  1014, 1022, 1054, 1031, 1015, 1003, 1001, 1000,  961,  960,
 /*   280 */   975,
};
static const YYACTIONTYPE yy_default[] = {
 /*     0 */   565,  800,  849,  849,  849,  800,  849,  689,  849,  849,
 /*    10 */   849,  849,  798,  849,  849,  849,  849,  849,  849,  849,
 /*    20 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*    30 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*    40 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*    50 */   849,  849,  849,  849,  849,  817,  817,  604,  693,  724,
 /*    60 */   849,  849,  849,  849,  849,  849,  849,  739,  738,  732,
 /*    70 */   731,  830,  704,  729,  722,  715,  726,  801,  794,  795,
 /*    80 */   793,  797,  802,  849,  725,  761,  778,  760,  772,  777,
 /*    90 */   784,  776,  773,  763,  762,  596,  764,  765,  849,  849,
 /*   100 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*   110 */   849,  849,  849,  849,  658,  849,  849,  849,  849,  849,
 /*   120 */   591,  849,  766,  767,  781,  780,  779,  849,  849,  849,
 /*   130 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*   140 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*   150 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*   160 */   571,  849,  689,  689,  689,  565,  849,  849,  849,  849,
 /*   170 */   693,  683,  649,  849,  849,  849,  849,  849,  849,  849,
 /*   180 */   849,  849,  849,  849,  849,  734,  672,  840,  842,  849,
 /*   190 */   823,  670,  593,  691,  606,  681,  573,  728,  706,  706,
 /*   200 */   835,  728,  835,  630,  849,  718,  849,  718,  627,  718,
 /*   210 */   706,  718,  718,  796,  849,  849,  849,  690,  681,  849,
 /*   220 */   740,  662,  728,  669,  669,  669,  669,  728,  740,  662,
 /*   230 */   662,  697,  588,  829,  827,  697,  697,  588,  697,  588,
 /*   240 */   697,  588,  806,  660,  660,  660,  645,  810,  810,  806,
 /*   250 */   660,  630,  660,  645,  660,  660,  710,  705,  710,  705,
 /*   260 */   710,  705,  697,  697,  849,  723,  711,  721,  719,  728,
 /*   270 */   849,  648,  581,  581,  570,  570,  570,  570,  632,  632,
 /*   280 */   614,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*   290 */   849,  849,  849,  849,  849,  849,  849,  849,  566,  849,
 /*   300 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*   310 */   849,  849,  849,  849,  833,  849,  849,  849,  849,  849,
 /*   320 */   849,  826,  825,  849,  849,  849,  849,  849,  849,  849,
 /*   330 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
 /*   340 */   849,  849,  849,  849,  849,  849,  849,  849,  849,  720,
 /*   350 */   849,  712,  849,  799,  849,  849,  849,  849,  849,  849,
 /*   360 */   849,  849,  849,  849,  675,  749,  849,  748,  752,  747,
 /*   370 */   598,  849,  579,  849,  562,  567,  735,  733,  730,  727,
 /*   380 */   848,  812,  671,  668,  667,  587,  832,  841,  839,  741,
 /*   390 */   838,  837,  836,  834,  831,  818,  737,  736,  663,  804,
 /*   400 */   803,  590,  822,  821,  820,  824,  828,  819,  699,  589,
 /*   410 */   586,  595,  652,  651,  659,  657,  656,  655,  654,  653,
 /*   420 */   650,  597,  605,  616,  644,  629,  628,  809,  811,  808,
 /*   430 */   807,  637,  636,  642,  641,  640,  639,  638,  635,  634,
 /*   440 */   633,  626,  625,  631,  624,  647,  646,  643,  623,  666,
 /*   450 */   665,  664,  661,  622,  621,  620,  752,  619,  618,  758,
 /*   460 */   757,  745,  788,  686,  685,  684,  696,  695,  708,  707,
 /*   470 */   743,  742,  709,  694,  688,  687,  703,  702,  701,  700,
 /*   480 */   692,  682,  714,  717,  716,  713,  790,  698,  787,  847,
 /*   490 */   846,  845,  844,  843,  792,  791,  759,  756,  609,  610,
 /*   500 */   816,  814,  815,  813,  612,  611,  608,  607,  789,  677,
 /*   510 */   676,  785,  782,  774,  770,  786,  783,  775,  771,  769,
 /*   520 */   768,  754,  753,  751,  750,  746,  755,  600,  678,  674,
 /*   530 */   673,  744,  680,  679,  617,  615,  613,  594,  592,  585,
 /*   540 */   583,  582,  584,  580,  578,  577,  576,  575,  574,  603,
 /*   550 */   602,  601,  599,  598,  572,  569,  568,  564,  563,  561,


};

/* The next table maps tokens into fallback tokens.  If a construct
** like the following:
** 
**      %fallback ID X Y Z.
**







|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>


|

|
|
|

|
|

|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|


|
|
|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>

|
|
|
|

|
|


|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>

|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>







100313
100314
100315
100316
100317
100318
100319
100320
100321
100322
100323
100324
100325
100326
100327
100328
100329
100330
100331
100332
100333
100334
100335
100336
100337
100338
100339
100340
100341
100342
100343
100344

100345
100346
100347
100348
100349
100350
100351
100352
100353
100354
100355
100356
100357
100358
100359
100360
100361
100362
100363
100364
100365
100366
100367
100368
100369
100370
100371
100372
100373
100374
100375
100376
100377
100378
100379
100380

100381
100382
100383
100384
100385
100386
100387
100388
100389
100390
100391
100392
100393
100394
100395
100396
100397
100398
100399
100400
100401
100402
100403
100404
100405
100406
100407
100408
100409
100410
100411
100412
100413
100414
100415
100416
100417
100418
100419
100420
100421
100422
100423
100424
100425
100426
100427
100428
100429
100430
100431
100432
100433
100434
100435
100436
100437
100438
100439
100440
100441
100442
100443
100444
100445
100446
100447
100448
100449
100450
100451
100452
100453
100454
100455
100456
100457
100458
100459
100460
100461
100462
100463
100464
100465
100466
100467
100468
100469
100470
100471
100472
100473
100474
100475
100476
100477
100478
100479
100480
100481
100482
100483
100484
100485
100486
100487
100488
100489
100490
100491
100492
100493
100494
100495
100496
100497
100498
100499
100500
100501
100502
100503
100504
100505
100506
100507
100508
100509
100510
100511
100512
100513
100514
100515
100516
100517
100518
100519
100520
100521
100522
100523
100524
100525
100526
100527
100528
100529
100530
100531
100532
100533
100534
100535
100536
100537
100538
100539
100540
100541
100542
100543
100544
100545
100546
100547
100548
100549
100550
100551
100552
100553
100554
100555
100556
100557
100558
100559
100560
100561
100562
100563
100564
100565
100566
100567
100568
100569
100570
100571
100572
100573
100574
100575
100576
100577
100578
100579
100580
100581
100582
100583
100584
100585
100586
100587
100588
100589
100590
100591
100592
100593
100594
100595
100596
100597
100598
100599
100600
100601
100602
100603
100604
100605
100606
100607
100608
100609
100610
100611
100612
100613
100614
100615
100616
100617
100618
100619
100620
100621
100622
100623
100624
100625
100626
100627
100628
100629
100630
100631
100632
100633
100634
100635
100636
100637
100638
100639
100640
100641
100642
100643
100644
100645
100646
100647
100648
100649
100650
100651
100652
100653
100654
100655
100656
100657
100658
100659
100660
100661
100662
100663
100664
100665
100666
100667
100668
100669
100670
100671
100672
100673
100674
100675
100676
100677
100678
100679
100680
100681
100682
100683
100684
100685
100686
100687
100688
100689
100690
100691
100692
100693
100694
100695
100696
100697
100698
100699
100700
100701
100702
100703
100704
100705
100706
100707
100708
100709
100710
100711
100712
100713
100714
100715
100716
100717
100718
100719
100720
100721
100722
100723
100724
100725
100726
100727
100728
100729
100730
100731
100732
100733
100734
100735
100736
100737
100738
100739
100740
100741
100742
100743
100744
100745
100746
100747
100748
100749
100750
100751
100752
100753
100754
100755
100756
100757
100758
100759
100760
100761
100762
**                     yy_action.  Used to detect hash collisions.
**  yy_shift_ofst[]    For each state, the offset into yy_action for
**                     shifting terminals.
**  yy_reduce_ofst[]   For each state, the offset into yy_action for
**                     shifting non-terminals after a reduce.
**  yy_default[]       Default action for each state.
*/
#define YY_ACTTAB_COUNT (1459)
static const YYACTIONTYPE yy_action[] = {
 /*     0 */   287,  881,  169,  383,    2,  155,  576,  546,   50,   50,
 /*    10 */    50,   50,   43,   48,   48,   48,   48,   47,   47,   46,
 /*    20 */    46,   46,   45,  220,  465,  464,  572,  571,  354,  481,
 /*    30 */   539,  533,   50,   50,   50,   50,  355,   48,   48,   48,
 /*    40 */    48,   47,   47,   46,   46,   46,   45,  220,  279,   51,
 /*    50 */    52,   42,  531,  530,  532,  532,   49,   49,   50,   50,
 /*    60 */    50,   50,  557,   48,   48,   48,   48,   47,   47,   46,
 /*    70 */    46,   46,   45,  220,  287,  546,  199,  301,  375,  620,
 /*    80 */    27,   48,   48,   48,   48,   47,   47,   46,   46,   46,
 /*    90 */    45,  220,  301,  378,  569,  568,  149,  555,  442,  346,
 /*   100 */   343,  342,  550,   64,  539,  533,  445,  221,  149,   53,
 /*   110 */   341,  346,  343,  342,   17,    6,  572,  571,  373,  621,
 /*   120 */   528,  528,  341,   51,   52,   42,  531,  530,  532,  532,
 /*   130 */    49,   49,   50,   50,   50,   50,  529,   48,   48,   48,
 /*   140 */    48,   47,   47,   46,   46,   46,   45,  220,  287,  526,
 /*   150 */   208,   57,  192,  123,  160,  129,  261,  349,  256,  348,
 /*   160 */   152,  179,  182,  181,  180,  208,  375,  252,  391,    7,
 /*   170 */   129,  261,  349,  256,  348,  152,  519,  218,  539,  533,
 /*   180 */   323,  378,  252,  570,  569,  568,  549,  388,  392,  393,
 /*   190 */   550,   83,  572,  571,  390,  570,  389,   51,   52,   42,
 /*   200 */   531,  530,  532,  532,   49,   49,   50,   50,   50,   50,
 /*   210 */   317,   48,   48,   48,   48,   47,   47,   46,   46,   46,
 /*   220 */    45,  220,  287,  414,   47,   47,   46,   46,   46,   45,

 /*   230 */   220,  324,  149,  622,  515,  346,  343,  342,  422,  159,
 /*   240 */   375,  270,  423,  375,  572,  571,  341,  546,  394,  219,
 /*   250 */   187,  527,  539,  533,  482,  378,  329,   16,  378,  172,
 /*   260 */   569,  568,  475,  498,  550,   84,  544,  550,   84,  415,
 /*   270 */   206,   51,   52,   42,  531,  530,  532,  532,   49,   49,
 /*   280 */    50,   50,   50,   50,  549,   48,   48,   48,   48,   47,
 /*   290 */    47,   46,   46,   46,   45,  220,  287,  542,  542,  542,
 /*   300 */   567,  566,  565,    1,  158,  260,  362,  572,  571,  362,
 /*   310 */   454,  363,  569,  568,  352,  546,  259,  236,  315,  235,
 /*   320 */   514,  572,  571,  382,  575,  347,  539,  533,  222,  223,
 /*   330 */    60,  122,  453,  136,  572,  571,  150,  190,  497,   33,
 /*   340 */   373,  493,  528,  528,   39,   51,   52,   42,  531,  530,
 /*   350 */   532,  532,   49,   49,   50,   50,   50,   50,  498,   48,
 /*   360 */    48,   48,   48,   47,   47,   46,   46,   46,   45,  220,
 /*   370 */   287,  549,  440,  391,  480,  569,  568,  424,  424,  331,
 /*   380 */   484,  375,  299,  556,   59,  433,  459,  570,  570,  569,
 /*   390 */   568,  525,  434,  392,  306,  310,  378,   44,   41,  137,
 /*   400 */   539,  533,  569,  568,  516,  550,   77,  176,  431,  373,
 /*   410 */   415,  528,  528,   30,  462,  496,  303,  524,  523,   51,
 /*   420 */    52,   42,  531,  530,  532,  532,   49,   49,   50,   50,
 /*   430 */    50,   50,  151,   48,   48,   48,   48,   47,   47,   46,
 /*   440 */    46,   46,   45,  220,  287,  360,  215,  375,  477,  579,
 /*   450 */   577,  305,  173,  307,  219,  253,  338,  188,  236,  315,
 /*   460 */   235,  500,  378,   46,   46,   46,   45,  220,  440,  222,
 /*   470 */   570,  550,   65,  513,  539,  533,  277,  232,  219,  430,
 /*   480 */    59,  247,  491,  570,  154,  192,  290,  151,  371,  524,
 /*   490 */   523,  549,  298,   51,   52,   42,  531,  530,  532,  532,
 /*   500 */    49,   49,   50,   50,   50,   50,  351,   48,   48,   48,
 /*   510 */    48,   47,   47,   46,   46,   46,   45,  220,  287,  549,
 /*   520 */   510,  229,  460,  231,  167,  243,  510,  245,  166,   58,
 /*   530 */   498,  551,  375,  546,  185,  552,  509,  321,  375,  572,
 /*   540 */   571,  290,  509,  317,  512,  322,  252,  378,  539,  533,
 /*   550 */   219,  289,  508,  378,  469,  174,  550,   77,  508,   56,
 /*   560 */   366,  420,  550,   84,  314,  468,  511,   51,   52,   42,
 /*   570 */   531,  530,  532,  532,   49,   49,   50,   50,   50,   50,
 /*   580 */   157,   48,   48,   48,   48,   47,   47,   46,   46,   46,

 /*   590 */    45,  220,  287,   29,  375,  253,  249,  216,  507,  230,
 /*   600 */   136,  546,  375,   34,  358,   32,  375,  569,  568,  378,
 /*   610 */   570,    4,  155,  373,  546,  528,  528,  378,  550,   61,
 /*   620 */   323,  378,  539,  533,  328,  498,  550,   69,  554,  325,
 /*   630 */   550,   69,  207,  184,  286,  570,  445,  517,  441,  198,
 /*   640 */   418,   51,   52,   42,  531,  530,  532,  532,   49,   49,
 /*   650 */    50,   50,   50,   50,  253,   48,   48,   48,   48,   47,
 /*   660 */    47,   46,   46,   46,   45,  220,  287,  549,  375,  570,
 /*   670 */   375,  373,  293,  528,  528,  375,  292,  551,  824,  183,
 /*   680 */   134,  552,  546,  378,  449,  378,  150,  375,   13,  375,
 /*   690 */   378,  297,  550,   86,  550,   89,  539,  533,  495,  550,
 /*   700 */    87,  121,  378,  132,  378,   12,   44,   41,  137,  153,
 /*   710 */   234,  550,   96,  550,   95,   51,   52,   42,  531,  530,
 /*   720 */   532,  532,   49,   49,   50,   50,   50,   50,  375,   48,
 /*   730 */    48,   48,   48,   47,   47,   46,   46,   46,   45,  220,
 /*   740 */   287,  375,  487,  378,  253,  308,  253,  133,  375,  517,
 /*   750 */   370,  198,  550,   98,  455,  456,  378,  140,  250,  570,
 /*   760 */   150,  570,  375,  378,  222,  550,   99,  489,  521,  521,
 /*   770 */   539,  533,  550,  124,  197,  134,  309,  378,  339,  503,
 /*   780 */   150,  296,  570,  295,  186,  213,  550,  125,  502,   51,
 /*   790 */    40,   42,  531,  530,  532,  532,   49,   49,   50,   50,
 /*   800 */    50,   50,  375,   48,   48,   48,   48,   47,   47,   46,
 /*   810 */    46,   46,   45,  220,  287,  479,  241,  378,  549,  323,
 /*   820 */   419,  408,  150,  154,  375,  222,  550,   90,  375,  473,
 /*   830 */   302,  570,  375,  407,  570,   18,  375,  316,  553,  378,
 /*   840 */   538,  537,  478,  378,  539,  533,  452,  378,  550,   94,
 /*   850 */    23,  378,  550,   93,  578,    2,  550,   85,   25,  240,
 /*   860 */   550,   92,  535,  534,   52,   42,  531,  530,  532,  532,
 /*   870 */    49,   49,   50,   50,   50,   50,  375,   48,   48,   48,
 /*   880 */    48,   47,   47,   46,   46,   46,   45,  220,  287,  536,
 /*   890 */   375,  378,  375,  493,  345,  196,  396,  375,   18,  195,
 /*   900 */   550,   68,  119,  191,  189,  378,  251,  378,  489,  204,
 /*   910 */   318,  375,  378,  489,  550,   88,  550,  128,  539,  533,
 /*   920 */   118,  550,  127,  570,  340,  570,  378,   22,  570,  549,
 /*   930 */    45,  220,  214,  549,  493,  550,  126,  549,  549,   42,
 /*   940 */   531,  530,  532,  532,   49,   49,   50,   50,   50,   50,
 /*   950 */   117,   48,   48,   48,   48,   47,   47,   46,   46,   46,
 /*   960 */    45,  220,   38,  369,  148,    3,  375,  493,  318,  379,
 /*   970 */   571,  330,  573,  265,  519,  218,  294,  205,  336,  561,
 /*   980 */   372,  378,  428,  570,  259,   38,  369,  570,    3,  375,
 /*   990 */   550,   67,  379,  571,  570,  171,  375,  241,  115,  367,
 /*  1000 */   375,  241,  375,  372,  378,  114,  263,  332,  241,  515,
 /*  1010 */   425,  378,  570,  550,   82,  378,  570,  378,  375,  241,
 /*  1020 */   550,   81,  367,  570,  550,   66,  550,   80,  154,   35,
 /*  1030 */    36,  483,  515,  378,  570,  201,   37,  377,  376,  238,
 /*  1040 */   403,  544,  550,   79,  401,  471,  470,  113,  560,  421,
 /*  1050 */   241,  400,   35,   36,  375,   15,  375,  143,  413,   37,
 /*  1060 */   377,  376,  399,  570,  544,  570,  417,  470,  559,  378,
 /*  1070 */   141,  378,  542,  542,  542,  541,  540,   14,  550,   91,
 /*  1080 */   550,   78,  222,  570,   38,  369,  130,    3,  375,  241,
 /*  1090 */   142,  379,  571,  203,  375,  542,  542,  542,  541,  540,
 /*  1100 */    14,  570,  372,  378,  570,  375,  410,   28,  369,  378,
 /*  1110 */     3,  375,  550,   76,  379,  571,  577,  305,  550,   75,
 /*  1120 */   378,  367,  374,  111,   20,  372,  378,   19,  543,  550,
 /*  1130 */    74,  515,  202,  110,  364,  550,   63,  570,   11,  108,
 /*  1140 */   506,  375,  494,  570,  367,  402,  241,  103,  405,  570,
 /*  1150 */   100,   35,   36,  375,  515,  570,  378,  570,   37,  377,
 /*  1160 */   376,  570,  101,  544,  200,  550,   62,   10,  378,  282,
 /*  1170 */   281,  280,  162,  278,   35,   36,  404,  550,   73,  387,
 /*  1180 */   395,   37,  377,  376,  386,  375,  544,   55,  304,  226,
 /*  1190 */   490,  572,  571,  488,  542,  542,  542,  541,  540,   14,
 /*  1200 */   378,  384,   97,  574,  212,  570,  164,  116,  570,  550,
 /*  1210 */    72,  255,  458,  564,  139,  563,  415,  542,  542,  542,
 /*  1220 */   541,  540,   14,  138,  375,  254,  570,  570,  562,  375,
 /*  1230 */   438,  515,  248,  381,  163,  246,    8,  380,  161,  378,
 /*  1240 */   570,  244,  242,  353,  378,  570,  237,  570,  550,   71,
 /*  1250 */   570,  178,  177,  550,   70,  222,  570,  570,  378,  475,
 /*  1260 */    25,  570,  326,  544,  236,  312,  227,  550,    9,  412,
 /*  1270 */   288,  411,  274,  359,  319,  222,  273,  570,  225,   26,
 /*  1280 */   361,   31,  548,  224,  570,  269,  570,   54,  505,  570,
 /*  1290 */   135,  357,  268,  570,  542,  542,  542,  271,  570,  272,
 /*  1300 */   570,  156,  547,  168,  266,  570,  570,  570,   24,  356,
 /*  1310 */   472,  492,  264,  350,  486,  217,  262,  300,  485,  462,
 /*  1320 */   466,  120,  210,  467,  147,  257,  211,  461,  463,  337,
 /*  1330 */   209,  285,  429,  146,  437,  335,  145,  436,  435,  443,
 /*  1340 */   333,  194,  427,  284,  144,  239,  327,  426,   21,  131,
 /*  1350 */   109,  313,  522,  291,  416,  112,  385,  170,  165,  558,
 /*  1360 */   545,  107,  106,  105,  104,  102,  406,  320,  504,  501,
 /*  1370 */   175,  447,  398,  283,  258,  459,  444,  275,  448,  220,
 /*  1380 */   446,  882,  344,  882,  518,  882,  882,  882,  882,  882,
 /*  1390 */   882,  882,  882,  882,  882,  882,  267,  882,  882,  409,
 /*  1400 */   882,  882,  882,  476,  474,  882,  457,  451,  882,  450,
 /*  1410 */   882,  882,  882,    5,  520,  397,  276,  368,  365,  439,
 /*  1420 */   432,  228,  882,  882,  311,  882,  882,  499,  882,  882,
 /*  1430 */   882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
 /*  1440 */   882,  882,  882,  882,  882,  882,  882,  882,  882,  233,
 /*  1450 */   882,  882,  882,  882,  882,  193,  882,  882,  334,
};
static const YYCODETYPE yy_lookahead[] = {
 /*     0 */    19,  140,  141,  142,  143,   24,    1,   26,   77,   78,
 /*    10 */    79,   80,   81,   82,   83,   84,   85,   86,   87,   88,
 /*    20 */    89,   90,   91,   92,    7,    8,   26,   27,   19,   23,
 /*    30 */    49,   50,   77,   78,   79,   80,   27,   82,   83,   84,
 /*    40 */    85,   86,   87,   88,   89,   90,   91,   92,   15,   68,
 /*    50 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*    60 */    79,   80,   23,   82,   83,   84,   85,   86,   87,   88,
 /*    70 */    89,   90,   91,   92,   19,   94,   22,   19,  148,  118,
 /*    80 */    25,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*    90 */    91,   92,   19,  163,   94,   95,   96,  170,  171,   99,
 /*   100 */   100,  101,  172,  173,   49,   50,  179,  195,   96,   54,
 /*   110 */   110,   99,  100,  101,  202,   22,   26,   27,  112,  118,
 /*   120 */   114,  115,  110,   68,   69,   70,   71,   72,   73,   74,
 /*   130 */    75,   76,   77,   78,   79,   80,  113,   82,   83,   84,
 /*   140 */    85,   86,   87,   88,   89,   90,   91,   92,   19,   23,
 /*   150 */    92,   25,  158,   24,   96,   97,   98,   99,  100,  101,
 /*   160 */   102,   25,  105,  106,  107,   92,  148,  109,  148,   76,
 /*   170 */    97,   98,   99,  100,  101,  102,   86,   87,   49,   50,
 /*   180 */   148,  163,  109,  163,   94,   95,  192,   97,  168,  169,
 /*   190 */   172,  173,   26,   27,  104,  163,  106,   68,   69,   70,
 /*   200 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   210 */   216,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   220 */    91,   92,   19,   11,   86,   87,   88,   89,   90,   91,
 /*   230 */    92,  237,   96,  118,   66,   99,  100,  101,   30,  118,
 /*   240 */   148,  223,   34,  148,   26,   27,  110,   26,  228,  229,
 /*   250 */   158,   23,   49,   50,   88,  163,   48,   22,  163,   24,
 /*   260 */    94,   95,   94,   25,  172,  173,   98,  172,  173,   57,
 /*   270 */   238,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   280 */    77,   78,   79,   80,  192,   82,   83,   84,   85,   86,
 /*   290 */    87,   88,   89,   90,   91,   92,   19,  129,  130,  131,
 /*   300 */     7,    8,    9,   22,  118,   98,  214,   26,   27,  214,
 /*   310 */    36,  219,   94,   95,  219,   94,  109,  105,  106,  107,
 /*   320 */    23,   26,   27,  144,  145,   51,   49,   50,  116,  150,
 /*   330 */    22,  152,   58,   95,   26,   27,   25,  158,  120,  136,
 /*   340 */   112,  164,  114,  115,   22,   68,   69,   70,   71,   72,
 /*   350 */    73,   74,   75,   76,   77,   78,   79,   80,  120,   82,
 /*   360 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   370 */    19,  192,  148,  148,   23,   94,   95,  105,  106,  107,
 /*   380 */   203,  148,  108,  159,  160,  179,  180,  163,  163,   94,
 /*   390 */    95,   23,  186,  168,  169,  216,  163,  220,  221,  222,
 /*   400 */    49,   50,   94,   95,   23,  172,  173,  183,  184,  112,
 /*   410 */    57,  114,  115,  136,  103,  120,  167,  168,  169,   68,
 /*   420 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   430 */    79,   80,   50,   82,   83,   84,   85,   86,   87,   88,
 /*   440 */    89,   90,   91,   92,   19,  212,  213,  148,   23,    0,
 /*   450 */     1,    2,   22,  228,  229,  148,   19,  158,  105,  106,
 /*   460 */   107,   25,  163,   88,   89,   90,   91,   92,  148,  116,
 /*   470 */   163,  172,  173,   11,   49,   50,  156,   16,  229,  159,
 /*   480 */   160,   16,   23,  163,   25,  158,  104,   50,  167,  168,
 /*   490 */   169,  192,  185,   68,   69,   70,   71,   72,   73,   74,
 /*   500 */    75,   76,   77,   78,   79,   80,   88,   82,   83,   84,
 /*   510 */    85,   86,   87,   88,   89,   90,   91,   92,   19,  192,
 /*   520 */    12,   60,   23,   62,   23,   60,   12,   62,   23,   22,
 /*   530 */    25,  113,  148,   26,   22,  117,   28,   19,  148,   26,
 /*   540 */    27,  104,   28,  216,   23,   27,  109,  163,   49,   50,
 /*   550 */   229,  153,   44,  163,   46,  119,  172,  173,   44,  232,
 /*   560 */    46,   21,  172,  173,  237,   57,   23,   68,   69,   70,
 /*   570 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   580 */    25,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   590 */    91,   92,   19,   25,  148,  148,   23,  213,   23,  138,
 /*   600 */    95,   94,  148,  135,  214,  137,  148,   94,   95,  163,
 /*   610 */   163,   35,   24,  112,   26,  114,  115,  163,  172,  173,
 /*   620 */   148,  163,   49,   50,  226,  120,  172,  173,  171,  231,
 /*   630 */   172,  173,  185,  158,  161,  163,  179,  164,  165,  166,
 /*   640 */   100,   68,   69,   70,   71,   72,   73,   74,   75,   76,
 /*   650 */    77,   78,   79,   80,  148,   82,   83,   84,   85,   86,
 /*   660 */    87,   88,   89,   90,   91,   92,   19,  192,  148,  163,
 /*   670 */   148,  112,  218,  114,  115,  148,  218,  113,  138,  204,
 /*   680 */   205,  117,   94,  163,   23,  163,   25,  148,   25,  148,
 /*   690 */   163,  185,  172,  173,  172,  173,   49,   50,  120,  172,
 /*   700 */   173,   22,  163,   39,  163,   35,  220,  221,  222,   35,
 /*   710 */   238,  172,  173,  172,  173,   68,   69,   70,   71,   72,
 /*   720 */    73,   74,   75,   76,   77,   78,   79,   80,  148,   82,
 /*   730 */    83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
 /*   740 */    19,  148,   27,  163,  148,   97,  148,  118,  148,  164,
 /*   750 */   165,  166,  172,  173,   97,   98,  163,   25,   23,  163,
 /*   760 */    25,  163,  148,  163,  116,  172,  173,  148,  129,  130,
 /*   770 */    49,   50,  172,  173,  204,  205,  128,  163,   23,   32,
 /*   780 */    25,  185,  163,  185,  158,   52,  172,  173,   41,   68,
 /*   790 */    69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
 /*   800 */    79,   80,  148,   82,   83,   84,   85,   86,   87,   88,
 /*   810 */    89,   90,   91,   92,   19,   23,  148,  163,  192,  148,
 /*   820 */    23,   23,   25,   25,  148,  116,  172,  173,  148,  163,
 /*   830 */   211,  163,  148,   23,  163,   25,  148,  128,  172,  163,
 /*   840 */    49,   50,   23,  163,   49,   50,   29,  163,  172,  173,
 /*   850 */    22,  163,  172,  173,  142,  143,  172,  173,  126,  191,
 /*   860 */   172,  173,   71,   72,   69,   70,   71,   72,   73,   74,
 /*   870 */    75,   76,   77,   78,   79,   80,  148,   82,   83,   84,
 /*   880 */    85,   86,   87,   88,   89,   90,   91,   92,   19,   98,
 /*   890 */   148,  163,  148,  164,   52,  158,   23,  148,   25,  158,
 /*   900 */   172,  173,   22,  158,  158,  163,   23,  163,  148,  238,
 /*   910 */   148,  148,  163,  148,  172,  173,  172,  173,   49,   50,
 /*   920 */    22,  172,  173,  163,   52,  163,  163,   22,  163,  192,
 /*   930 */    91,   92,  203,  192,  164,  172,  173,  192,  192,   70,
 /*   940 */    71,   72,   73,   74,   75,   76,   77,   78,   79,   80,
 /*   950 */    22,   82,   83,   84,   85,   86,   87,   88,   89,   90,
 /*   960 */    91,   92,   19,   20,  102,   22,  148,  164,  148,   26,
 /*   970 */    27,  211,  148,  203,   86,   87,  211,  215,   19,  148,
 /*   980 */    37,  163,   20,  163,  109,   19,   20,  163,   22,  148,
 /*   990 */   172,  173,   26,   27,  163,   24,  148,  148,  104,   56,
 /*  1000 */   148,  148,  148,   37,  163,   53,  203,   43,  148,   66,
 /*  1010 */    59,  163,  163,  172,  173,  163,  163,  163,  148,  148,
 /*  1020 */   172,  173,   56,  163,  172,  173,  172,  173,   25,   86,
 /*  1030 */    87,   88,   66,  163,  163,  215,   93,   94,   95,  138,
 /*  1040 */   191,   98,  172,  173,  191,  188,  189,   22,  148,   53,
 /*  1050 */   148,  191,   86,   87,  148,    5,  148,  104,    1,   93,
 /*  1060 */    94,   95,  191,  163,   98,  163,  188,  189,  148,  163,
 /*  1070 */    35,  163,  129,  130,  131,  132,  133,  134,  172,  173,
 /*  1080 */   172,  173,  116,  163,   19,   20,  148,   22,  148,  148,
 /*  1090 */   118,   26,   27,  191,  148,  129,  130,  131,  132,  133,
 /*  1100 */   134,  163,   37,  163,  163,  148,   27,   19,   20,  163,
 /*  1110 */    22,  148,  172,  173,   26,   27,    1,    2,  172,  173,
 /*  1120 */   163,   56,  148,  108,   76,   37,  163,   76,  148,  172,
 /*  1130 */   173,   66,  191,  127,  148,  172,  173,  163,   22,  119,
 /*  1140 */   148,  148,  148,  163,   56,   20,  148,  119,    1,  163,
 /*  1150 */   127,   86,   87,  148,   66,  163,  163,  163,   93,   94,
 /*  1160 */    95,  163,  108,   98,    5,  172,  173,   22,  163,   10,
 /*  1170 */    11,   12,   13,   14,   86,   87,   17,  172,  173,   23,
 /*  1180 */   128,   93,   94,   95,   23,  148,   98,   22,    3,  191,
 /*  1190 */   148,   26,   27,  148,  129,  130,  131,  132,  133,  134,
 /*  1200 */   163,    4,  162,  147,  178,  163,    6,  178,  163,  172,
 /*  1210 */   173,  148,  148,  147,   55,  147,   57,  129,  130,  131,
 /*  1220 */   132,  133,  134,   64,  148,  148,  163,  163,   13,  148,
 /*  1230 */   148,   66,  148,  147,  149,  148,   25,  157,  149,  163,
 /*  1240 */   163,  148,  148,  148,  163,  163,  148,  163,  172,  173,
 /*  1250 */   163,   86,   87,  172,  173,  116,  163,  163,  163,   94,
 /*  1260 */   126,  163,  148,   98,  105,  106,  107,  172,  173,  148,
 /*  1270 */   111,  148,  197,  123,  148,  116,  198,  163,  148,  124,
 /*  1280 */   122,  135,  192,  148,  163,  148,  163,  125,  155,  163,
 /*  1290 */   148,  148,  148,  163,  129,  130,  131,  200,  163,  199,
 /*  1300 */   163,  118,  201,  155,  208,  163,  163,  163,  104,  121,
 /*  1310 */   174,  209,  208,  104,  209,  224,  208,   47,  209,  103,
 /*  1320 */   182,   22,   92,  174,  154,  174,  227,  174,  176,   18,
 /*  1330 */   227,  177,  155,  154,  174,  155,  154,  174,  174,  182,
 /*  1340 */    45,  155,  155,  177,  154,  235,  155,  236,  135,   68,
 /*  1350 */    22,   18,  230,  155,  187,  187,  155,  217,  217,  151,
 /*  1360 */   164,  190,  190,  190,  190,  187,  197,  239,  175,  175,
 /*  1370 */   194,  164,  197,  146,  175,  180,  164,  196,  175,   92,
 /*  1380 */   175,  240,  176,  240,  164,  240,  240,  240,  240,  240,
 /*  1390 */   240,  240,  240,  240,  240,  240,  207,  240,  240,  197,
 /*  1400 */   240,  240,  240,  172,  172,  240,  181,  181,  240,  181,
 /*  1410 */   240,  240,  240,  194,  230,  197,  193,  225,  189,  184,
 /*  1420 */   184,  207,  240,  240,  207,  240,  240,  206,  240,  240,
 /*  1430 */   240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
 /*  1440 */   240,  240,  240,  240,  240,  240,  240,  240,  240,  239,
 /*  1450 */   240,  240,  240,  240,  240,  233,  240,  240,  234,
};
#define YY_SHIFT_USE_DFLT (-70)
#define YY_SHIFT_COUNT (382)
#define YY_SHIFT_MIN   (-69)
#define YY_SHIFT_MAX   (1333)
static const short yy_shift_ofst[] = {
 /*     0 */  1115,  966, 1159,  966, 1065, 1065,   90,   90,    0,  -19,
 /*    10 */  1065, 1065, 1065, 1065, 1065,  353,  513,  943, 1065, 1065,
 /*    20 */  1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
 /*    30 */  1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
 /*    40 */  1065, 1065, 1088, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
 /*    50 */  1065, 1065, 1065, 1065, 1065, 1065,  212,  888,  888,  221,
 /*    60 */  1139,   55,  573,  499,  425,  351,  277,  203,  129,  647,
 /*    70 */   647,  647,  647,  647,  647,  647,  647,  647,  647,  647,
 /*    80 */   647,  647,  647,  647,  647,  721,  647,  795,  869,  869,
 /*    90 */   -69,  -45,  -45,  -45,  -45,  -45,   -1,   58,  138,  375,
 /*   100 */   513,  513,  513,  513,  513,  513,  513,  513,  513,  513,
 /*   110 */   513,  513,  513,  513,  513,  513,  437,  513,  513,  513,
 /*   120 */   513,  513,  540,  221,  839, 1287,  -70,  -70,  -70, 1165,
 /*   130 */    73,  508,  508,  166,  308,  295,  218,  281,  513,  513,
 /*   140 */   513,  513,  513,  513,  513,  513,  513,  513,  513,  513,
 /*   150 */   513,  513,  513,  513,  513,  513,  513,  513,  513,  513,
 /*   160 */   513,  513,  513,  513,  513,  648,  588,  588,  588,  449,
 /*   170 */   709, 1139, 1139, 1139,  -70,  -70,  136,  168,  168,   12,
 /*   180 */   274,  274,  274,  505,  501,  514,  297,  228,    6,  559,
 /*   190 */   559,  559,  559,  272,  208,  559,  559,  238,  507,  418,
 /*   200 */   293,  732,    9,    9,  518,  732,  518,  311,  221,  747,
 /*   210 */   221,  747,  382,  747,    9,  747,  747,  468,  639,  639,
 /*   220 */   221,  436,  564,  235, 1183, 1183, 1328, 1281, 1134, 1333,
 /*   230 */  1333, 1333, 1333, 1134, 1328, 1281, 1281, 1183, 1311, 1213,
 /*   240 */  1295, 1183, 1183, 1311, 1183, 1311, 1183, 1311, 1299, 1209,
 /*   250 */  1209, 1209, 1270, 1230, 1230, 1299, 1209, 1216, 1209, 1270,
 /*   260 */  1209, 1209, 1188, 1204, 1188, 1204, 1188, 1204, 1183, 1183,
 /*   270 */  1146, 1162, 1158, 1155, 1150, 1134, 1139, 1211, 1215, 1215,
 /*   280 */  1200, 1200, 1200, 1200,  -70,  -70,  -70,  791,  461,  465,
 /*   290 */    57,   93,  873,  810,  798,  797,  755,  735,  661,  657,
 /*   300 */    17,  207,  459,  126, 1197, 1185, 1161, 1156, 1052, 1145,
 /*   310 */  1023, 1054, 1028, 1125, 1147, 1020, 1116, 1006, 1051, 1048,
 /*   320 */  1015, 1079, 1035,  972, 1057, 1050, 1025,  953,  901,  996,
 /*   330 */  1003,  952,  951,  964,  894,  971,  962,  959,  875,  862,
 /*   340 */   928,  872,  905,  898,  883,  880,  842,  817,  828,  733,
 /*   350 */   664,  819,  792,  629,  715,  674,  679,  578,  568,  670,
 /*   360 */   663,  576,  568,  575,  543,  555,  521,  512,  462,  430,
 /*   370 */   381,  368,  322,   23,  186,  121,  115,    1,  -39,   54,
 /*   380 */    39,   33,    5,
};
#define YY_REDUCE_USE_DFLT (-140)
#define YY_REDUCE_COUNT (286)
#define YY_REDUCE_MIN   (-139)
#define YY_REDUCE_MAX   (1236)
static const short yy_reduce_ofst[] = {
 /*     0 */  -139,   92,  179,  299,  233,   95,  225,   20,  224,  177,
 /*    10 */   458,  454,  390,  384,   18,  327,  320, 1095, 1081, 1076,
 /*    20 */  1037, 1005,  993,  963,  957,  946,  940,  908,  906,  870,
 /*    30 */   854,  852,  848,  841,  818,  763,  749,  744,  742,  728,
 /*    40 */   688,  684,  680,  676,  654,  614,  600,  593,  580,  541,
 /*    50 */   539,  527,  522,  520,  446,  -70,   -6,  321,  249,  473,
 /*    60 */   475,  486,  486,  486,  486,  486,  486,  486,  486,  486,
 /*    70 */   486,  486,  486,  486,  486,  486,  486,  486,  486,  486,
 /*    80 */   486,  486,  486,  486,  486,  486,  486,  486,  486,  486,
 /*    90 */   486,  486,  486,  486,  486,  486,  486,  -73,  486,  486,
 /*   100 */   998,  820,  941,  902,  871,  860,  853,  849,  671,  765,
 /*   110 */   472,  762,   32,  598,  760,  668,  206,  596,  506,  447,
 /*   120 */   307,  619,  398,  585,  486,  486,  486,  486,  486,  666,
 /*   130 */   457,  878,  857,  974, 1144, 1143, 1142, 1137, 1135, 1130,
 /*   140 */  1126, 1123, 1121, 1114, 1098, 1094, 1093, 1087, 1084, 1082,
 /*   150 */  1077, 1064, 1063, 1045, 1042,  994,  992,  986,  980,  974,
 /*   160 */   938,  920,  900,  831,  824,  746,  803,  770,  729,  712,
 /*   170 */   745,  741,  737,  626,  570,  -88, 1236, 1232, 1231, 1235,
 /*   180 */  1228, 1226, 1225, 1221, 1223, 1229, 1223, 1223, 1223, 1223,
 /*   190 */  1223, 1223, 1223, 1224, 1222, 1223, 1223, 1221, 1220, 1219,
 /*   200 */  1227, 1218, 1217, 1214, 1210, 1202, 1128, 1206, 1212, 1205,
 /*   210 */  1207, 1203, 1195, 1199, 1189, 1194, 1193, 1192, 1184, 1122,
 /*   220 */  1196, 1181, 1176, 1208, 1201, 1198, 1141, 1178, 1175, 1174,
 /*   230 */  1173, 1172, 1171, 1169, 1140, 1168, 1167, 1191, 1190, 1111,
 /*   240 */  1110, 1187, 1186, 1182, 1180, 1179, 1177, 1170, 1166, 1164,
 /*   250 */  1163, 1160, 1157, 1103, 1099, 1154, 1153, 1152, 1151, 1138,
 /*   260 */  1149, 1136, 1109, 1108, 1105, 1104, 1102, 1096, 1148, 1133,
 /*   270 */  1091, 1101, 1097, 1100, 1078, 1075, 1090, 1080, 1089, 1085,
 /*   280 */  1086, 1068, 1066, 1056, 1029, 1026, 1040,
};
static const YYACTIONTYPE yy_default[] = {
 /*     0 */   584,  819,  880,  880,  880,  819,  846,  846,  880,  708,
 /*    10 */   880,  880,  880,  880,  817,  880,  880,  880,  880,  880,
 /*    20 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*    30 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*    40 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*    50 */   880,  880,  880,  880,  880,  880,  880,  846,  846,  623,
 /*    60 */   712,  743,  880,  880,  880,  880,  880,  880,  880,  758,
 /*    70 */   757,  751,  750,  859,  723,  748,  741,  734,  745,  820,
 /*    80 */   813,  814,  812,  816,  821,  880,  744,  780,  797,  779,
 /*    90 */   791,  796,  803,  795,  792,  782,  781,  615,  783,  784,
 /*   100 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*   110 */   880,  880,  880,  880,  880,  880,  677,  880,  880,  880,
 /*   120 */   880,  880,  610,  880,  785,  786,  800,  799,  798,  880,
 /*   130 */   880,  880,  880,  880,  880,  880,  880,  880,  878,  880,
 /*   140 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*   150 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*   160 */   880,  880,  880,  880,  590,  880,  708,  708,  708,  584,
 /*   170 */   880,  880,  880,  880,  712,  702,  668,  880,  880,  880,
 /*   180 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  753,
 /*   190 */   691,  869,  871,  880,  852,  689,  612,  710,  625,  700,
 /*   200 */   592,  747,  725,  725,  864,  747,  864,  649,  880,  737,
 /*   210 */   880,  737,  646,  737,  725,  737,  737,  815,  880,  880,
 /*   220 */   880,  709,  700,  880,  716,  716,  759,  681,  747,  688,
 /*   230 */   688,  688,  688,  747,  759,  681,  681,  716,  607,  858,
 /*   240 */   856,  716,  716,  607,  716,  607,  716,  607,  825,  679,
 /*   250 */   679,  679,  664,  829,  829,  825,  679,  649,  679,  664,
 /*   260 */   679,  679,  729,  724,  729,  724,  729,  724,  716,  716,
 /*   270 */   880,  742,  730,  740,  738,  747,  880,  667,  600,  600,
 /*   280 */   589,  589,  589,  589,  651,  651,  633,  880,  880,  880,
 /*   290 */   880,  832,  880,  880,  880,  880,  880,  880,  880,  880,
 /*   300 */   880,  880,  880,  880,  880,  585,  880,  880,  880,  880,
 /*   310 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*   320 */   880,  880,  880,  862,  880,  880,  880,  880,  880,  880,
 /*   330 */   855,  854,  880,  880,  880,  880,  880,  880,  880,  880,
 /*   340 */   880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
 /*   350 */   880,  880,  880,  880,  880,  880,  880,  880,  739,  880,
 /*   360 */   731,  880,  818,  880,  880,  880,  880,  880,  880,  880,
 /*   370 */   880,  880,  880,  694,  768,  880,  767,  771,  766,  617,
 /*   380 */   880,  598,  880,  581,  586,  879,  836,  834,  841,  840,
 /*   390 */   839,  838,  837,  835,  833,  754,  752,  749,  746,  877,
 /*   400 */   831,  690,  687,  686,  606,  861,  870,  868,  760,  867,
 /*   410 */   866,  865,  863,  860,  847,  756,  755,  682,  823,  822,
 /*   420 */   609,  851,  850,  849,  853,  857,  848,  718,  608,  605,
 /*   430 */   614,  671,  670,  678,  676,  675,  674,  673,  672,  669,
 /*   440 */   616,  624,  635,  663,  648,  647,  828,  830,  827,  826,
 /*   450 */   656,  655,  661,  660,  659,  658,  657,  654,  653,  652,
 /*   460 */   645,  644,  650,  643,  666,  665,  662,  642,  685,  684,
 /*   470 */   683,  680,  641,  640,  639,  771,  638,  637,  777,  776,
 /*   480 */   764,  807,  705,  704,  703,  715,  714,  727,  726,  762,
 /*   490 */   761,  728,  713,  707,  706,  722,  721,  720,  719,  711,
 /*   500 */   701,  733,  736,  735,  732,  809,  717,  806,  876,  875,
 /*   510 */   874,  873,  872,  811,  810,  778,  775,  628,  629,  845,
 /*   520 */   843,  844,  842,  631,  630,  627,  626,  808,  696,  695,
 /*   530 */   804,  801,  793,  789,  805,  802,  794,  790,  788,  787,
 /*   540 */   773,  772,  770,  769,  765,  774,  619,  697,  693,  692,
 /*   550 */   763,  699,  698,  636,  634,  632,  613,  611,  604,  602,
 /*   560 */   601,  603,  599,  597,  596,  595,  594,  593,  622,  621,
 /*   570 */   620,  618,  617,  591,  588,  587,  583,  582,  580,
};

/* The next table maps tokens into fallback tokens.  If a construct
** like the following:
** 
**      %fallback ID X Y Z.
**
100953
100954
100955
100956
100957
100958
100959
100960
100961
100962
100963
100964
100965
100966
100967
100968
100969
  "orderby_opt",   "limit_opt",     "sclp",          "as",          
  "seltablist",    "stl_prefix",    "joinop",        "indexed_opt", 
  "on_opt",        "using_opt",     "joinop2",       "inscollist",  
  "sortlist",      "sortitem",      "nexprlist",     "setlist",     
  "insert_cmd",    "inscollist_opt",  "itemlist",      "exprlist",    
  "likeop",        "between_op",    "in_op",         "case_operand",
  "case_exprlist",  "case_else",     "uniqueflag",    "collate",     
  "plus_opt",      "number",        "trigger_decl",  "trigger_cmd_list",
  "trigger_time",  "trigger_event",  "foreach_clause",  "when_clause", 
  "trigger_cmd",   "trnm",          "tridxby",     
};
#endif /* NDEBUG */

#ifndef NDEBUG
/* For tracing reduce actions, the names of all rules are required.
*/
static const char *const yyRuleName[] = {







|
|
|







100964
100965
100966
100967
100968
100969
100970
100971
100972
100973
100974
100975
100976
100977
100978
100979
100980
  "orderby_opt",   "limit_opt",     "sclp",          "as",          
  "seltablist",    "stl_prefix",    "joinop",        "indexed_opt", 
  "on_opt",        "using_opt",     "joinop2",       "inscollist",  
  "sortlist",      "sortitem",      "nexprlist",     "setlist",     
  "insert_cmd",    "inscollist_opt",  "itemlist",      "exprlist",    
  "likeop",        "between_op",    "in_op",         "case_operand",
  "case_exprlist",  "case_else",     "uniqueflag",    "collate",     
  "nmnum",         "plus_opt",      "number",        "trigger_decl",
  "trigger_cmd_list",  "trigger_time",  "trigger_event",  "foreach_clause",
  "when_clause",   "trigger_cmd",   "trnm",          "tridxby",     
};
#endif /* NDEBUG */

#ifndef NDEBUG
/* For tracing reduce actions, the names of all rules are required.
*/
static const char *const yyRuleName[] = {
101216
101217
101218
101219
101220
101221
101222










101223
101224
101225
101226
101227
101228
101229
101230
101231
101232
101233
101234
101235
101236
101237
101238
101239
101240
101241
101242
101243
101244
101245
101246
101247
101248
101249
101250
101251
101252
101253
101254
101255
101256
101257
101258


101259
101260
101261
101262
101263
101264
101265
 /* 246 */ "idxlist_opt ::=",
 /* 247 */ "idxlist_opt ::= LP idxlist RP",
 /* 248 */ "idxlist ::= idxlist COMMA nm collate sortorder",
 /* 249 */ "idxlist ::= nm collate sortorder",
 /* 250 */ "collate ::=",
 /* 251 */ "collate ::= COLLATE ids",
 /* 252 */ "cmd ::= DROP INDEX ifexists fullname",










 /* 253 */ "plus_num ::= plus_opt number",
 /* 254 */ "minus_num ::= MINUS number",
 /* 255 */ "number ::= INTEGER|FLOAT",
 /* 256 */ "plus_opt ::= PLUS",
 /* 257 */ "plus_opt ::=",
 /* 258 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
 /* 259 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
 /* 260 */ "trigger_time ::= BEFORE",
 /* 261 */ "trigger_time ::= AFTER",
 /* 262 */ "trigger_time ::= INSTEAD OF",
 /* 263 */ "trigger_time ::=",
 /* 264 */ "trigger_event ::= DELETE|INSERT",
 /* 265 */ "trigger_event ::= UPDATE",
 /* 266 */ "trigger_event ::= UPDATE OF inscollist",
 /* 267 */ "foreach_clause ::=",
 /* 268 */ "foreach_clause ::= FOR EACH ROW",
 /* 269 */ "when_clause ::=",
 /* 270 */ "when_clause ::= WHEN expr",
 /* 271 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
 /* 272 */ "trigger_cmd_list ::= trigger_cmd SEMI",
 /* 273 */ "trnm ::= nm",
 /* 274 */ "trnm ::= nm DOT nm",
 /* 275 */ "tridxby ::=",
 /* 276 */ "tridxby ::= INDEXED BY nm",
 /* 277 */ "tridxby ::= NOT INDEXED",
 /* 278 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
 /* 279 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt VALUES LP itemlist RP",
 /* 280 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select",
 /* 281 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
 /* 282 */ "trigger_cmd ::= select",
 /* 283 */ "expr ::= RAISE LP IGNORE RP",
 /* 284 */ "expr ::= RAISE LP raisetype COMMA nm RP",
 /* 285 */ "raisetype ::= ROLLBACK",
 /* 286 */ "raisetype ::= ABORT",
 /* 287 */ "raisetype ::= FAIL",
 /* 288 */ "cmd ::= DROP TRIGGER ifexists fullname",


};
#endif /* NDEBUG */


#if YYSTACKDEPTH<=0
/*
** Try to increase the size of the parser stack.







>
>
>
>
>
>
>
>
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>







101227
101228
101229
101230
101231
101232
101233
101234
101235
101236
101237
101238
101239
101240
101241
101242
101243
101244
101245
101246
101247
101248
101249
101250
101251
101252
101253
101254
101255
101256
101257
101258
101259
101260
101261
101262
101263
101264
101265
101266
101267
101268
101269
101270
101271
101272
101273
101274
101275
101276
101277
101278
101279
101280
101281
101282
101283
101284
101285
101286
101287
101288
 /* 246 */ "idxlist_opt ::=",
 /* 247 */ "idxlist_opt ::= LP idxlist RP",
 /* 248 */ "idxlist ::= idxlist COMMA nm collate sortorder",
 /* 249 */ "idxlist ::= nm collate sortorder",
 /* 250 */ "collate ::=",
 /* 251 */ "collate ::= COLLATE ids",
 /* 252 */ "cmd ::= DROP INDEX ifexists fullname",
 /* 253 */ "cmd ::= PRAGMA nm dbnm",
 /* 254 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
 /* 255 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
 /* 256 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
 /* 257 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
 /* 258 */ "nmnum ::= plus_num",
 /* 259 */ "nmnum ::= nm",
 /* 260 */ "nmnum ::= ON",
 /* 261 */ "nmnum ::= DELETE",
 /* 262 */ "nmnum ::= DEFAULT",
 /* 263 */ "plus_num ::= plus_opt number",
 /* 264 */ "minus_num ::= MINUS number",
 /* 265 */ "number ::= INTEGER|FLOAT",
 /* 266 */ "plus_opt ::= PLUS",
 /* 267 */ "plus_opt ::=",
 /* 268 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
 /* 269 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
 /* 270 */ "trigger_time ::= BEFORE",
 /* 271 */ "trigger_time ::= AFTER",
 /* 272 */ "trigger_time ::= INSTEAD OF",
 /* 273 */ "trigger_time ::=",
 /* 274 */ "trigger_event ::= DELETE|INSERT",
 /* 275 */ "trigger_event ::= UPDATE",
 /* 276 */ "trigger_event ::= UPDATE OF inscollist",
 /* 277 */ "foreach_clause ::=",
 /* 278 */ "foreach_clause ::= FOR EACH ROW",
 /* 279 */ "when_clause ::=",
 /* 280 */ "when_clause ::= WHEN expr",
 /* 281 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
 /* 282 */ "trigger_cmd_list ::= trigger_cmd SEMI",
 /* 283 */ "trnm ::= nm",
 /* 284 */ "trnm ::= nm DOT nm",
 /* 285 */ "tridxby ::=",
 /* 286 */ "tridxby ::= INDEXED BY nm",
 /* 287 */ "tridxby ::= NOT INDEXED",
 /* 288 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
 /* 289 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt VALUES LP itemlist RP",
 /* 290 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select",
 /* 291 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
 /* 292 */ "trigger_cmd ::= select",
 /* 293 */ "expr ::= RAISE LP IGNORE RP",
 /* 294 */ "expr ::= RAISE LP raisetype COMMA nm RP",
 /* 295 */ "raisetype ::= ROLLBACK",
 /* 296 */ "raisetype ::= ABORT",
 /* 297 */ "raisetype ::= FAIL",
 /* 298 */ "cmd ::= DROP TRIGGER ifexists fullname",
 /* 299 */ "cmd ::= REINDEX",
 /* 300 */ "cmd ::= REINDEX nm dbnm",
};
#endif /* NDEBUG */


#if YYSTACKDEPTH<=0
/*
** Try to increase the size of the parser stack.
101333
101334
101335
101336
101337
101338
101339
101340
101341
101342
101343
101344
101345
101346
101347
101348
101349
101350
101351
101352
101353
101354
101355
101356
101357
101358
101359
101360
101361
101362
101363
101364
101365
101366
101367
101368
101369
101370
101371
101372
101373
101374
101375
101376
101377
101378
101379
101380
101381
101382
101383
101384
101385
101386
101387
101388
101389
101390
101391
101392
101393
101394
101395
101396
101397
101398
101399
101400
101401
101402
101403
101404
101405
101406
    ** Note: during a reduce, the only symbols destroyed are those
    ** which appear on the RHS of the rule, but which are not used
    ** inside the C code.
    */
    case 158: /* select */
    case 192: /* oneselect */
{
sqlite3SelectDelete(pParse->db, (yypminor->yy239));
}
      break;
    case 172: /* term */
    case 173: /* expr */
{
sqlite3ExprDelete(pParse->db, (yypminor->yy64).pExpr);
}
      break;
    case 177: /* idxlist_opt */
    case 185: /* idxlist */
    case 195: /* selcollist */
    case 198: /* groupby_opt */
    case 200: /* orderby_opt */
    case 202: /* sclp */
    case 212: /* sortlist */
    case 214: /* nexprlist */
    case 215: /* setlist */
    case 218: /* itemlist */
    case 219: /* exprlist */
    case 224: /* case_exprlist */
{
sqlite3ExprListDelete(pParse->db, (yypminor->yy462));
}
      break;
    case 191: /* fullname */
    case 196: /* from */
    case 204: /* seltablist */
    case 205: /* stl_prefix */
{
sqlite3SrcListDelete(pParse->db, (yypminor->yy285));
}
      break;
    case 197: /* where_opt */
    case 199: /* having_opt */
    case 208: /* on_opt */
    case 213: /* sortitem */
    case 223: /* case_operand */
    case 225: /* case_else */
    case 235: /* when_clause */
{
sqlite3ExprDelete(pParse->db, (yypminor->yy178));
}
      break;
    case 209: /* using_opt */
    case 211: /* inscollist */
    case 217: /* inscollist_opt */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy160));
}
      break;
    case 231: /* trigger_cmd_list */
    case 236: /* trigger_cmd */
{
sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy247));
}
      break;
    case 233: /* trigger_event */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy132).b);
}
      break;
    default:  break;   /* If no destructor action specified: do nothing */
  }
}

/*







|





|















|







|








|

|






|


|
|

|


|

|







101356
101357
101358
101359
101360
101361
101362
101363
101364
101365
101366
101367
101368
101369
101370
101371
101372
101373
101374
101375
101376
101377
101378
101379
101380
101381
101382
101383
101384
101385
101386
101387
101388
101389
101390
101391
101392
101393
101394
101395
101396
101397
101398
101399
101400
101401
101402
101403
101404
101405
101406
101407
101408
101409
101410
101411
101412
101413
101414
101415
101416
101417
101418
101419
101420
101421
101422
101423
101424
101425
101426
101427
101428
101429
    ** Note: during a reduce, the only symbols destroyed are those
    ** which appear on the RHS of the rule, but which are not used
    ** inside the C code.
    */
    case 158: /* select */
    case 192: /* oneselect */
{
sqlite3SelectDelete(pParse->db, (yypminor->yy459));
}
      break;
    case 172: /* term */
    case 173: /* expr */
{
sqlite3ExprDelete(pParse->db, (yypminor->yy22).pExpr);
}
      break;
    case 177: /* idxlist_opt */
    case 185: /* idxlist */
    case 195: /* selcollist */
    case 198: /* groupby_opt */
    case 200: /* orderby_opt */
    case 202: /* sclp */
    case 212: /* sortlist */
    case 214: /* nexprlist */
    case 215: /* setlist */
    case 218: /* itemlist */
    case 219: /* exprlist */
    case 224: /* case_exprlist */
{
sqlite3ExprListDelete(pParse->db, (yypminor->yy82));
}
      break;
    case 191: /* fullname */
    case 196: /* from */
    case 204: /* seltablist */
    case 205: /* stl_prefix */
{
sqlite3SrcListDelete(pParse->db, (yypminor->yy67));
}
      break;
    case 197: /* where_opt */
    case 199: /* having_opt */
    case 208: /* on_opt */
    case 213: /* sortitem */
    case 223: /* case_operand */
    case 225: /* case_else */
    case 236: /* when_clause */
{
sqlite3ExprDelete(pParse->db, (yypminor->yy2));
}
      break;
    case 209: /* using_opt */
    case 211: /* inscollist */
    case 217: /* inscollist_opt */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy240));
}
      break;
    case 232: /* trigger_cmd_list */
    case 237: /* trigger_cmd */
{
sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy347));
}
      break;
    case 234: /* trigger_event */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy210).b);
}
      break;
    default:  break;   /* If no destructor action specified: do nothing */
  }
}

/*
101891
101892
101893
101894
101895
101896
101897










101898
101899
101900
101901
101902
101903
101904
101905
101906
101907
101908
101909
101910
101911
101912

101913
101914
101915
101916
101917
101918
101919
101920
101921


101922
101923
101924
101925
101926
101927
101928
101929
101930
101931
101932
101933


101934
101935
101936
101937
101938
101939
101940
  { 177, 0 },
  { 177, 3 },
  { 185, 5 },
  { 185, 3 },
  { 227, 0 },
  { 227, 2 },
  { 145, 4 },










  { 168, 2 },
  { 169, 2 },
  { 229, 1 },
  { 228, 1 },
  { 228, 0 },
  { 145, 5 },
  { 230, 11 },
  { 232, 1 },
  { 232, 1 },
  { 232, 2 },
  { 232, 0 },
  { 233, 1 },
  { 233, 1 },
  { 233, 3 },
  { 234, 0 },

  { 234, 3 },
  { 235, 0 },
  { 235, 2 },
  { 231, 3 },
  { 231, 2 },
  { 237, 1 },
  { 237, 3 },
  { 238, 0 },
  { 238, 3 },


  { 238, 2 },
  { 236, 7 },
  { 236, 8 },
  { 236, 5 },
  { 236, 5 },
  { 236, 1 },
  { 173, 4 },
  { 173, 6 },
  { 189, 1 },
  { 189, 1 },
  { 189, 1 },
  { 145, 4 },


};

static void yy_accept(yyParser*);  /* Forward Declaration */

/*
** Perform a reduce action and the shift that must immediately
** follow the reduce.







>
>
>
>
>
>
>
>
>
>


|
|
|

|
|
<
<
<

|
|
|
>


|
|
|
|
|
|

>
>
|
|
|
|
|
|






>
>







101914
101915
101916
101917
101918
101919
101920
101921
101922
101923
101924
101925
101926
101927
101928
101929
101930
101931
101932
101933
101934
101935
101936
101937
101938



101939
101940
101941
101942
101943
101944
101945
101946
101947
101948
101949
101950
101951
101952
101953
101954
101955
101956
101957
101958
101959
101960
101961
101962
101963
101964
101965
101966
101967
101968
101969
101970
101971
101972
101973
101974
101975
  { 177, 0 },
  { 177, 3 },
  { 185, 5 },
  { 185, 3 },
  { 227, 0 },
  { 227, 2 },
  { 145, 4 },
  { 145, 3 },
  { 145, 5 },
  { 145, 6 },
  { 145, 5 },
  { 145, 6 },
  { 228, 1 },
  { 228, 1 },
  { 228, 1 },
  { 228, 1 },
  { 228, 1 },
  { 168, 2 },
  { 169, 2 },
  { 230, 1 },
  { 229, 1 },
  { 229, 0 },
  { 145, 5 },
  { 231, 11 },
  { 233, 1 },



  { 233, 1 },
  { 233, 2 },
  { 233, 0 },
  { 234, 1 },
  { 234, 1 },
  { 234, 3 },
  { 235, 0 },
  { 235, 3 },
  { 236, 0 },
  { 236, 2 },
  { 232, 3 },
  { 232, 2 },
  { 238, 1 },
  { 238, 3 },
  { 239, 0 },
  { 239, 3 },
  { 239, 2 },
  { 237, 7 },
  { 237, 8 },
  { 237, 5 },
  { 237, 5 },
  { 237, 1 },
  { 173, 4 },
  { 173, 6 },
  { 189, 1 },
  { 189, 1 },
  { 189, 1 },
  { 145, 4 },
  { 145, 1 },
  { 145, 3 },
};

static void yy_accept(yyParser*);  /* Forward Declaration */

/*
** Perform a reduce action and the shift that must immediately
** follow the reduce.
101994
101995
101996
101997
101998
101999
102000
102001
102002
102003
102004
102005
102006
102007
102008
102009
102010
102011
102012
102013
102014
102015
102016
102017
102018
      case 7: /* explain ::= EXPLAIN QUERY PLAN */
{ sqlite3BeginParse(pParse, 2); }
        break;
      case 8: /* cmdx ::= cmd */
{ sqlite3FinishCoding(pParse); }
        break;
      case 9: /* cmd ::= BEGIN transtype trans_opt */
{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy230);}
        break;
      case 13: /* transtype ::= */
{yygotominor.yy230 = TK_DEFERRED;}
        break;
      case 14: /* transtype ::= DEFERRED */
      case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15);
      case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16);
      case 115: /* multiselect_op ::= UNION */ yytestcase(yyruleno==115);
      case 117: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==117);
{yygotominor.yy230 = yymsp[0].major;}
        break;
      case 17: /* cmd ::= COMMIT trans_opt */
      case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18);
{sqlite3CommitTransaction(pParse);}
        break;
      case 19: /* cmd ::= ROLLBACK trans_opt */
{sqlite3RollbackTransaction(pParse);}







|


|






|







102029
102030
102031
102032
102033
102034
102035
102036
102037
102038
102039
102040
102041
102042
102043
102044
102045
102046
102047
102048
102049
102050
102051
102052
102053
      case 7: /* explain ::= EXPLAIN QUERY PLAN */
{ sqlite3BeginParse(pParse, 2); }
        break;
      case 8: /* cmdx ::= cmd */
{ sqlite3FinishCoding(pParse); }
        break;
      case 9: /* cmd ::= BEGIN transtype trans_opt */
{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy412);}
        break;
      case 13: /* transtype ::= */
{yygotominor.yy412 = TK_DEFERRED;}
        break;
      case 14: /* transtype ::= DEFERRED */
      case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15);
      case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16);
      case 115: /* multiselect_op ::= UNION */ yytestcase(yyruleno==115);
      case 117: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==117);
{yygotominor.yy412 = yymsp[0].major;}
        break;
      case 17: /* cmd ::= COMMIT trans_opt */
      case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18);
{sqlite3CommitTransaction(pParse);}
        break;
      case 19: /* cmd ::= ROLLBACK trans_opt */
{sqlite3RollbackTransaction(pParse);}
102030
102031
102032
102033
102034
102035
102036
102037
102038
102039
102040
102041
102042
102043
102044
102045
102046
102047
102048
102049
102050
102051
102052
102053
102054
102055
102056
102057
102058
102059
102060
102061
102062
102063
102064
102065
102066
102067
102068
102069
102070
102071
102072
102073
102074
102075
102076
102077
102078
102079
102080
102081
102082
102083
102084
102085
      case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
{
  sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
}
        break;
      case 26: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
{
   sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy230,0,0,yymsp[-2].minor.yy230);
}
        break;
      case 27: /* createkw ::= CREATE */
{
  pParse->db->lookaside.bEnabled = 0;
  yygotominor.yy0 = yymsp[0].minor.yy0;
}
        break;
      case 28: /* ifnotexists ::= */
      case 31: /* temp ::= */ yytestcase(yyruleno==31);
      case 70: /* autoinc ::= */ yytestcase(yyruleno==70);
      case 83: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==83);
      case 85: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==85);
      case 87: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==87);
      case 98: /* defer_subclause_opt ::= */ yytestcase(yyruleno==98);
      case 109: /* ifexists ::= */ yytestcase(yyruleno==109);
      case 120: /* distinct ::= ALL */ yytestcase(yyruleno==120);
      case 121: /* distinct ::= */ yytestcase(yyruleno==121);
      case 222: /* between_op ::= BETWEEN */ yytestcase(yyruleno==222);
      case 225: /* in_op ::= IN */ yytestcase(yyruleno==225);
{yygotominor.yy230 = 0;}
        break;
      case 29: /* ifnotexists ::= IF NOT EXISTS */
      case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30);
      case 71: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==71);
      case 86: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==86);
      case 108: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==108);
      case 119: /* distinct ::= DISTINCT */ yytestcase(yyruleno==119);
      case 223: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==223);
      case 226: /* in_op ::= NOT IN */ yytestcase(yyruleno==226);
{yygotominor.yy230 = 1;}
        break;
      case 32: /* create_table_args ::= LP columnlist conslist_opt RP */
{
  sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
}
        break;
      case 33: /* create_table_args ::= AS select */
{
  sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy239);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy239);
}
        break;
      case 36: /* column ::= columnid type carglist */
{
  yygotominor.yy0.z = yymsp[-2].minor.yy0.z;
  yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse->sLastToken.n;
}







|




















|









|








|
|







102065
102066
102067
102068
102069
102070
102071
102072
102073
102074
102075
102076
102077
102078
102079
102080
102081
102082
102083
102084
102085
102086
102087
102088
102089
102090
102091
102092
102093
102094
102095
102096
102097
102098
102099
102100
102101
102102
102103
102104
102105
102106
102107
102108
102109
102110
102111
102112
102113
102114
102115
102116
102117
102118
102119
102120
      case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
{
  sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
}
        break;
      case 26: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
{
   sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy412,0,0,yymsp[-2].minor.yy412);
}
        break;
      case 27: /* createkw ::= CREATE */
{
  pParse->db->lookaside.bEnabled = 0;
  yygotominor.yy0 = yymsp[0].minor.yy0;
}
        break;
      case 28: /* ifnotexists ::= */
      case 31: /* temp ::= */ yytestcase(yyruleno==31);
      case 70: /* autoinc ::= */ yytestcase(yyruleno==70);
      case 83: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ yytestcase(yyruleno==83);
      case 85: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==85);
      case 87: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==87);
      case 98: /* defer_subclause_opt ::= */ yytestcase(yyruleno==98);
      case 109: /* ifexists ::= */ yytestcase(yyruleno==109);
      case 120: /* distinct ::= ALL */ yytestcase(yyruleno==120);
      case 121: /* distinct ::= */ yytestcase(yyruleno==121);
      case 222: /* between_op ::= BETWEEN */ yytestcase(yyruleno==222);
      case 225: /* in_op ::= IN */ yytestcase(yyruleno==225);
{yygotominor.yy412 = 0;}
        break;
      case 29: /* ifnotexists ::= IF NOT EXISTS */
      case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30);
      case 71: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==71);
      case 86: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==86);
      case 108: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==108);
      case 119: /* distinct ::= DISTINCT */ yytestcase(yyruleno==119);
      case 223: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==223);
      case 226: /* in_op ::= NOT IN */ yytestcase(yyruleno==226);
{yygotominor.yy412 = 1;}
        break;
      case 32: /* create_table_args ::= LP columnlist conslist_opt RP */
{
  sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
}
        break;
      case 33: /* create_table_args ::= AS select */
{
  sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy459);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy459);
}
        break;
      case 36: /* column ::= columnid type carglist */
{
  yygotominor.yy0.z = yymsp[-2].minor.yy0.z;
  yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse->sLastToken.n;
}
102099
102100
102101
102102
102103
102104
102105





102106
102107
102108
102109
102110
102111
102112
102113
102114
102115
102116
      case 46: /* typetoken ::= typename */ yytestcase(yyruleno==46);
      case 49: /* typename ::= ids */ yytestcase(yyruleno==49);
      case 127: /* as ::= AS nm */ yytestcase(yyruleno==127);
      case 128: /* as ::= ids */ yytestcase(yyruleno==128);
      case 138: /* dbnm ::= DOT nm */ yytestcase(yyruleno==138);
      case 147: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==147);
      case 251: /* collate ::= COLLATE ids */ yytestcase(yyruleno==251);





      case 253: /* plus_num ::= plus_opt number */ yytestcase(yyruleno==253);
      case 254: /* minus_num ::= MINUS number */ yytestcase(yyruleno==254);
      case 255: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==255);
      case 273: /* trnm ::= nm */ yytestcase(yyruleno==273);
{yygotominor.yy0 = yymsp[0].minor.yy0;}
        break;
      case 45: /* type ::= typetoken */
{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
        break;
      case 47: /* typetoken ::= typename LP signed RP */
{







>
>
>
>
>
|
|
|
|







102134
102135
102136
102137
102138
102139
102140
102141
102142
102143
102144
102145
102146
102147
102148
102149
102150
102151
102152
102153
102154
102155
102156
      case 46: /* typetoken ::= typename */ yytestcase(yyruleno==46);
      case 49: /* typename ::= ids */ yytestcase(yyruleno==49);
      case 127: /* as ::= AS nm */ yytestcase(yyruleno==127);
      case 128: /* as ::= ids */ yytestcase(yyruleno==128);
      case 138: /* dbnm ::= DOT nm */ yytestcase(yyruleno==138);
      case 147: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==147);
      case 251: /* collate ::= COLLATE ids */ yytestcase(yyruleno==251);
      case 258: /* nmnum ::= plus_num */ yytestcase(yyruleno==258);
      case 259: /* nmnum ::= nm */ yytestcase(yyruleno==259);
      case 260: /* nmnum ::= ON */ yytestcase(yyruleno==260);
      case 261: /* nmnum ::= DELETE */ yytestcase(yyruleno==261);
      case 262: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==262);
      case 263: /* plus_num ::= plus_opt number */ yytestcase(yyruleno==263);
      case 264: /* minus_num ::= MINUS number */ yytestcase(yyruleno==264);
      case 265: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==265);
      case 283: /* trnm ::= nm */ yytestcase(yyruleno==283);
{yygotominor.yy0 = yymsp[0].minor.yy0;}
        break;
      case 45: /* type ::= typetoken */
{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
        break;
      case 47: /* typetoken ::= typename LP signed RP */
{
102125
102126
102127
102128
102129
102130
102131
102132
102133
102134
102135
102136
102137
102138
102139
102140
102141
102142
102143
102144
102145
102146
102147
102148
102149
102150
102151
102152
102153
102154
102155
102156
102157
102158
102159
102160
102161
102162
102163
102164
102165
102166
102167
102168
102169
102170
102171
102172
102173
102174
102175
102176
102177
102178
102179
102180
102181
102182
102183
102184
102185
102186
102187
102188
102189
102190
102191
102192
102193
102194
102195
102196
102197
102198
102199
102200
102201
102202
102203
102204
102205
102206
102207
102208
102209
102210
102211
102212
102213
102214
102215
102216
102217
102218
102219
102220
102221
102222
102223
102224
102225
102226
102227
102228
102229
102230
102231
102232
102233
102234
102235
102236
102237
102238
102239
102240
102241
102242
102243
102244
102245
102246
102247
102248
102249
102250
102251
102252
102253
102254
102255
102256
102257
102258
102259
102260
102261
102262
102263
102264
102265
102266
102267
102268
102269
102270
102271
102272
102273
102274
102275
102276
102277
102278
102279
102280
102281
102282
102283
102284
102285
102286
102287
102288
102289
102290
102291
102292
102293
102294
102295
102296
102297
102298
102299
102300
102301
102302
102303
102304
102305
102306
102307
102308
102309
102310
102311
102312
102313
102314
102315
102316
102317
102318
102319
102320
102321
102322
102323
102324
102325
102326
102327
102328
102329
102330
102331
102332
102333
102334
102335
102336
102337
102338
102339
102340
102341
102342
102343
102344
102345
102346
102347
102348
102349
102350
102351
102352
102353
102354
102355
102356
102357
102358
102359
102360
102361
102362
102363
102364
102365
102366
102367
102368
102369
102370
102371
102372
102373
102374
102375
102376
102377
102378
102379
102380
102381
102382
102383
102384
102385
102386
102387
102388
102389
102390
102391
102392
102393
102394
102395
102396
102397
102398
102399
102400
102401
102402
102403
102404
102405
102406
102407
102408
102409
102410
102411
102412
102413
102414
102415
102416
102417
102418
102419
102420
102421
102422
102423
102424
102425
102426
102427
102428
102429
102430
102431
102432
102433
102434
102435
102436
102437
102438
102439
102440
102441
102442
102443
102444
102445
102446
102447
102448
102449
102450
102451
102452
102453
102454
102455
102456
102457
102458
102459
102460
102461
102462
102463
102464
102465
102466
102467
102468
102469
102470
102471
102472
102473
102474
102475
102476
102477
102478
102479
102480
102481
102482
102483
102484
102485
102486
102487
102488
102489
102490
102491
102492
102493
102494
102495
102496
102497
102498
102499
102500
102501
102502
102503
102504
102505
102506
102507
102508
102509
102510
102511
102512
102513
102514
102515
102516
102517
102518
102519
102520
102521
102522
102523
102524
102525
102526
102527
102528
102529
102530
102531
102532
102533
102534
102535
102536
102537
102538
102539
102540
102541
102542
102543
102544
102545
102546
102547
102548
102549
102550
102551
102552
102553
102554
102555
102556
102557
102558
102559
102560
102561
102562
102563
102564
102565
102566
102567
102568
102569
102570
102571
102572
102573
102574
102575
102576
102577
102578
102579
102580
102581
102582
102583
102584
102585
102586
102587
102588
102589
102590
102591
102592
102593
102594
102595
102596
102597
102598
102599
102600
102601
102602
102603
102604
102605
102606
102607
102608
102609
102610
102611
102612
102613
102614
102615
102616
102617
102618
102619
102620
102621
102622
102623
102624
102625
102626
102627
102628
102629
102630
102631
102632
102633
102634
102635
102636
102637
102638
102639
102640
102641
102642
102643
102644
102645
102646
102647
102648
102649
102650
102651
102652
102653
102654
102655
102656
102657
102658
102659
102660
102661
102662
102663
102664
102665
102666
102667
102668
102669
102670
102671
102672
102673
102674
102675
102676
102677
102678
102679
102680
102681
102682
102683
102684
102685
102686
102687
102688
102689
102690
102691
102692
102693
102694
102695
102696
102697
102698
102699
102700
102701
102702
102703
102704
102705
102706
102707
102708
102709
102710
102711
102712
102713
102714
102715
102716
102717
102718
102719
102720
102721
102722
102723
102724
102725
102726
102727
102728
102729
102730
102731
102732
102733
102734
102735
102736
102737
102738
102739
102740
102741
102742
102743
102744
102745
102746
102747
102748
102749
102750
102751
102752
102753
102754
102755
102756
102757
102758
102759
102760
102761
102762
102763
102764
102765
102766
102767
102768
102769
102770
102771
102772
102773
102774
102775
102776
102777
102778
102779
102780
102781
102782
102783
102784
102785
102786
102787
102788
102789
102790
102791
102792
102793
102794
102795
102796
102797
102798
102799
102800
102801
102802
102803
102804
102805
102806
102807
102808
102809
102810
102811
102812
102813
102814
102815
102816
102817
102818
102819
102820
102821
102822
102823
102824
102825
102826
102827
102828
102829
102830
102831
102832
102833
102834
102835
102836
102837
102838
102839
102840
102841















102842
102843
102844
102845
102846
102847
102848
102849
102850
102851
102852
102853
102854
102855
102856
102857
102858
102859
102860
102861
102862
102863
102864
102865
102866
102867
102868
102869
102870
102871
102872
102873
102874
102875
102876
102877
102878
102879
102880
102881
102882
102883
102884
102885
102886
102887
102888
102889
102890
102891
102892
102893
102894
102895
102896
102897
102898
102899
102900
102901
102902
102903
102904
102905
102906
102907
102908
102909
102910
102911
102912
102913
102914
102915
102916
102917
102918
102919
102920
102921
102922
102923
102924
102925
102926
102927
102928
102929
102930
102931
102932
102933
102934
102935
102936
102937
102938
102939
102940
102941
102942
102943
102944
102945
102946
102947
102948
102949
102950
102951
102952
102953
102954
102955
102956
102957
102958
102959
102960






102961
102962
102963
102964
102965
102966
102967
}
        break;
      case 50: /* typename ::= typename ids */
{yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
        break;
      case 57: /* ccons ::= DEFAULT term */
      case 59: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==59);
{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy64);}
        break;
      case 58: /* ccons ::= DEFAULT LP expr RP */
{sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy64);}
        break;
      case 60: /* ccons ::= DEFAULT MINUS term */
{
  ExprSpan v;
  v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy64.pExpr, 0, 0);
  v.zStart = yymsp[-1].minor.yy0.z;
  v.zEnd = yymsp[0].minor.yy64.zEnd;
  sqlite3AddDefaultValue(pParse,&v);
}
        break;
      case 61: /* ccons ::= DEFAULT id */
{
  ExprSpan v;
  spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0);
  sqlite3AddDefaultValue(pParse,&v);
}
        break;
      case 63: /* ccons ::= NOT NULL onconf */
{sqlite3AddNotNull(pParse, yymsp[0].minor.yy230);}
        break;
      case 64: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy230,yymsp[0].minor.yy230,yymsp[-2].minor.yy230);}
        break;
      case 65: /* ccons ::= UNIQUE onconf */
{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy230,0,0,0,0);}
        break;
      case 66: /* ccons ::= CHECK LP expr RP */
{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy64.pExpr);}
        break;
      case 67: /* ccons ::= REFERENCES nm idxlist_opt refargs */
{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy462,yymsp[0].minor.yy230);}
        break;
      case 68: /* ccons ::= defer_subclause */
{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy230);}
        break;
      case 69: /* ccons ::= COLLATE ids */
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
        break;
      case 72: /* refargs ::= */
{ yygotominor.yy230 = OE_None*0x0101; /* EV: R-19803-45884 */}
        break;
      case 73: /* refargs ::= refargs refarg */
{ yygotominor.yy230 = (yymsp[-1].minor.yy230 & ~yymsp[0].minor.yy13.mask) | yymsp[0].minor.yy13.value; }
        break;
      case 74: /* refarg ::= MATCH nm */
      case 75: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==75);
{ yygotominor.yy13.value = 0;     yygotominor.yy13.mask = 0x000000; }
        break;
      case 76: /* refarg ::= ON DELETE refact */
{ yygotominor.yy13.value = yymsp[0].minor.yy230;     yygotominor.yy13.mask = 0x0000ff; }
        break;
      case 77: /* refarg ::= ON UPDATE refact */
{ yygotominor.yy13.value = yymsp[0].minor.yy230<<8;  yygotominor.yy13.mask = 0x00ff00; }
        break;
      case 78: /* refact ::= SET NULL */
{ yygotominor.yy230 = OE_SetNull;  /* EV: R-33326-45252 */}
        break;
      case 79: /* refact ::= SET DEFAULT */
{ yygotominor.yy230 = OE_SetDflt;  /* EV: R-33326-45252 */}
        break;
      case 80: /* refact ::= CASCADE */
{ yygotominor.yy230 = OE_Cascade;  /* EV: R-33326-45252 */}
        break;
      case 81: /* refact ::= RESTRICT */
{ yygotominor.yy230 = OE_Restrict; /* EV: R-33326-45252 */}
        break;
      case 82: /* refact ::= NO ACTION */
{ yygotominor.yy230 = OE_None;     /* EV: R-33326-45252 */}
        break;
      case 84: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
      case 99: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==99);
      case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==101);
      case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104);
{yygotominor.yy230 = yymsp[0].minor.yy230;}
        break;
      case 88: /* conslist_opt ::= */
{yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
        break;
      case 89: /* conslist_opt ::= COMMA conslist */
{yygotominor.yy0 = yymsp[-1].minor.yy0;}
        break;
      case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy462,yymsp[0].minor.yy230,yymsp[-2].minor.yy230,0);}
        break;
      case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy462,yymsp[0].minor.yy230,0,0,0,0);}
        break;
      case 96: /* tcons ::= CHECK LP expr RP onconf */
{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy64.pExpr);}
        break;
      case 97: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
{
    sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy462, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy462, yymsp[-1].minor.yy230);
    sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy230);
}
        break;
      case 100: /* onconf ::= */
{yygotominor.yy230 = OE_Default;}
        break;
      case 102: /* orconf ::= */
{yygotominor.yy44 = OE_Default;}
        break;
      case 103: /* orconf ::= OR resolvetype */
{yygotominor.yy44 = (u8)yymsp[0].minor.yy230;}
        break;
      case 105: /* resolvetype ::= IGNORE */
{yygotominor.yy230 = OE_Ignore;}
        break;
      case 106: /* resolvetype ::= REPLACE */
{yygotominor.yy230 = OE_Replace;}
        break;
      case 107: /* cmd ::= DROP TABLE ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy285, 0, yymsp[-1].minor.yy230);
}
        break;
      case 110: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */
{
  sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy239, yymsp[-6].minor.yy230, yymsp[-4].minor.yy230);
}
        break;
      case 111: /* cmd ::= DROP VIEW ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy285, 1, yymsp[-1].minor.yy230);
}
        break;
      case 112: /* cmd ::= select */
{
  SelectDest dest = {SRT_Output, 0, 0, 0, 0};
  sqlite3Select(pParse, yymsp[0].minor.yy239, &dest);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy239);
}
        break;
      case 113: /* select ::= oneselect */
{yygotominor.yy239 = yymsp[0].minor.yy239;}
        break;
      case 114: /* select ::= select multiselect_op oneselect */
{
  if( yymsp[0].minor.yy239 ){
    yymsp[0].minor.yy239->op = (u8)yymsp[-1].minor.yy230;
    yymsp[0].minor.yy239->pPrior = yymsp[-2].minor.yy239;
  }else{
    sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy239);
  }
  yygotominor.yy239 = yymsp[0].minor.yy239;
}
        break;
      case 116: /* multiselect_op ::= UNION ALL */
{yygotominor.yy230 = TK_ALL;}
        break;
      case 118: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
{
  yygotominor.yy239 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy462,yymsp[-5].minor.yy285,yymsp[-4].minor.yy178,yymsp[-3].minor.yy462,yymsp[-2].minor.yy178,yymsp[-1].minor.yy462,yymsp[-7].minor.yy230,yymsp[0].minor.yy270.pLimit,yymsp[0].minor.yy270.pOffset);
}
        break;
      case 122: /* sclp ::= selcollist COMMA */
      case 247: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==247);
{yygotominor.yy462 = yymsp[-1].minor.yy462;}
        break;
      case 123: /* sclp ::= */
      case 151: /* orderby_opt ::= */ yytestcase(yyruleno==151);
      case 159: /* groupby_opt ::= */ yytestcase(yyruleno==159);
      case 240: /* exprlist ::= */ yytestcase(yyruleno==240);
      case 246: /* idxlist_opt ::= */ yytestcase(yyruleno==246);
{yygotominor.yy462 = 0;}
        break;
      case 124: /* selcollist ::= sclp expr as */
{
   yygotominor.yy462 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy462, yymsp[-1].minor.yy64.pExpr);
   if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy462, &yymsp[0].minor.yy0, 1);
   sqlite3ExprListSetSpan(pParse,yygotominor.yy462,&yymsp[-1].minor.yy64);
}
        break;
      case 125: /* selcollist ::= sclp STAR */
{
  Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0);
  yygotominor.yy462 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy462, p);
}
        break;
      case 126: /* selcollist ::= sclp nm DOT STAR */
{
  Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
  Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy462, pDot);
}
        break;
      case 129: /* as ::= */
{yygotominor.yy0.n = 0;}
        break;
      case 130: /* from ::= */
{yygotominor.yy285 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy285));}
        break;
      case 131: /* from ::= FROM seltablist */
{
  yygotominor.yy285 = yymsp[0].minor.yy285;
  sqlite3SrcListShiftJoinType(yygotominor.yy285);
}
        break;
      case 132: /* stl_prefix ::= seltablist joinop */
{
   yygotominor.yy285 = yymsp[-1].minor.yy285;
   if( ALWAYS(yygotominor.yy285 && yygotominor.yy285->nSrc>0) ) yygotominor.yy285->a[yygotominor.yy285->nSrc-1].jointype = (u8)yymsp[0].minor.yy230;
}
        break;
      case 133: /* stl_prefix ::= */
{yygotominor.yy285 = 0;}
        break;
      case 134: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
{
  yygotominor.yy285 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy285,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy178,yymsp[0].minor.yy160);
  sqlite3SrcListIndexedBy(pParse, yygotominor.yy285, &yymsp[-2].minor.yy0);
}
        break;
      case 135: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
{
    yygotominor.yy285 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy285,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy239,yymsp[-1].minor.yy178,yymsp[0].minor.yy160);
  }
        break;
      case 136: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
{
    if( yymsp[-6].minor.yy285==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy178==0 && yymsp[0].minor.yy160==0 ){
      yygotominor.yy285 = yymsp[-4].minor.yy285;
    }else{
      Select *pSubquery;
      sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy285);
      pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy285,0,0,0,0,0,0,0);
      yygotominor.yy285 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy285,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy178,yymsp[0].minor.yy160);
    }
  }
        break;
      case 137: /* dbnm ::= */
      case 146: /* indexed_opt ::= */ yytestcase(yyruleno==146);
{yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
        break;
      case 139: /* fullname ::= nm dbnm */
{yygotominor.yy285 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
        break;
      case 140: /* joinop ::= COMMA|JOIN */
{ yygotominor.yy230 = JT_INNER; }
        break;
      case 141: /* joinop ::= JOIN_KW JOIN */
{ yygotominor.yy230 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
        break;
      case 142: /* joinop ::= JOIN_KW nm JOIN */
{ yygotominor.yy230 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
        break;
      case 143: /* joinop ::= JOIN_KW nm nm JOIN */
{ yygotominor.yy230 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
        break;
      case 144: /* on_opt ::= ON expr */
      case 155: /* sortitem ::= expr */ yytestcase(yyruleno==155);
      case 162: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==162);
      case 169: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==169);
      case 235: /* case_else ::= ELSE expr */ yytestcase(yyruleno==235);
      case 237: /* case_operand ::= expr */ yytestcase(yyruleno==237);
{yygotominor.yy178 = yymsp[0].minor.yy64.pExpr;}
        break;
      case 145: /* on_opt ::= */
      case 161: /* having_opt ::= */ yytestcase(yyruleno==161);
      case 168: /* where_opt ::= */ yytestcase(yyruleno==168);
      case 236: /* case_else ::= */ yytestcase(yyruleno==236);
      case 238: /* case_operand ::= */ yytestcase(yyruleno==238);
{yygotominor.yy178 = 0;}
        break;
      case 148: /* indexed_opt ::= NOT INDEXED */
{yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
        break;
      case 149: /* using_opt ::= USING LP inscollist RP */
      case 181: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==181);
{yygotominor.yy160 = yymsp[-1].minor.yy160;}
        break;
      case 150: /* using_opt ::= */
      case 180: /* inscollist_opt ::= */ yytestcase(yyruleno==180);
{yygotominor.yy160 = 0;}
        break;
      case 152: /* orderby_opt ::= ORDER BY sortlist */
      case 160: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==160);
      case 239: /* exprlist ::= nexprlist */ yytestcase(yyruleno==239);
{yygotominor.yy462 = yymsp[0].minor.yy462;}
        break;
      case 153: /* sortlist ::= sortlist COMMA sortitem sortorder */
{
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy462,yymsp[-1].minor.yy178);
  if( yygotominor.yy462 ) yygotominor.yy462->a[yygotominor.yy462->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy230;
}
        break;
      case 154: /* sortlist ::= sortitem sortorder */
{
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy178);
  if( yygotominor.yy462 && ALWAYS(yygotominor.yy462->a) ) yygotominor.yy462->a[0].sortOrder = (u8)yymsp[0].minor.yy230;
}
        break;
      case 156: /* sortorder ::= ASC */
      case 158: /* sortorder ::= */ yytestcase(yyruleno==158);
{yygotominor.yy230 = SQLITE_SO_ASC;}
        break;
      case 157: /* sortorder ::= DESC */
{yygotominor.yy230 = SQLITE_SO_DESC;}
        break;
      case 163: /* limit_opt ::= */
{yygotominor.yy270.pLimit = 0; yygotominor.yy270.pOffset = 0;}
        break;
      case 164: /* limit_opt ::= LIMIT expr */
{yygotominor.yy270.pLimit = yymsp[0].minor.yy64.pExpr; yygotominor.yy270.pOffset = 0;}
        break;
      case 165: /* limit_opt ::= LIMIT expr OFFSET expr */
{yygotominor.yy270.pLimit = yymsp[-2].minor.yy64.pExpr; yygotominor.yy270.pOffset = yymsp[0].minor.yy64.pExpr;}
        break;
      case 166: /* limit_opt ::= LIMIT expr COMMA expr */
{yygotominor.yy270.pOffset = yymsp[-2].minor.yy64.pExpr; yygotominor.yy270.pLimit = yymsp[0].minor.yy64.pExpr;}
        break;
      case 167: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy285, &yymsp[-1].minor.yy0);
  sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy285,yymsp[0].minor.yy178);
}
        break;
      case 170: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy285, &yymsp[-3].minor.yy0);
  sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy462,"set list"); 
  sqlite3Update(pParse,yymsp[-4].minor.yy285,yymsp[-1].minor.yy462,yymsp[0].minor.yy178,yymsp[-5].minor.yy44);
}
        break;
      case 171: /* setlist ::= setlist COMMA nm EQ expr */
{
  yygotominor.yy462 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy462, yymsp[0].minor.yy64.pExpr);
  sqlite3ExprListSetName(pParse, yygotominor.yy462, &yymsp[-2].minor.yy0, 1);
}
        break;
      case 172: /* setlist ::= nm EQ expr */
{
  yygotominor.yy462 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy64.pExpr);
  sqlite3ExprListSetName(pParse, yygotominor.yy462, &yymsp[-2].minor.yy0, 1);
}
        break;
      case 173: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP */
{sqlite3Insert(pParse, yymsp[-5].minor.yy285, yymsp[-1].minor.yy462, 0, yymsp[-4].minor.yy160, yymsp[-7].minor.yy44);}
        break;
      case 174: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
{sqlite3Insert(pParse, yymsp[-2].minor.yy285, 0, yymsp[0].minor.yy239, yymsp[-1].minor.yy160, yymsp[-4].minor.yy44);}
        break;
      case 175: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
{sqlite3Insert(pParse, yymsp[-3].minor.yy285, 0, 0, yymsp[-2].minor.yy160, yymsp[-5].minor.yy44);}
        break;
      case 176: /* insert_cmd ::= INSERT orconf */
{yygotominor.yy44 = yymsp[0].minor.yy44;}
        break;
      case 177: /* insert_cmd ::= REPLACE */
{yygotominor.yy44 = OE_Replace;}
        break;
      case 178: /* itemlist ::= itemlist COMMA expr */
      case 241: /* nexprlist ::= nexprlist COMMA expr */ yytestcase(yyruleno==241);
{yygotominor.yy462 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy462,yymsp[0].minor.yy64.pExpr);}
        break;
      case 179: /* itemlist ::= expr */
      case 242: /* nexprlist ::= expr */ yytestcase(yyruleno==242);
{yygotominor.yy462 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy64.pExpr);}
        break;
      case 182: /* inscollist ::= inscollist COMMA nm */
{yygotominor.yy160 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy160,&yymsp[0].minor.yy0);}
        break;
      case 183: /* inscollist ::= nm */
{yygotominor.yy160 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
        break;
      case 184: /* expr ::= term */
{yygotominor.yy64 = yymsp[0].minor.yy64;}
        break;
      case 185: /* expr ::= LP expr RP */
{yygotominor.yy64.pExpr = yymsp[-1].minor.yy64.pExpr; spanSet(&yygotominor.yy64,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);}
        break;
      case 186: /* term ::= NULL */
      case 191: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==191);
      case 192: /* term ::= STRING */ yytestcase(yyruleno==192);
{spanExpr(&yygotominor.yy64, pParse, yymsp[0].major, &yymsp[0].minor.yy0);}
        break;
      case 187: /* expr ::= id */
      case 188: /* expr ::= JOIN_KW */ yytestcase(yyruleno==188);
{spanExpr(&yygotominor.yy64, pParse, TK_ID, &yymsp[0].minor.yy0);}
        break;
      case 189: /* expr ::= nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
  spanSet(&yygotominor.yy64,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 190: /* expr ::= nm DOT nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
  yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
  spanSet(&yygotominor.yy64,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 193: /* expr ::= REGISTER */
{
  /* When doing a nested parse, one can include terms in an expression
  ** that look like this:   #1 #2 ...  These terms refer to registers
  ** in the virtual machine.  #N is the N-th register. */
  if( pParse->nested==0 ){
    sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &yymsp[0].minor.yy0);
    yygotominor.yy64.pExpr = 0;
  }else{
    yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &yymsp[0].minor.yy0);
    if( yygotominor.yy64.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yygotominor.yy64.pExpr->iTable);
  }
  spanSet(&yygotominor.yy64, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 194: /* expr ::= VARIABLE */
{
  spanExpr(&yygotominor.yy64, pParse, TK_VARIABLE, &yymsp[0].minor.yy0);
  sqlite3ExprAssignVarNumber(pParse, yygotominor.yy64.pExpr);
  spanSet(&yygotominor.yy64, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 195: /* expr ::= expr COLLATE ids */
{
  yygotominor.yy64.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy64.pExpr, &yymsp[0].minor.yy0);
  yygotominor.yy64.zStart = yymsp[-2].minor.yy64.zStart;
  yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 196: /* expr ::= CAST LP expr AS typetoken RP */
{
  yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy64.pExpr, 0, &yymsp[-1].minor.yy0);
  spanSet(&yygotominor.yy64,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 197: /* expr ::= ID LP distinct exprlist RP */
{
  if( yymsp[-1].minor.yy462 && yymsp[-1].minor.yy462->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
    sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
  }
  yygotominor.yy64.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy462, &yymsp[-4].minor.yy0);
  spanSet(&yygotominor.yy64,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
  if( yymsp[-2].minor.yy230 && yygotominor.yy64.pExpr ){
    yygotominor.yy64.pExpr->flags |= EP_Distinct;
  }
}
        break;
      case 198: /* expr ::= ID LP STAR RP */
{
  yygotominor.yy64.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
  spanSet(&yygotominor.yy64,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 199: /* term ::= CTIME_KW */
{
  /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
  ** treated as functions that return constants */
  yygotominor.yy64.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
  if( yygotominor.yy64.pExpr ){
    yygotominor.yy64.pExpr->op = TK_CONST_FUNC;  
  }
  spanSet(&yygotominor.yy64, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 200: /* expr ::= expr AND expr */
      case 201: /* expr ::= expr OR expr */ yytestcase(yyruleno==201);
      case 202: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==202);
      case 203: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==203);
      case 204: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==204);
      case 205: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==205);
      case 206: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==206);
      case 207: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==207);
{spanBinaryExpr(&yygotominor.yy64,pParse,yymsp[-1].major,&yymsp[-2].minor.yy64,&yymsp[0].minor.yy64);}
        break;
      case 208: /* likeop ::= LIKE_KW */
      case 210: /* likeop ::= MATCH */ yytestcase(yyruleno==210);
{yygotominor.yy440.eOperator = yymsp[0].minor.yy0; yygotominor.yy440.not = 0;}
        break;
      case 209: /* likeop ::= NOT LIKE_KW */
      case 211: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==211);
{yygotominor.yy440.eOperator = yymsp[0].minor.yy0; yygotominor.yy440.not = 1;}
        break;
      case 212: /* expr ::= expr likeop expr */
{
  ExprList *pList;
  pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy64.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy64.pExpr);
  yygotominor.yy64.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy440.eOperator);
  if( yymsp[-1].minor.yy440.not ) yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy64.pExpr, 0, 0);
  yygotominor.yy64.zStart = yymsp[-2].minor.yy64.zStart;
  yygotominor.yy64.zEnd = yymsp[0].minor.yy64.zEnd;
  if( yygotominor.yy64.pExpr ) yygotominor.yy64.pExpr->flags |= EP_InfixFunc;
}
        break;
      case 213: /* expr ::= expr likeop expr ESCAPE expr */
{
  ExprList *pList;
  pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy64.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy64.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy64.pExpr);
  yygotominor.yy64.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy440.eOperator);
  if( yymsp[-3].minor.yy440.not ) yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy64.pExpr, 0, 0);
  yygotominor.yy64.zStart = yymsp[-4].minor.yy64.zStart;
  yygotominor.yy64.zEnd = yymsp[0].minor.yy64.zEnd;
  if( yygotominor.yy64.pExpr ) yygotominor.yy64.pExpr->flags |= EP_InfixFunc;
}
        break;
      case 214: /* expr ::= expr ISNULL|NOTNULL */
{spanUnaryPostfix(&yygotominor.yy64,pParse,yymsp[0].major,&yymsp[-1].minor.yy64,&yymsp[0].minor.yy0);}
        break;
      case 215: /* expr ::= expr NOT NULL */
{spanUnaryPostfix(&yygotominor.yy64,pParse,TK_NOTNULL,&yymsp[-2].minor.yy64,&yymsp[0].minor.yy0);}
        break;
      case 216: /* expr ::= expr IS expr */
{
  spanBinaryExpr(&yygotominor.yy64,pParse,TK_IS,&yymsp[-2].minor.yy64,&yymsp[0].minor.yy64);
  binaryToUnaryIfNull(pParse, yymsp[0].minor.yy64.pExpr, yygotominor.yy64.pExpr, TK_ISNULL);
}
        break;
      case 217: /* expr ::= expr IS NOT expr */
{
  spanBinaryExpr(&yygotominor.yy64,pParse,TK_ISNOT,&yymsp[-3].minor.yy64,&yymsp[0].minor.yy64);
  binaryToUnaryIfNull(pParse, yymsp[0].minor.yy64.pExpr, yygotominor.yy64.pExpr, TK_NOTNULL);
}
        break;
      case 218: /* expr ::= NOT expr */
      case 219: /* expr ::= BITNOT expr */ yytestcase(yyruleno==219);
{spanUnaryPrefix(&yygotominor.yy64,pParse,yymsp[-1].major,&yymsp[0].minor.yy64,&yymsp[-1].minor.yy0);}
        break;
      case 220: /* expr ::= MINUS expr */
{spanUnaryPrefix(&yygotominor.yy64,pParse,TK_UMINUS,&yymsp[0].minor.yy64,&yymsp[-1].minor.yy0);}
        break;
      case 221: /* expr ::= PLUS expr */
{spanUnaryPrefix(&yygotominor.yy64,pParse,TK_UPLUS,&yymsp[0].minor.yy64,&yymsp[-1].minor.yy0);}
        break;
      case 224: /* expr ::= expr between_op expr AND expr */
{
  ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy64.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy64.pExpr);
  yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy64.pExpr, 0, 0);
  if( yygotominor.yy64.pExpr ){
    yygotominor.yy64.pExpr->x.pList = pList;
  }else{
    sqlite3ExprListDelete(pParse->db, pList);
  } 
  if( yymsp[-3].minor.yy230 ) yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy64.pExpr, 0, 0);
  yygotominor.yy64.zStart = yymsp[-4].minor.yy64.zStart;
  yygotominor.yy64.zEnd = yymsp[0].minor.yy64.zEnd;
}
        break;
      case 227: /* expr ::= expr in_op LP exprlist RP */
{
    if( yymsp[-1].minor.yy462==0 ){
      /* Expressions of the form
      **
      **      expr1 IN ()
      **      expr1 NOT IN ()
      **
      ** simplify to constants 0 (false) and 1 (true), respectively,
      ** regardless of the value of expr1.
      */
      yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_INTEGER, 0, 0, &sqlite3IntTokens[yymsp[-3].minor.yy230]);
      sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy64.pExpr);
    }else{
      yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy64.pExpr, 0, 0);
      if( yygotominor.yy64.pExpr ){
        yygotominor.yy64.pExpr->x.pList = yymsp[-1].minor.yy462;
        sqlite3ExprSetHeight(pParse, yygotominor.yy64.pExpr);
      }else{
        sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy462);
      }
      if( yymsp[-3].minor.yy230 ) yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy64.pExpr, 0, 0);
    }
    yygotominor.yy64.zStart = yymsp[-4].minor.yy64.zStart;
    yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 228: /* expr ::= LP select RP */
{
    yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
    if( yygotominor.yy64.pExpr ){
      yygotominor.yy64.pExpr->x.pSelect = yymsp[-1].minor.yy239;
      ExprSetProperty(yygotominor.yy64.pExpr, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, yygotominor.yy64.pExpr);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy239);
    }
    yygotominor.yy64.zStart = yymsp[-2].minor.yy0.z;
    yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 229: /* expr ::= expr in_op LP select RP */
{
    yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy64.pExpr, 0, 0);
    if( yygotominor.yy64.pExpr ){
      yygotominor.yy64.pExpr->x.pSelect = yymsp[-1].minor.yy239;
      ExprSetProperty(yygotominor.yy64.pExpr, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, yygotominor.yy64.pExpr);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy239);
    }
    if( yymsp[-3].minor.yy230 ) yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy64.pExpr, 0, 0);
    yygotominor.yy64.zStart = yymsp[-4].minor.yy64.zStart;
    yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 230: /* expr ::= expr in_op nm dbnm */
{
    SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);
    yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy64.pExpr, 0, 0);
    if( yygotominor.yy64.pExpr ){
      yygotominor.yy64.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
      ExprSetProperty(yygotominor.yy64.pExpr, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, yygotominor.yy64.pExpr);
    }else{
      sqlite3SrcListDelete(pParse->db, pSrc);
    }
    if( yymsp[-2].minor.yy230 ) yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy64.pExpr, 0, 0);
    yygotominor.yy64.zStart = yymsp[-3].minor.yy64.zStart;
    yygotominor.yy64.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n];
  }
        break;
      case 231: /* expr ::= EXISTS LP select RP */
{
    Expr *p = yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
    if( p ){
      p->x.pSelect = yymsp[-1].minor.yy239;
      ExprSetProperty(p, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, p);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy239);
    }
    yygotominor.yy64.zStart = yymsp[-3].minor.yy0.z;
    yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 232: /* expr ::= CASE case_operand case_exprlist case_else END */
{
  yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy178, yymsp[-1].minor.yy178, 0);
  if( yygotominor.yy64.pExpr ){
    yygotominor.yy64.pExpr->x.pList = yymsp[-2].minor.yy462;
    sqlite3ExprSetHeight(pParse, yygotominor.yy64.pExpr);
  }else{
    sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy462);
  }
  yygotominor.yy64.zStart = yymsp[-4].minor.yy0.z;
  yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 233: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
{
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy462, yymsp[-2].minor.yy64.pExpr);
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,yygotominor.yy462, yymsp[0].minor.yy64.pExpr);
}
        break;
      case 234: /* case_exprlist ::= WHEN expr THEN expr */
{
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy64.pExpr);
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,yygotominor.yy462, yymsp[0].minor.yy64.pExpr);
}
        break;
      case 243: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
{
  sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, 
                     sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy462, yymsp[-9].minor.yy230,
                      &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy230);
}
        break;
      case 244: /* uniqueflag ::= UNIQUE */
      case 286: /* raisetype ::= ABORT */ yytestcase(yyruleno==286);
{yygotominor.yy230 = OE_Abort;}
        break;
      case 245: /* uniqueflag ::= */
{yygotominor.yy230 = OE_None;}
        break;
      case 248: /* idxlist ::= idxlist COMMA nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3Expr(pParse->db, TK_COLUMN, 0);
    sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy462, p);
  sqlite3ExprListSetName(pParse,yygotominor.yy462,&yymsp[-2].minor.yy0,1);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy462, "index");
  if( yygotominor.yy462 ) yygotominor.yy462->a[yygotominor.yy462->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy230;
}
        break;
      case 249: /* idxlist ::= nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
    sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy462 = sqlite3ExprListAppend(pParse,0, p);
  sqlite3ExprListSetName(pParse, yygotominor.yy462, &yymsp[-2].minor.yy0, 1);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy462, "index");
  if( yygotominor.yy462 ) yygotominor.yy462->a[yygotominor.yy462->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy230;
}
        break;
      case 250: /* collate ::= */
{yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
        break;
      case 252: /* cmd ::= DROP INDEX ifexists fullname */
{sqlite3DropIndex(pParse, yymsp[0].minor.yy285, yymsp[-1].minor.yy230);}
        break;















      case 258: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
{
  Token all;
  all.z = yymsp[-3].minor.yy0.z;
  all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
  sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy247, &all);
}
        break;
      case 259: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
{
  sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy230, yymsp[-4].minor.yy132.a, yymsp[-4].minor.yy132.b, yymsp[-2].minor.yy285, yymsp[0].minor.yy178, yymsp[-10].minor.yy230, yymsp[-8].minor.yy230);
  yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0);
}
        break;
      case 260: /* trigger_time ::= BEFORE */
      case 263: /* trigger_time ::= */ yytestcase(yyruleno==263);
{ yygotominor.yy230 = TK_BEFORE; }
        break;
      case 261: /* trigger_time ::= AFTER */
{ yygotominor.yy230 = TK_AFTER;  }
        break;
      case 262: /* trigger_time ::= INSTEAD OF */
{ yygotominor.yy230 = TK_INSTEAD;}
        break;
      case 264: /* trigger_event ::= DELETE|INSERT */
      case 265: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==265);
{yygotominor.yy132.a = yymsp[0].major; yygotominor.yy132.b = 0;}
        break;
      case 266: /* trigger_event ::= UPDATE OF inscollist */
{yygotominor.yy132.a = TK_UPDATE; yygotominor.yy132.b = yymsp[0].minor.yy160;}
        break;
      case 269: /* when_clause ::= */
{ yygotominor.yy178 = 0; }
        break;
      case 270: /* when_clause ::= WHEN expr */
{ yygotominor.yy178 = yymsp[0].minor.yy64.pExpr; }
        break;
      case 271: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
{
  assert( yymsp[-2].minor.yy247!=0 );
  yymsp[-2].minor.yy247->pLast->pNext = yymsp[-1].minor.yy247;
  yymsp[-2].minor.yy247->pLast = yymsp[-1].minor.yy247;
  yygotominor.yy247 = yymsp[-2].minor.yy247;
}
        break;
      case 272: /* trigger_cmd_list ::= trigger_cmd SEMI */
{ 
  assert( yymsp[-1].minor.yy247!=0 );
  yymsp[-1].minor.yy247->pLast = yymsp[-1].minor.yy247;
  yygotominor.yy247 = yymsp[-1].minor.yy247;
}
        break;
      case 274: /* trnm ::= nm DOT nm */
{
  yygotominor.yy0 = yymsp[0].minor.yy0;
  sqlite3ErrorMsg(pParse, 
        "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
        "statements within triggers");
}
        break;
      case 276: /* tridxby ::= INDEXED BY nm */
{
  sqlite3ErrorMsg(pParse,
        "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
        "within triggers");
}
        break;
      case 277: /* tridxby ::= NOT INDEXED */
{
  sqlite3ErrorMsg(pParse,
        "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
        "within triggers");
}
        break;
      case 278: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
{ yygotominor.yy247 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy462, yymsp[0].minor.yy178, yymsp[-5].minor.yy44); }
        break;
      case 279: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt VALUES LP itemlist RP */
{yygotominor.yy247 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy160, yymsp[-1].minor.yy462, 0, yymsp[-7].minor.yy44);}
        break;
      case 280: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */
{yygotominor.yy247 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy160, 0, yymsp[0].minor.yy239, yymsp[-4].minor.yy44);}
        break;
      case 281: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
{yygotominor.yy247 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy178);}
        break;
      case 282: /* trigger_cmd ::= select */
{yygotominor.yy247 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy239); }
        break;
      case 283: /* expr ::= RAISE LP IGNORE RP */
{
  yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); 
  if( yygotominor.yy64.pExpr ){
    yygotominor.yy64.pExpr->affinity = OE_Ignore;
  }
  yygotominor.yy64.zStart = yymsp[-3].minor.yy0.z;
  yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 284: /* expr ::= RAISE LP raisetype COMMA nm RP */
{
  yygotominor.yy64.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); 
  if( yygotominor.yy64.pExpr ) {
    yygotominor.yy64.pExpr->affinity = (char)yymsp[-3].minor.yy230;
  }
  yygotominor.yy64.zStart = yymsp[-5].minor.yy0.z;
  yygotominor.yy64.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 285: /* raisetype ::= ROLLBACK */
{yygotominor.yy230 = OE_Rollback;}
        break;
      case 287: /* raisetype ::= FAIL */
{yygotominor.yy230 = OE_Fail;}
        break;
      case 288: /* cmd ::= DROP TRIGGER ifexists fullname */
{
  sqlite3DropTrigger(pParse,yymsp[0].minor.yy285,yymsp[-1].minor.yy230);
}






        break;
      default:
      /* (0) input ::= cmdlist */ yytestcase(yyruleno==0);
      /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1);
      /* (2) cmdlist ::= ecmd */ yytestcase(yyruleno==2);
      /* (3) ecmd ::= SEMI */ yytestcase(yyruleno==3);
      /* (4) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==4);







|


|




|

|











|


|


|


|


|


|





|


|



|


|


|


|


|


|


|


|





|








|


|


|



|
|



|


|


|


|


|



|




|




|





|
|



|



|
|
|

|

|



|



|




|






|



|
|
|





|







|






|



|
|




|
|



|



|
|




|




|
|


|
|
|








|


|


|


|


|







|






|






|



|




|



|
|




|
|




|


|


|


|


|


|



|
|




|
|
|




|
|




|
|



|


|


|


|


|



|



|


|


|


|


|




|



|





|
|








|
|









|

|
|

|




|
|
|




|
|
|




|
|




|


|
|
|
|





|
|






|
|
|

|










|



|



|




|
|
|
|
|
|
|





|
|
|
|
|
|
|
|



|


|



|
|




|
|




|


|


|



|
|
|
|
|



|
|
|




|








|
|

|
|
|
|

|

|

|
|




|
|
|
|
|

|

|
|




|
|
|
|
|

|

|
|
|





|
|
|
|
|



|
|
|




|

|



|

|
|




|
|
|
|

|

|
|




|
|




|
|





|
|



|
|


|








|
|
|
|









|
|
|
|






|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|




|


|

|



|
|
|

|
|

|
|

|
|
|

|
|

|
|

|
|

|

|
|
|
|


|

|
|
|


|







|






|






|
|

|
|

|
|

|
|

|
|

|

|
|
|

|
|


|

|
|
|

|
|


|
|

|
|

|

|

>
>
>
>
>
>







102165
102166
102167
102168
102169
102170
102171
102172
102173
102174
102175
102176
102177
102178
102179
102180
102181
102182
102183
102184
102185
102186
102187
102188
102189
102190
102191
102192
102193
102194
102195
102196
102197
102198
102199
102200
102201
102202
102203
102204
102205
102206
102207
102208
102209
102210
102211
102212
102213
102214
102215
102216
102217
102218
102219
102220
102221
102222
102223
102224
102225
102226
102227
102228
102229
102230
102231
102232
102233
102234
102235
102236
102237
102238
102239
102240
102241
102242
102243
102244
102245
102246
102247
102248
102249
102250
102251
102252
102253
102254
102255
102256
102257
102258
102259
102260
102261
102262
102263
102264
102265
102266
102267
102268
102269
102270
102271
102272
102273
102274
102275
102276
102277
102278
102279
102280
102281
102282
102283
102284
102285
102286
102287
102288
102289
102290
102291
102292
102293
102294
102295
102296
102297
102298
102299
102300
102301
102302
102303
102304
102305
102306
102307
102308
102309
102310
102311
102312
102313
102314
102315
102316
102317
102318
102319
102320
102321
102322
102323
102324
102325
102326
102327
102328
102329
102330
102331
102332
102333
102334
102335
102336
102337
102338
102339
102340
102341
102342
102343
102344
102345
102346
102347
102348
102349
102350
102351
102352
102353
102354
102355
102356
102357
102358
102359
102360
102361
102362
102363
102364
102365
102366
102367
102368
102369
102370
102371
102372
102373
102374
102375
102376
102377
102378
102379
102380
102381
102382
102383
102384
102385
102386
102387
102388
102389
102390
102391
102392
102393
102394
102395
102396
102397
102398
102399
102400
102401
102402
102403
102404
102405
102406
102407
102408
102409
102410
102411
102412
102413
102414
102415
102416
102417
102418
102419
102420
102421
102422
102423
102424
102425
102426
102427
102428
102429
102430
102431
102432
102433
102434
102435
102436
102437
102438
102439
102440
102441
102442
102443
102444
102445
102446
102447
102448
102449
102450
102451
102452
102453
102454
102455
102456
102457
102458
102459
102460
102461
102462
102463
102464
102465
102466
102467
102468
102469
102470
102471
102472
102473
102474
102475
102476
102477
102478
102479
102480
102481
102482
102483
102484
102485
102486
102487
102488
102489
102490
102491
102492
102493
102494
102495
102496
102497
102498
102499
102500
102501
102502
102503
102504
102505
102506
102507
102508
102509
102510
102511
102512
102513
102514
102515
102516
102517
102518
102519
102520
102521
102522
102523
102524
102525
102526
102527
102528
102529
102530
102531
102532
102533
102534
102535
102536
102537
102538
102539
102540
102541
102542
102543
102544
102545
102546
102547
102548
102549
102550
102551
102552
102553
102554
102555
102556
102557
102558
102559
102560
102561
102562
102563
102564
102565
102566
102567
102568
102569
102570
102571
102572
102573
102574
102575
102576
102577
102578
102579
102580
102581
102582
102583
102584
102585
102586
102587
102588
102589
102590
102591
102592
102593
102594
102595
102596
102597
102598
102599
102600
102601
102602
102603
102604
102605
102606
102607
102608
102609
102610
102611
102612
102613
102614
102615
102616
102617
102618
102619
102620
102621
102622
102623
102624
102625
102626
102627
102628
102629
102630
102631
102632
102633
102634
102635
102636
102637
102638
102639
102640
102641
102642
102643
102644
102645
102646
102647
102648
102649
102650
102651
102652
102653
102654
102655
102656
102657
102658
102659
102660
102661
102662
102663
102664
102665
102666
102667
102668
102669
102670
102671
102672
102673
102674
102675
102676
102677
102678
102679
102680
102681
102682
102683
102684
102685
102686
102687
102688
102689
102690
102691
102692
102693
102694
102695
102696
102697
102698
102699
102700
102701
102702
102703
102704
102705
102706
102707
102708
102709
102710
102711
102712
102713
102714
102715
102716
102717
102718
102719
102720
102721
102722
102723
102724
102725
102726
102727
102728
102729
102730
102731
102732
102733
102734
102735
102736
102737
102738
102739
102740
102741
102742
102743
102744
102745
102746
102747
102748
102749
102750
102751
102752
102753
102754
102755
102756
102757
102758
102759
102760
102761
102762
102763
102764
102765
102766
102767
102768
102769
102770
102771
102772
102773
102774
102775
102776
102777
102778
102779
102780
102781
102782
102783
102784
102785
102786
102787
102788
102789
102790
102791
102792
102793
102794
102795
102796
102797
102798
102799
102800
102801
102802
102803
102804
102805
102806
102807
102808
102809
102810
102811
102812
102813
102814
102815
102816
102817
102818
102819
102820
102821
102822
102823
102824
102825
102826
102827
102828
102829
102830
102831
102832
102833
102834
102835
102836
102837
102838
102839
102840
102841
102842
102843
102844
102845
102846
102847
102848
102849
102850
102851
102852
102853
102854
102855
102856
102857
102858
102859
102860
102861
102862
102863
102864
102865
102866
102867
102868
102869
102870
102871
102872
102873
102874
102875
102876
102877
102878
102879
102880
102881
102882
102883
102884
102885
102886
102887
102888
102889
102890
102891
102892
102893
102894
102895
102896
102897
102898
102899
102900
102901
102902
102903
102904
102905
102906
102907
102908
102909
102910
102911
102912
102913
102914
102915
102916
102917
102918
102919
102920
102921
102922
102923
102924
102925
102926
102927
102928
102929
102930
102931
102932
102933
102934
102935
102936
102937
102938
102939
102940
102941
102942
102943
102944
102945
102946
102947
102948
102949
102950
102951
102952
102953
102954
102955
102956
102957
102958
102959
102960
102961
102962
102963
102964
102965
102966
102967
102968
102969
102970
102971
102972
102973
102974
102975
102976
102977
102978
102979
102980
102981
102982
102983
102984
102985
102986
102987
102988
102989
102990
102991
102992
102993
102994
102995
102996
102997
102998
102999
103000
103001
103002
103003
103004
103005
103006
103007
103008
103009
103010
103011
103012
103013
103014
103015
103016
103017
103018
103019
103020
103021
103022
103023
103024
103025
103026
103027
103028
}
        break;
      case 50: /* typename ::= typename ids */
{yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
        break;
      case 57: /* ccons ::= DEFAULT term */
      case 59: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==59);
{sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy22);}
        break;
      case 58: /* ccons ::= DEFAULT LP expr RP */
{sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy22);}
        break;
      case 60: /* ccons ::= DEFAULT MINUS term */
{
  ExprSpan v;
  v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy22.pExpr, 0, 0);
  v.zStart = yymsp[-1].minor.yy0.z;
  v.zEnd = yymsp[0].minor.yy22.zEnd;
  sqlite3AddDefaultValue(pParse,&v);
}
        break;
      case 61: /* ccons ::= DEFAULT id */
{
  ExprSpan v;
  spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0);
  sqlite3AddDefaultValue(pParse,&v);
}
        break;
      case 63: /* ccons ::= NOT NULL onconf */
{sqlite3AddNotNull(pParse, yymsp[0].minor.yy412);}
        break;
      case 64: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy412,yymsp[0].minor.yy412,yymsp[-2].minor.yy412);}
        break;
      case 65: /* ccons ::= UNIQUE onconf */
{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy412,0,0,0,0);}
        break;
      case 66: /* ccons ::= CHECK LP expr RP */
{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy22.pExpr);}
        break;
      case 67: /* ccons ::= REFERENCES nm idxlist_opt refargs */
{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy82,yymsp[0].minor.yy412);}
        break;
      case 68: /* ccons ::= defer_subclause */
{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy412);}
        break;
      case 69: /* ccons ::= COLLATE ids */
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
        break;
      case 72: /* refargs ::= */
{ yygotominor.yy412 = OE_None*0x0101; /* EV: R-19803-45884 */}
        break;
      case 73: /* refargs ::= refargs refarg */
{ yygotominor.yy412 = (yymsp[-1].minor.yy412 & ~yymsp[0].minor.yy47.mask) | yymsp[0].minor.yy47.value; }
        break;
      case 74: /* refarg ::= MATCH nm */
      case 75: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==75);
{ yygotominor.yy47.value = 0;     yygotominor.yy47.mask = 0x000000; }
        break;
      case 76: /* refarg ::= ON DELETE refact */
{ yygotominor.yy47.value = yymsp[0].minor.yy412;     yygotominor.yy47.mask = 0x0000ff; }
        break;
      case 77: /* refarg ::= ON UPDATE refact */
{ yygotominor.yy47.value = yymsp[0].minor.yy412<<8;  yygotominor.yy47.mask = 0x00ff00; }
        break;
      case 78: /* refact ::= SET NULL */
{ yygotominor.yy412 = OE_SetNull;  /* EV: R-33326-45252 */}
        break;
      case 79: /* refact ::= SET DEFAULT */
{ yygotominor.yy412 = OE_SetDflt;  /* EV: R-33326-45252 */}
        break;
      case 80: /* refact ::= CASCADE */
{ yygotominor.yy412 = OE_Cascade;  /* EV: R-33326-45252 */}
        break;
      case 81: /* refact ::= RESTRICT */
{ yygotominor.yy412 = OE_Restrict; /* EV: R-33326-45252 */}
        break;
      case 82: /* refact ::= NO ACTION */
{ yygotominor.yy412 = OE_None;     /* EV: R-33326-45252 */}
        break;
      case 84: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
      case 99: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno==99);
      case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==101);
      case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104);
{yygotominor.yy412 = yymsp[0].minor.yy412;}
        break;
      case 88: /* conslist_opt ::= */
{yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
        break;
      case 89: /* conslist_opt ::= COMMA conslist */
{yygotominor.yy0 = yymsp[-1].minor.yy0;}
        break;
      case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy82,yymsp[0].minor.yy412,yymsp[-2].minor.yy412,0);}
        break;
      case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy82,yymsp[0].minor.yy412,0,0,0,0);}
        break;
      case 96: /* tcons ::= CHECK LP expr RP onconf */
{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy22.pExpr);}
        break;
      case 97: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
{
    sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy82, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy82, yymsp[-1].minor.yy412);
    sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy412);
}
        break;
      case 100: /* onconf ::= */
{yygotominor.yy412 = OE_Default;}
        break;
      case 102: /* orconf ::= */
{yygotominor.yy18 = OE_Default;}
        break;
      case 103: /* orconf ::= OR resolvetype */
{yygotominor.yy18 = (u8)yymsp[0].minor.yy412;}
        break;
      case 105: /* resolvetype ::= IGNORE */
{yygotominor.yy412 = OE_Ignore;}
        break;
      case 106: /* resolvetype ::= REPLACE */
{yygotominor.yy412 = OE_Replace;}
        break;
      case 107: /* cmd ::= DROP TABLE ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy67, 0, yymsp[-1].minor.yy412);
}
        break;
      case 110: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */
{
  sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy459, yymsp[-6].minor.yy412, yymsp[-4].minor.yy412);
}
        break;
      case 111: /* cmd ::= DROP VIEW ifexists fullname */
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy67, 1, yymsp[-1].minor.yy412);
}
        break;
      case 112: /* cmd ::= select */
{
  SelectDest dest = {SRT_Output, 0, 0, 0, 0};
  sqlite3Select(pParse, yymsp[0].minor.yy459, &dest);
  sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy459);
}
        break;
      case 113: /* select ::= oneselect */
{yygotominor.yy459 = yymsp[0].minor.yy459;}
        break;
      case 114: /* select ::= select multiselect_op oneselect */
{
  if( yymsp[0].minor.yy459 ){
    yymsp[0].minor.yy459->op = (u8)yymsp[-1].minor.yy412;
    yymsp[0].minor.yy459->pPrior = yymsp[-2].minor.yy459;
  }else{
    sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy459);
  }
  yygotominor.yy459 = yymsp[0].minor.yy459;
}
        break;
      case 116: /* multiselect_op ::= UNION ALL */
{yygotominor.yy412 = TK_ALL;}
        break;
      case 118: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
{
  yygotominor.yy459 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy82,yymsp[-5].minor.yy67,yymsp[-4].minor.yy2,yymsp[-3].minor.yy82,yymsp[-2].minor.yy2,yymsp[-1].minor.yy82,yymsp[-7].minor.yy412,yymsp[0].minor.yy244.pLimit,yymsp[0].minor.yy244.pOffset);
}
        break;
      case 122: /* sclp ::= selcollist COMMA */
      case 247: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==247);
{yygotominor.yy82 = yymsp[-1].minor.yy82;}
        break;
      case 123: /* sclp ::= */
      case 151: /* orderby_opt ::= */ yytestcase(yyruleno==151);
      case 159: /* groupby_opt ::= */ yytestcase(yyruleno==159);
      case 240: /* exprlist ::= */ yytestcase(yyruleno==240);
      case 246: /* idxlist_opt ::= */ yytestcase(yyruleno==246);
{yygotominor.yy82 = 0;}
        break;
      case 124: /* selcollist ::= sclp expr as */
{
   yygotominor.yy82 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy82, yymsp[-1].minor.yy22.pExpr);
   if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy82, &yymsp[0].minor.yy0, 1);
   sqlite3ExprListSetSpan(pParse,yygotominor.yy82,&yymsp[-1].minor.yy22);
}
        break;
      case 125: /* selcollist ::= sclp STAR */
{
  Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0);
  yygotominor.yy82 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy82, p);
}
        break;
      case 126: /* selcollist ::= sclp nm DOT STAR */
{
  Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
  Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy82, pDot);
}
        break;
      case 129: /* as ::= */
{yygotominor.yy0.n = 0;}
        break;
      case 130: /* from ::= */
{yygotominor.yy67 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy67));}
        break;
      case 131: /* from ::= FROM seltablist */
{
  yygotominor.yy67 = yymsp[0].minor.yy67;
  sqlite3SrcListShiftJoinType(yygotominor.yy67);
}
        break;
      case 132: /* stl_prefix ::= seltablist joinop */
{
   yygotominor.yy67 = yymsp[-1].minor.yy67;
   if( ALWAYS(yygotominor.yy67 && yygotominor.yy67->nSrc>0) ) yygotominor.yy67->a[yygotominor.yy67->nSrc-1].jointype = (u8)yymsp[0].minor.yy412;
}
        break;
      case 133: /* stl_prefix ::= */
{yygotominor.yy67 = 0;}
        break;
      case 134: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
{
  yygotominor.yy67 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy67,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy2,yymsp[0].minor.yy240);
  sqlite3SrcListIndexedBy(pParse, yygotominor.yy67, &yymsp[-2].minor.yy0);
}
        break;
      case 135: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
{
    yygotominor.yy67 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy67,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy459,yymsp[-1].minor.yy2,yymsp[0].minor.yy240);
  }
        break;
      case 136: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
{
    if( yymsp[-6].minor.yy67==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy2==0 && yymsp[0].minor.yy240==0 ){
      yygotominor.yy67 = yymsp[-4].minor.yy67;
    }else{
      Select *pSubquery;
      sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy67);
      pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy67,0,0,0,0,0,0,0);
      yygotominor.yy67 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy67,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy2,yymsp[0].minor.yy240);
    }
  }
        break;
      case 137: /* dbnm ::= */
      case 146: /* indexed_opt ::= */ yytestcase(yyruleno==146);
{yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
        break;
      case 139: /* fullname ::= nm dbnm */
{yygotominor.yy67 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
        break;
      case 140: /* joinop ::= COMMA|JOIN */
{ yygotominor.yy412 = JT_INNER; }
        break;
      case 141: /* joinop ::= JOIN_KW JOIN */
{ yygotominor.yy412 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
        break;
      case 142: /* joinop ::= JOIN_KW nm JOIN */
{ yygotominor.yy412 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); }
        break;
      case 143: /* joinop ::= JOIN_KW nm nm JOIN */
{ yygotominor.yy412 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); }
        break;
      case 144: /* on_opt ::= ON expr */
      case 155: /* sortitem ::= expr */ yytestcase(yyruleno==155);
      case 162: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==162);
      case 169: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==169);
      case 235: /* case_else ::= ELSE expr */ yytestcase(yyruleno==235);
      case 237: /* case_operand ::= expr */ yytestcase(yyruleno==237);
{yygotominor.yy2 = yymsp[0].minor.yy22.pExpr;}
        break;
      case 145: /* on_opt ::= */
      case 161: /* having_opt ::= */ yytestcase(yyruleno==161);
      case 168: /* where_opt ::= */ yytestcase(yyruleno==168);
      case 236: /* case_else ::= */ yytestcase(yyruleno==236);
      case 238: /* case_operand ::= */ yytestcase(yyruleno==238);
{yygotominor.yy2 = 0;}
        break;
      case 148: /* indexed_opt ::= NOT INDEXED */
{yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
        break;
      case 149: /* using_opt ::= USING LP inscollist RP */
      case 181: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==181);
{yygotominor.yy240 = yymsp[-1].minor.yy240;}
        break;
      case 150: /* using_opt ::= */
      case 180: /* inscollist_opt ::= */ yytestcase(yyruleno==180);
{yygotominor.yy240 = 0;}
        break;
      case 152: /* orderby_opt ::= ORDER BY sortlist */
      case 160: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==160);
      case 239: /* exprlist ::= nexprlist */ yytestcase(yyruleno==239);
{yygotominor.yy82 = yymsp[0].minor.yy82;}
        break;
      case 153: /* sortlist ::= sortlist COMMA sortitem sortorder */
{
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy82,yymsp[-1].minor.yy2);
  if( yygotominor.yy82 ) yygotominor.yy82->a[yygotominor.yy82->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy412;
}
        break;
      case 154: /* sortlist ::= sortitem sortorder */
{
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy2);
  if( yygotominor.yy82 && ALWAYS(yygotominor.yy82->a) ) yygotominor.yy82->a[0].sortOrder = (u8)yymsp[0].minor.yy412;
}
        break;
      case 156: /* sortorder ::= ASC */
      case 158: /* sortorder ::= */ yytestcase(yyruleno==158);
{yygotominor.yy412 = SQLITE_SO_ASC;}
        break;
      case 157: /* sortorder ::= DESC */
{yygotominor.yy412 = SQLITE_SO_DESC;}
        break;
      case 163: /* limit_opt ::= */
{yygotominor.yy244.pLimit = 0; yygotominor.yy244.pOffset = 0;}
        break;
      case 164: /* limit_opt ::= LIMIT expr */
{yygotominor.yy244.pLimit = yymsp[0].minor.yy22.pExpr; yygotominor.yy244.pOffset = 0;}
        break;
      case 165: /* limit_opt ::= LIMIT expr OFFSET expr */
{yygotominor.yy244.pLimit = yymsp[-2].minor.yy22.pExpr; yygotominor.yy244.pOffset = yymsp[0].minor.yy22.pExpr;}
        break;
      case 166: /* limit_opt ::= LIMIT expr COMMA expr */
{yygotominor.yy244.pOffset = yymsp[-2].minor.yy22.pExpr; yygotominor.yy244.pLimit = yymsp[0].minor.yy22.pExpr;}
        break;
      case 167: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy67, &yymsp[-1].minor.yy0);
  sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy67,yymsp[0].minor.yy2);
}
        break;
      case 170: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt */
{
  sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy67, &yymsp[-3].minor.yy0);
  sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy82,"set list"); 
  sqlite3Update(pParse,yymsp[-4].minor.yy67,yymsp[-1].minor.yy82,yymsp[0].minor.yy2,yymsp[-5].minor.yy18);
}
        break;
      case 171: /* setlist ::= setlist COMMA nm EQ expr */
{
  yygotominor.yy82 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy82, yymsp[0].minor.yy22.pExpr);
  sqlite3ExprListSetName(pParse, yygotominor.yy82, &yymsp[-2].minor.yy0, 1);
}
        break;
      case 172: /* setlist ::= nm EQ expr */
{
  yygotominor.yy82 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy22.pExpr);
  sqlite3ExprListSetName(pParse, yygotominor.yy82, &yymsp[-2].minor.yy0, 1);
}
        break;
      case 173: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist RP */
{sqlite3Insert(pParse, yymsp[-5].minor.yy67, yymsp[-1].minor.yy82, 0, yymsp[-4].minor.yy240, yymsp[-7].minor.yy18);}
        break;
      case 174: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
{sqlite3Insert(pParse, yymsp[-2].minor.yy67, 0, yymsp[0].minor.yy459, yymsp[-1].minor.yy240, yymsp[-4].minor.yy18);}
        break;
      case 175: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */
{sqlite3Insert(pParse, yymsp[-3].minor.yy67, 0, 0, yymsp[-2].minor.yy240, yymsp[-5].minor.yy18);}
        break;
      case 176: /* insert_cmd ::= INSERT orconf */
{yygotominor.yy18 = yymsp[0].minor.yy18;}
        break;
      case 177: /* insert_cmd ::= REPLACE */
{yygotominor.yy18 = OE_Replace;}
        break;
      case 178: /* itemlist ::= itemlist COMMA expr */
      case 241: /* nexprlist ::= nexprlist COMMA expr */ yytestcase(yyruleno==241);
{yygotominor.yy82 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy82,yymsp[0].minor.yy22.pExpr);}
        break;
      case 179: /* itemlist ::= expr */
      case 242: /* nexprlist ::= expr */ yytestcase(yyruleno==242);
{yygotominor.yy82 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy22.pExpr);}
        break;
      case 182: /* inscollist ::= inscollist COMMA nm */
{yygotominor.yy240 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy240,&yymsp[0].minor.yy0);}
        break;
      case 183: /* inscollist ::= nm */
{yygotominor.yy240 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
        break;
      case 184: /* expr ::= term */
{yygotominor.yy22 = yymsp[0].minor.yy22;}
        break;
      case 185: /* expr ::= LP expr RP */
{yygotominor.yy22.pExpr = yymsp[-1].minor.yy22.pExpr; spanSet(&yygotominor.yy22,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);}
        break;
      case 186: /* term ::= NULL */
      case 191: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==191);
      case 192: /* term ::= STRING */ yytestcase(yyruleno==192);
{spanExpr(&yygotominor.yy22, pParse, yymsp[0].major, &yymsp[0].minor.yy0);}
        break;
      case 187: /* expr ::= id */
      case 188: /* expr ::= JOIN_KW */ yytestcase(yyruleno==188);
{spanExpr(&yygotominor.yy22, pParse, TK_ID, &yymsp[0].minor.yy0);}
        break;
      case 189: /* expr ::= nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
  spanSet(&yygotominor.yy22,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 190: /* expr ::= nm DOT nm DOT nm */
{
  Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
  Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
  Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
  Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
  yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
  spanSet(&yygotominor.yy22,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 193: /* expr ::= REGISTER */
{
  /* When doing a nested parse, one can include terms in an expression
  ** that look like this:   #1 #2 ...  These terms refer to registers
  ** in the virtual machine.  #N is the N-th register. */
  if( pParse->nested==0 ){
    sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &yymsp[0].minor.yy0);
    yygotominor.yy22.pExpr = 0;
  }else{
    yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &yymsp[0].minor.yy0);
    if( yygotominor.yy22.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yygotominor.yy22.pExpr->iTable);
  }
  spanSet(&yygotominor.yy22, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 194: /* expr ::= VARIABLE */
{
  spanExpr(&yygotominor.yy22, pParse, TK_VARIABLE, &yymsp[0].minor.yy0);
  sqlite3ExprAssignVarNumber(pParse, yygotominor.yy22.pExpr);
  spanSet(&yygotominor.yy22, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 195: /* expr ::= expr COLLATE ids */
{
  yygotominor.yy22.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy22.pExpr, &yymsp[0].minor.yy0);
  yygotominor.yy22.zStart = yymsp[-2].minor.yy22.zStart;
  yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 196: /* expr ::= CAST LP expr AS typetoken RP */
{
  yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy22.pExpr, 0, &yymsp[-1].minor.yy0);
  spanSet(&yygotominor.yy22,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 197: /* expr ::= ID LP distinct exprlist RP */
{
  if( yymsp[-1].minor.yy82 && yymsp[-1].minor.yy82->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
    sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
  }
  yygotominor.yy22.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy82, &yymsp[-4].minor.yy0);
  spanSet(&yygotominor.yy22,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
  if( yymsp[-2].minor.yy412 && yygotominor.yy22.pExpr ){
    yygotominor.yy22.pExpr->flags |= EP_Distinct;
  }
}
        break;
      case 198: /* expr ::= ID LP STAR RP */
{
  yygotominor.yy22.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
  spanSet(&yygotominor.yy22,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
}
        break;
      case 199: /* term ::= CTIME_KW */
{
  /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
  ** treated as functions that return constants */
  yygotominor.yy22.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
  if( yygotominor.yy22.pExpr ){
    yygotominor.yy22.pExpr->op = TK_CONST_FUNC;  
  }
  spanSet(&yygotominor.yy22, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
}
        break;
      case 200: /* expr ::= expr AND expr */
      case 201: /* expr ::= expr OR expr */ yytestcase(yyruleno==201);
      case 202: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==202);
      case 203: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==203);
      case 204: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==204);
      case 205: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==205);
      case 206: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==206);
      case 207: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==207);
{spanBinaryExpr(&yygotominor.yy22,pParse,yymsp[-1].major,&yymsp[-2].minor.yy22,&yymsp[0].minor.yy22);}
        break;
      case 208: /* likeop ::= LIKE_KW */
      case 210: /* likeop ::= MATCH */ yytestcase(yyruleno==210);
{yygotominor.yy438.eOperator = yymsp[0].minor.yy0; yygotominor.yy438.not = 0;}
        break;
      case 209: /* likeop ::= NOT LIKE_KW */
      case 211: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==211);
{yygotominor.yy438.eOperator = yymsp[0].minor.yy0; yygotominor.yy438.not = 1;}
        break;
      case 212: /* expr ::= expr likeop expr */
{
  ExprList *pList;
  pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy22.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy22.pExpr);
  yygotominor.yy22.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy438.eOperator);
  if( yymsp[-1].minor.yy438.not ) yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy22.pExpr, 0, 0);
  yygotominor.yy22.zStart = yymsp[-2].minor.yy22.zStart;
  yygotominor.yy22.zEnd = yymsp[0].minor.yy22.zEnd;
  if( yygotominor.yy22.pExpr ) yygotominor.yy22.pExpr->flags |= EP_InfixFunc;
}
        break;
      case 213: /* expr ::= expr likeop expr ESCAPE expr */
{
  ExprList *pList;
  pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy22.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy22.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy22.pExpr);
  yygotominor.yy22.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy438.eOperator);
  if( yymsp[-3].minor.yy438.not ) yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy22.pExpr, 0, 0);
  yygotominor.yy22.zStart = yymsp[-4].minor.yy22.zStart;
  yygotominor.yy22.zEnd = yymsp[0].minor.yy22.zEnd;
  if( yygotominor.yy22.pExpr ) yygotominor.yy22.pExpr->flags |= EP_InfixFunc;
}
        break;
      case 214: /* expr ::= expr ISNULL|NOTNULL */
{spanUnaryPostfix(&yygotominor.yy22,pParse,yymsp[0].major,&yymsp[-1].minor.yy22,&yymsp[0].minor.yy0);}
        break;
      case 215: /* expr ::= expr NOT NULL */
{spanUnaryPostfix(&yygotominor.yy22,pParse,TK_NOTNULL,&yymsp[-2].minor.yy22,&yymsp[0].minor.yy0);}
        break;
      case 216: /* expr ::= expr IS expr */
{
  spanBinaryExpr(&yygotominor.yy22,pParse,TK_IS,&yymsp[-2].minor.yy22,&yymsp[0].minor.yy22);
  binaryToUnaryIfNull(pParse, yymsp[0].minor.yy22.pExpr, yygotominor.yy22.pExpr, TK_ISNULL);
}
        break;
      case 217: /* expr ::= expr IS NOT expr */
{
  spanBinaryExpr(&yygotominor.yy22,pParse,TK_ISNOT,&yymsp[-3].minor.yy22,&yymsp[0].minor.yy22);
  binaryToUnaryIfNull(pParse, yymsp[0].minor.yy22.pExpr, yygotominor.yy22.pExpr, TK_NOTNULL);
}
        break;
      case 218: /* expr ::= NOT expr */
      case 219: /* expr ::= BITNOT expr */ yytestcase(yyruleno==219);
{spanUnaryPrefix(&yygotominor.yy22,pParse,yymsp[-1].major,&yymsp[0].minor.yy22,&yymsp[-1].minor.yy0);}
        break;
      case 220: /* expr ::= MINUS expr */
{spanUnaryPrefix(&yygotominor.yy22,pParse,TK_UMINUS,&yymsp[0].minor.yy22,&yymsp[-1].minor.yy0);}
        break;
      case 221: /* expr ::= PLUS expr */
{spanUnaryPrefix(&yygotominor.yy22,pParse,TK_UPLUS,&yymsp[0].minor.yy22,&yymsp[-1].minor.yy0);}
        break;
      case 224: /* expr ::= expr between_op expr AND expr */
{
  ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy22.pExpr);
  pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy22.pExpr);
  yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy22.pExpr, 0, 0);
  if( yygotominor.yy22.pExpr ){
    yygotominor.yy22.pExpr->x.pList = pList;
  }else{
    sqlite3ExprListDelete(pParse->db, pList);
  } 
  if( yymsp[-3].minor.yy412 ) yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy22.pExpr, 0, 0);
  yygotominor.yy22.zStart = yymsp[-4].minor.yy22.zStart;
  yygotominor.yy22.zEnd = yymsp[0].minor.yy22.zEnd;
}
        break;
      case 227: /* expr ::= expr in_op LP exprlist RP */
{
    if( yymsp[-1].minor.yy82==0 ){
      /* Expressions of the form
      **
      **      expr1 IN ()
      **      expr1 NOT IN ()
      **
      ** simplify to constants 0 (false) and 1 (true), respectively,
      ** regardless of the value of expr1.
      */
      yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_INTEGER, 0, 0, &sqlite3IntTokens[yymsp[-3].minor.yy412]);
      sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy22.pExpr);
    }else{
      yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy22.pExpr, 0, 0);
      if( yygotominor.yy22.pExpr ){
        yygotominor.yy22.pExpr->x.pList = yymsp[-1].minor.yy82;
        sqlite3ExprSetHeight(pParse, yygotominor.yy22.pExpr);
      }else{
        sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy82);
      }
      if( yymsp[-3].minor.yy412 ) yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy22.pExpr, 0, 0);
    }
    yygotominor.yy22.zStart = yymsp[-4].minor.yy22.zStart;
    yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 228: /* expr ::= LP select RP */
{
    yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
    if( yygotominor.yy22.pExpr ){
      yygotominor.yy22.pExpr->x.pSelect = yymsp[-1].minor.yy459;
      ExprSetProperty(yygotominor.yy22.pExpr, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, yygotominor.yy22.pExpr);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy459);
    }
    yygotominor.yy22.zStart = yymsp[-2].minor.yy0.z;
    yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 229: /* expr ::= expr in_op LP select RP */
{
    yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy22.pExpr, 0, 0);
    if( yygotominor.yy22.pExpr ){
      yygotominor.yy22.pExpr->x.pSelect = yymsp[-1].minor.yy459;
      ExprSetProperty(yygotominor.yy22.pExpr, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, yygotominor.yy22.pExpr);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy459);
    }
    if( yymsp[-3].minor.yy412 ) yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy22.pExpr, 0, 0);
    yygotominor.yy22.zStart = yymsp[-4].minor.yy22.zStart;
    yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 230: /* expr ::= expr in_op nm dbnm */
{
    SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);
    yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy22.pExpr, 0, 0);
    if( yygotominor.yy22.pExpr ){
      yygotominor.yy22.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
      ExprSetProperty(yygotominor.yy22.pExpr, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, yygotominor.yy22.pExpr);
    }else{
      sqlite3SrcListDelete(pParse->db, pSrc);
    }
    if( yymsp[-2].minor.yy412 ) yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy22.pExpr, 0, 0);
    yygotominor.yy22.zStart = yymsp[-3].minor.yy22.zStart;
    yygotominor.yy22.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n];
  }
        break;
      case 231: /* expr ::= EXISTS LP select RP */
{
    Expr *p = yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
    if( p ){
      p->x.pSelect = yymsp[-1].minor.yy459;
      ExprSetProperty(p, EP_xIsSelect);
      sqlite3ExprSetHeight(pParse, p);
    }else{
      sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy459);
    }
    yygotominor.yy22.zStart = yymsp[-3].minor.yy0.z;
    yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
  }
        break;
      case 232: /* expr ::= CASE case_operand case_exprlist case_else END */
{
  yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy2, yymsp[-1].minor.yy2, 0);
  if( yygotominor.yy22.pExpr ){
    yygotominor.yy22.pExpr->x.pList = yymsp[-2].minor.yy82;
    sqlite3ExprSetHeight(pParse, yygotominor.yy22.pExpr);
  }else{
    sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy82);
  }
  yygotominor.yy22.zStart = yymsp[-4].minor.yy0.z;
  yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 233: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
{
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy82, yymsp[-2].minor.yy22.pExpr);
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,yygotominor.yy82, yymsp[0].minor.yy22.pExpr);
}
        break;
      case 234: /* case_exprlist ::= WHEN expr THEN expr */
{
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy22.pExpr);
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,yygotominor.yy82, yymsp[0].minor.yy22.pExpr);
}
        break;
      case 243: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP */
{
  sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, 
                     sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy82, yymsp[-9].minor.yy412,
                      &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy412);
}
        break;
      case 244: /* uniqueflag ::= UNIQUE */
      case 296: /* raisetype ::= ABORT */ yytestcase(yyruleno==296);
{yygotominor.yy412 = OE_Abort;}
        break;
      case 245: /* uniqueflag ::= */
{yygotominor.yy412 = OE_None;}
        break;
      case 248: /* idxlist ::= idxlist COMMA nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3Expr(pParse->db, TK_COLUMN, 0);
    sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy82, p);
  sqlite3ExprListSetName(pParse,yygotominor.yy82,&yymsp[-2].minor.yy0,1);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy82, "index");
  if( yygotominor.yy82 ) yygotominor.yy82->a[yygotominor.yy82->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy412;
}
        break;
      case 249: /* idxlist ::= nm collate sortorder */
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy0.n>0 ){
    p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
    sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
  }
  yygotominor.yy82 = sqlite3ExprListAppend(pParse,0, p);
  sqlite3ExprListSetName(pParse, yygotominor.yy82, &yymsp[-2].minor.yy0, 1);
  sqlite3ExprListCheckLength(pParse, yygotominor.yy82, "index");
  if( yygotominor.yy82 ) yygotominor.yy82->a[yygotominor.yy82->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy412;
}
        break;
      case 250: /* collate ::= */
{yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
        break;
      case 252: /* cmd ::= DROP INDEX ifexists fullname */
{sqlite3DropIndex(pParse, yymsp[0].minor.yy67, yymsp[-1].minor.yy412);}
        break;
      case 253: /* cmd ::= PRAGMA nm dbnm */
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
        break;
      case 254: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
        break;
      case 255: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
        break;
      case 256: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
        break;
      case 257: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
        break;
      case 268: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
{
  Token all;
  all.z = yymsp[-3].minor.yy0.z;
  all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
  sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy347, &all);
}
        break;
      case 269: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
{
  sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy412, yymsp[-4].minor.yy210.a, yymsp[-4].minor.yy210.b, yymsp[-2].minor.yy67, yymsp[0].minor.yy2, yymsp[-10].minor.yy412, yymsp[-8].minor.yy412);
  yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0);
}
        break;
      case 270: /* trigger_time ::= BEFORE */
      case 273: /* trigger_time ::= */ yytestcase(yyruleno==273);
{ yygotominor.yy412 = TK_BEFORE; }
        break;
      case 271: /* trigger_time ::= AFTER */
{ yygotominor.yy412 = TK_AFTER;  }
        break;
      case 272: /* trigger_time ::= INSTEAD OF */
{ yygotominor.yy412 = TK_INSTEAD;}
        break;
      case 274: /* trigger_event ::= DELETE|INSERT */
      case 275: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==275);
{yygotominor.yy210.a = yymsp[0].major; yygotominor.yy210.b = 0;}
        break;
      case 276: /* trigger_event ::= UPDATE OF inscollist */
{yygotominor.yy210.a = TK_UPDATE; yygotominor.yy210.b = yymsp[0].minor.yy240;}
        break;
      case 279: /* when_clause ::= */
{ yygotominor.yy2 = 0; }
        break;
      case 280: /* when_clause ::= WHEN expr */
{ yygotominor.yy2 = yymsp[0].minor.yy22.pExpr; }
        break;
      case 281: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
{
  assert( yymsp[-2].minor.yy347!=0 );
  yymsp[-2].minor.yy347->pLast->pNext = yymsp[-1].minor.yy347;
  yymsp[-2].minor.yy347->pLast = yymsp[-1].minor.yy347;
  yygotominor.yy347 = yymsp[-2].minor.yy347;
}
        break;
      case 282: /* trigger_cmd_list ::= trigger_cmd SEMI */
{ 
  assert( yymsp[-1].minor.yy347!=0 );
  yymsp[-1].minor.yy347->pLast = yymsp[-1].minor.yy347;
  yygotominor.yy347 = yymsp[-1].minor.yy347;
}
        break;
      case 284: /* trnm ::= nm DOT nm */
{
  yygotominor.yy0 = yymsp[0].minor.yy0;
  sqlite3ErrorMsg(pParse, 
        "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
        "statements within triggers");
}
        break;
      case 286: /* tridxby ::= INDEXED BY nm */
{
  sqlite3ErrorMsg(pParse,
        "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
        "within triggers");
}
        break;
      case 287: /* tridxby ::= NOT INDEXED */
{
  sqlite3ErrorMsg(pParse,
        "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
        "within triggers");
}
        break;
      case 288: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
{ yygotominor.yy347 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy82, yymsp[0].minor.yy2, yymsp[-5].minor.yy18); }
        break;
      case 289: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt VALUES LP itemlist RP */
{yygotominor.yy347 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy240, yymsp[-1].minor.yy82, 0, yymsp[-7].minor.yy18);}
        break;
      case 290: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */
{yygotominor.yy347 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy240, 0, yymsp[0].minor.yy459, yymsp[-4].minor.yy18);}
        break;
      case 291: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
{yygotominor.yy347 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy2);}
        break;
      case 292: /* trigger_cmd ::= select */
{yygotominor.yy347 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy459); }
        break;
      case 293: /* expr ::= RAISE LP IGNORE RP */
{
  yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); 
  if( yygotominor.yy22.pExpr ){
    yygotominor.yy22.pExpr->affinity = OE_Ignore;
  }
  yygotominor.yy22.zStart = yymsp[-3].minor.yy0.z;
  yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 294: /* expr ::= RAISE LP raisetype COMMA nm RP */
{
  yygotominor.yy22.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); 
  if( yygotominor.yy22.pExpr ) {
    yygotominor.yy22.pExpr->affinity = (char)yymsp[-3].minor.yy412;
  }
  yygotominor.yy22.zStart = yymsp[-5].minor.yy0.z;
  yygotominor.yy22.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
}
        break;
      case 295: /* raisetype ::= ROLLBACK */
{yygotominor.yy412 = OE_Rollback;}
        break;
      case 297: /* raisetype ::= FAIL */
{yygotominor.yy412 = OE_Fail;}
        break;
      case 298: /* cmd ::= DROP TRIGGER ifexists fullname */
{
  sqlite3DropTrigger(pParse,yymsp[0].minor.yy67,yymsp[-1].minor.yy412);
}
        break;
      case 299: /* cmd ::= REINDEX */
{sqlite3Reindex(pParse, 0, 0);}
        break;
      case 300: /* cmd ::= REINDEX nm dbnm */
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
        break;
      default:
      /* (0) input ::= cmdlist */ yytestcase(yyruleno==0);
      /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1);
      /* (2) cmdlist ::= ecmd */ yytestcase(yyruleno==2);
      /* (3) ecmd ::= SEMI */ yytestcase(yyruleno==3);
      /* (4) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==4);
102981
102982
102983
102984
102985
102986
102987
102988
102989
102990
102991
102992
102993
102994
102995
102996
102997
102998
102999
      /* (55) carg ::= CONSTRAINT nm ccons */ yytestcase(yyruleno==55);
      /* (56) carg ::= ccons */ yytestcase(yyruleno==56);
      /* (62) ccons ::= NULL onconf */ yytestcase(yyruleno==62);
      /* (90) conslist ::= conslist COMMA tcons */ yytestcase(yyruleno==90);
      /* (91) conslist ::= conslist tcons */ yytestcase(yyruleno==91);
      /* (92) conslist ::= tcons */ yytestcase(yyruleno==92);
      /* (93) tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==93);
      /* (256) plus_opt ::= PLUS */ yytestcase(yyruleno==256);
      /* (257) plus_opt ::= */ yytestcase(yyruleno==257);
      /* (267) foreach_clause ::= */ yytestcase(yyruleno==267);
      /* (268) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==268);
      /* (275) tridxby ::= */ yytestcase(yyruleno==275);
        break;
  };
  yygoto = yyRuleInfo[yyruleno].lhs;
  yysize = yyRuleInfo[yyruleno].nrhs;
  yypParser->yyidx -= yysize;
  yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
  if( yyact < YYNSTATE ){







|
|
|
|
|







103042
103043
103044
103045
103046
103047
103048
103049
103050
103051
103052
103053
103054
103055
103056
103057
103058
103059
103060
      /* (55) carg ::= CONSTRAINT nm ccons */ yytestcase(yyruleno==55);
      /* (56) carg ::= ccons */ yytestcase(yyruleno==56);
      /* (62) ccons ::= NULL onconf */ yytestcase(yyruleno==62);
      /* (90) conslist ::= conslist COMMA tcons */ yytestcase(yyruleno==90);
      /* (91) conslist ::= conslist tcons */ yytestcase(yyruleno==91);
      /* (92) conslist ::= tcons */ yytestcase(yyruleno==92);
      /* (93) tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==93);
      /* (266) plus_opt ::= PLUS */ yytestcase(yyruleno==266);
      /* (267) plus_opt ::= */ yytestcase(yyruleno==267);
      /* (277) foreach_clause ::= */ yytestcase(yyruleno==277);
      /* (278) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==278);
      /* (285) tridxby ::= */ yytestcase(yyruleno==285);
        break;
  };
  yygoto = yyRuleInfo[yyruleno].lhs;
  yysize = yyRuleInfo[yyruleno].nrhs;
  yypParser->yyidx -= yysize;
  yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
  if( yyact < YYNSTATE ){
103320
103321
103322
103323
103324
103325
103326
103327
103328
103329
103330
103331
103332
103333
103334
103335
103336
103337
103338
103339
103340
103341

103342
103343
103344
103345

103346
103347
103348
103349
103350
103351
103352

103353
103354

103355
103356
103357
103358
103359
103360
103361
103362
103363
103364

103365
103366
103367
103368
103369
103370
103371
103372
103373

103374
103375
103376
103377
103378
103379
103380
103381
103382
103383
103384
103385
103386
103387
103388
103389
103390
103391
103392
103393
103394
103395
103396
103397
103398
103399
103400
103401
103402
103403
103404
103405
103406
103407
103408
103409
103410
103411
103412
103413
103414

103415
103416
103417
103418

103419
103420
103421
103422
103423
103424

103425
103426
103427
103428
103429
103430
103431
103432
103433
103434
103435
103436
103437
103438
103439
103440
103441
103442
103443
103444
103445
103446
103447
103448
103449
103450
103451
103452
103453
103454
103455
103456
103457
103458
103459
103460
103461
103462
103463
103464
103465
103466
103467
103468
103469
103470
103471
103472
103473
103474
103475
103476
103477
103478
103479
103480
103481
103482
103483
103484
103485
103486
103487
103488
103489
103490
103491
103492
103493
103494
103495
103496
103497
103498
103499
103500
103501
103502
103503
103504
103505
103506
103507
103508
103509
103510
103511
103512
103513
103514
103515
103516
103517
103518
103519
103520
103521
103522
103523
103524
103525
103526
103527
103528
103529
103530
103531
103532
103533
103534
103535
103536
103537
103538
103539
103540
103541
103542
103543
103544
103545
103546
103547
103548
103549


103550
103551
103552
103553
103554
103555
103556
103557
103558
103559
103560
103561
103562
103563
103564
103565
** The code in this file implements a function that determines whether
** or not a given identifier is really an SQL keyword.  The same thing
** might be implemented more directly using a hand-written hash table.
** But by using this automatically generated code, the size of the code
** is substantially reduced.  This is important for embedded applications
** on platforms with limited memory.
*/
/* Hash score: 145 */
static int keywordCode(const char *z, int n){
  /* zText[] encodes 712 bytes of keywords in 467 bytes */
  /*   BEFOREIGNOREGEXPLAINDEXEDESCAPEACHECKEYCONSTRAINTERSECTABLEFT      */
  /*   HENDEFERRABLELSELECTRANSACTIONATURALIKEXCEPTRIGGERAISEXCLUSIVE     */
  /*   XISTSAVEPOINTOFFSETEMPORARYUNIQUERYBEGINNEREFERENCESBETWEEN        */
  /*   OTNULLIMITCASCADELETECASECOLLATECREATECURRENT_DATEGROUPDATE        */
  /*   IMMEDIATEJOINSERTMATCHAVINGLOBYPLANDEFAULTRELEASEVALUESWHEN        */
  /*   WHEREPLACEABORTAFTERESTRICTCASTCOMMITCONFLICTCROSS                 */
  /*   CURRENT_TIMESTAMPRIMARYDEFERREDISTINCTDROPFAILFROMFULLIF           */
  /*   INSTEADISNULLORDERIGHTOUTEROLLBACKROWUNIONUSINGVIEWINITIALLY       */
  static const char zText[466] = {
    'B','E','F','O','R','E','I','G','N','O','R','E','G','E','X','P','L','A',
    'I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H','E','C',
    'K','E','Y','C','O','N','S','T','R','A','I','N','T','E','R','S','E','C',

    'T','A','B','L','E','F','T','H','E','N','D','E','F','E','R','R','A','B',
    'L','E','L','S','E','L','E','C','T','R','A','N','S','A','C','T','I','O',
    'N','A','T','U','R','A','L','I','K','E','X','C','E','P','T','R','I','G',
    'G','E','R','A','I','S','E','X','C','L','U','S','I','V','E','X','I','S',

    'T','S','A','V','E','P','O','I','N','T','O','F','F','S','E','T','E','M',
    'P','O','R','A','R','Y','U','N','I','Q','U','E','R','Y','B','E','G','I',
    'N','N','E','R','E','F','E','R','E','N','C','E','S','B','E','T','W','E',
    'E','N','O','T','N','U','L','L','I','M','I','T','C','A','S','C','A','D',
    'E','L','E','T','E','C','A','S','E','C','O','L','L','A','T','E','C','R',
    'E','A','T','E','C','U','R','R','E','N','T','_','D','A','T','E','G','R',
    'O','U','P','D','A','T','E','I','M','M','E','D','I','A','T','E','J','O',

    'I','N','S','E','R','T','M','A','T','C','H','A','V','I','N','G','L','O',
    'B','Y','P','L','A','N','D','E','F','A','U','L','T','R','E','L','E','A',

    'S','E','V','A','L','U','E','S','W','H','E','N','W','H','E','R','E','P',
    'L','A','C','E','A','B','O','R','T','A','F','T','E','R','E','S','T','R',
    'I','C','T','C','A','S','T','C','O','M','M','I','T','C','O','N','F','L',
    'I','C','T','C','R','O','S','S','C','U','R','R','E','N','T','_','T','I',
    'M','E','S','T','A','M','P','R','I','M','A','R','Y','D','E','F','E','R',
    'R','E','D','I','S','T','I','N','C','T','D','R','O','P','F','A','I','L',
    'F','R','O','M','F','U','L','L','I','F','I','N','S','T','E','A','D','I',
    'S','N','U','L','L','O','R','D','E','R','I','G','H','T','O','U','T','E',
    'R','O','L','L','B','A','C','K','R','O','W','U','N','I','O','N','U','S',
    'I','N','G','V','I','E','W','I','N','I','T','I','A','L','L','Y',

  };
  static const unsigned char aHash[127] = {
      65,  91, 102,  63,   0,  41,   0,   0,  75,   0,  66,   0,   0,
      38,   4,  70,  97,   0, 100,  76,  67,  96,   0,  23,   0,   0,
      34,   0, 104,  81,   0,  19,  36,   0,   1,   0,   0,  58,  59,
       0,  57,  11,   0,  44,  71,  88,   0, 103,  87,   0,   0,  40,
       0,  89,  21,   0,   0,   0, 106,   0,  20,   0,  10,  68,  22,
       0,   0,   0, 108,  92,  48, 107,  45,  25,  61,   0,  72,   0,
      86,  29,   0,  85,   0,   0,   0,  82,   2,  83,  80,  95,   6,

      14,  94,   0,  79,   0,  74,  78,  69,  31,   0, 105,   0,  98,
      50,  42,  53,   0,   0,  16,  35,   0, 101,   0,  15,   0,   0,
      26,   0,  77,  51,  52,   0,  17,  49,   0,  62,
  };
  static const unsigned char aNext[108] = {
       0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,
       0,   0,   0,   0,   0,   5,   0,   0,   0,   0,   0,  12,   0,
       0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      32,   0,  18,   0,   0,   0,   0,  28,   0,  27,   0,  46,   0,
       0,   0,   0,   0,   0,  54,   0,   0,   8,  43,   0,  37,   0,
       0,  39,   0,   0,   0,   0,  33,   0,   0,   0,   0,   0,  73,
       0,   0,   0,   0,   0,   0,   0,   3,  60,   0,   0,  13,   0,
      90,  84,   0,  93,   0,   7,  64,   0,  24,  99,  30,  55,  47,
       0,  56,   0,   0,
  };
  static const unsigned char aLen[108] = {
       6,   7,   3,   6,   6,   7,   7,   5,   4,   6,   4,   5,   3,
      10,   9,   2,   5,   4,   4,   3,  10,   4,   6,  11,   6,   2,
       7,   4,   6,   7,   5,   9,   6,   9,   4,   2,   6,   2,   3,
       9,   4,   2,   6,   5,   5,   5,  10,   7,   7,   3,   2,   4,
       5,   7,   3,   6,   4,   7,   6,  12,   5,   6,   9,   4,   6,
       5,   6,   4,   2,   4,   3,   7,   7,   2,   6,   4,   5,   7,
       5,   5,   8,   4,   6,   8,   5,  17,  12,   7,   8,   8,   2,
       4,   4,   4,   4,   2,   7,   6,   5,   5,   5,   8,   3,   5,
       5,   4,   9,   3,
  };
  static const unsigned short int aOffset[108] = {
       0,   2,   2,   6,  10,  13,  18,  18,  24,  25,  30,  32,  36,
      39,  46,  46,  54,  57,  60,  62,  64,  73,  75,  80,  85,  89,
      90,  96,  99, 104, 110, 114, 122, 127, 133, 135, 136, 136, 139,
     141, 141, 145, 150, 153, 158, 161, 165, 175, 181, 181, 181, 184,
     187, 192, 193, 197, 203, 207, 214, 220, 232, 235, 241, 250, 252,
     258, 262, 267, 270, 272, 274, 276, 283, 287, 290, 296, 300, 303,
     310, 315, 319, 327, 331, 337, 345, 350, 350, 366, 373, 380, 381,
     388, 392, 396, 400, 404, 406, 413, 419, 423, 428, 432, 440, 443,
     448, 453, 457, 462,
  };
  static const unsigned char aCode[108] = {
    TK_BEFORE,     TK_FOREIGN,    TK_FOR,        TK_IGNORE,     TK_LIKE_KW,    
    TK_EXPLAIN,    TK_INDEXED,    TK_INDEX,      TK_DESC,       TK_ESCAPE,     
    TK_EACH,       TK_CHECK,      TK_KEY,        TK_CONSTRAINT, TK_INTERSECT,  

    TK_IN,         TK_TABLE,      TK_JOIN_KW,    TK_THEN,       TK_END,        
    TK_DEFERRABLE, TK_ELSE,       TK_SELECT,     TK_TRANSACTION,TK_ACTION,     
    TK_ON,         TK_JOIN_KW,    TK_LIKE_KW,    TK_EXCEPT,     TK_TRIGGER,    
    TK_RAISE,      TK_EXCLUSIVE,  TK_EXISTS,     TK_SAVEPOINT,  TK_INTO,       

    TK_TO,         TK_OFFSET,     TK_OF,         TK_SET,        TK_TEMP,       
    TK_TEMP,       TK_OR,         TK_UNIQUE,     TK_QUERY,      TK_BEGIN,      
    TK_JOIN_KW,    TK_REFERENCES, TK_BETWEEN,    TK_NOTNULL,    TK_NOT,        
    TK_NO,         TK_NULL,       TK_LIMIT,      TK_CASCADE,    TK_ASC,        
    TK_DELETE,     TK_CASE,       TK_COLLATE,    TK_CREATE,     TK_CTIME_KW,   
    TK_GROUP,      TK_UPDATE,     TK_IMMEDIATE,  TK_JOIN,       TK_INSERT,     

    TK_MATCH,      TK_HAVING,     TK_LIKE_KW,    TK_BY,         TK_PLAN,       
    TK_AND,        TK_DEFAULT,    TK_RELEASE,    TK_AS,         TK_VALUES,     
    TK_WHEN,       TK_WHERE,      TK_REPLACE,    TK_ABORT,      TK_AFTER,      
    TK_RESTRICT,   TK_CAST,       TK_COMMIT,     TK_CONFLICT,   TK_JOIN_KW,    
    TK_CTIME_KW,   TK_CTIME_KW,   TK_PRIMARY,    TK_DEFERRED,   TK_DISTINCT,   
    TK_IS,         TK_DROP,       TK_FAIL,       TK_FROM,       TK_JOIN_KW,    
    TK_IF,         TK_INSTEAD,    TK_ISNULL,     TK_ORDER,      TK_JOIN_KW,    
    TK_JOIN_KW,    TK_ROLLBACK,   TK_ROW,        TK_UNION,      TK_USING,      
    TK_VIEW,       TK_INITIALLY,  TK_ALL,        
  };
  int h, i;
  if( n<2 ) return TK_ID;
  h = ((charMap(z[0])*4) ^
      (charMap(z[n-1])*3) ^
      n) % 127;
  for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){
    if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){
      testcase( i==0 ); /* BEFORE */
      testcase( i==1 ); /* FOREIGN */
      testcase( i==2 ); /* FOR */
      testcase( i==3 ); /* IGNORE */
      testcase( i==4 ); /* REGEXP */
      testcase( i==5 ); /* EXPLAIN */
      testcase( i==6 ); /* INDEXED */
      testcase( i==7 ); /* INDEX */
      testcase( i==8 ); /* DESC */
      testcase( i==9 ); /* ESCAPE */
      testcase( i==10 ); /* EACH */
      testcase( i==11 ); /* CHECK */
      testcase( i==12 ); /* KEY */
      testcase( i==13 ); /* CONSTRAINT */
      testcase( i==14 ); /* INTERSECT */
      testcase( i==15 ); /* IN */
      testcase( i==16 ); /* TABLE */
      testcase( i==17 ); /* LEFT */
      testcase( i==18 ); /* THEN */
      testcase( i==19 ); /* END */
      testcase( i==20 ); /* DEFERRABLE */
      testcase( i==21 ); /* ELSE */
      testcase( i==22 ); /* SELECT */
      testcase( i==23 ); /* TRANSACTION */
      testcase( i==24 ); /* ACTION */
      testcase( i==25 ); /* ON */
      testcase( i==26 ); /* NATURAL */
      testcase( i==27 ); /* LIKE */
      testcase( i==28 ); /* EXCEPT */
      testcase( i==29 ); /* TRIGGER */
      testcase( i==30 ); /* RAISE */
      testcase( i==31 ); /* EXCLUSIVE */
      testcase( i==32 ); /* EXISTS */
      testcase( i==33 ); /* SAVEPOINT */
      testcase( i==34 ); /* INTO */
      testcase( i==35 ); /* TO */
      testcase( i==36 ); /* OFFSET */
      testcase( i==37 ); /* OF */
      testcase( i==38 ); /* SET */
      testcase( i==39 ); /* TEMPORARY */
      testcase( i==40 ); /* TEMP */
      testcase( i==41 ); /* OR */
      testcase( i==42 ); /* UNIQUE */
      testcase( i==43 ); /* QUERY */
      testcase( i==44 ); /* BEGIN */
      testcase( i==45 ); /* INNER */
      testcase( i==46 ); /* REFERENCES */
      testcase( i==47 ); /* BETWEEN */
      testcase( i==48 ); /* NOTNULL */
      testcase( i==49 ); /* NOT */
      testcase( i==50 ); /* NO */
      testcase( i==51 ); /* NULL */
      testcase( i==52 ); /* LIMIT */
      testcase( i==53 ); /* CASCADE */
      testcase( i==54 ); /* ASC */
      testcase( i==55 ); /* DELETE */
      testcase( i==56 ); /* CASE */
      testcase( i==57 ); /* COLLATE */
      testcase( i==58 ); /* CREATE */
      testcase( i==59 ); /* CURRENT_DATE */
      testcase( i==60 ); /* GROUP */
      testcase( i==61 ); /* UPDATE */
      testcase( i==62 ); /* IMMEDIATE */
      testcase( i==63 ); /* JOIN */
      testcase( i==64 ); /* INSERT */
      testcase( i==65 ); /* MATCH */
      testcase( i==66 ); /* HAVING */
      testcase( i==67 ); /* GLOB */
      testcase( i==68 ); /* BY */
      testcase( i==69 ); /* PLAN */
      testcase( i==70 ); /* AND */
      testcase( i==71 ); /* DEFAULT */
      testcase( i==72 ); /* RELEASE */
      testcase( i==73 ); /* AS */
      testcase( i==74 ); /* VALUES */
      testcase( i==75 ); /* WHEN */
      testcase( i==76 ); /* WHERE */
      testcase( i==77 ); /* REPLACE */
      testcase( i==78 ); /* ABORT */
      testcase( i==79 ); /* AFTER */
      testcase( i==80 ); /* RESTRICT */
      testcase( i==81 ); /* CAST */
      testcase( i==82 ); /* COMMIT */
      testcase( i==83 ); /* CONFLICT */
      testcase( i==84 ); /* CROSS */
      testcase( i==85 ); /* CURRENT_TIMESTAMP */
      testcase( i==86 ); /* CURRENT_TIME */
      testcase( i==87 ); /* PRIMARY */
      testcase( i==88 ); /* DEFERRED */
      testcase( i==89 ); /* DISTINCT */
      testcase( i==90 ); /* IS */
      testcase( i==91 ); /* DROP */
      testcase( i==92 ); /* FAIL */
      testcase( i==93 ); /* FROM */
      testcase( i==94 ); /* FULL */
      testcase( i==95 ); /* IF */
      testcase( i==96 ); /* INSTEAD */
      testcase( i==97 ); /* ISNULL */
      testcase( i==98 ); /* ORDER */
      testcase( i==99 ); /* RIGHT */
      testcase( i==100 ); /* OUTER */
      testcase( i==101 ); /* ROLLBACK */
      testcase( i==102 ); /* ROW */
      testcase( i==103 ); /* UNION */
      testcase( i==104 ); /* USING */
      testcase( i==105 ); /* VIEW */
      testcase( i==106 ); /* INITIALLY */
      testcase( i==107 ); /* ALL */


      return aCode[i];
    }
  }
  return TK_ID;
}
SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *z, int n){
  return keywordCode((char*)z, n);
}
#define SQLITE_N_KEYWORD 108

/************** End of keywordhash.h *****************************************/
/************** Continuing where we left off in tokenize.c *******************/


/*
** If X is a character that can be used in an identifier then







|

|
|
|
|
|
|
|
|
|
|
<
|
|
>
|
|
|
|
>
|
|
<
|
|
|
|
>
|
|
>
|
|
|
|
<
|
<
|
|
|
>


|
<
|
|
|
|
|
>
|
|
|

|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

|
<
|
|
>
|
|
|
|
>
|
|
<
|
|
|
>
|
|
|
|
|
|
<
|
|








|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>








|







103381
103382
103383
103384
103385
103386
103387
103388
103389
103390
103391
103392
103393
103394
103395
103396
103397
103398
103399

103400
103401
103402
103403
103404
103405
103406
103407
103408
103409

103410
103411
103412
103413
103414
103415
103416
103417
103418
103419
103420
103421

103422

103423
103424
103425
103426
103427
103428
103429

103430
103431
103432
103433
103434
103435
103436
103437
103438
103439
103440
103441
103442
103443
103444
103445
103446
103447
103448
103449
103450
103451
103452
103453
103454
103455
103456
103457
103458
103459
103460
103461
103462
103463
103464
103465
103466
103467
103468
103469
103470
103471
103472
103473

103474
103475
103476
103477
103478
103479
103480
103481
103482
103483

103484
103485
103486
103487
103488
103489
103490
103491
103492
103493

103494
103495
103496
103497
103498
103499
103500
103501
103502
103503
103504
103505
103506
103507
103508
103509
103510
103511
103512
103513
103514
103515
103516
103517
103518
103519
103520
103521
103522
103523
103524
103525
103526
103527
103528
103529
103530
103531
103532
103533
103534
103535
103536
103537
103538
103539
103540
103541
103542
103543
103544
103545
103546
103547
103548
103549
103550
103551
103552
103553
103554
103555
103556
103557
103558
103559
103560
103561
103562
103563
103564
103565
103566
103567
103568
103569
103570
103571
103572
103573
103574
103575
103576
103577
103578
103579
103580
103581
103582
103583
103584
103585
103586
103587
103588
103589
103590
103591
103592
103593
103594
103595
103596
103597
103598
103599
103600
103601
103602
103603
103604
103605
103606
103607
103608
103609
103610
103611
103612
103613
103614
103615
103616
103617
103618
103619
103620
103621
103622
103623
103624
103625
103626
103627
103628
103629
** The code in this file implements a function that determines whether
** or not a given identifier is really an SQL keyword.  The same thing
** might be implemented more directly using a hand-written hash table.
** But by using this automatically generated code, the size of the code
** is substantially reduced.  This is important for embedded applications
** on platforms with limited memory.
*/
/* Hash score: 148 */
static int keywordCode(const char *z, int n){
  /* zText[] encodes 727 bytes of keywords in 473 bytes */
  /*   REINDEXEDESCAPEACHECKEYBEFOREIGNOREGEXPLAINNERAISELECTABLEFT       */
  /*   HENDEFERRABLELSEXCEPTRANSACTIONATURALIKEXCLUSIVEXISTSAVEPOINT      */
  /*   ERSECTRIGGEREFERENCESCONSTRAINTOFFSETEMPORARYUNIQUERYBEGINSERT     */
  /*   BETWEENOTNULLIMITCASCADELETECASECOLLATECREATECURRENT_DATEGROUP     */
  /*   DATEIMMEDIATEJOINSTEADEFAULTMATCHAVINGLOBYPLANDEFERREDISTINCT      */
  /*   PRAGMABORTRELEASEVALUESWHENWHEREPLACEAFTERESTRICTCASTCOMMIT        */
  /*   CONFLICTCROSSCURRENT_TIMESTAMPRIMARYDROPFAILFROMFULLIFISNULL       */
  /*   ORDERIGHTOUTEROLLBACKROWUNIONUSINGVIEWINITIALLY                    */
  static const char zText[472] = {

    'R','E','I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H',
    'E','C','K','E','Y','B','E','F','O','R','E','I','G','N','O','R','E','G',
    'E','X','P','L','A','I','N','N','E','R','A','I','S','E','L','E','C','T',
    'A','B','L','E','F','T','H','E','N','D','E','F','E','R','R','A','B','L',
    'E','L','S','E','X','C','E','P','T','R','A','N','S','A','C','T','I','O',
    'N','A','T','U','R','A','L','I','K','E','X','C','L','U','S','I','V','E',
    'X','I','S','T','S','A','V','E','P','O','I','N','T','E','R','S','E','C',
    'T','R','I','G','G','E','R','E','F','E','R','E','N','C','E','S','C','O',
    'N','S','T','R','A','I','N','T','O','F','F','S','E','T','E','M','P','O',
    'R','A','R','Y','U','N','I','Q','U','E','R','Y','B','E','G','I','N','S',

    'E','R','T','B','E','T','W','E','E','N','O','T','N','U','L','L','I','M',
    'I','T','C','A','S','C','A','D','E','L','E','T','E','C','A','S','E','C',
    'O','L','L','A','T','E','C','R','E','A','T','E','C','U','R','R','E','N',
    'T','_','D','A','T','E','G','R','O','U','P','D','A','T','E','I','M','M',
    'E','D','I','A','T','E','J','O','I','N','S','T','E','A','D','E','F','A',
    'U','L','T','M','A','T','C','H','A','V','I','N','G','L','O','B','Y','P',
    'L','A','N','D','E','F','E','R','R','E','D','I','S','T','I','N','C','T',
    'P','R','A','G','M','A','B','O','R','T','R','E','L','E','A','S','E','V',
    'A','L','U','E','S','W','H','E','N','W','H','E','R','E','P','L','A','C',
    'E','A','F','T','E','R','E','S','T','R','I','C','T','C','A','S','T','C',
    'O','M','M','I','T','C','O','N','F','L','I','C','T','C','R','O','S','S',
    'C','U','R','R','E','N','T','_','T','I','M','E','S','T','A','M','P','R',

    'I','M','A','R','Y','D','R','O','P','F','A','I','L','F','R','O','M','F',

    'U','L','L','I','F','I','S','N','U','L','L','O','R','D','E','R','I','G',
    'H','T','O','U','T','E','R','O','L','L','B','A','C','K','R','O','W','U',
    'N','I','O','N','U','S','I','N','G','V','I','E','W','I','N','I','T','I',
    'A','L','L','Y',
  };
  static const unsigned char aHash[127] = {
      49,  77, 104,  65,   0,  44,   0,   0,  82,   0,  69,   0,   0,

      41,  12,  73,  67,   0, 102,  83,  70,  99,   0,  17,   0,   0,
      32,   0, 106,  87,   0,  20,  39,   0,   9,   0,   0,  60,  61,
       0,  59,   6,   0,  47,  74,  94,   0, 105,  93,   0,   0,  43,
       0,  75,  22,   0,   0,   0, 108,   0,  21,   0,   5,  71,  23,
       0,   0,   0, 110,  95,  50, 109,  48,  26,  63,   0,  68,   0,
      92,  24,   0,  91,   0,   0,   0,  88,  10,  89,  86,  98,  14,
      36,  97,   0,  79,   0,  81,  85,  72,  16,   0, 107,  78, 100,
      52,  45,  55,   0,   0,  38,  37,   0, 103,   0,  33,   0,   0,
      27,   0,  84,  53,  54,   0,  18,  51,   0,  64,
  };
  static const unsigned char aNext[110] = {
       0,   0,   0,   0,   4,   0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,  13,   0,   0,   0,   0,   0,   7,
       0,   0,   0,   0,   0,   0,   0,   0,  29,   0,   0,   0,   0,
       0,   0,   0,  30,   0,  19,   0,   0,   0,   0,   0,  28,   0,
      15,   0,   0,   0,   0,   0,   1,  56,   0,   0,   3,  46,   0,
      40,   2,  31,   0,  42,   0,   0,   0,   0,   0,   8,   0,   0,
       0,   0,   0,   0,   0,   0,  80,   0,   0,   0,   0,   0,   0,
      11,  62,   0,  76,  90,   0,  96,   0,  66,   0,  25, 101,  34,
      57,  35,   0,  58,   0,   0,
  };
  static const unsigned char aLen[110] = {
       7,   7,   5,   4,   6,   4,   5,   3,   6,   7,   3,   6,   6,
       7,   5,   5,   6,   5,   4,   4,   3,  10,   4,   6,  11,   6,
       2,   7,   4,   9,   6,   9,   9,   7,  10,  10,   4,   2,   2,
       6,   2,   3,   9,   4,   2,   6,   5,   5,   6,   7,   7,   3,
       2,   4,   5,   7,   3,   6,   4,   7,   6,  12,   5,   6,   9,
       4,   7,   7,   5,   6,   4,   2,   4,   3,   8,   8,   2,   6,
       5,   7,   2,   6,   4,   5,   7,   5,   8,   4,   6,   8,   5,
      17,  12,   7,   4,   4,   4,   4,   2,   6,   5,   5,   5,   8,
       3,   5,   5,   4,   9,   3,
  };
  static const unsigned short int aOffset[110] = {
       0,   2,   2,   8,   9,  14,  16,  20,  23,  25,  25,  29,  33,
      36,  41,  45,  48,  53,  56,  59,  61,  63,  72,  75,  80,  85,
      89,  90,  96,  99, 107, 112, 118, 126, 132, 142, 149, 149, 151,
     152, 152, 155, 157, 157, 161, 166, 169, 174, 177, 183, 189, 189,
     189, 192, 195, 200, 201, 205, 211, 215, 222, 228, 240, 243, 249,
     258, 260, 266, 273, 277, 282, 285, 287, 289, 291, 298, 299, 306,
     311, 316, 320, 323, 329, 333, 336, 343, 347, 355, 359, 365, 373,
     378, 378, 394, 401, 405, 409, 413, 417, 419, 425, 429, 434, 438,
     446, 449, 454, 459, 463, 468,
  };
  static const unsigned char aCode[110] = {

    TK_REINDEX,    TK_INDEXED,    TK_INDEX,      TK_DESC,       TK_ESCAPE,     
    TK_EACH,       TK_CHECK,      TK_KEY,        TK_BEFORE,     TK_FOREIGN,    
    TK_FOR,        TK_IGNORE,     TK_LIKE_KW,    TK_EXPLAIN,    TK_JOIN_KW,    
    TK_RAISE,      TK_SELECT,     TK_TABLE,      TK_JOIN_KW,    TK_THEN,       
    TK_END,        TK_DEFERRABLE, TK_ELSE,       TK_EXCEPT,     TK_TRANSACTION,
    TK_ACTION,     TK_ON,         TK_JOIN_KW,    TK_LIKE_KW,    TK_EXCLUSIVE,  
    TK_EXISTS,     TK_SAVEPOINT,  TK_INTERSECT,  TK_TRIGGER,    TK_REFERENCES, 
    TK_CONSTRAINT, TK_INTO,       TK_IN,         TK_TO,         TK_OFFSET,     
    TK_OF,         TK_SET,        TK_TEMP,       TK_TEMP,       TK_OR,         
    TK_UNIQUE,     TK_QUERY,      TK_BEGIN,      TK_INSERT,     TK_BETWEEN,    

    TK_NOTNULL,    TK_NOT,        TK_NO,         TK_NULL,       TK_LIMIT,      
    TK_CASCADE,    TK_ASC,        TK_DELETE,     TK_CASE,       TK_COLLATE,    
    TK_CREATE,     TK_CTIME_KW,   TK_GROUP,      TK_UPDATE,     TK_IMMEDIATE,  
    TK_JOIN,       TK_INSTEAD,    TK_DEFAULT,    TK_MATCH,      TK_HAVING,     
    TK_LIKE_KW,    TK_BY,         TK_PLAN,       TK_AND,        TK_DEFERRED,   
    TK_DISTINCT,   TK_IS,         TK_PRAGMA,     TK_ABORT,      TK_RELEASE,    
    TK_AS,         TK_VALUES,     TK_WHEN,       TK_WHERE,      TK_REPLACE,    
    TK_AFTER,      TK_RESTRICT,   TK_CAST,       TK_COMMIT,     TK_CONFLICT,   
    TK_JOIN_KW,    TK_CTIME_KW,   TK_CTIME_KW,   TK_PRIMARY,    TK_DROP,       
    TK_FAIL,       TK_FROM,       TK_JOIN_KW,    TK_IF,         TK_ISNULL,     

    TK_ORDER,      TK_JOIN_KW,    TK_JOIN_KW,    TK_ROLLBACK,   TK_ROW,        
    TK_UNION,      TK_USING,      TK_VIEW,       TK_INITIALLY,  TK_ALL,        
  };
  int h, i;
  if( n<2 ) return TK_ID;
  h = ((charMap(z[0])*4) ^
      (charMap(z[n-1])*3) ^
      n) % 127;
  for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){
    if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){
      testcase( i==0 ); /* REINDEX */
      testcase( i==1 ); /* INDEXED */
      testcase( i==2 ); /* INDEX */
      testcase( i==3 ); /* DESC */
      testcase( i==4 ); /* ESCAPE */
      testcase( i==5 ); /* EACH */
      testcase( i==6 ); /* CHECK */
      testcase( i==7 ); /* KEY */
      testcase( i==8 ); /* BEFORE */
      testcase( i==9 ); /* FOREIGN */
      testcase( i==10 ); /* FOR */
      testcase( i==11 ); /* IGNORE */
      testcase( i==12 ); /* REGEXP */
      testcase( i==13 ); /* EXPLAIN */
      testcase( i==14 ); /* INNER */
      testcase( i==15 ); /* RAISE */
      testcase( i==16 ); /* SELECT */
      testcase( i==17 ); /* TABLE */
      testcase( i==18 ); /* LEFT */
      testcase( i==19 ); /* THEN */
      testcase( i==20 ); /* END */
      testcase( i==21 ); /* DEFERRABLE */
      testcase( i==22 ); /* ELSE */
      testcase( i==23 ); /* EXCEPT */
      testcase( i==24 ); /* TRANSACTION */
      testcase( i==25 ); /* ACTION */
      testcase( i==26 ); /* ON */
      testcase( i==27 ); /* NATURAL */
      testcase( i==28 ); /* LIKE */
      testcase( i==29 ); /* EXCLUSIVE */
      testcase( i==30 ); /* EXISTS */
      testcase( i==31 ); /* SAVEPOINT */
      testcase( i==32 ); /* INTERSECT */
      testcase( i==33 ); /* TRIGGER */
      testcase( i==34 ); /* REFERENCES */
      testcase( i==35 ); /* CONSTRAINT */
      testcase( i==36 ); /* INTO */
      testcase( i==37 ); /* IN */
      testcase( i==38 ); /* TO */
      testcase( i==39 ); /* OFFSET */
      testcase( i==40 ); /* OF */
      testcase( i==41 ); /* SET */
      testcase( i==42 ); /* TEMPORARY */
      testcase( i==43 ); /* TEMP */
      testcase( i==44 ); /* OR */
      testcase( i==45 ); /* UNIQUE */
      testcase( i==46 ); /* QUERY */
      testcase( i==47 ); /* BEGIN */
      testcase( i==48 ); /* INSERT */
      testcase( i==49 ); /* BETWEEN */
      testcase( i==50 ); /* NOTNULL */
      testcase( i==51 ); /* NOT */
      testcase( i==52 ); /* NO */
      testcase( i==53 ); /* NULL */
      testcase( i==54 ); /* LIMIT */
      testcase( i==55 ); /* CASCADE */
      testcase( i==56 ); /* ASC */
      testcase( i==57 ); /* DELETE */
      testcase( i==58 ); /* CASE */
      testcase( i==59 ); /* COLLATE */
      testcase( i==60 ); /* CREATE */
      testcase( i==61 ); /* CURRENT_DATE */
      testcase( i==62 ); /* GROUP */
      testcase( i==63 ); /* UPDATE */
      testcase( i==64 ); /* IMMEDIATE */
      testcase( i==65 ); /* JOIN */
      testcase( i==66 ); /* INSTEAD */
      testcase( i==67 ); /* DEFAULT */
      testcase( i==68 ); /* MATCH */
      testcase( i==69 ); /* HAVING */
      testcase( i==70 ); /* GLOB */
      testcase( i==71 ); /* BY */
      testcase( i==72 ); /* PLAN */
      testcase( i==73 ); /* AND */
      testcase( i==74 ); /* DEFERRED */
      testcase( i==75 ); /* DISTINCT */
      testcase( i==76 ); /* IS */
      testcase( i==77 ); /* PRAGMA */
      testcase( i==78 ); /* ABORT */
      testcase( i==79 ); /* RELEASE */
      testcase( i==80 ); /* AS */
      testcase( i==81 ); /* VALUES */
      testcase( i==82 ); /* WHEN */
      testcase( i==83 ); /* WHERE */
      testcase( i==84 ); /* REPLACE */
      testcase( i==85 ); /* AFTER */
      testcase( i==86 ); /* RESTRICT */
      testcase( i==87 ); /* CAST */
      testcase( i==88 ); /* COMMIT */
      testcase( i==89 ); /* CONFLICT */
      testcase( i==90 ); /* CROSS */
      testcase( i==91 ); /* CURRENT_TIMESTAMP */
      testcase( i==92 ); /* CURRENT_TIME */
      testcase( i==93 ); /* PRIMARY */
      testcase( i==94 ); /* DROP */
      testcase( i==95 ); /* FAIL */
      testcase( i==96 ); /* FROM */
      testcase( i==97 ); /* FULL */
      testcase( i==98 ); /* IF */
      testcase( i==99 ); /* ISNULL */
      testcase( i==100 ); /* ORDER */
      testcase( i==101 ); /* RIGHT */
      testcase( i==102 ); /* OUTER */
      testcase( i==103 ); /* ROLLBACK */
      testcase( i==104 ); /* ROW */
      testcase( i==105 ); /* UNION */
      testcase( i==106 ); /* USING */
      testcase( i==107 ); /* VIEW */
      testcase( i==108 ); /* INITIALLY */
      testcase( i==109 ); /* ALL */
      return aCode[i];
    }
  }
  return TK_ID;
}
SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *z, int n){
  return keywordCode((char*)z, n);
}
#define SQLITE_N_KEYWORD 110

/************** End of keywordhash.h *****************************************/
/************** Continuing where we left off in tokenize.c *******************/


/*
** If X is a character that can be used in an identifier then
Changes to src/sqllogictest.mk.
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
OPTS += -DSQLITE_OMIT_COMPLETE
#OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE
OPTS += -DSQLITE_OMIT_DATETIME_FUNCS
OPTS += -DSQLITE_OMIT_GET_TABLE
OPTS += -DSQLITE_OMIT_INCRBLOB
OPTS += -DSQLITE_OMIT_LOAD_EXTENSION
OPTS += -DSQLITE_OMIT_MEMORYDB
OPTS += -DSQLITE_OMIT_PRAGMA
OPTS += -DSQLITE_OMIT_REINDEX
OPTS += -DSQLITE_OMIT_SHARED_CACHE
OPTS += -DSQLITE_OMIT_TCL_VARIABLE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_UTF16
OPTS += -DSQLITE_OMIT_VACUUM
OPTS += -DSQLITE_OMIT_VIRTUALTABLE







|
|







43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
OPTS += -DSQLITE_OMIT_COMPLETE
#OPTS += -DSQLITE_OMIT_CONFLICT_CLAUSE
OPTS += -DSQLITE_OMIT_DATETIME_FUNCS
OPTS += -DSQLITE_OMIT_GET_TABLE
OPTS += -DSQLITE_OMIT_INCRBLOB
OPTS += -DSQLITE_OMIT_LOAD_EXTENSION
OPTS += -DSQLITE_OMIT_MEMORYDB
#OPTS += -DSQLITE_OMIT_PRAGMA
#OPTS += -DSQLITE_OMIT_REINDEX
OPTS += -DSQLITE_OMIT_SHARED_CACHE
OPTS += -DSQLITE_OMIT_TCL_VARIABLE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_TRACE
OPTS += -DSQLITE_OMIT_UTF16
OPTS += -DSQLITE_OMIT_VACUUM
OPTS += -DSQLITE_OMIT_VIRTUALTABLE
Changes to test/evidence/slt_lang_droptable.test.
43
44
45
46
47
48
49

50
51
52

53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# PARTIAL-EVIDENCE-OF: R-57089-01510 The optional IF EXISTS clause suppresses
# the error that would normally result if the table does not exist.

statement ok
CREATE TABLE t1( x INTEGER, y VARCHAR(8) )

skipif mssql

DROP TABLE IF EXISTS t1

skipif mssql

DROP TABLE IF EXISTS t1

# TBD-EVIDENCE-OF: R-55943-26846 If foreign key constraints are enabled, a
# DROP TABLE command performs an implicit DELETE FROM &lt;tbl&gt;
# command before removing the table from the database schema.

# TBD-EVIDENCE-OF: R-02002-57504 Any triggers attached to the table are
# dropped from the database schema before the implicit DELETE FROM
# &lt;tbl&gt; is executed, so this cannot cause any triggers to fire.

# TBD-EVIDENCE-OF: R-33044-60878 an implicit DELETE FROM &lt;tbl&gt; does
# cause any configured foreign key actions to take place.

# TBD-EVIDENCE-OF: R-17649-15849 If the implicit DELETE FROM &lt;tbl&gt;
# executed as part of a DROP TABLE command violates any immediate
# foreign key constraints, an error is returned and the table is not
# dropped.

# TBD-EVIDENCE-OF: R-01608-60102 If the implicit DELETE FROM &lt;tbl&gt;
# causes any deferred foreign key constraints to be violated, and the
# violations still exist when the transaction is committed, an error is
# returned at the time of commit.








>



>

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
43
44
45
46
47
48
49
50
51
52
53
54
55






















# PARTIAL-EVIDENCE-OF: R-57089-01510 The optional IF EXISTS clause suppresses
# the error that would normally result if the table does not exist.

statement ok
CREATE TABLE t1( x INTEGER, y VARCHAR(8) )

skipif mssql
statement ok
DROP TABLE IF EXISTS t1

skipif mssql
statement ok
DROP TABLE IF EXISTS t1