[tarantool-patches] Re: [PATCH v2] sql: ban of REINDEX syntax

n.pettik korablev at tarantool.org
Wed Apr 4 18:42:10 MSK 2018


Hello. See only one minor remark. The rest seems OK to me.

> On 4 Apr 2018, at 15:30, Ivan Ilyin <vanyail at yandex.ru> wrote:
> 
> From: vanyail <vanyail at yandex.ru>
> 
> This change removes REINDEX from keywords and also disables tests
> which were using this syntax.
> 
> This patch affects only parser, REINDEX implementation still exists,
> because it is planned to be fixed and enabled in the scope of #3195.
> 
> Note that REINDEX keyword is still in '%fallback' directive in
> 'parse.y'. Reserved keywords included there to avoid situation when
> a keyword has no usages within 'parse.y' file.
> 
> Fixes #2174
> branch: https://github.com/tarantool/tarantool/tree/gh-2174-ban-reindex-syntax
> issue: https://github.com/tarantool/tarantool/issues/2174
> ---
> src/box/sql/parse.c                              | 1797 +++++++++++-----------
> src/box/sql/parse.y                              |   18 +-
> test/sql-tap/gh-2174-ban-reindex-syntax.test.lua |   29 +
> test/sql-tap/gh2130-index-refer-table.test.lua   |   23 +-
> test/sql-tap/misc3.test.lua                      |   73 +-
> test/sql-tap/suite.ini                           |    2 +
> 6 files changed, 980 insertions(+), 962 deletions(-)
> create mode 100755 test/sql-tap/gh-2174-ban-reindex-syntax.test.lua
> 
> diff --git a/src/box/sql/parse.c b/src/box/sql/parse.c
> index 0019b77..77830eb 100644
> --- a/src/box/sql/parse.c
> +++ b/src/box/sql/parse.c
> @@ -81,7 +81,7 @@ static void disableLookaside(Parse *pParse){
>   pParse->db->lookaside.bDisable++;
> }
> 
> -#line 392 "parse.y"
> +#line 399 "parse.y"
> 
>   /*
>   ** For a compound SELECT statement, make sure p->pPrior->pNext==p for
> @@ -104,7 +104,7 @@ static void disableLookaside(Parse *pParse){
>       }
>     }
>   }
> -#line 831 "parse.y"
> +#line 838 "parse.y"
> 
>   /* This is a utility routine used to set the ExprSpan.zStart and
>   ** ExprSpan.zEnd values of pOut so that the span covers the complete
> @@ -140,7 +140,7 @@ static void disableLookaside(Parse *pParse){
>     pOut->zStart = t.z;
>     pOut->zEnd = &t.z[t.n];
>   }
> -#line 939 "parse.y"
> +#line 946 "parse.y"
> 
>   /* This routine constructs a binary expression node out of two ExprSpan
>   ** objects and uses the result to populate a new ExprSpan object.
> @@ -163,7 +163,7 @@ static void disableLookaside(Parse *pParse){
>       pSpan->pExpr = sqlite3PExpr(pParse, TK_NOT, pSpan->pExpr, 0);
>     }
>   }
> -#line 1013 "parse.y"
> +#line 1020 "parse.y"
> 
>   /* Construct an expression node for a unary postfix operator
>   */
> @@ -176,7 +176,7 @@ static void disableLookaside(Parse *pParse){
>     pOperand->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0);
>     pOperand->zEnd = &pPostOp->z[pPostOp->n];
>   }                           
> -#line 1030 "parse.y"
> +#line 1037 "parse.y"
> 
>   /* A routine to convert a binary TK_IS or TK_ISNOT expression into a
>   ** unary TK_ISNULL or TK_NOTNULL expression. */
> @@ -188,7 +188,7 @@ static void disableLookaside(Parse *pParse){
>       pA->pRight = 0;
>     }
>   }
> -#line 1058 "parse.y"
> +#line 1065 "parse.y"
> 
>   /* Construct an expression node for a unary prefix operator
>   */
> @@ -203,7 +203,7 @@ static void disableLookaside(Parse *pParse){
>     pOut->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0);
>     pOut->zEnd = pOperand->zEnd;
>   }
> -#line 1263 "parse.y"
> +#line 1270 "parse.y"
> 
>   /* Add a single new term to an ExprList that is used to store a
>   ** list of identifiers.  Report an error if the ID list contains
> @@ -315,16 +315,16 @@ typedef union {
> #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
> #define sqlite3ParserARG_STORE yypParser->pParse = pParse
> #define YYFALLBACK 1
> -#define YYNSTATE             412
> -#define YYNRULE              300
> -#define YY_MAX_SHIFT         411
> -#define YY_MIN_SHIFTREDUCE   608
> -#define YY_MAX_SHIFTREDUCE   907
> -#define YY_MIN_REDUCE        908
> -#define YY_MAX_REDUCE        1207
> -#define YY_ERROR_ACTION      1208
> -#define YY_ACCEPT_ACTION     1209
> -#define YY_NO_ACTION         1210
> +#define YYNSTATE             409
> +#define YYNRULE              297
> +#define YY_MAX_SHIFT         408
> +#define YY_MIN_SHIFTREDUCE   604
> +#define YY_MAX_SHIFTREDUCE   900
> +#define YY_MIN_REDUCE        901
> +#define YY_MAX_REDUCE        1197
> +#define YY_ERROR_ACTION      1198
> +#define YY_ACCEPT_ACTION     1199
> +#define YY_NO_ACTION         1200
> /************* End control #defines *******************************************/
> 
> /* Define the yytestcase() macro to be a no-op if is not already defined
> @@ -396,301 +396,301 @@ typedef union {
> **  yy_default[]       Default action for each state.
> **
> *********** Begin parsing tables **********************************************/
> -#define YY_ACTTAB_COUNT (1406)
> +#define YY_ACTTAB_COUNT (1402)
> static const YYACTIONTYPE yy_action[] = {
> - /*     0 */    91,   92,  287,   82,  775,  775,  787,  790,  779,  779,
> - /*    10 */    89,   89,   90,   90,   90,   90,  309,   88,   88,   88,
> - /*    20 */    88,   87,   87,   86,   86,   86,   85,  309,   90,   90,
> + /*     0 */    91,   92,  285,   82,  771,  771,  783,  786,  775,  775,
> + /*    10 */    89,   89,   90,   90,   90,   90,  307,   88,   88,   88,
> + /*    20 */    88,   87,   87,   86,   86,   86,   85,  307,   90,   90,
>  /*    30 */    90,   90,   83,   88,   88,   88,   88,   87,   87,   86,
> - /*    40 */    86,   86,   85,  309,  210,  122,  892,   90,   90,   90,
> - /*    50 */    90,  634,   88,   88,   88,   88,   87,   87,   86,   86,
> - /*    60 */    86,   85,  309,   87,   87,   86,   86,   86,   85,  309,
> - /*    70 */   892,   86,   86,   86,   85,  309,   91,   92,  287,   82,
> - /*    80 */   775,  775,  787,  790,  779,  779,   89,   89,   90,   90,
> - /*    90 */    90,   90,  637,   88,   88,   88,   88,   87,   87,   86,
> - /*   100 */    86,   86,   85,  309,   91,   92,  287,   82,  775,  775,
> - /*   110 */   787,  790,  779,  779,   89,   89,   90,   90,   90,   90,
> - /*   120 */   724,   88,   88,   88,   88,   87,   87,   86,   86,   86,
> - /*   130 */    85,  309,  636,   91,   92,  287,   82,  775,  775,  787,
> - /*   140 */   790,  779,  779,   89,   89,   90,   90,   90,   90,   67,
> + /*    40 */    86,   86,   85,  307,  208,  201,  885,   90,   90,   90,
> + /*    50 */    90,  122,   88,   88,   88,   88,   87,   87,   86,   86,
> + /*    60 */    86,   85,  307,   87,   87,   86,   86,   86,   85,  307,
> + /*    70 */   885,   86,   86,   86,   85,  307,   91,   92,  285,   82,
> + /*    80 */   771,  771,  783,  786,  775,  775,   89,   89,   90,   90,
> + /*    90 */    90,   90,  630,   88,   88,   88,   88,   87,   87,   86,
> + /*   100 */    86,   86,   85,  307,   91,   92,  285,   82,  771,  771,
> + /*   110 */   783,  786,  775,  775,   89,   89,   90,   90,   90,   90,
> + /*   120 */   287,   88,   88,   88,   88,   87,   87,   86,   86,   86,
> + /*   130 */    85,  307,  705,   91,   92,  285,   82,  771,  771,  783,
> + /*   140 */   786,  775,  775,   89,   89,   90,   90,   90,   90,   67,
>  /*   150 */    88,   88,   88,   88,   87,   87,   86,   86,   86,   85,
> - /*   160 */   309,  776,  776,  788,  791,  320,   93,   84,   81,  176,
> - /*   170 */   307,  306, 1209,  411,    3,  723,  245,  609,  312,  725,
> - /*   180 */   726,  376,   91,   92,  287,   82,  775,  775,  787,  790,
> - /*   190 */   779,  779,   89,   89,   90,   90,   90,   90,  884,   88,
> - /*   200 */    88,   88,   88,   87,   87,   86,   86,   86,   85,  309,
> + /*   160 */   307,  772,  772,  784,  787,  740,   93,  172,  280,  706,
> + /*   170 */   312,  278,  277,  276,  220,  274,  243,  633,  618,  721,
> + /*   180 */   722,  632,   91,   92,  285,   82,  771,  771,  783,  786,
> + /*   190 */   775,  775,   89,   89,   90,   90,   90,   90,  109,   88,
> + /*   200 */    88,   88,   88,   87,   87,   86,   86,   86,   85,  307,
>  /*   210 */    88,   88,   88,   88,   87,   87,   86,   86,   86,   85,
> - /*   220 */   309,  122,   84,   81,  176,  642,  377, 1160, 1160,  828,
> - /*   230 */   780,   91,   92,  287,   82,  775,  775,  787,  790,  779,
> - /*   240 */   779,   89,   89,   90,   90,   90,   90,  364,   88,   88,
> - /*   250 */    88,   88,   87,   87,   86,   86,   86,   85,  309,  903,
> - /*   260 */   747,  903,  122,  410,  410,  172,  653,  710,  765,  220,
> - /*   270 */   758,  119,  877,  753,  635,  683,  238,  333,  237,  652,
> - /*   280 */    91,   92,  287,   82,  775,  775,  787,  790,  779,  779,
> - /*   290 */    89,   89,   90,   90,   90,   90,  877,   88,   88,   88,
> - /*   300 */    88,   87,   87,   86,   86,   86,   85,  309,   22,  747,
> - /*   310 */   757,  757,  759,  201,  693,  651,  359,  356,  355,  692,
> - /*   320 */   165,  710,  703,  766,  122,  238,  333,  237,  354,   91,
> - /*   330 */    92,  287,   82,  775,  775,  787,  790,  779,  779,   89,
> - /*   340 */    89,   90,   90,   90,   90,  747,   88,   88,   88,   88,
> - /*   350 */    87,   87,   86,   86,   86,   85,  309,  696,   84,   81,
> - /*   360 */   176,  238,  323,  226,  405,  405,  405,  670,  649,   84,
> - /*   370 */    81,  176,  752,  122,  218,  369,  670,  340,   91,   92,
> - /*   380 */   287,   82,  775,  775,  787,  790,  779,  779,   89,   89,
> - /*   390 */    90,   90,   90,   90,  209,   88,   88,   88,   88,   87,
> - /*   400 */    87,   86,   86,   86,   85,  309,   91,   92,  287,   82,
> - /*   410 */   775,  775,  787,  790,  779,  779,   89,   89,   90,   90,
> - /*   420 */    90,   90,  341,   88,   88,   88,   88,   87,   87,   86,
> - /*   430 */    86,   86,   85,  309,   91,   92,  287,   82,  775,  775,
> - /*   440 */   787,  790,  779,  779,   89,   89,   90,   90,   90,   90,
> - /*   450 */   379,   88,   88,   88,   88,   87,   87,   86,   86,   86,
> - /*   460 */    85,  309,   91,   92,  287,   82,  775,  775,  787,  790,
> - /*   470 */   779,  779,   89,   89,   90,   90,   90,   90,  145,   88,
> - /*   480 */    88,   88,   88,   87,   87,   86,   86,   86,   85,  309,
> - /*   490 */   308,  308,  308,   85,  309,   70,   92,  287,   82,  775,
> - /*   500 */   775,  787,  790,  779,  779,   89,   89,   90,   90,   90,
> - /*   510 */    90,  164,   88,   88,   88,   88,   87,   87,   86,   86,
> - /*   520 */    86,   85,  309,   73,  628,  628,  834,  834,  328,   91,
> - /*   530 */    80,  287,   82,  775,  775,  787,  790,  779,  779,   89,
> - /*   540 */    89,   90,   90,   90,   90,  390,   88,   88,   88,   88,
> - /*   550 */    87,   87,   86,   86,   86,   85,  309,  287,   82,  775,
> - /*   560 */   775,  787,  790,  779,  779,   89,   89,   90,   90,   90,
> + /*   220 */   307,  344,  165,  706,  341,  638,  286,  305,  304,  824,
> + /*   230 */   776,   91,   92,  285,   82,  771,  771,  783,  786,  775,
> + /*   240 */   775,   89,   89,   90,   90,   90,   90,  333,   88,   88,
> + /*   250 */    88,   88,   87,   87,   86,   86,   86,   85,  307,  182,
> + /*   260 */   743,  666,  645,  407,  407,  180,  313,  122,  137,  218,
> + /*   270 */   666,  119,  624,  624,  631,  679,  236,  330,  235,  877,
> + /*   280 */    91,   92,  285,   82,  771,  771,  783,  786,  775,  775,
> + /*   290 */    89,   89,   90,   90,   90,   90,  743,   88,   88,   88,
> + /*   300 */    88,   87,   87,   86,   86,   86,   85,  307,   22,  215,
> + /*   310 */   404,  183,  236,  320,  224,  761,  896,  754,  896,   54,
> + /*   320 */   749,  720,  705,  762,  122,  216,  366,   48,   48,   91,
> + /*   330 */    92,  285,   82,  771,  771,  783,  786,  775,  775,   89,
> + /*   340 */    89,   90,   90,   90,   90,  265,   88,   88,   88,   88,
> + /*   350 */    87,   87,   86,   86,   86,   85,  307,  753,  753,  755,
> + /*   360 */   223,  199,  382,  367,  356,  353,  352,  649,   84,   81,
> + /*   370 */   176,  699,  748, 1199,  408,    3,  351,  294,   91,   92,
> + /*   380 */   285,   82,  771,  771,  783,  786,  775,  775,   89,   89,
> + /*   390 */    90,   90,   90,   90,  317,   88,   88,   88,   88,   87,
> + /*   400 */    87,   86,   86,   86,   85,  307,   91,   92,  285,   82,
> + /*   410 */   771,  771,  783,  786,  775,  775,   89,   89,   90,   90,
> + /*   420 */    90,   90,  648,   88,   88,   88,   88,   87,   87,   86,
> + /*   430 */    86,   86,   85,  307,   91,   92,  285,   82,  771,  771,
> + /*   440 */   783,  786,  775,  775,   89,   89,   90,   90,   90,   90,
> + /*   450 */   122,   88,   88,   88,   88,   87,   87,   86,   86,   86,
> + /*   460 */    85,  307,   91,   92,  285,   82,  771,  771,  783,  786,
> + /*   470 */   775,  775,   89,   89,   90,   90,   90,   90,  145,   88,
> + /*   480 */    88,   88,   88,   87,   87,   86,   86,   86,   85,  307,
> + /*   490 */  1150, 1150,   84,   81,  176,   70,   92,  285,   82,  771,
> + /*   500 */   771,  783,  786,  775,  775,   89,   89,   90,   90,   90,
> + /*   510 */    90,  647,   88,   88,   88,   88,   87,   87,   86,   86,
> + /*   520 */    86,   85,  307,   73,  207,  122,  402,  402,  402,   91,
> + /*   530 */    80,  285,   82,  771,  771,  783,  786,  775,  775,   89,
> + /*   540 */    89,   90,   90,   90,   90,  376,   88,   88,   88,   88,
> + /*   550 */    87,   87,   86,   86,   86,   85,  307,  285,   82,  771,
> + /*   560 */   771,  783,  786,  775,  775,   89,   89,   90,   90,   90,
>  /*   570 */    90,   78,   88,   88,   88,   88,   87,   87,   86,   86,
> - /*   580 */    86,   85,  309,  218,  369,  698,  141,  374,  301,  141,
> - /*   590 */    75,   76,  275,  628,  628,  283,  282,   77,  286,  280,
> - /*   600 */   279,  278,  222,  276,  850,   78,  622,  143,  628,  628,
> - /*   610 */   403,    2, 1104,  298,  318,  310,  310,  202,  851,  202,
> - /*   620 */   109,  342,  880,  407,   75,   76,  852,  676,  318,  317,
> - /*   630 */   644,   77,  392,  182,  677,  162,  174,  765,  336,  758,
> - /*   640 */    48,   48,  753,  347,  403,    2,  344,  407,  137,  310,
> - /*   650 */   310,  407,  628,  628,  288,  386,  266,  219,  155,  255,
> - /*   660 */   362,  250,  361,  205,   48,   48,  392,  755,   48,   48,
> - /*   670 */   248,  765,  709,  758,  407,  302,  753,  675,  675,  757,
> - /*   680 */   757,  759,  760,  406,   18,  673,  673,  184,  109,  847,
> - /*   690 */   318,   48,   48,  180,  315,  122,  336,  122,  751,  385,
> - /*   700 */   387,  755,  185,  385,  370,  190,  373,  307,  306,   78,
> - /*   710 */   314,  628,  628,  757,  757,  759,  760,  406,   18,  210,
> - /*   720 */   407,  892,  109,    9,    9,  331,  385,  375,   75,   76,
> - /*   730 */   697,  122,  628,  628,  167,   77,  201,   48,   48,  359,
> - /*   740 */   356,  355,  401,   78,  685,  892,  334,  267,  403,    2,
> - /*   750 */    20,  354,  266,  310,  310,  372,  898,  744,  902,   23,
> - /*   760 */   191,  327,   75,   76,  332,  900,  342,  901,  407,   77,
> - /*   770 */   392,  267,  385,  384,  217,  765,  407,  758,  850,  296,
> - /*   780 */   753,   19,  403,    2,   54,   10,   10,  310,  310,  407,
> - /*   790 */   109,  338,  851,   48,   48,  407,  903,  366,  903,  295,
> - /*   800 */   852,  391,  709,  305,  392,  755,   30,   30,  831,  765,
> - /*   810 */   830,  758,   10,   10,  753,  407,  326,  757,  757,  759,
> - /*   820 */   760,  406,   18,  177,  177,  407,  297,  407,  385,  365,
> - /*   830 */   109,  407,   10,   10,  709,  372,  157,  156,  397,  755,
> - /*   840 */   225,  367,   48,   48,   10,   10,  200,   68,   47,   47,
> - /*   850 */   236,  757,  757,  759,  760,  406,   18,   95,  382,  231,
> - /*   860 */   319,  638,  638,  847,  243,  656,   75,   76,  351,  756,
> - /*   870 */   203,  360,  186,   77,  820,  822,  657,  380,  177,  177,
> - /*   880 */   893,  893,  146,  765,  709,  758,  403,    2,  753,  203,
> - /*   890 */   372,  310,  310,    5,  299,  210,  109,  892,  257,  893,
> - /*   900 */   893,  810,  265,  709,  321,   74,  407,   72,  392,  230,
> - /*   910 */   827,  407,  827,  765,  242,  758,  709,  407,  753,  254,
> - /*   920 */   334,  892,  187,   34,   34,  757,  757,  759,   35,   35,
> - /*   930 */   253,  407,  894,  712,   36,   36,  820,  110,  343,  149,
> - /*   940 */   229,  853,  228,  755,  407,  289,  709,  234,   37,   37,
> - /*   950 */   248,  894,  711,  259,  324,  757,  757,  759,  760,  406,
> - /*   960 */    18,   38,   38,  407,  289,  407,  161,  160,  159,  407,
> - /*   970 */   709,  407,    7,  407,  138,  407,  261,  407,  628,  628,
> - /*   980 */    26,   26,   27,   27,  682,  407,   29,   29,   39,   39,
> - /*   990 */    40,   40,   41,   41,   11,   11,  407,  709,  407,  693,
> - /*  1000 */   407,  163,   42,   42,  692,  407,  342,  407,  678,  407,
> - /*  1010 */   264,  407,  710,   97,   97,   43,   43,   44,   44,  407,
> - /*  1020 */   751,  407,   31,   31,   45,   45,   46,   46,   32,   32,
> - /*  1030 */   407, 1183,  407,  665,  407,  233,  112,  112,  113,  113,
> - /*  1040 */   407,  751,  859,  407,  751,  407,  845,  114,  114,   52,
> - /*  1050 */    52,   33,   33,  407,  858,  407,  681,   98,   98,  407,
> - /*  1060 */    49,   49,   99,   99,  407,  165,  710,  407,  751,  407,
> - /*  1070 */   100,  100,   96,   96,  169,  407,  111,  111,  407,  109,
> - /*  1080 */   407,  108,  108,  292,  104,  104,  103,  103,  407,  109,
> - /*  1090 */   193,  407,  101,  101,  407,  102,  102,   51,   51,  407,
> - /*  1100 */   368,  626,  688,  688,  293,   53,   53,  294,   50,   50,
> - /*  1110 */    24,   25,   25,  662,  628,  628,   28,   28,    1,  394,
> - /*  1120 */   107,  398,  628,  628,  632,  627,  290,  402,  404,  290,
> - /*  1130 */    66,  303,  175,  174,  109,  725,  726,   64,  891,  749,
> - /*  1140 */   335,  208,  208,  337,  239,  208,   66,  352,  632,  214,
> - /*  1150 */   856,  246,  109,   66,  109,  645,  645,  178,  655,  654,
> - /*  1160 */   109,  316,  690,  647,   69,  824,  719,  663,  208,  291,
> - /*  1170 */   817,  817,  813,  826,  214,  826,  630,  739,  106,  322,
> - /*  1180 */   761,  761,  227,  818,  168,  235,  844,  842,  339,  841,
> - /*  1190 */   153,  345,  346,  241,  621,  244,  357,  666,  650,  649,
> - /*  1200 */   158,  252,  249,  717,  750,  263,  393,  699,  815,  268,
> - /*  1210 */   814,  928,  269,  274,  873,  154,  135,  633,  619,  618,
> - /*  1220 */   124,  620,  870,  117,   64,  736,  325,   55,  330,  829,
> - /*  1230 */   126,  350,  232,  189,  196,  144,  128,  129,  197,  147,
> - /*  1240 */   363,  198,  130,  300,  647,  131,  669,  139,  348,  746,
> - /*  1250 */   378,  668,  284,    6,   63,  795,  846,   71,  211,  667,
> - /*  1260 */   304,   94,  383,  285,  660,  640,   21,  641,   65,  251,
> - /*  1270 */   639,  809,  659,  381,  882,  871,  224,  611,  614,  221,
> - /*  1280 */   311,  396,  223,  408,  409,  616,  179,  615,  612,  281,
> - /*  1290 */   115,  313,  400,  123,  181,  823,  821,  183,  745,  125,
> - /*  1300 */   116,  120,  127,  679,  188,  832,  105,  204,  208,  132,
> - /*  1310 */   133,  840,  329,  707,  905,  136,  256,  134,   56,  708,
> - /*  1320 */   258,  273,  271,  689,  706,  260,  270,  705,  262,  272,
> - /*  1330 */    57,   58,   59,  121,  843,  192,  839,  194,    8,  212,
> - /*  1340 */    12,  240,  253,  195,  213,  148,  624,  349,  199,  353,
> - /*  1350 */   140,  358,   60,   13,  206,  247,   14,  118,   61,  687,
> - /*  1360 */   764,  763,  658,  170,  713,  793,   15,    4,   62,  691,
> - /*  1370 */   207,  171,  371,  173,  142,   16,  718,   17,   69,   66,
> - /*  1380 */   808,  794,  792,  797,  849,  216,  848,  389,  166,  215,
> - /*  1390 */   863,  150,  395,  608,  864,  151,  399,  796,  152, 1165,
> - /*  1400 */   762,  388,  631,   79,  277,  625,
> + /*   580 */    86,   85,  307,  404,  306,  306,  306,  605,  310,  141,
> + /*   590 */    75,   76,  264,  624,  624,  692,  873,   77,  284,  315,
> + /*   600 */    48,   48,  305,  304,  640,   78,  265,   84,   81,  176,
> + /*   610 */   400,    2, 1097,  315,  314,  308,  308,  200,  199,  200,
> + /*   620 */   141,  356,  353,  352,   75,   76,  273,  624,  624,  281,
> + /*   630 */   404,   77,  389,  351,  387,  382,  372,  761,  303,  754,
> + /*   640 */   743, 1173,  749,  661,  400,    2,  404,   10,   10,  308,
> + /*   650 */   308,  891,  299,  895,  383,  373,  236,  330,  235,  371,
> + /*   660 */   893,  293,  894,   48,   48,  361,  389,  751,  348,  333,
> + /*   670 */   201,  761,  846,  754,  705,  315,  749,  296,  398,  753,
> + /*   680 */   753,  755,  756,  403,   18,  138,  847,  109,  404,  624,
> + /*   690 */   624,  896,  109,  896,  848,  672,  164,  122,  382,  384,
> + /*   700 */   374,  751,  673,  843,  122,   48,   48,  162,  174,   78,
> + /*   710 */   719,  843,  184,  753,  753,  755,  756,  403,   18,  886,
> + /*   720 */   886,  217,  155,  253,  359,  248,  358,  203,   75,   76,
> + /*   730 */   693,  122,  689,  189,  246,   77,  109,  688,  404,  328,
> + /*   740 */   382,  381,  870,   78,  109,  287,  363,  404,  400,    2,
> + /*   750 */   246,   85,  307,  308,  308,   30,   30,   84,   81,  176,
> + /*   760 */   331,  658,   75,   76,   48,   48,  870,  404,  331,   77,
> + /*   770 */   389,  887,  708,   23,  370,  761,  167,  754,  329,  109,
> + /*   780 */   749,  255,  400,    2,   10,   10,  340,  308,  308,  404,
> + /*   790 */   364,    9,    9,  216,  366,  404,  177,  177,  295,  382,
> + /*   800 */   362,  830,  830,  325,  389,  751,   48,   48,  369,  761,
> + /*   810 */   705,  754,   10,   10,  749,  659,  404,  753,  753,  755,
> + /*   820 */   756,  403,   18,  624,  624,  404,  198,  404,  339,  886,
> + /*   830 */   886,  671,  671,   48,   48,  316,  157,  156,  823,  751,
> + /*   840 */   823,  300,   47,   47,   10,   10,   66,   68,  185,  816,
> + /*   850 */   818,  753,  753,  755,  756,  403,   18,   95,  379,  146,
> + /*   860 */   404,  634,  634,  177,  177,  652,   75,   76,  377,  241,
> + /*   870 */     5,  357,  208,   77,  885,  369,  653,   34,   34,  643,
> + /*   880 */   339,  887,  707,  761,  404,  754,  400,    2,  749,  318,
> + /*   890 */   705,  308,  308,  706,  297,  229,  263,  705,  885,  404,
> + /*   900 */    24,   35,   35,  335,  624,  624,  806,  846,  389,  624,
> + /*   910 */   624,  816,  188,  761,  404,  754,   36,   36,  749,  240,
> + /*   920 */   178,  847,  404,  747,  404,  753,  753,  755,  849,  848,
> + /*   930 */   388,   37,   37,  404,  705,  321,  404,  669,  669,   38,
> + /*   940 */    38,   26,   26,  751,  404,  228,  165,  706,  404,  841,
> + /*   950 */    27,   27,  232,   29,   29,  753,  753,  755,  756,  403,
> + /*   960 */    18,   39,   39,  404,  234,   40,   40,  827,  264,  826,
> + /*   970 */   404,  705,  678,  404,  921,  323,  227,  404,  226,  404,
> + /*   980 */    41,   41,  109,  623,  288,  404,  324,   11,   11,  404,
> + /*   990 */    42,   42,  143,  404,   97,   97,   43,   43,  404,  747,
> + /*  1000 */   404,  257,   44,   44,  404,  339,   31,   31,  404,  674,
> + /*  1010 */    45,   45,  404,  747,  404,   46,   46,   32,   32,  404,
> + /*  1020 */   752,  112,  112,  252,  694,  113,  113,  404,  705,  114,
> + /*  1030 */   114,   52,   52,  404,  251,  404,   33,   33,  404,  677,
> + /*  1040 */   404,  208,  404,  885,   98,   98,  404,  624,  624,  259,
> + /*  1050 */    49,   49,   99,   99,  394,  100,  100,   96,   96,  111,
> + /*  1060 */   111,  404,  290,  108,  108,  404,  231,  885,  404,  747,
> + /*  1070 */   404,  747,  109,  404,  163,  404,  291,  404,  104,  104,
> + /*  1080 */   404,  169,  103,  103,  404,  101,  101,  102,  102,  191,
> + /*  1090 */    51,   51,   53,   53,   50,   50,  107,   25,   25,    1,
> + /*  1100 */   628,   28,   28,  624,  624,  365,  681,  684,  684,  622,
> + /*  1110 */   161,  160,  159,  401,  288,  391,  395,  369,  399,  175,
> + /*  1120 */   174,  337,  721,  722,  628,   74,  884,   72,  689,  110,
> + /*  1130 */   262,  149,  292,  688,  301,  745,   20,  206,  332,  334,
> + /*  1140 */   206,  206,  109,  237,   64,   66,  651,  650,  109,  109,
> + /*  1150 */   349,  109,  212,  244,  822,   66,  822,  641,  641,  686,
> + /*  1160 */   715,   69,  206,    7,  813,  813,  338,   19,  735,  809,
> + /*  1170 */   626,  212,  106,  852,  757,  757,  319,  851,  153,  820,
> + /*  1180 */   289,  814,  225,  168,  233,  838,  840,  837,  336,  342,
> + /*  1190 */   343,  239,  354,  617,  242,  158,  662,  646,  247,  713,
> + /*  1200 */   645,  746,  261,  695,  250,  390,  811,  266,  810,  267,
> + /*  1210 */   272,  629,  154,  866,  615,  614,  616,  863,  135,  124,
> + /*  1220 */   117,   64,  322,  825,  732,   55,  327,  230,  347,  187,
> + /*  1230 */   147,  194,  144,  195,  126,  360,  196,  298,  643,  128,
> + /*  1240 */   665,  129,  130,  131,  345,  282,  664,  139,  663,  375,
> + /*  1250 */    63,    6,  742,   71,  842,  637,  302,  283,  636,  656,
> + /*  1260 */    94,  249,  635,  875,  380,   65,  805,  655,  378,   21,
> + /*  1270 */   864,  222,  607,  610,  309,  179,  819,  219,  279,  221,
> + /*  1280 */   405,  406,  612,  611,  608,  311,  123,  817,  181,  393,
> + /*  1290 */   741,  115,  397,  125,  120,  127,  186,  675,  116,  828,
> + /*  1300 */   703,  133,  206,  132,  836,  898,  254,  326,  136,  134,
> + /*  1310 */   105,  704,  256,  202,  702,   56,   57,   58,  258,  269,
> + /*  1320 */   701,  260,  685,  268,  270,  271,   59,  839,  121,  835,
> + /*  1330 */   791,  190,  192,   12,  209,  238,    8,  193,  148,  620,
> + /*  1340 */   346,  197,  140,  210,  211,  251,  350,  355,  654,  204,
> + /*  1350 */   118,   60,   13,  683,  245,   14,   61,   62,  170,  760,
> + /*  1360 */   759,  789,   15,  385,  687,    4,  714,  368,  171,  173,
> + /*  1370 */   205,  142,   69,  709,  166,   16,   66,   17,  804,  790,
> + /*  1380 */   788,  793,  845,  214,  844,  386,  856,  150,  392,  275,
> + /*  1390 */   857,  213,  151,  396,  792,  152,  604,  758,  627,   79,
> + /*  1400 */  1155,  621,
> };
> static const YYCODETYPE yy_lookahead[] = {
>  /*     0 */     5,    6,    7,    8,    9,   10,   11,   12,   13,   14,
>  /*    10 */    15,   16,   17,   18,   19,   20,   32,   22,   23,   24,
>  /*    20 */    25,   26,   27,   28,   29,   30,   31,   32,   17,   18,
>  /*    30 */    19,   20,   21,   22,   23,   24,   25,   26,   27,   28,
> - /*    40 */    29,   30,   31,   32,   49,  133,   51,   17,   18,   19,
> - /*    50 */    20,  160,   22,   23,   24,   25,   26,   27,   28,   29,
> + /*    40 */    29,   30,   31,   32,   49,    9,   51,   17,   18,   19,
> + /*    50 */    20,  133,   22,   23,   24,   25,   26,   27,   28,   29,
>  /*    60 */    30,   31,   32,   26,   27,   28,   29,   30,   31,   32,
>  /*    70 */    75,   28,   29,   30,   31,   32,    5,    6,    7,    8,
>  /*    80 */     9,   10,   11,   12,   13,   14,   15,   16,   17,   18,
>  /*    90 */    19,   20,  160,   22,   23,   24,   25,   26,   27,   28,
>  /*   100 */    29,   30,   31,   32,    5,    6,    7,    8,    9,   10,
>  /*   110 */    11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
> - /*   120 */   163,   22,   23,   24,   25,   26,   27,   28,   29,   30,
> - /*   130 */    31,   32,  160,    5,    6,    7,    8,    9,   10,   11,
> + /*   120 */    84,   22,   23,   24,   25,   26,   27,   28,   29,   30,
> + /*   130 */    31,   32,  143,    5,    6,    7,    8,    9,   10,   11,
>  /*   140 */    12,   13,   14,   15,   16,   17,   18,   19,   20,   50,
>  /*   150 */    22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
> - /*   160 */    32,    9,   10,   11,   12,   77,   67,  210,  211,  212,
> - /*   170 */    26,   27,  136,  137,  138,  163,   48,    1,    2,  108,
> - /*   180 */   109,    7,    5,    6,    7,    8,    9,   10,   11,   12,
> - /*   190 */    13,   14,   15,   16,   17,   18,   19,   20,  173,   22,
> + /*   160 */    32,    9,   10,   11,   12,  151,   67,   48,   34,   50,
> + /*   170 */   181,   37,   38,   39,   40,   41,   48,  160,   44,  108,
> + /*   180 */   109,  160,    5,    6,    7,    8,    9,   10,   11,   12,
> + /*   190 */    13,   14,   15,   16,   17,   18,   19,   20,  184,   22,
>  /*   200 */    23,   24,   25,   26,   27,   28,   29,   30,   31,   32,
>  /*   210 */    22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
> - /*   220 */    32,  133,  210,  211,  212,   48,   52,   98,   99,   38,
> + /*   220 */    32,  217,  103,  104,  220,   48,   92,   26,   27,   38,
>  /*   230 */    78,    5,    6,    7,    8,    9,   10,   11,   12,   13,
> - /*   240 */    14,   15,   16,   17,   18,   19,   20,   28,   22,   23,
> - /*   250 */    24,   25,   26,   27,   28,   29,   30,   31,   32,  115,
> - /*   260 */    69,  117,  133,  139,  140,   48,  169,   50,   73,  145,
> - /*   270 */    75,  147,   51,   78,   48,  151,   85,   86,   87,  169,
> + /*   240 */    14,   15,   16,   17,   18,   19,   20,  143,   22,   23,
> + /*   250 */    24,   25,   26,   27,   28,   29,   30,   31,   32,  125,
> + /*   260 */    69,  167,  168,  139,  140,  131,  132,  133,   47,  145,
> + /*   270 */   176,  147,   51,   52,   48,  151,   85,   86,   87,  173,
>  /*   280 */     5,    6,    7,    8,    9,   10,   11,   12,   13,   14,
> - /*   290 */    15,   16,   17,   18,   19,   20,   75,   22,   23,   24,
> - /*   300 */    25,   26,   27,   28,   29,   30,   31,   32,  184,   69,
> - /*   310 */   115,  116,  117,   76,   95,  169,   79,   80,   81,  100,
> - /*   320 */   103,  104,  201,   48,  133,   85,   86,   87,   91,    5,
> + /*   290 */    15,   16,   17,   18,   19,   20,   69,   22,   23,   24,
> + /*   300 */    25,   26,   27,   28,   29,   30,   31,   32,  184,  187,
> + /*   310 */   143,  207,   85,   86,   87,   73,  115,   75,  117,  197,
> + /*   320 */    78,  163,  143,   48,  133,   98,   99,  160,  161,    5,
>  /*   330 */     6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
> - /*   340 */    16,   17,   18,   19,   20,   69,   22,   23,   24,   25,
> - /*   350 */    26,   27,   28,   29,   30,   31,   32,  198,  210,  211,
> - /*   360 */   212,   85,   86,   87,  156,  157,  158,  167,  168,  210,
> - /*   370 */   211,  212,   48,  133,   98,   99,  176,    7,    5,    6,
> + /*   340 */    16,   17,   18,   19,   20,  143,   22,   23,   24,   25,
> + /*   350 */    26,   27,   28,   29,   30,   31,   32,  115,  116,  117,
> + /*   360 */   181,   76,  195,  196,   79,   80,   81,  169,  210,  211,
> + /*   370 */   212,  201,   48,  136,  137,  138,   91,  175,    5,    6,
>  /*   380 */     7,    8,    9,   10,   11,   12,   13,   14,   15,   16,
> - /*   390 */    17,   18,   19,   20,  198,   22,   23,   24,   25,   26,
> + /*   390 */    17,   18,   19,   20,   77,   22,   23,   24,   25,   26,
>  /*   400 */    27,   28,   29,   30,   31,   32,    5,    6,    7,    8,
>  /*   410 */     9,   10,   11,   12,   13,   14,   15,   16,   17,   18,
> - /*   420 */    19,   20,   52,   22,   23,   24,   25,   26,   27,   28,
> + /*   420 */    19,   20,  169,   22,   23,   24,   25,   26,   27,   28,
>  /*   430 */    29,   30,   31,   32,    5,    6,    7,    8,    9,   10,
>  /*   440 */    11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
> - /*   450 */   205,   22,   23,   24,   25,   26,   27,   28,   29,   30,
> + /*   450 */   133,   22,   23,   24,   25,   26,   27,   28,   29,   30,
>  /*   460 */    31,   32,    5,    6,    7,    8,    9,   10,   11,   12,
>  /*   470 */    13,   14,   15,   16,   17,   18,   19,   20,   49,   22,
>  /*   480 */    23,   24,   25,   26,   27,   28,   29,   30,   31,   32,
> - /*   490 */   156,  157,  158,   31,   32,  122,    6,    7,    8,    9,
> + /*   490 */    98,   99,  210,  211,  212,  122,    6,    7,    8,    9,
>  /*   500 */    10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
> - /*   510 */    20,  205,   22,   23,   24,   25,   26,   27,   28,   29,
> - /*   520 */    30,   31,   32,  122,   51,   52,   85,   86,   87,    5,
> + /*   510 */    20,  169,   22,   23,   24,   25,   26,   27,   28,   29,
> + /*   520 */    30,   31,   32,  122,  198,  133,  156,  157,  158,    5,
>  /*   530 */     6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
> - /*   540 */    16,   17,   18,   19,   20,  179,   22,   23,   24,   25,
> + /*   540 */    16,   17,   18,   19,   20,  205,   22,   23,   24,   25,
>  /*   550 */    26,   27,   28,   29,   30,   31,   32,    7,    8,    9,
>  /*   560 */    10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
>  /*   570 */    20,    7,   22,   23,   24,   25,   26,   27,   28,   29,
> - /*   580 */    30,   31,   32,   98,   99,   28,  143,  151,    7,  143,
> - /*   590 */    26,   27,  149,   51,   52,  152,   34,   33,  152,   37,
> - /*   600 */    38,   39,   40,   41,   39,    7,   44,  134,   51,   52,
> - /*   610 */    46,   47,   48,   32,  143,   51,   52,  171,   53,  173,
> - /*   620 */   184,  143,  159,  143,   26,   27,   61,   62,  157,  158,
> - /*   630 */   167,   33,   68,   71,   69,  199,  200,   73,  143,   75,
> - /*   640 */   160,  161,   78,  217,   46,   47,  220,  143,   47,   51,
> - /*   650 */    52,  143,   51,   52,   92,  151,  143,   76,   77,   78,
> - /*   660 */    79,   80,   81,   82,  160,  161,   68,  103,  160,  161,
> - /*   670 */    89,   73,  143,   75,  143,  195,   78,  178,  179,  115,
> - /*   680 */   116,  117,  118,  119,  120,  178,  179,  125,  184,  151,
> - /*   690 */   219,  160,  161,  131,  132,  133,  143,  133,  143,  195,
> - /*   700 */   196,  103,  207,  195,  196,  227,  143,   26,   27,    7,
> - /*   710 */   181,   51,   52,  115,  116,  117,  118,  119,  120,   49,
> - /*   720 */   143,   51,  184,  160,  161,  223,  195,  196,   26,   27,
> - /*   730 */    28,  133,   51,   52,  222,   33,   76,  160,  161,   79,
> - /*   740 */    80,   81,  229,    7,  183,   75,  208,  143,   46,   47,
> - /*   750 */    16,   91,  143,   51,   52,  194,   75,  151,   77,  221,
> - /*   760 */   207,  206,   26,   27,  226,   84,  143,   86,  143,   33,
> - /*   770 */    68,  143,  195,  196,  187,   73,  143,   75,   39,  175,
> - /*   780 */    78,   47,   46,   47,  197,  160,  161,   51,   52,  143,
> - /*   790 */   184,  143,   53,  160,  161,  143,  115,  151,  117,  174,
> - /*   800 */    61,   62,  143,  175,   68,  103,  160,  161,   56,   73,
> - /*   810 */    58,   75,  160,  161,   78,  143,   64,  115,  116,  117,
> - /*   820 */   118,  119,  120,  182,  183,  143,  174,  143,  195,  196,
> - /*   830 */   184,  143,  160,  161,  143,  194,   26,   27,  229,  103,
> - /*   840 */   181,  195,  160,  161,  160,  161,  174,    7,  160,  161,
> - /*   850 */   227,  115,  116,  117,  118,  119,  120,   47,  174,   43,
> - /*   860 */   143,   51,   52,  151,   43,   59,   26,   27,    7,  143,
> - /*   870 */     9,   65,  181,   33,  157,  158,   70,  195,  182,  183,
> - /*   880 */    51,   52,  185,   73,  143,   75,   46,   47,   78,    9,
> - /*   890 */   194,   51,   52,   47,   88,   49,  184,   51,  198,   51,
> - /*   900 */    52,   80,  214,  143,  208,  121,  143,  123,   68,   93,
> - /*   910 */   115,  143,  117,   73,   93,   75,  143,  143,   78,   78,
> - /*   920 */   208,   75,  181,  160,  161,  115,  116,  117,  160,  161,
> - /*   930 */    89,  143,  103,  104,  160,  161,  219,   47,  226,   49,
> - /*   940 */   124,  181,  126,  103,  143,   84,  143,  126,  160,  161,
> - /*   950 */    89,  103,  104,  198,  181,  115,  116,  117,  118,  119,
> - /*   960 */   120,  160,  161,  143,   84,  143,   85,   86,   87,  143,
> - /*   970 */   143,  143,  186,  143,   47,  143,  198,  143,   51,   52,
> - /*   980 */   160,  161,  160,  161,  181,  143,  160,  161,  160,  161,
> - /*   990 */   160,  161,  160,  161,  160,  161,  143,  143,  143,   95,
> - /*  1000 */   143,  143,  160,  161,  100,  143,  143,  143,  181,  143,
> - /*  1010 */   143,  143,   50,  160,  161,  160,  161,  160,  161,  143,
> - /*  1020 */   143,  143,  160,  161,  160,  161,  160,  161,  160,  161,
> - /*  1030 */   143,   48,  143,   50,  143,  181,  160,  161,  160,  161,
> - /*  1040 */   143,  143,  143,  143,  143,  143,  151,  160,  161,  160,
> - /*  1050 */   161,  160,  161,  143,  143,  143,  151,  160,  161,  143,
> - /*  1060 */   160,  161,  160,  161,  143,  103,  104,  143,  143,  143,
> - /*  1070 */   160,  161,  160,  161,   50,  143,  160,  161,  143,  184,
> - /*  1080 */   143,  160,  161,  206,  160,  161,  160,  161,  143,  184,
> - /*  1090 */   227,  143,  160,  161,  143,  160,  161,  160,  161,  143,
> - /*  1100 */    94,  151,   96,   97,  206,  160,  161,  206,  160,  161,
> - /*  1110 */    47,  160,  161,   36,   51,   52,  160,  161,   47,  151,
> - /*  1120 */    47,  151,   51,   52,   51,  154,  155,  151,  154,  155,
> - /*  1130 */    50,  206,  199,  200,  184,  108,  109,  113,   50,   48,
> - /*  1140 */    48,   50,   50,   48,   48,   50,   50,   48,   75,   50,
> - /*  1150 */   143,   48,  184,   50,  184,   51,   52,   47,   77,   78,
> - /*  1160 */   184,  143,   48,   83,   50,  143,   48,   90,   50,  143,
> - /*  1170 */    51,   52,   48,  115,   50,  117,   48,  189,   50,  202,
> - /*  1180 */    51,   52,  202,  143,  143,  228,  189,  143,  228,  143,
> - /*  1190 */   102,  143,  143,  143,  143,  143,  164,  143,  143,  168,
> - /*  1200 */   172,  163,  143,  143,  143,  202,  216,  143,  163,  143,
> - /*  1210 */   163,  101,  143,  188,  146,  186,   47,  143,  143,  143,
> - /*  1220 */   209,  143,  143,    5,  113,  189,   45,  121,  128,  225,
> - /*  1230 */   177,   45,  224,  148,  148,   47,  180,  180,  148,  209,
> - /*  1240 */    84,  148,  180,   63,   83,  180,  162,  177,  165,  177,
> - /*  1250 */   106,  162,  165,   47,   84,  213,  189,  121,  215,  162,
> - /*  1260 */    32,  112,  107,  165,  170,  164,   50,  162,  111,  162,
> - /*  1270 */   162,  189,  170,  110,  162,   40,   35,    4,   36,  144,
> - /*  1280 */     3,  165,  144,  150,  142,  142,   42,  142,  142,  141,
> - /*  1290 */   153,   72,  165,   43,   84,   48,   48,  101,   99,  114,
> - /*  1300 */   153,   88,  102,   46,   84,  127,  166,  166,   50,  127,
> - /*  1310 */    84,    1,  129,  204,  130,  114,  203,  102,   16,  204,
> - /*  1320 */   203,  189,  191,  193,  204,  203,  192,  204,  203,  190,
> - /*  1330 */    16,   16,   16,   88,   52,  105,    1,  101,   34,  218,
> - /*  1340 */    47,  124,   89,   84,  218,   49,   46,    7,   82,   66,
> - /*  1350 */    47,   66,   47,   47,   66,   48,   47,   60,   47,   95,
> - /*  1360 */    48,   48,   54,  101,  104,   48,   47,   47,   50,   48,
> - /*  1370 */   105,   48,   50,   48,   47,  105,   52,  105,   50,   50,
> - /*  1380 */    48,   48,   48,   38,   48,  101,   48,   50,   47,   50,
> - /*  1390 */    48,   47,   49,    1,   48,   47,   49,   48,   47,    0,
> - /*  1400 */    48,   75,   48,   47,   42,   48,
> + /*   580 */    30,   31,   32,  143,  156,  157,  158,    1,    2,  143,
> + /*   590 */    26,   27,  143,   51,   52,  198,  159,   33,  152,  143,
> + /*   600 */   160,  161,   26,   27,  167,    7,  143,  210,  211,  212,
> + /*   610 */    46,   47,   48,  157,  158,   51,   52,  171,   76,  173,
> + /*   620 */   143,   79,   80,   81,   26,   27,  149,   51,   52,  152,
> + /*   630 */   143,   33,   68,   91,  179,  195,  196,   73,  175,   75,
> + /*   640 */    69,   48,   78,   50,   46,   47,  143,  160,  161,   51,
> + /*   650 */    52,   75,    7,   77,  151,    7,   85,   86,   87,  151,
> + /*   660 */    84,  174,   86,  160,  161,   28,   68,  103,    7,  143,
> + /*   670 */     9,   73,   39,   75,  143,  219,   78,   32,  229,  115,
> + /*   680 */   116,  117,  118,  119,  120,   47,   53,  184,  143,   51,
> + /*   690 */    52,  115,  184,  117,   61,   62,  205,  133,  195,  196,
> + /*   700 */    52,  103,   69,  151,  133,  160,  161,  199,  200,    7,
> + /*   710 */   163,  151,  181,  115,  116,  117,  118,  119,  120,   51,
> + /*   720 */    52,   76,   77,   78,   79,   80,   81,   82,   26,   27,
> + /*   730 */    28,  133,   95,  207,   89,   33,  184,  100,  143,  223,
> + /*   740 */   195,  196,   51,    7,  184,   84,  151,  143,   46,   47,
> + /*   750 */    89,   31,   32,   51,   52,  160,  161,  210,  211,  212,
> + /*   760 */   208,   36,   26,   27,  160,  161,   75,  143,  208,   33,
> + /*   770 */    68,  103,  104,  221,  143,   73,  222,   75,  226,  184,
> + /*   780 */    78,  198,   46,   47,  160,  161,  226,   51,   52,  143,
> + /*   790 */   195,  160,  161,   98,   99,  143,  182,  183,  174,  195,
> + /*   800 */   196,   85,   86,   87,   68,  103,  160,  161,  194,   73,
> + /*   810 */   143,   75,  160,  161,   78,   90,  143,  115,  116,  117,
> + /*   820 */   118,  119,  120,   51,   52,  143,  174,  143,  143,   51,
> + /*   830 */    52,  178,  179,  160,  161,  143,   26,   27,  115,  103,
> + /*   840 */   117,  195,  160,  161,  160,  161,   50,    7,  181,  157,
> + /*   850 */   158,  115,  116,  117,  118,  119,  120,   47,  174,  185,
> + /*   860 */   143,   51,   52,  182,  183,   59,   26,   27,  195,   43,
> + /*   870 */    47,   65,   49,   33,   51,  194,   70,  160,  161,   83,
> + /*   880 */   143,  103,  104,   73,  143,   75,   46,   47,   78,  208,
> + /*   890 */   143,   51,   52,   50,   88,   43,  214,  143,   75,  143,
> + /*   900 */    47,  160,  161,  143,   51,   52,   80,   39,   68,   51,
> + /*   910 */    52,  219,  227,   73,  143,   75,  160,  161,   78,   93,
> + /*   920 */    47,   53,  143,  143,  143,  115,  116,  117,  181,   61,
> + /*   930 */    62,  160,  161,  143,  143,  181,  143,  178,  179,  160,
> + /*   940 */   161,  160,  161,  103,  143,   93,  103,  104,  143,  151,
> + /*   950 */   160,  161,  126,  160,  161,  115,  116,  117,  118,  119,
> + /*   960 */   120,  160,  161,  143,  227,  160,  161,   56,  143,   58,
> + /*   970 */   143,  143,  181,  143,  101,   64,  124,  143,  126,  143,
> + /*   980 */   160,  161,  184,  154,  155,  143,  206,  160,  161,  143,
> + /*   990 */   160,  161,  134,  143,  160,  161,  160,  161,  143,  143,
> + /*  1000 */   143,  198,  160,  161,  143,  143,  160,  161,  143,  181,
> + /*  1010 */   160,  161,  143,  143,  143,  160,  161,  160,  161,  143,
> + /*  1020 */   143,  160,  161,   78,   28,  160,  161,  143,  143,  160,
> + /*  1030 */   161,  160,  161,  143,   89,  143,  160,  161,  143,  151,
> + /*  1040 */   143,   49,  143,   51,  160,  161,  143,   51,   52,  198,
> + /*  1050 */   160,  161,  160,  161,  229,  160,  161,  160,  161,  160,
> + /*  1060 */   161,  143,  206,  160,  161,  143,  181,   75,  143,  143,
> + /*  1070 */   143,  143,  184,  143,  143,  143,  206,  143,  160,  161,
> + /*  1080 */   143,   50,  160,  161,  143,  160,  161,  160,  161,  227,
> + /*  1090 */   160,  161,  160,  161,  160,  161,   47,  160,  161,   47,
> + /*  1100 */    51,  160,  161,   51,   52,   94,  183,   96,   97,  151,
> + /*  1110 */    85,   86,   87,  154,  155,  151,  151,  194,  151,  199,
> + /*  1120 */   200,    7,  108,  109,   75,  121,   50,  123,   95,   47,
> + /*  1130 */   143,   49,  206,  100,  206,   48,   16,   50,   48,   48,
> + /*  1140 */    50,   50,  184,   48,  113,   50,   77,   78,  184,  184,
> + /*  1150 */    48,  184,   50,   48,  115,   50,  117,   51,   52,   48,
> + /*  1160 */    48,   50,   50,  186,   51,   52,   52,   47,  189,   48,
> + /*  1170 */    48,   50,   50,  143,   51,   52,  202,  143,  102,  143,
> + /*  1180 */   143,  143,  202,  143,  228,  143,  189,  143,  228,  143,
> + /*  1190 */   143,  143,  164,  143,  143,  172,  143,  143,  143,  143,
> + /*  1200 */   168,  143,  202,  143,  163,  216,  163,  143,  163,  143,
> + /*  1210 */   188,  143,  186,  146,  143,  143,  143,  143,   47,  209,
> + /*  1220 */     5,  113,   45,  225,  189,  121,  128,  224,   45,  148,
> + /*  1230 */   209,  148,   47,  148,  177,   84,  148,   63,   83,  180,
> + /*  1240 */   162,  180,  180,  180,  165,  165,  162,  177,  162,  106,
> + /*  1250 */    84,   47,  177,  121,  189,  162,   32,  165,  164,  170,
> + /*  1260 */   112,  162,  162,  162,  107,  111,  189,  170,  110,   50,
> + /*  1270 */    40,   35,    4,   36,    3,   42,   48,  144,  141,  144,
> + /*  1280 */   150,  142,  142,  142,  142,   72,   43,   48,  101,  165,
> + /*  1290 */    99,  153,  165,  114,   88,  102,   84,   46,  153,  127,
> + /*  1300 */   204,   84,   50,  127,    1,  130,  203,  129,  114,  102,
> + /*  1310 */   166,  204,  203,  166,  204,   16,   16,   16,  203,  191,
> + /*  1320 */   204,  203,  193,  192,  190,  189,   16,   52,   88,    1,
> + /*  1330 */   213,  105,  101,   47,  215,  124,   34,   84,   49,   46,
> + /*  1340 */     7,   82,   47,  218,  218,   89,   66,   66,   54,   66,
> + /*  1350 */    60,   47,   47,   95,   48,   47,   47,   50,  101,   48,
> + /*  1360 */    48,   48,   47,   75,   48,   47,   52,   50,   48,   48,
> + /*  1370 */   105,   47,   50,  104,   47,  105,   50,  105,   48,   48,
> + /*  1380 */    48,   38,   48,  101,   48,   50,   48,   47,   49,   42,
> + /*  1390 */    48,   50,   47,   49,   48,   47,    1,   48,   48,   47,
> + /*  1400 */     0,   48,
> };
> -#define YY_SHIFT_USE_DFLT (1406)
> -#define YY_SHIFT_COUNT    (411)
> -#define YY_SHIFT_MIN      (-88)
> -#define YY_SHIFT_MAX      (1399)
> +#define YY_SHIFT_USE_DFLT (1402)
> +#define YY_SHIFT_COUNT    (408)
> +#define YY_SHIFT_MIN      (-82)
> +#define YY_SHIFT_MAX      (1400)
> static const short yy_shift_ofst[] = {
> - /*     0 */   176,  564,  598,  562,  736,  736,  736,  736,  240,   -5,
> - /*    10 */    71,   71,  736,  736,  736,  736,  736,  736,  736,  681,
> - /*    20 */   681,  660,  276,  191,  129,   99,  128,  177,  226,  275,
> + /*     0 */   586,  564,  598,  134,  736,  736,  736,  736,  571,   -5,
> + /*    10 */    71,   71,  736,  736,  736,  736,  736,  736,  736,  576,
> + /*    20 */   576,  542,  227,  191,  392,   99,  128,  177,  226,  275,
>  /*    30 */   324,  373,  401,  429,  457,  457,  457,  457,  457,  457,
>  /*    40 */   457,  457,  457,  457,  457,  457,  457,  457,  457,  524,
>  /*    50 */   457,  490,  550,  550,  702,  736,  736,  736,  736,  736,
> @@ -698,117 +698,115 @@ static const short yy_shift_ofst[] = {
>  /*    70 */   736,  736,  736,  736,  736,  736,  736,  736,  736,  736,
>  /*    80 */   736,  736,  840,  736,  736,  736,  736,  736,  736,  736,
>  /*    90 */   736,  736,  736,  736,  736,  736,   11,   30,   30,   30,
> - /*   100 */    30,   30,  188,   37,   43,  861,  144,  144,  462,  485,
> - /*   110 */   542,  -16, 1406, 1406, 1406,  581,  581,  565,  565,  821,
> - /*   120 */   601,  601,  473,  542,   88,  542,  542,  542,  542,  542,
> - /*   130 */   542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
> - /*   140 */   542,  221,  542,  542,  542,  221,  485,  -88,  -88,  -88,
> - /*   150 */   -88,  -88,  -88, 1406, 1406,  810,  195,  195,  237,  806,
> - /*   160 */   806,  806,  217,  846,  829,  848,  739,  441,  752,  927,
> - /*   170 */   557,  670,  670,  670, 1063,  962, 1071, 1006,  219,  542,
> - /*   180 */   542,  542,  542,  542,  542, 1024,  174,  174,  542,  542,
> - /*   190 */   370, 1024,  542,  370,  542,  542,  542,  542,  542,  542,
> - /*   200 */  1080,  542,  983,  542,  880,  542, 1027,  542,  542,  174,
> - /*   210 */   542,  784, 1027, 1027,  542,  542,  542, 1088,  904,  542,
> - /*   220 */   890,  542,  542,  542,  542, 1169, 1218, 1111, 1181, 1181,
> - /*   230 */  1181, 1181, 1106, 1100, 1186, 1111, 1169, 1218, 1218, 1111,
> - /*   240 */  1186, 1188, 1186, 1186, 1188, 1156, 1156, 1156, 1180, 1188,
> - /*   250 */  1156, 1161, 1156, 1180, 1156, 1156, 1144, 1170, 1144, 1170,
> - /*   260 */  1144, 1170, 1144, 1170, 1206, 1136, 1188, 1228, 1228, 1188,
> - /*   270 */  1149, 1155, 1157, 1163, 1111, 1216, 1235, 1235, 1241, 1241,
> - /*   280 */  1241, 1241, 1242, 1406, 1406, 1406, 1406,  152,  816,  881,
> - /*   290 */  1073,  734, 1091, 1092, 1095, 1096, 1099, 1103, 1104, 1081,
> - /*   300 */  1077,  841, 1114, 1118, 1119, 1124,  795, 1058, 1128, 1129,
> - /*   310 */  1110, 1273, 1277, 1244, 1219, 1250, 1210, 1247, 1248, 1196,
> - /*   320 */  1199, 1185, 1213, 1200, 1220, 1257, 1178, 1258, 1182, 1184,
> - /*   330 */  1183, 1226, 1310, 1215, 1201, 1302, 1314, 1315, 1316, 1245,
> - /*   340 */  1282, 1230, 1236, 1335, 1304, 1293, 1259, 1217, 1296, 1300,
> - /*   350 */  1340, 1253, 1266, 1303, 1283, 1305, 1306, 1307, 1309, 1285,
> - /*   360 */  1308, 1311, 1288, 1297, 1312, 1313, 1317, 1318, 1264, 1319,
> - /*   370 */  1321, 1320, 1322, 1262, 1323, 1325, 1324, 1265, 1327, 1260,
> - /*   380 */  1328, 1270, 1329, 1272, 1332, 1328, 1333, 1334, 1336, 1326,
> - /*   390 */  1337, 1338, 1341, 1345, 1342, 1344, 1343, 1339, 1346, 1348,
> - /*   400 */  1347, 1339, 1349, 1351, 1352, 1354, 1356, 1284, 1357, 1362,
> - /*   410 */  1392, 1399,
> + /*   100 */    30,   30,  188,   37,   43,  661,  201,  201,  720,  695,
> + /*   110 */   772,  -16, 1402, 1402, 1402,  645,  645,  633,  633,  826,
> + /*   120 */   221,  221,  858,  772,  317,  772,  772,  772,  772,  772,
> + /*   130 */   772,  772,  772,  772,  772,  772,  772,  772,  772,  772,
> + /*   140 */   772,  691,  772,  772,  772,  691,  695,  -82,  -82,  -82,
> + /*   150 */   -82,  -82,  -82, 1402, 1402,  810,  242,  242,  285,  806,
> + /*   160 */   806,  806,  119,  823,  668,  778,  868,  716,  911,  638,
> + /*   170 */   996,  992,  992,  992,  853,  843, 1052, 1011,  637,  772,
> + /*   180 */   772,  772,  772, 1031,  648,  648,  772,  772, 1114, 1031,
> + /*   190 */   772, 1114,  772,  772,  772,  772,  772,  772,  796,  772,
> + /*   200 */   593,  772,   36,  772, 1014,  772,  772,  648,  772, 1004,
> + /*   210 */  1014, 1014,  772,  772,  772, 1076, 1033,  772, 1082,  772,
> + /*   220 */   772,  772,  772, 1171, 1215, 1108, 1177, 1177, 1177, 1177,
> + /*   230 */  1104, 1098, 1183, 1108, 1171, 1215, 1215, 1108, 1183, 1185,
> + /*   240 */  1183, 1183, 1185, 1151, 1151, 1151, 1174, 1185, 1151, 1155,
> + /*   250 */  1151, 1174, 1151, 1151, 1143, 1166, 1143, 1166, 1143, 1166,
> + /*   260 */  1143, 1166, 1204, 1132, 1185, 1224, 1224, 1185, 1148, 1157,
> + /*   270 */  1154, 1158, 1108, 1219, 1230, 1230, 1236, 1236, 1236, 1236,
> + /*   280 */  1237, 1402, 1402, 1402, 1402,  152,  852, 1025, 1049, 1120,
> + /*   290 */  1087, 1090, 1091, 1095, 1102, 1105, 1106, 1069,  725,  945,
> + /*   300 */  1111, 1112, 1113, 1121,  723, 1039, 1122, 1123,  873, 1268,
> + /*   310 */  1271, 1233, 1213, 1243, 1228, 1239, 1187, 1191, 1179, 1206,
> + /*   320 */  1193, 1212, 1251, 1172, 1252, 1176, 1175, 1178, 1217, 1303,
> + /*   330 */  1207, 1194, 1299, 1300, 1301, 1310, 1240, 1275, 1226, 1231,
> + /*   340 */  1328, 1302, 1286, 1253, 1211, 1289, 1293, 1333, 1256, 1259,
> + /*   350 */  1295, 1280, 1304, 1305, 1306, 1308, 1281, 1294, 1309, 1283,
> + /*   360 */  1290, 1311, 1312, 1313, 1307, 1258, 1315, 1316, 1318, 1317,
> + /*   370 */  1257, 1320, 1321, 1314, 1265, 1324, 1269, 1322, 1270, 1326,
> + /*   380 */  1272, 1330, 1322, 1331, 1332, 1334, 1288, 1335, 1336, 1327,
> + /*   390 */  1343, 1338, 1340, 1339, 1341, 1342, 1345, 1344, 1341, 1346,
> + /*   400 */  1348, 1349, 1350, 1352, 1282, 1353, 1347, 1395, 1400,
> };
> -#define YY_REDUCE_USE_DFLT (-110)
> -#define YY_REDUCE_COUNT (286)
> -#define YY_REDUCE_MIN   (-109)
> -#define YY_REDUCE_MAX   (1148)
> +#define YY_REDUCE_USE_DFLT (-69)
> +#define YY_REDUCE_COUNT (284)
> +#define YY_REDUCE_MIN   (-68)
> +#define YY_REDUCE_MAX   (1147)
> static const short yy_reduce_ofst[] = {
> - /*     0 */    36,  504,  646,  124,  508,  531,  577,  633,  538,  159,
> - /*    10 */   -43,   12,  625,  652,  672,  480,  682,  684,  688,  471,
> - /*    20 */   717,  446,  696,  712,  436,  148,  148,  148,  148,  148,
> - /*    30 */   148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
> - /*    40 */   148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
> - /*    50 */   148,  148,  148,  148,  563,  763,  768,  774,  788,  801,
> - /*    60 */   820,  822,  826,  828,  830,  832,  834,  842,  853,  855,
> - /*    70 */   857,  862,  864,  866,  868,  876,  878,  887,  889,  891,
> - /*    80 */   897,  900,  902,  910,  912,  916,  921,  924,  926,  932,
> - /*    90 */   935,  937,  945,  948,  951,  956,  148,  148,  148,  148,
> - /*   100 */   148,  148,  148,  148,  148,  200,  208,  334,  148,  641,
> - /*   110 */   443,  148,  148,  148,  148,  463,  463,  499,  507,  426,
> - /*   120 */   495,  553,  513,  529,  606,  659,  691,  741,  760,  773,
> - /*   130 */   803,  827,  555,  854,  478,  877,  623,  898,  901,  863,
> - /*   140 */   604,  971,  925,  609,  628,  974,  561,  895,  905,  950,
> - /*   150 */   968,  970,  976,  933,  587, -109,  -68,  -28,   25,   97,
> - /*   160 */   110,  146,  121,  196,  245,  306,  366,  502,  512,  648,
> - /*   170 */   726,  700,  755,  778,  858,  121,  867,  697,  786,  899,
> - /*   180 */   911, 1007, 1018, 1022, 1026,  988,  977,  980, 1040, 1041,
> - /*   190 */   957,  997, 1044,  960, 1046, 1048, 1049, 1050, 1051, 1052,
> - /*   200 */  1032, 1054, 1028, 1055, 1031, 1059, 1038, 1060, 1061, 1003,
> - /*   210 */  1064,  990, 1045, 1047, 1066, 1069,  726, 1025, 1029, 1074,
> - /*   220 */  1068, 1075, 1076, 1078, 1079, 1011, 1053, 1036, 1056, 1057,
> - /*   230 */  1062, 1065, 1004, 1008, 1085, 1067, 1030, 1070, 1072, 1082,
> - /*   240 */  1086, 1083, 1090, 1093, 1087, 1084, 1089, 1097, 1094, 1098,
> - /*   250 */  1105, 1101, 1107, 1102, 1108, 1112, 1109, 1113, 1115, 1117,
> - /*   260 */  1120, 1122, 1123, 1125, 1042, 1043, 1116, 1121, 1126, 1127,
> - /*   270 */  1130, 1134, 1131, 1139, 1132, 1133, 1135, 1138, 1142, 1143,
> - /*   280 */  1145, 1146, 1148, 1137, 1140, 1141, 1147,
> + /*     0 */   237,  503,  595,  124,  167,  440,  545,  604,  552,  397,
> + /*    10 */   158,  547,  487,  624,  652,  646,  673,  684,  682,  456,
> + /*    20 */   692,  446,  681,  560,  508,  282,  282,  282,  282,  282,
> + /*    30 */   282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
> + /*    40 */   282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
> + /*    50 */   282,  282,  282,  282,  631,  717,  741,  756,  771,  779,
> + /*    60 */   781,  790,  793,  801,  805,  820,  827,  830,  834,  836,
> + /*    70 */   842,  846,  850,  855,  857,  861,  865,  869,  871,  876,
> + /*    80 */   884,  890,  892,  895,  897,  899,  903,  918,  922,  925,
> + /*    90 */   927,  930,  932,  934,  937,  941,  282,  282,  282,  282,
> + /*   100 */   282,  282,  282,  282,  282,   94,  370,  428,  282,  614,
> + /*   110 */   477,  282,  282,  282,  282,  437,  437,  653,  759,    4,
> + /*   120 */   104,  526,  449,  -11,   14,  179,  531,  667,  747,  754,
> + /*   130 */   791,  828,  780,  885,  685,  856,  737,  870,  926,  862,
> + /*   140 */   202,  829,  928,  825,  463,  959,  923,  798,  888,  958,
> + /*   150 */   964,  965,  967,  920,  122,  -68,   17,   21,  106,  198,
> + /*   160 */   253,  342,  170,  326,  340,  491,  455,  516,  554,  760,
> + /*   170 */   877,  583,  803,  851,  931,  170,  987,  674,  977, 1030,
> + /*   180 */  1034, 1036, 1037,  979,  974,  980, 1038, 1040,  956,  997,
> + /*   190 */  1042,  960, 1044, 1046, 1047, 1048, 1050, 1051, 1028, 1053,
> + /*   200 */  1023, 1054, 1032, 1055, 1041, 1056, 1058, 1000, 1060,  989,
> + /*   210 */  1043, 1045, 1064, 1066,  877, 1022, 1026, 1068, 1067, 1071,
> + /*   220 */  1072, 1073, 1074, 1010, 1057, 1035, 1059, 1061, 1062, 1063,
> + /*   230 */   998, 1003, 1081, 1065, 1021, 1070, 1075, 1077, 1083, 1079,
> + /*   240 */  1085, 1088, 1080, 1078, 1084, 1086, 1089, 1092, 1093, 1094,
> + /*   250 */  1099, 1097, 1100, 1101, 1096, 1103, 1107, 1109, 1110, 1115,
> + /*   260 */  1116, 1118, 1117, 1119, 1124, 1125, 1126, 1127, 1129, 1131,
> + /*   270 */  1128, 1134, 1136, 1130, 1133, 1135, 1139, 1140, 1141, 1142,
> + /*   280 */  1137, 1138, 1144, 1147, 1145,
> };
> static const YYACTIONTYPE yy_default[] = {
> - /*     0 */  1166, 1160, 1160, 1160, 1104, 1104, 1104, 1104, 1160, 1000,
> - /*    10 */  1027, 1027, 1208, 1208, 1208, 1208, 1208, 1208, 1103, 1208,
> - /*    20 */  1208, 1208, 1208, 1160, 1004, 1033, 1208, 1208, 1208, 1105,
> - /*    30 */  1106, 1208, 1208, 1208, 1138, 1043, 1042, 1041, 1040, 1014,
> - /*    40 */  1038, 1031, 1035, 1105, 1099, 1100, 1098, 1102, 1106, 1208,
> - /*    50 */  1034, 1068, 1083, 1067, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*    60 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*    70 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*    80 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*    90 */  1208, 1208, 1208, 1208, 1208, 1208, 1077, 1082, 1089, 1081,
> - /*   100 */  1078, 1070, 1069, 1071, 1072,  971, 1208, 1208, 1073, 1208,
> - /*   110 */  1208, 1074, 1086, 1085, 1084, 1175, 1174, 1208, 1208, 1111,
> - /*   120 */  1208, 1208, 1208, 1208, 1160, 1208, 1208, 1208, 1208, 1208,
> - /*   130 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   140 */  1208,  929, 1208, 1208, 1208,  929, 1208, 1160, 1160, 1160,
> - /*   150 */  1160, 1160, 1160, 1004,  995, 1208, 1208, 1208, 1208, 1208,
> - /*   160 */  1208, 1208, 1208, 1000, 1208, 1208, 1208, 1208, 1133, 1208,
> - /*   170 */  1208, 1000, 1000, 1000, 1208, 1002, 1208,  984,  994, 1208,
> - /*   180 */  1157, 1208, 1154, 1208, 1125, 1037, 1016, 1016, 1208, 1208,
> - /*   190 */  1207, 1037, 1208, 1207, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   200 */   946, 1208, 1186, 1208,  943, 1208, 1027, 1208, 1208, 1016,
> - /*   210 */  1208, 1101, 1027, 1027, 1208, 1208, 1208, 1001,  994, 1208,
> - /*   220 */  1208, 1208, 1208, 1208, 1169, 1048,  974, 1037,  980,  980,
> - /*   230 */   980,  980, 1137, 1204,  923, 1037, 1048,  974,  974, 1037,
> - /*   240 */   923, 1112,  923,  923, 1112,  972,  972,  972,  961, 1112,
> - /*   250 */   972,  946,  972,  961,  972,  972, 1020, 1015, 1020, 1015,
> - /*   260 */  1020, 1015, 1020, 1015, 1107, 1208, 1112, 1116, 1116, 1112,
> - /*   270 */  1032, 1021, 1030, 1028, 1037,  964, 1172, 1172, 1168, 1168,
> - /*   280 */  1168, 1168,  913, 1181,  948,  948, 1181, 1208, 1208, 1208,
> - /*   290 */  1176, 1119, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   300 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   310 */  1054, 1208,  910, 1208, 1208, 1208, 1155, 1208, 1208, 1199,
> - /*   320 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1136, 1135, 1208,
> - /*   330 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   340 */  1208, 1208, 1206, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   350 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   360 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,  986, 1208,
> - /*   370 */  1208, 1208, 1190, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
> - /*   380 */  1029, 1208, 1022, 1208, 1208, 1196, 1208, 1208, 1208, 1208,
> - /*   390 */  1208, 1208, 1208, 1208, 1208, 1208, 1208, 1162, 1208, 1208,
> - /*   400 */  1208, 1161, 1208, 1208, 1208, 1208, 1208, 1208, 1208,  917,
> - /*   410 */  1208, 1208,
> + /*     0 */  1156, 1150, 1150, 1150, 1097, 1097, 1097, 1097, 1150,  993,
> + /*    10 */  1020, 1020, 1198, 1198, 1198, 1198, 1198, 1198, 1096, 1198,
> + /*    20 */  1198, 1198, 1198, 1150,  997, 1026, 1198, 1198, 1198, 1098,
> + /*    30 */  1099, 1198, 1198, 1198, 1131, 1036, 1035, 1034, 1033, 1007,
> + /*    40 */  1031, 1024, 1028, 1098, 1092, 1093, 1091, 1095, 1099, 1198,
> + /*    50 */  1027, 1061, 1076, 1060, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*    60 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*    70 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*    80 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*    90 */  1198, 1198, 1198, 1198, 1198, 1198, 1070, 1075, 1082, 1074,
> + /*   100 */  1071, 1063, 1062, 1064, 1065,  964, 1198, 1198, 1066, 1198,
> + /*   110 */  1198, 1067, 1079, 1078, 1077, 1165, 1164, 1198, 1198, 1104,
> + /*   120 */  1198, 1198, 1198, 1198, 1150, 1198, 1198, 1198, 1198, 1198,
> + /*   130 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*   140 */  1198,  922, 1198, 1198, 1198,  922, 1198, 1150, 1150, 1150,
> + /*   150 */  1150, 1150, 1150,  997,  988, 1198, 1198, 1198, 1198, 1198,
> + /*   160 */  1198, 1198, 1198,  993, 1198, 1198, 1198, 1198, 1126, 1198,
> + /*   170 */  1198,  993,  993,  993, 1198,  995, 1198,  977,  987, 1198,
> + /*   180 */  1147, 1198, 1118, 1030, 1009, 1009, 1198, 1198, 1197, 1030,
> + /*   190 */  1198, 1197, 1198, 1198, 1198, 1198, 1198, 1198,  939, 1198,
> + /*   200 */  1176, 1198,  936, 1198, 1020, 1198, 1198, 1009, 1198, 1094,
> + /*   210 */  1020, 1020, 1198, 1198, 1198,  994,  987, 1198, 1198, 1198,
> + /*   220 */  1198, 1198, 1159, 1041,  967, 1030,  973,  973,  973,  973,
> + /*   230 */  1130, 1194,  916, 1030, 1041,  967,  967, 1030,  916, 1105,
> + /*   240 */   916,  916, 1105,  965,  965,  965,  954, 1105,  965,  939,
> + /*   250 */   965,  954,  965,  965, 1013, 1008, 1013, 1008, 1013, 1008,
> + /*   260 */  1013, 1008, 1100, 1198, 1105, 1109, 1109, 1105, 1025, 1014,
> + /*   270 */  1023, 1021, 1030,  957, 1162, 1162, 1158, 1158, 1158, 1158,
> + /*   280 */   906, 1171,  941,  941, 1171, 1198, 1198, 1198, 1166, 1112,
> + /*   290 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*   300 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1047, 1198,
> + /*   310 */   903, 1198, 1198, 1198, 1198, 1198, 1189, 1198, 1198, 1198,
> + /*   320 */  1198, 1198, 1198, 1198, 1129, 1128, 1198, 1198, 1198, 1198,
> + /*   330 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1196,
> + /*   340 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*   350 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*   360 */  1198, 1198, 1198, 1198, 1198,  979, 1198, 1198, 1198, 1180,
> + /*   370 */  1198, 1198, 1198, 1198, 1198, 1198, 1198, 1022, 1198, 1015,
> + /*   380 */  1198, 1198, 1186, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
> + /*   390 */  1198, 1198, 1198, 1198, 1152, 1198, 1198, 1198, 1151, 1198,
> + /*   400 */  1198, 1198, 1198, 1198, 1198, 1198,  910, 1198, 1198,
> };
> /********** End of lemon-generated parsing tables *****************************/
> 
> @@ -1299,60 +1297,57 @@ static const char *const yyRuleName[] = {
>  /* 243 */ "raisetype ::= ABORT",
>  /* 244 */ "raisetype ::= FAIL",
>  /* 245 */ "cmd ::= DROP TRIGGER ifexists fullname",
> - /* 246 */ "cmd ::= REINDEX",
> - /* 247 */ "cmd ::= REINDEX nm",
> - /* 248 */ "cmd ::= REINDEX nm ON nm",
> - /* 249 */ "cmd ::= ANALYZE",
> - /* 250 */ "cmd ::= ANALYZE nm",
> - /* 251 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
> - /* 252 */ "with ::=",
> - /* 253 */ "with ::= WITH wqlist",
> - /* 254 */ "with ::= WITH RECURSIVE wqlist",
> - /* 255 */ "wqlist ::= nm eidlist_opt AS LP select RP",
> - /* 256 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
> - /* 257 */ "input ::= ecmd",
> - /* 258 */ "explain ::=",
> - /* 259 */ "cmdx ::= cmd",
> - /* 260 */ "trans_opt ::=",
> - /* 261 */ "trans_opt ::= TRANSACTION",
> - /* 262 */ "trans_opt ::= TRANSACTION nm",
> - /* 263 */ "savepoint_opt ::= SAVEPOINT",
> - /* 264 */ "savepoint_opt ::=",
> - /* 265 */ "cmd ::= create_table create_table_args",
> - /* 266 */ "columnlist ::= columnlist COMMA columnname carglist",
> - /* 267 */ "columnlist ::= columnname carglist",
> - /* 268 */ "typetoken ::= typename",
> - /* 269 */ "typename ::= ID|STRING",
> - /* 270 */ "signed ::= plus_num",
> - /* 271 */ "signed ::= minus_num",
> - /* 272 */ "carglist ::= carglist ccons",
> - /* 273 */ "carglist ::=",
> - /* 274 */ "ccons ::= NULL onconf",
> - /* 275 */ "conslist_opt ::= COMMA conslist",
> - /* 276 */ "conslist ::= conslist tconscomma tcons",
> - /* 277 */ "conslist ::= tcons",
> - /* 278 */ "tconscomma ::=",
> - /* 279 */ "defer_subclause_opt ::= defer_subclause",
> - /* 280 */ "resolvetype ::= raisetype",
> - /* 281 */ "selectnowith ::= oneselect",
> - /* 282 */ "oneselect ::= values",
> - /* 283 */ "sclp ::= selcollist COMMA",
> - /* 284 */ "as ::= ID|STRING",
> - /* 285 */ "join_nm ::= ID|INDEXED",
> - /* 286 */ "join_nm ::= JOIN_KW",
> - /* 287 */ "expr ::= term",
> - /* 288 */ "exprlist ::= nexprlist",
> - /* 289 */ "nmnum ::= plus_num",
> - /* 290 */ "nmnum ::= STRING",
> - /* 291 */ "nmnum ::= nm",
> - /* 292 */ "nmnum ::= ON",
> - /* 293 */ "nmnum ::= DELETE",
> - /* 294 */ "nmnum ::= DEFAULT",
> - /* 295 */ "plus_num ::= INTEGER|FLOAT",
> - /* 296 */ "foreach_clause ::=",
> - /* 297 */ "foreach_clause ::= FOR EACH ROW",
> - /* 298 */ "trnm ::= nm",
> - /* 299 */ "tridxby ::=",
> + /* 246 */ "cmd ::= ANALYZE",
> + /* 247 */ "cmd ::= ANALYZE nm",
> + /* 248 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
> + /* 249 */ "with ::=",
> + /* 250 */ "with ::= WITH wqlist",
> + /* 251 */ "with ::= WITH RECURSIVE wqlist",
> + /* 252 */ "wqlist ::= nm eidlist_opt AS LP select RP",
> + /* 253 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
> + /* 254 */ "input ::= ecmd",
> + /* 255 */ "explain ::=",
> + /* 256 */ "cmdx ::= cmd",
> + /* 257 */ "trans_opt ::=",
> + /* 258 */ "trans_opt ::= TRANSACTION",
> + /* 259 */ "trans_opt ::= TRANSACTION nm",
> + /* 260 */ "savepoint_opt ::= SAVEPOINT",
> + /* 261 */ "savepoint_opt ::=",
> + /* 262 */ "cmd ::= create_table create_table_args",
> + /* 263 */ "columnlist ::= columnlist COMMA columnname carglist",
> + /* 264 */ "columnlist ::= columnname carglist",
> + /* 265 */ "typetoken ::= typename",
> + /* 266 */ "typename ::= ID|STRING",
> + /* 267 */ "signed ::= plus_num",
> + /* 268 */ "signed ::= minus_num",
> + /* 269 */ "carglist ::= carglist ccons",
> + /* 270 */ "carglist ::=",
> + /* 271 */ "ccons ::= NULL onconf",
> + /* 272 */ "conslist_opt ::= COMMA conslist",
> + /* 273 */ "conslist ::= conslist tconscomma tcons",
> + /* 274 */ "conslist ::= tcons",
> + /* 275 */ "tconscomma ::=",
> + /* 276 */ "defer_subclause_opt ::= defer_subclause",
> + /* 277 */ "resolvetype ::= raisetype",
> + /* 278 */ "selectnowith ::= oneselect",
> + /* 279 */ "oneselect ::= values",
> + /* 280 */ "sclp ::= selcollist COMMA",
> + /* 281 */ "as ::= ID|STRING",
> + /* 282 */ "join_nm ::= ID|INDEXED",
> + /* 283 */ "join_nm ::= JOIN_KW",
> + /* 284 */ "expr ::= term",
> + /* 285 */ "exprlist ::= nexprlist",
> + /* 286 */ "nmnum ::= plus_num",
> + /* 287 */ "nmnum ::= STRING",
> + /* 288 */ "nmnum ::= nm",
> + /* 289 */ "nmnum ::= ON",
> + /* 290 */ "nmnum ::= DELETE",
> + /* 291 */ "nmnum ::= DEFAULT",
> + /* 292 */ "plus_num ::= INTEGER|FLOAT",
> + /* 293 */ "foreach_clause ::=",
> + /* 294 */ "foreach_clause ::= FOR EACH ROW",
> + /* 295 */ "trnm ::= nm",
> + /* 296 */ "tridxby ::=",
> };
> #endif /* NDEBUG */
> 
> @@ -1468,17 +1463,17 @@ static void yy_destructor(
>     case 183: /* oneselect */
>     case 194: /* values */
> {
> -#line 386 "parse.y"
> +#line 393 "parse.y"
> sqlite3SelectDelete(pParse->db, (yypminor->yy279));
> -#line 1474 "parse.c"
> +#line 1469 "parse.c"
> }
>       break;
>     case 160: /* term */
>     case 161: /* expr */
> {
> -#line 829 "parse.y"
> +#line 836 "parse.y"
> sqlite3ExprDelete(pParse->db, (yypminor->yy162).pExpr);
> -#line 1482 "parse.c"
> +#line 1477 "parse.c"
> }
>       break;
>     case 165: /* eidlist_opt */
> @@ -1494,9 +1489,9 @@ sqlite3ExprDelete(pParse->db, (yypminor->yy162).pExpr);
>     case 213: /* paren_exprlist */
>     case 215: /* case_exprlist */
> {
> -#line 1261 "parse.y"
> +#line 1268 "parse.y"
> sqlite3ExprListDelete(pParse->db, (yypminor->yy382));
> -#line 1500 "parse.c"
> +#line 1495 "parse.c"
> }
>       break;
>     case 181: /* fullname */
> @@ -1504,17 +1499,17 @@ sqlite3ExprListDelete(pParse->db, (yypminor->yy382));
>     case 199: /* seltablist */
>     case 200: /* stl_prefix */
> {
> -#line 613 "parse.y"
> +#line 620 "parse.y"
> sqlite3SrcListDelete(pParse->db, (yypminor->yy387));
> -#line 1510 "parse.c"
> +#line 1505 "parse.c"
> }
>       break;
>     case 184: /* with */
>     case 229: /* wqlist */
> {
> -#line 1510 "parse.y"
> +#line 1518 "parse.y"
> sqlite3WithDelete(pParse->db, (yypminor->yy151));
> -#line 1518 "parse.c"
> +#line 1513 "parse.c"
> }
>       break;
>     case 189: /* where_opt */
> @@ -1524,33 +1519,33 @@ sqlite3WithDelete(pParse->db, (yypminor->yy151));
>     case 216: /* case_else */
>     case 225: /* when_clause */
> {
> -#line 738 "parse.y"
> +#line 745 "parse.y"
> sqlite3ExprDelete(pParse->db, (yypminor->yy362));
> -#line 1530 "parse.c"
> +#line 1525 "parse.c"
> }
>       break;
>     case 204: /* using_opt */
>     case 206: /* idlist */
>     case 209: /* idlist_opt */
> {
> -#line 650 "parse.y"
> +#line 657 "parse.y"
> sqlite3IdListDelete(pParse->db, (yypminor->yy40));
> -#line 1539 "parse.c"
> +#line 1534 "parse.c"
> }
>       break;
>     case 221: /* trigger_cmd_list */
>     case 226: /* trigger_cmd */
> {
> -#line 1384 "parse.y"
> +#line 1391 "parse.y"
> sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy427));
> -#line 1547 "parse.c"
> +#line 1542 "parse.c"
> }
>       break;
>     case 223: /* trigger_event */
> {
> -#line 1370 "parse.y"
> +#line 1377 "parse.y"
> sqlite3IdListDelete(pParse->db, (yypminor->yy10).b);
> -#line 1554 "parse.c"
> +#line 1549 "parse.c"
> }
>       break;
> /********* End destructor definitions *****************************************/
> @@ -1725,7 +1720,7 @@ static void yyStackOverflow(yyParser *yypParser){
> #line 41 "parse.y"
> 
>   sqlite3ErrorMsg(pParse, "parser stack overflow");
> -#line 1729 "parse.c"
> +#line 1724 "parse.c"
> /******** End %stack_overflow code ********************************************/
>    sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */
> }
> @@ -2047,9 +2042,6 @@ static const struct {
>   { 140, 4 },
>   { 140, 1 },
>   { 140, 2 },
> -  { 140, 4 },
> -  { 140, 1 },
> -  { 140, 2 },
>   { 140, 6 },
>   { 184, 0 },
>   { 184, 2 },
> @@ -2165,83 +2157,83 @@ static void yy_reduce(
>       case 0: /* ecmd ::= explain cmdx SEMI */
> #line 111 "parse.y"
> { sqlite3FinishCoding(pParse); }
> -#line 2169 "parse.c"
> +#line 2161 "parse.c"
>         break;
>       case 1: /* ecmd ::= SEMI */
> #line 112 "parse.y"
> {
>   sqlite3ErrorMsg(pParse, "syntax error: empty request");
> }
> -#line 2176 "parse.c"
> +#line 2168 "parse.c"
>         break;
>       case 2: /* explain ::= EXPLAIN */
> #line 117 "parse.y"
> { pParse->explain = 1; }
> -#line 2181 "parse.c"
> +#line 2173 "parse.c"
>         break;
>       case 3: /* explain ::= EXPLAIN QUERY PLAN */
> #line 118 "parse.y"
> { pParse->explain = 2; }
> -#line 2186 "parse.c"
> +#line 2178 "parse.c"
>         break;
>       case 4: /* cmd ::= BEGIN transtype trans_opt */
> #line 150 "parse.y"
> {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy52);}
> -#line 2191 "parse.c"
> +#line 2183 "parse.c"
>         break;
>       case 5: /* transtype ::= */
> #line 155 "parse.y"
> {yymsp[1].minor.yy52 = TK_DEFERRED;}
> -#line 2196 "parse.c"
> +#line 2188 "parse.c"
>         break;
>       case 6: /* transtype ::= DEFERRED */
> #line 156 "parse.y"
> {yymsp[0].minor.yy52 = yymsp[0].major; /*A-overwrites-X*/}
> -#line 2201 "parse.c"
> +#line 2193 "parse.c"
>         break;
>       case 7: /* cmd ::= COMMIT trans_opt */
>       case 8: /* cmd ::= END trans_opt */ yytestcase(yyruleno==8);
> #line 157 "parse.y"
> {sqlite3CommitTransaction(pParse);}
> -#line 2207 "parse.c"
> +#line 2199 "parse.c"
>         break;
>       case 9: /* cmd ::= ROLLBACK trans_opt */
> #line 159 "parse.y"
> {sqlite3RollbackTransaction(pParse);}
> -#line 2212 "parse.c"
> +#line 2204 "parse.c"
>         break;
>       case 10: /* cmd ::= SAVEPOINT nm */
> #line 163 "parse.y"
> {
>   sqlite3Savepoint(pParse, SAVEPOINT_BEGIN, &yymsp[0].minor.yy0);
> }
> -#line 2219 "parse.c"
> +#line 2211 "parse.c"
>         break;
>       case 11: /* cmd ::= RELEASE savepoint_opt nm */
> #line 166 "parse.y"
> {
>   sqlite3Savepoint(pParse, SAVEPOINT_RELEASE, &yymsp[0].minor.yy0);
> }
> -#line 2226 "parse.c"
> +#line 2218 "parse.c"
>         break;
>       case 12: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
> #line 169 "parse.y"
> {
>   sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
> }
> -#line 2233 "parse.c"
> +#line 2225 "parse.c"
>         break;
>       case 13: /* create_table ::= createkw TABLE ifnotexists nm */
> #line 176 "parse.y"
> {
>    sqlite3StartTable(pParse,&yymsp[0].minor.yy0,yymsp[-1].minor.yy52);
> }
> -#line 2240 "parse.c"
> +#line 2232 "parse.c"
>         break;
>       case 14: /* createkw ::= CREATE */
> #line 179 "parse.y"
> {disableLookaside(pParse);}
> -#line 2245 "parse.c"
> +#line 2237 "parse.c"
>         break;
>       case 15: /* ifnotexists ::= */
>       case 38: /* autoinc ::= */ yytestcase(yyruleno==38);
> @@ -2252,19 +2244,19 @@ static void yy_reduce(
>       case 208: /* collate ::= */ yytestcase(yyruleno==208);
> #line 182 "parse.y"
> {yymsp[1].minor.yy52 = 0;}
> -#line 2256 "parse.c"
> +#line 2248 "parse.c"
>         break;
>       case 16: /* ifnotexists ::= IF NOT EXISTS */
> #line 183 "parse.y"
> {yymsp[-2].minor.yy52 = 1;}
> -#line 2261 "parse.c"
> +#line 2253 "parse.c"
>         break;
>       case 17: /* create_table_args ::= LP columnlist conslist_opt RP */
> #line 185 "parse.y"
> {
>   sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);
> }
> -#line 2268 "parse.c"
> +#line 2260 "parse.c"
>         break;
>       case 18: /* create_table_args ::= AS select */
> #line 188 "parse.y"
> @@ -2272,67 +2264,67 @@ static void yy_reduce(
>   sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy279);
>   sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy279);
> }
> -#line 2276 "parse.c"
> +#line 2268 "parse.c"
>         break;
>       case 19: /* columnname ::= nm typetoken */
> #line 194 "parse.y"
> {sqlite3AddColumn(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
> -#line 2281 "parse.c"
> +#line 2273 "parse.c"
>         break;
>       case 20: /* nm ::= ID|INDEXED */
> -#line 225 "parse.y"
> +#line 232 "parse.y"
> {
>   if(yymsp[0].minor.yy0.isReserved) {
>     sqlite3ErrorMsg(pParse, "keyword \"%T\" is reserved", &yymsp[0].minor.yy0);
>   }
> }
> -#line 2290 "parse.c"
> +#line 2282 "parse.c"
>         break;
>       case 21: /* typetoken ::= */
>       case 56: /* conslist_opt ::= */ yytestcase(yyruleno==56);
>       case 92: /* as ::= */ yytestcase(yyruleno==92);
> -#line 236 "parse.y"
> +#line 243 "parse.y"
> {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;}
> -#line 2297 "parse.c"
> +#line 2289 "parse.c"
>         break;
>       case 22: /* typetoken ::= typename LP signed RP */
> -#line 238 "parse.y"
> +#line 245 "parse.y"
> {
>   yymsp[-3].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z);
> }
> -#line 2304 "parse.c"
> +#line 2296 "parse.c"
>         break;
>       case 23: /* typetoken ::= typename LP signed COMMA signed RP */
> -#line 241 "parse.y"
> +#line 248 "parse.y"
> {
>   yymsp[-5].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy0.z);
> }
> -#line 2311 "parse.c"
> +#line 2303 "parse.c"
>         break;
>       case 24: /* typename ::= typename ID|STRING */
> -#line 246 "parse.y"
> +#line 253 "parse.y"
> {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
> -#line 2316 "parse.c"
> +#line 2308 "parse.c"
>         break;
>       case 25: /* ccons ::= CONSTRAINT nm */
>       case 58: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==58);
> -#line 255 "parse.y"
> +#line 262 "parse.y"
> {pParse->constraintName = yymsp[0].minor.yy0;}
> -#line 2322 "parse.c"
> +#line 2314 "parse.c"
>         break;
>       case 26: /* ccons ::= DEFAULT term */
>       case 28: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==28);
> -#line 256 "parse.y"
> +#line 263 "parse.y"
> {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy162);}
> -#line 2328 "parse.c"
> +#line 2320 "parse.c"
>         break;
>       case 27: /* ccons ::= DEFAULT LP expr RP */
> -#line 257 "parse.y"
> +#line 264 "parse.y"
> {sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy162);}
> -#line 2333 "parse.c"
> +#line 2325 "parse.c"
>         break;
>       case 29: /* ccons ::= DEFAULT MINUS term */
> -#line 259 "parse.y"
> +#line 266 "parse.y"
> {
>   ExprSpan v;
>   v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy162.pExpr, 0);
> @@ -2340,222 +2332,222 @@ static void yy_reduce(
>   v.zEnd = yymsp[0].minor.yy162.zEnd;
>   sqlite3AddDefaultValue(pParse,&v);
> }
> -#line 2344 "parse.c"
> +#line 2336 "parse.c"
>         break;
>       case 30: /* ccons ::= DEFAULT ID|INDEXED */
> -#line 266 "parse.y"
> +#line 273 "parse.y"
> {
>   ExprSpan v;
>   spanExpr(&v, pParse, TK_STRING, yymsp[0].minor.yy0);
>   sqlite3AddDefaultValue(pParse,&v);
> }
> -#line 2353 "parse.c"
> +#line 2345 "parse.c"
>         break;
>       case 31: /* ccons ::= NOT NULL onconf */
> -#line 276 "parse.y"
> +#line 283 "parse.y"
> {sqlite3AddNotNull(pParse, yymsp[0].minor.yy52);}
> -#line 2358 "parse.c"
> +#line 2350 "parse.c"
>         break;
>       case 32: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
> -#line 278 "parse.y"
> +#line 285 "parse.y"
> {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy52,yymsp[0].minor.yy52,yymsp[-2].minor.yy52);}
> -#line 2363 "parse.c"
> +#line 2355 "parse.c"
>         break;
>       case 33: /* ccons ::= UNIQUE onconf */
> -#line 279 "parse.y"
> +#line 286 "parse.y"
> {sqlite3CreateIndex(pParse,0,0,0,yymsp[0].minor.yy52,0,0,0,0,
>                                    SQLITE_IDXTYPE_UNIQUE);}
> -#line 2369 "parse.c"
> +#line 2361 "parse.c"
>         break;
>       case 34: /* ccons ::= CHECK LP expr RP */
> -#line 281 "parse.y"
> +#line 288 "parse.y"
> {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy162.pExpr);}
> -#line 2374 "parse.c"
> +#line 2366 "parse.c"
>         break;
>       case 35: /* ccons ::= REFERENCES nm eidlist_opt refargs */
> -#line 283 "parse.y"
> +#line 290 "parse.y"
> {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy382,yymsp[0].minor.yy52);}
> -#line 2379 "parse.c"
> +#line 2371 "parse.c"
>         break;
>       case 36: /* ccons ::= defer_subclause */
> -#line 284 "parse.y"
> +#line 291 "parse.y"
> {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy52);}
> -#line 2384 "parse.c"
> +#line 2376 "parse.c"
>         break;
>       case 37: /* ccons ::= COLLATE ID|INDEXED */
> -#line 285 "parse.y"
> +#line 292 "parse.y"
> {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
> -#line 2389 "parse.c"
> +#line 2381 "parse.c"
>         break;
>       case 39: /* autoinc ::= AUTOINCR */
> -#line 290 "parse.y"
> +#line 297 "parse.y"
> {yymsp[0].minor.yy52 = 1;}
> -#line 2394 "parse.c"
> +#line 2386 "parse.c"
>         break;
>       case 40: /* refargs ::= */
> -#line 298 "parse.y"
> +#line 305 "parse.y"
> { yymsp[1].minor.yy52 = ON_CONFLICT_ACTION_NONE*0x0101; /* EV: R-19803-45884 */}
> -#line 2399 "parse.c"
> +#line 2391 "parse.c"
>         break;
>       case 41: /* refargs ::= refargs refarg */
> -#line 299 "parse.y"
> +#line 306 "parse.y"
> { yymsp[-1].minor.yy52 = (yymsp[-1].minor.yy52 & ~yymsp[0].minor.yy107.mask) | yymsp[0].minor.yy107.value; }
> -#line 2404 "parse.c"
> +#line 2396 "parse.c"
>         break;
>       case 42: /* refarg ::= MATCH nm */
> -#line 301 "parse.y"
> +#line 308 "parse.y"
> { yymsp[-1].minor.yy107.value = 0;     yymsp[-1].minor.yy107.mask = 0x000000; }
> -#line 2409 "parse.c"
> +#line 2401 "parse.c"
>         break;
>       case 43: /* refarg ::= ON INSERT refact */
> -#line 302 "parse.y"
> +#line 309 "parse.y"
> { yymsp[-2].minor.yy107.value = 0;     yymsp[-2].minor.yy107.mask = 0x000000; }
> -#line 2414 "parse.c"
> +#line 2406 "parse.c"
>         break;
>       case 44: /* refarg ::= ON DELETE refact */
> -#line 303 "parse.y"
> +#line 310 "parse.y"
> { yymsp[-2].minor.yy107.value = yymsp[0].minor.yy52;     yymsp[-2].minor.yy107.mask = 0x0000ff; }
> -#line 2419 "parse.c"
> +#line 2411 "parse.c"
>         break;
>       case 45: /* refarg ::= ON UPDATE refact */
> -#line 304 "parse.y"
> +#line 311 "parse.y"
> { yymsp[-2].minor.yy107.value = yymsp[0].minor.yy52<<8;  yymsp[-2].minor.yy107.mask = 0x00ff00; }
> -#line 2424 "parse.c"
> +#line 2416 "parse.c"
>         break;
>       case 46: /* refact ::= SET NULL */
> -#line 306 "parse.y"
> +#line 313 "parse.y"
> { yymsp[-1].minor.yy52 = OE_SetNull;  /* EV: R-33326-45252 */}
> -#line 2429 "parse.c"
> +#line 2421 "parse.c"
>         break;
>       case 47: /* refact ::= SET DEFAULT */
> -#line 307 "parse.y"
> +#line 314 "parse.y"
> { yymsp[-1].minor.yy52 = OE_SetDflt;  /* EV: R-33326-45252 */}
> -#line 2434 "parse.c"
> +#line 2426 "parse.c"
>         break;
>       case 48: /* refact ::= CASCADE */
> -#line 308 "parse.y"
> +#line 315 "parse.y"
> { yymsp[0].minor.yy52 = OE_Cascade;  /* EV: R-33326-45252 */}
> -#line 2439 "parse.c"
> +#line 2431 "parse.c"
>         break;
>       case 49: /* refact ::= RESTRICT */
> -#line 309 "parse.y"
> +#line 316 "parse.y"
> { yymsp[0].minor.yy52 = OE_Restrict; /* EV: R-33326-45252 */}
> -#line 2444 "parse.c"
> +#line 2436 "parse.c"
>         break;
>       case 50: /* refact ::= NO ACTION */
> -#line 310 "parse.y"
> +#line 317 "parse.y"
> { yymsp[-1].minor.yy52 = ON_CONFLICT_ACTION_NONE;     /* EV: R-33326-45252 */}
> -#line 2449 "parse.c"
> +#line 2441 "parse.c"
>         break;
>       case 51: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
> -#line 312 "parse.y"
> +#line 319 "parse.y"
> {yymsp[-2].minor.yy52 = 0;}
> -#line 2454 "parse.c"
> +#line 2446 "parse.c"
>         break;
>       case 52: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
>       case 67: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==67);
>       case 138: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==138);
> -#line 313 "parse.y"
> +#line 320 "parse.y"
> {yymsp[-1].minor.yy52 = yymsp[0].minor.yy52;}
> -#line 2461 "parse.c"
> +#line 2453 "parse.c"
>         break;
>       case 54: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
>       case 71: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==71);
>       case 180: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==180);
>       case 183: /* in_op ::= NOT IN */ yytestcase(yyruleno==183);
>       case 209: /* collate ::= COLLATE ID|INDEXED */ yytestcase(yyruleno==209);
> -#line 316 "parse.y"
> +#line 323 "parse.y"
> {yymsp[-1].minor.yy52 = 1;}
> -#line 2470 "parse.c"
> +#line 2462 "parse.c"
>         break;
>       case 55: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
> -#line 317 "parse.y"
> +#line 324 "parse.y"
> {yymsp[-1].minor.yy52 = 0;}
> -#line 2475 "parse.c"
> +#line 2467 "parse.c"
>         break;
>       case 57: /* tconscomma ::= COMMA */
> -#line 323 "parse.y"
> +#line 330 "parse.y"
> {pParse->constraintName.n = 0;}
> -#line 2480 "parse.c"
> +#line 2472 "parse.c"
>         break;
>       case 59: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
> -#line 327 "parse.y"
> +#line 334 "parse.y"
> {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy382,yymsp[0].minor.yy52,yymsp[-2].minor.yy52,0);}
> -#line 2485 "parse.c"
> +#line 2477 "parse.c"
>         break;
>       case 60: /* tcons ::= UNIQUE LP sortlist RP onconf */
> -#line 329 "parse.y"
> +#line 336 "parse.y"
> {sqlite3CreateIndex(pParse,0,0,yymsp[-2].minor.yy382,yymsp[0].minor.yy52,0,0,0,0,
>                                        SQLITE_IDXTYPE_UNIQUE);}
> -#line 2491 "parse.c"
> +#line 2483 "parse.c"
>         break;
>       case 61: /* tcons ::= CHECK LP expr RP onconf */
> -#line 332 "parse.y"
> +#line 339 "parse.y"
> {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy162.pExpr);}
> -#line 2496 "parse.c"
> +#line 2488 "parse.c"
>         break;
>       case 62: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
> -#line 334 "parse.y"
> +#line 341 "parse.y"
> {
>     sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy382, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy382, yymsp[-1].minor.yy52);
>     sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy52);
> }
> -#line 2504 "parse.c"
> +#line 2496 "parse.c"
>         break;
>       case 64: /* onconf ::= */
>       case 66: /* orconf ::= */ yytestcase(yyruleno==66);
> -#line 348 "parse.y"
> +#line 355 "parse.y"
> {yymsp[1].minor.yy52 = ON_CONFLICT_ACTION_DEFAULT;}
> -#line 2510 "parse.c"
> +#line 2502 "parse.c"
>         break;
>       case 65: /* onconf ::= ON CONFLICT resolvetype */
> -#line 349 "parse.y"
> +#line 356 "parse.y"
> {yymsp[-2].minor.yy52 = yymsp[0].minor.yy52;}
> -#line 2515 "parse.c"
> +#line 2507 "parse.c"
>         break;
>       case 68: /* resolvetype ::= IGNORE */
> -#line 353 "parse.y"
> +#line 360 "parse.y"
> {yymsp[0].minor.yy52 = ON_CONFLICT_ACTION_IGNORE;}
> -#line 2520 "parse.c"
> +#line 2512 "parse.c"
>         break;
>       case 69: /* resolvetype ::= REPLACE */
>       case 139: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==139);
> -#line 354 "parse.y"
> +#line 361 "parse.y"
> {yymsp[0].minor.yy52 = ON_CONFLICT_ACTION_REPLACE;}
> -#line 2526 "parse.c"
> +#line 2518 "parse.c"
>         break;
>       case 70: /* cmd ::= DROP TABLE ifexists fullname */
> -#line 358 "parse.y"
> +#line 365 "parse.y"
> {
>   sqlite3DropTable(pParse, yymsp[0].minor.yy387, 0, yymsp[-1].minor.yy52);
> }
> -#line 2533 "parse.c"
> +#line 2525 "parse.c"
>         break;
>       case 73: /* cmd ::= createkw VIEW ifnotexists nm eidlist_opt AS select */
> -#line 369 "parse.y"
> +#line 376 "parse.y"
> {
>   sqlite3CreateView(pParse, &yymsp[-6].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy382, yymsp[0].minor.yy279, yymsp[-4].minor.yy52);
> }
> -#line 2540 "parse.c"
> +#line 2532 "parse.c"
>         break;
>       case 74: /* cmd ::= DROP VIEW ifexists fullname */
> -#line 372 "parse.y"
> +#line 379 "parse.y"
> {
>   sqlite3DropTable(pParse, yymsp[0].minor.yy387, 1, yymsp[-1].minor.yy52);
> }
> -#line 2547 "parse.c"
> +#line 2539 "parse.c"
>         break;
>       case 75: /* cmd ::= select */
> -#line 379 "parse.y"
> +#line 386 "parse.y"
> {
>   SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
>   sqlite3Select(pParse, yymsp[0].minor.yy279, &dest);
>   sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy279);
> }
> -#line 2556 "parse.c"
> +#line 2548 "parse.c"
>         break;
>       case 76: /* select ::= with selectnowith */
> -#line 416 "parse.y"
> +#line 423 "parse.y"
> {
>   Select *p = yymsp[0].minor.yy279;
>   if( p ){
> @@ -2566,10 +2558,10 @@ static void yy_reduce(
>   }
>   yymsp[-1].minor.yy279 = p; /*A-overwrites-W*/
> }
> -#line 2570 "parse.c"
> +#line 2562 "parse.c"
>         break;
>       case 77: /* selectnowith ::= selectnowith multiselect_op oneselect */
> -#line 429 "parse.y"
> +#line 436 "parse.y"
> {
>   Select *pRhs = yymsp[0].minor.yy279;
>   Select *pLhs = yymsp[-2].minor.yy279;
> @@ -2592,21 +2584,21 @@ static void yy_reduce(
>   }
>   yymsp[-2].minor.yy279 = pRhs;
> }
> -#line 2596 "parse.c"
> +#line 2588 "parse.c"
>         break;
>       case 78: /* multiselect_op ::= UNION */
>       case 80: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==80);
> -#line 452 "parse.y"
> +#line 459 "parse.y"
> {yymsp[0].minor.yy52 = yymsp[0].major; /*A-overwrites-OP*/}
> -#line 2602 "parse.c"
> +#line 2594 "parse.c"
>         break;
>       case 79: /* multiselect_op ::= UNION ALL */
> -#line 453 "parse.y"
> +#line 460 "parse.y"
> {yymsp[-1].minor.yy52 = TK_ALL;}
> -#line 2607 "parse.c"
> +#line 2599 "parse.c"
>         break;
>       case 81: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
> -#line 457 "parse.y"
> +#line 464 "parse.y"
> {
> #ifdef SELECTTRACE_ENABLED
>   Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/
> @@ -2637,17 +2629,17 @@ static void yy_reduce(
>   }
> #endif /* SELECTRACE_ENABLED */
> }
> -#line 2641 "parse.c"
> +#line 2633 "parse.c"
>         break;
>       case 82: /* values ::= VALUES LP nexprlist RP */
> -#line 491 "parse.y"
> +#line 498 "parse.y"
> {
>   yymsp[-3].minor.yy279 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy382,0,0,0,0,0,SF_Values,0,0);
> }
> -#line 2648 "parse.c"
> +#line 2640 "parse.c"
>         break;
>       case 83: /* values ::= values COMMA LP exprlist RP */
> -#line 494 "parse.y"
> +#line 501 "parse.y"
> {
>   Select *pRight, *pLeft = yymsp[-4].minor.yy279;
>   pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy382,0,0,0,0,0,SF_Values|SF_MultiValue,0,0);
> @@ -2660,17 +2652,17 @@ static void yy_reduce(
>     yymsp[-4].minor.yy279 = pLeft;
>   }
> }
> -#line 2664 "parse.c"
> +#line 2656 "parse.c"
>         break;
>       case 84: /* distinct ::= DISTINCT */
> -#line 511 "parse.y"
> +#line 518 "parse.y"
> {yymsp[0].minor.yy52 = SF_Distinct;}
> -#line 2669 "parse.c"
> +#line 2661 "parse.c"
>         break;
>       case 85: /* distinct ::= ALL */
> -#line 512 "parse.y"
> +#line 519 "parse.y"
> {yymsp[0].minor.yy52 = SF_All;}
> -#line 2674 "parse.c"
> +#line 2666 "parse.c"
>         break;
>       case 87: /* sclp ::= */
>       case 113: /* orderby_opt ::= */ yytestcase(yyruleno==113);
> @@ -2678,94 +2670,94 @@ static void yy_reduce(
>       case 196: /* exprlist ::= */ yytestcase(yyruleno==196);
>       case 199: /* paren_exprlist ::= */ yytestcase(yyruleno==199);
>       case 204: /* eidlist_opt ::= */ yytestcase(yyruleno==204);
> -#line 525 "parse.y"
> +#line 532 "parse.y"
> {yymsp[1].minor.yy382 = 0;}
> -#line 2684 "parse.c"
> +#line 2676 "parse.c"
>         break;
>       case 88: /* selcollist ::= sclp expr as */
> -#line 526 "parse.y"
> +#line 533 "parse.y"
> {
>    yymsp[-2].minor.yy382 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy382, yymsp[-1].minor.yy162.pExpr);
>    if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-2].minor.yy382, &yymsp[0].minor.yy0, 1);
>    sqlite3ExprListSetSpan(pParse,yymsp[-2].minor.yy382,&yymsp[-1].minor.yy162);
> }
> -#line 2693 "parse.c"
> +#line 2685 "parse.c"
>         break;
>       case 89: /* selcollist ::= sclp STAR */
> -#line 531 "parse.y"
> +#line 538 "parse.y"
> {
>   Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
>   yymsp[-1].minor.yy382 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy382, p);
> }
> -#line 2701 "parse.c"
> +#line 2693 "parse.c"
>         break;
>       case 90: /* selcollist ::= sclp nm DOT STAR */
> -#line 535 "parse.y"
> +#line 542 "parse.y"
> {
>   Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
>   Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
>   Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
>   yymsp[-3].minor.yy382 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy382, pDot);
> }
> -#line 2711 "parse.c"
> +#line 2703 "parse.c"
>         break;
>       case 91: /* as ::= AS nm */
>       case 218: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==218);
>       case 219: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==219);
> -#line 546 "parse.y"
> +#line 553 "parse.y"
> {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
> -#line 2718 "parse.c"
> +#line 2710 "parse.c"
>         break;
>       case 93: /* from ::= */
> -#line 560 "parse.y"
> +#line 567 "parse.y"
> {yymsp[1].minor.yy387 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy387));}
> -#line 2723 "parse.c"
> +#line 2715 "parse.c"
>         break;
>       case 94: /* from ::= FROM seltablist */
> -#line 561 "parse.y"
> +#line 568 "parse.y"
> {
>   yymsp[-1].minor.yy387 = yymsp[0].minor.yy387;
>   sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy387);
> }
> -#line 2731 "parse.c"
> +#line 2723 "parse.c"
>         break;
>       case 95: /* stl_prefix ::= seltablist joinop */
> -#line 569 "parse.y"
> +#line 576 "parse.y"
> {
>    if( ALWAYS(yymsp[-1].minor.yy387 && yymsp[-1].minor.yy387->nSrc>0) ) yymsp[-1].minor.yy387->a[yymsp[-1].minor.yy387->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy52;
> }
> -#line 2738 "parse.c"
> +#line 2730 "parse.c"
>         break;
>       case 96: /* stl_prefix ::= */
> -#line 572 "parse.y"
> +#line 579 "parse.y"
> {yymsp[1].minor.yy387 = 0;}
> -#line 2743 "parse.c"
> +#line 2735 "parse.c"
>         break;
>       case 97: /* seltablist ::= stl_prefix nm as indexed_opt on_opt using_opt */
> -#line 574 "parse.y"
> +#line 581 "parse.y"
> {
>   yymsp[-5].minor.yy387 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy387,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy362,yymsp[0].minor.yy40);
>   sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy387, &yymsp[-2].minor.yy0);
> }
> -#line 2751 "parse.c"
> +#line 2743 "parse.c"
>         break;
>       case 98: /* seltablist ::= stl_prefix nm LP exprlist RP as on_opt using_opt */
> -#line 579 "parse.y"
> +#line 586 "parse.y"
> {
>   yymsp[-7].minor.yy387 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy387,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy362,yymsp[0].minor.yy40);
>   sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy387, yymsp[-4].minor.yy382);
> }
> -#line 2759 "parse.c"
> +#line 2751 "parse.c"
>         break;
>       case 99: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
> -#line 585 "parse.y"
> +#line 592 "parse.y"
> {
>     yymsp[-6].minor.yy387 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy387,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy279,yymsp[-1].minor.yy362,yymsp[0].minor.yy40);
>   }
> -#line 2766 "parse.c"
> +#line 2758 "parse.c"
>         break;
>       case 100: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
> -#line 589 "parse.y"
> +#line 596 "parse.y"
> {
>     if( yymsp[-6].minor.yy387==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy362==0 && yymsp[0].minor.yy40==0 ){
>       yymsp[-6].minor.yy387 = yymsp[-4].minor.yy387;
> @@ -2787,135 +2779,135 @@ static void yy_reduce(
>       yymsp[-6].minor.yy387 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy387,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy362,yymsp[0].minor.yy40);
>     }
>   }
> -#line 2791 "parse.c"
> +#line 2783 "parse.c"
>         break;
>       case 101: /* fullname ::= nm */
> -#line 615 "parse.y"
> +#line 622 "parse.y"
> {yymsp[0].minor.yy387 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
> -#line 2796 "parse.c"
> +#line 2788 "parse.c"
>         break;
>       case 102: /* joinop ::= COMMA|JOIN */
> -#line 621 "parse.y"
> +#line 628 "parse.y"
> { yymsp[0].minor.yy52 = JT_INNER; }
> -#line 2801 "parse.c"
> +#line 2793 "parse.c"
>         break;
>       case 103: /* joinop ::= JOIN_KW JOIN */
> -#line 623 "parse.y"
> +#line 630 "parse.y"
> {yymsp[-1].minor.yy52 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0);  /*X-overwrites-A*/}
> -#line 2806 "parse.c"
> +#line 2798 "parse.c"
>         break;
>       case 104: /* joinop ::= JOIN_KW join_nm JOIN */
> -#line 625 "parse.y"
> +#line 632 "parse.y"
> {yymsp[-2].minor.yy52 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
> -#line 2811 "parse.c"
> +#line 2803 "parse.c"
>         break;
>       case 105: /* joinop ::= JOIN_KW join_nm join_nm JOIN */
> -#line 627 "parse.y"
> +#line 634 "parse.y"
> {yymsp[-3].minor.yy52 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
> -#line 2816 "parse.c"
> +#line 2808 "parse.c"
>         break;
>       case 106: /* on_opt ::= ON expr */
>       case 123: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==123);
>       case 130: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==130);
>       case 192: /* case_else ::= ELSE expr */ yytestcase(yyruleno==192);
> -#line 631 "parse.y"
> +#line 638 "parse.y"
> {yymsp[-1].minor.yy362 = yymsp[0].minor.yy162.pExpr;}
> -#line 2824 "parse.c"
> +#line 2816 "parse.c"
>         break;
>       case 107: /* on_opt ::= */
>       case 122: /* having_opt ::= */ yytestcase(yyruleno==122);
>       case 129: /* where_opt ::= */ yytestcase(yyruleno==129);
>       case 193: /* case_else ::= */ yytestcase(yyruleno==193);
>       case 195: /* case_operand ::= */ yytestcase(yyruleno==195);
> -#line 632 "parse.y"
> +#line 639 "parse.y"
> {yymsp[1].minor.yy362 = 0;}
> -#line 2833 "parse.c"
> +#line 2825 "parse.c"
>         break;
>       case 108: /* indexed_opt ::= */
> -#line 645 "parse.y"
> +#line 652 "parse.y"
> {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
> -#line 2838 "parse.c"
> +#line 2830 "parse.c"
>         break;
>       case 109: /* indexed_opt ::= INDEXED BY nm */
> -#line 646 "parse.y"
> +#line 653 "parse.y"
> {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
> -#line 2843 "parse.c"
> +#line 2835 "parse.c"
>         break;
>       case 110: /* indexed_opt ::= NOT INDEXED */
> -#line 647 "parse.y"
> +#line 654 "parse.y"
> {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
> -#line 2848 "parse.c"
> +#line 2840 "parse.c"
>         break;
>       case 111: /* using_opt ::= USING LP idlist RP */
> -#line 651 "parse.y"
> +#line 658 "parse.y"
> {yymsp[-3].minor.yy40 = yymsp[-1].minor.yy40;}
> -#line 2853 "parse.c"
> +#line 2845 "parse.c"
>         break;
>       case 112: /* using_opt ::= */
>       case 140: /* idlist_opt ::= */ yytestcase(yyruleno==140);
> -#line 652 "parse.y"
> +#line 659 "parse.y"
> {yymsp[1].minor.yy40 = 0;}
> -#line 2859 "parse.c"
> +#line 2851 "parse.c"
>         break;
>       case 114: /* orderby_opt ::= ORDER BY sortlist */
>       case 121: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==121);
> -#line 666 "parse.y"
> +#line 673 "parse.y"
> {yymsp[-2].minor.yy382 = yymsp[0].minor.yy382;}
> -#line 2865 "parse.c"
> +#line 2857 "parse.c"
>         break;
>       case 115: /* sortlist ::= sortlist COMMA expr sortorder */
> -#line 667 "parse.y"
> +#line 674 "parse.y"
> {
>   yymsp[-3].minor.yy382 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy382,yymsp[-1].minor.yy162.pExpr);
>   sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy382,yymsp[0].minor.yy52);
> }
> -#line 2873 "parse.c"
> +#line 2865 "parse.c"
>         break;
>       case 116: /* sortlist ::= expr sortorder */
> -#line 671 "parse.y"
> +#line 678 "parse.y"
> {
>   yymsp[-1].minor.yy382 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy162.pExpr); /*A-overwrites-Y*/
>   sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy382,yymsp[0].minor.yy52);
> }
> -#line 2881 "parse.c"
> +#line 2873 "parse.c"
>         break;
>       case 117: /* sortorder ::= ASC */
> -#line 678 "parse.y"
> +#line 685 "parse.y"
> {yymsp[0].minor.yy52 = SQLITE_SO_ASC;}
> -#line 2886 "parse.c"
> +#line 2878 "parse.c"
>         break;
>       case 118: /* sortorder ::= DESC */
> -#line 679 "parse.y"
> +#line 686 "parse.y"
> {yymsp[0].minor.yy52 = SQLITE_SO_DESC;}
> -#line 2891 "parse.c"
> +#line 2883 "parse.c"
>         break;
>       case 119: /* sortorder ::= */
> -#line 680 "parse.y"
> +#line 687 "parse.y"
> {yymsp[1].minor.yy52 = SQLITE_SO_UNDEFINED;}
> -#line 2896 "parse.c"
> +#line 2888 "parse.c"
>         break;
>       case 124: /* limit_opt ::= */
> -#line 705 "parse.y"
> +#line 712 "parse.y"
> {yymsp[1].minor.yy384.pLimit = 0; yymsp[1].minor.yy384.pOffset = 0;}
> -#line 2901 "parse.c"
> +#line 2893 "parse.c"
>         break;
>       case 125: /* limit_opt ::= LIMIT expr */
> -#line 706 "parse.y"
> +#line 713 "parse.y"
> {yymsp[-1].minor.yy384.pLimit = yymsp[0].minor.yy162.pExpr; yymsp[-1].minor.yy384.pOffset = 0;}
> -#line 2906 "parse.c"
> +#line 2898 "parse.c"
>         break;
>       case 126: /* limit_opt ::= LIMIT expr OFFSET expr */
> -#line 708 "parse.y"
> +#line 715 "parse.y"
> {yymsp[-3].minor.yy384.pLimit = yymsp[-2].minor.yy162.pExpr; yymsp[-3].minor.yy384.pOffset = yymsp[0].minor.yy162.pExpr;}
> -#line 2911 "parse.c"
> +#line 2903 "parse.c"
>         break;
>       case 127: /* limit_opt ::= LIMIT expr COMMA expr */
> -#line 710 "parse.y"
> +#line 717 "parse.y"
> {yymsp[-3].minor.yy384.pOffset = yymsp[-2].minor.yy162.pExpr; yymsp[-3].minor.yy384.pLimit = yymsp[0].minor.yy162.pExpr;}
> -#line 2916 "parse.c"
> +#line 2908 "parse.c"
>         break;
>       case 128: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
> -#line 727 "parse.y"
> +#line 734 "parse.y"
> {
>   sqlite3WithPush(pParse, yymsp[-5].minor.yy151, 1);
>   sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy387, &yymsp[-1].minor.yy0);
> @@ -2924,10 +2916,10 @@ static void yy_reduce(
>   pParse->initiateTTrans = true;
>   sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy387,yymsp[0].minor.yy362);
> }
> -#line 2928 "parse.c"
> +#line 2920 "parse.c"
>         break;
>       case 131: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
> -#line 760 "parse.y"
> +#line 767 "parse.y"
> {
>   sqlite3WithPush(pParse, yymsp[-7].minor.yy151, 1);
>   sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy387, &yymsp[-3].minor.yy0);
> @@ -2937,41 +2929,41 @@ static void yy_reduce(
>   pParse->initiateTTrans = true;
>   sqlite3Update(pParse,yymsp[-4].minor.yy387,yymsp[-1].minor.yy382,yymsp[0].minor.yy362,yymsp[-5].minor.yy52);
> }
> -#line 2941 "parse.c"
> +#line 2933 "parse.c"
>         break;
>       case 132: /* setlist ::= setlist COMMA nm EQ expr */
> -#line 774 "parse.y"
> +#line 781 "parse.y"
> {
>   yymsp[-4].minor.yy382 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy382, yymsp[0].minor.yy162.pExpr);
>   sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy382, &yymsp[-2].minor.yy0, 1);
> }
> -#line 2949 "parse.c"
> +#line 2941 "parse.c"
>         break;
>       case 133: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
> -#line 778 "parse.y"
> +#line 785 "parse.y"
> {
>   yymsp[-6].minor.yy382 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy382, yymsp[-3].minor.yy40, yymsp[0].minor.yy162.pExpr);
> }
> -#line 2956 "parse.c"
> +#line 2948 "parse.c"
>         break;
>       case 134: /* setlist ::= nm EQ expr */
> -#line 781 "parse.y"
> +#line 788 "parse.y"
> {
>   yylhsminor.yy382 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy162.pExpr);
>   sqlite3ExprListSetName(pParse, yylhsminor.yy382, &yymsp[-2].minor.yy0, 1);
> }
> -#line 2964 "parse.c"
> +#line 2956 "parse.c"
>   yymsp[-2].minor.yy382 = yylhsminor.yy382;
>         break;
>       case 135: /* setlist ::= LP idlist RP EQ expr */
> -#line 785 "parse.y"
> +#line 792 "parse.y"
> {
>   yymsp[-4].minor.yy382 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy40, yymsp[0].minor.yy162.pExpr);
> }
> -#line 2972 "parse.c"
> +#line 2964 "parse.c"
>         break;
>       case 136: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
> -#line 791 "parse.y"
> +#line 798 "parse.y"
> {
>   sqlite3WithPush(pParse, yymsp[-5].minor.yy151, 1);
>   sqlSubProgramsRemaining = SQL_MAX_COMPILING_TRIGGERS;
> @@ -2979,10 +2971,10 @@ static void yy_reduce(
>   pParse->initiateTTrans = true;
>   sqlite3Insert(pParse, yymsp[-2].minor.yy387, yymsp[0].minor.yy279, yymsp[-1].minor.yy40, yymsp[-4].minor.yy52);
> }
> -#line 2983 "parse.c"
> +#line 2975 "parse.c"
>         break;
>       case 137: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
> -#line 799 "parse.y"
> +#line 806 "parse.y"
> {
>   sqlite3WithPush(pParse, yymsp[-6].minor.yy151, 1);
>   sqlSubProgramsRemaining = SQL_MAX_COMPILING_TRIGGERS;
> @@ -2990,64 +2982,64 @@ static void yy_reduce(
>   pParse->initiateTTrans = true;
>   sqlite3Insert(pParse, yymsp[-3].minor.yy387, 0, yymsp[-2].minor.yy40, yymsp[-5].minor.yy52);
> }
> -#line 2994 "parse.c"
> +#line 2986 "parse.c"
>         break;
>       case 141: /* idlist_opt ::= LP idlist RP */
> -#line 817 "parse.y"
> +#line 824 "parse.y"
> {yymsp[-2].minor.yy40 = yymsp[-1].minor.yy40;}
> -#line 2999 "parse.c"
> +#line 2991 "parse.c"
>         break;
>       case 142: /* idlist ::= idlist COMMA nm */
> -#line 819 "parse.y"
> +#line 826 "parse.y"
> {yymsp[-2].minor.yy40 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy40,&yymsp[0].minor.yy0);}
> -#line 3004 "parse.c"
> +#line 2996 "parse.c"
>         break;
>       case 143: /* idlist ::= nm */
> -#line 821 "parse.y"
> +#line 828 "parse.y"
> {yymsp[0].minor.yy40 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
> -#line 3009 "parse.c"
> +#line 3001 "parse.c"
>         break;
>       case 144: /* expr ::= LP expr RP */
> -#line 870 "parse.y"
> +#line 877 "parse.y"
> {spanSet(&yymsp[-2].minor.yy162,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/  yymsp[-2].minor.yy162.pExpr = yymsp[-1].minor.yy162.pExpr;}
> -#line 3014 "parse.c"
> +#line 3006 "parse.c"
>         break;
>       case 145: /* term ::= NULL */
>       case 149: /* term ::= FLOAT|BLOB */ yytestcase(yyruleno==149);
>       case 150: /* term ::= STRING */ yytestcase(yyruleno==150);
> -#line 871 "parse.y"
> +#line 878 "parse.y"
> {spanExpr(&yymsp[0].minor.yy162,pParse,yymsp[0].major,yymsp[0].minor.yy0);/*A-overwrites-X*/}
> -#line 3021 "parse.c"
> +#line 3013 "parse.c"
>         break;
>       case 146: /* expr ::= ID|INDEXED */
>       case 147: /* expr ::= JOIN_KW */ yytestcase(yyruleno==147);
> -#line 872 "parse.y"
> +#line 879 "parse.y"
> {spanExpr(&yymsp[0].minor.yy162,pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
> -#line 3027 "parse.c"
> +#line 3019 "parse.c"
>         break;
>       case 148: /* expr ::= nm DOT nm */
> -#line 874 "parse.y"
> +#line 881 "parse.y"
> {
>   Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
>   Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
>   spanSet(&yymsp[-2].minor.yy162,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
>   yymsp[-2].minor.yy162.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
> }
> -#line 3037 "parse.c"
> +#line 3029 "parse.c"
>         break;
>       case 151: /* term ::= INTEGER */
> -#line 882 "parse.y"
> +#line 889 "parse.y"
> {
>   yylhsminor.yy162.pExpr = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
>   yylhsminor.yy162.zStart = yymsp[0].minor.yy0.z;
>   yylhsminor.yy162.zEnd = yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n;
>   if( yylhsminor.yy162.pExpr ) yylhsminor.yy162.pExpr->flags |= EP_Leaf;
> }
> -#line 3047 "parse.c"
> +#line 3039 "parse.c"
>   yymsp[0].minor.yy162 = yylhsminor.yy162;
>         break;
>       case 152: /* expr ::= VARIABLE */
> -#line 888 "parse.y"
> +#line 895 "parse.y"
> {
>   if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
>     u32 n = yymsp[0].minor.yy0.n;
> @@ -3069,27 +3061,27 @@ static void yy_reduce(
>     }
>   }
> }
> -#line 3073 "parse.c"
> +#line 3065 "parse.c"
>         break;
>       case 153: /* expr ::= expr COLLATE ID|INDEXED */
> -#line 909 "parse.y"
> +#line 916 "parse.y"
> {
>   yymsp[-2].minor.yy162.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy162.pExpr, &yymsp[0].minor.yy0, 1);
>   yymsp[-2].minor.yy162.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
> }
> -#line 3081 "parse.c"
> +#line 3073 "parse.c"
>         break;
>       case 154: /* expr ::= CAST LP expr AS typetoken RP */
> -#line 914 "parse.y"
> +#line 921 "parse.y"
> {
>   spanSet(&yymsp[-5].minor.yy162,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
>   yymsp[-5].minor.yy162.pExpr = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
>   sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy162.pExpr, yymsp[-3].minor.yy162.pExpr, 0);
> }
> -#line 3090 "parse.c"
> +#line 3082 "parse.c"
>         break;
>       case 155: /* expr ::= ID|INDEXED LP distinct exprlist RP */
> -#line 920 "parse.y"
> +#line 927 "parse.y"
> {
>   if( yymsp[-1].minor.yy382 && yymsp[-1].minor.yy382->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
>     sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
> @@ -3100,29 +3092,29 @@ static void yy_reduce(
>     yylhsminor.yy162.pExpr->flags |= EP_Distinct;
>   }
> }
> -#line 3104 "parse.c"
> +#line 3096 "parse.c"
>   yymsp[-4].minor.yy162 = yylhsminor.yy162;
>         break;
>       case 156: /* expr ::= ID|INDEXED LP STAR RP */
> -#line 930 "parse.y"
> +#line 937 "parse.y"
> {
>   yylhsminor.yy162.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
>   spanSet(&yylhsminor.yy162,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
> }
> -#line 3113 "parse.c"
> +#line 3105 "parse.c"
>   yymsp[-3].minor.yy162 = yylhsminor.yy162;
>         break;
>       case 157: /* term ::= CTIME_KW */
> -#line 934 "parse.y"
> +#line 941 "parse.y"
> {
>   yylhsminor.yy162.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
>   spanSet(&yylhsminor.yy162, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
> }
> -#line 3122 "parse.c"
> +#line 3114 "parse.c"
>   yymsp[0].minor.yy162 = yylhsminor.yy162;
>         break;
>       case 158: /* expr ::= LP nexprlist COMMA expr RP */
> -#line 963 "parse.y"
> +#line 970 "parse.y"
> {
>   ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy382, yymsp[-1].minor.yy162.pExpr);
>   yylhsminor.yy162.pExpr = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
> @@ -3133,7 +3125,7 @@ static void yy_reduce(
>     sqlite3ExprListDelete(pParse->db, pList);
>   }
> }
> -#line 3137 "parse.c"
> +#line 3129 "parse.c"
>   yymsp[-4].minor.yy162 = yylhsminor.yy162;
>         break;
>       case 159: /* expr ::= expr AND expr */
> @@ -3144,22 +3136,22 @@ static void yy_reduce(
>       case 164: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==164);
>       case 165: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==165);
>       case 166: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==166);
> -#line 974 "parse.y"
> +#line 981 "parse.y"
> {spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy162,&yymsp[0].minor.yy162);}
> -#line 3150 "parse.c"
> +#line 3142 "parse.c"
>         break;
>       case 167: /* likeop ::= LIKE_KW|MATCH */
> -#line 987 "parse.y"
> +#line 994 "parse.y"
> {yymsp[0].minor.yy0=yymsp[0].minor.yy0;/*A-overwrites-X*/}
> -#line 3155 "parse.c"
> +#line 3147 "parse.c"
>         break;
>       case 168: /* likeop ::= NOT LIKE_KW|MATCH */
> -#line 988 "parse.y"
> +#line 995 "parse.y"
> {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
> -#line 3160 "parse.c"
> +#line 3152 "parse.c"
>         break;
>       case 169: /* expr ::= expr likeop expr */
> -#line 989 "parse.y"
> +#line 996 "parse.y"
> {
>   ExprList *pList;
>   int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
> @@ -3171,10 +3163,10 @@ static void yy_reduce(
>   yymsp[-2].minor.yy162.zEnd = yymsp[0].minor.yy162.zEnd;
>   if( yymsp[-2].minor.yy162.pExpr ) yymsp[-2].minor.yy162.pExpr->flags |= EP_InfixFunc;
> }
> -#line 3175 "parse.c"
> +#line 3167 "parse.c"
>         break;
>       case 170: /* expr ::= expr likeop expr ESCAPE expr */
> -#line 1000 "parse.y"
> +#line 1007 "parse.y"
> {
>   ExprList *pList;
>   int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
> @@ -3187,58 +3179,58 @@ static void yy_reduce(
>   yymsp[-4].minor.yy162.zEnd = yymsp[0].minor.yy162.zEnd;
>   if( yymsp[-4].minor.yy162.pExpr ) yymsp[-4].minor.yy162.pExpr->flags |= EP_InfixFunc;
> }
> -#line 3191 "parse.c"
> +#line 3183 "parse.c"
>         break;
>       case 171: /* expr ::= expr ISNULL|NOTNULL */
> -#line 1027 "parse.y"
> +#line 1034 "parse.y"
> {spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy162,&yymsp[0].minor.yy0);}
> -#line 3196 "parse.c"
> +#line 3188 "parse.c"
>         break;
>       case 172: /* expr ::= expr NOT NULL */
> -#line 1028 "parse.y"
> +#line 1035 "parse.y"
> {spanUnaryPostfix(pParse,TK_NOTNULL,&yymsp[-2].minor.yy162,&yymsp[0].minor.yy0);}
> -#line 3201 "parse.c"
> +#line 3193 "parse.c"
>         break;
>       case 173: /* expr ::= expr IS expr */
> -#line 1049 "parse.y"
> +#line 1056 "parse.y"
> {
>   spanBinaryExpr(pParse,TK_IS,&yymsp[-2].minor.yy162,&yymsp[0].minor.yy162);
>   binaryToUnaryIfNull(pParse, yymsp[0].minor.yy162.pExpr, yymsp[-2].minor.yy162.pExpr, TK_ISNULL);
> }
> -#line 3209 "parse.c"
> +#line 3201 "parse.c"
>         break;
>       case 174: /* expr ::= expr IS NOT expr */
> -#line 1053 "parse.y"
> +#line 1060 "parse.y"
> {
>   spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy162,&yymsp[0].minor.yy162);
>   binaryToUnaryIfNull(pParse, yymsp[0].minor.yy162.pExpr, yymsp[-3].minor.yy162.pExpr, TK_NOTNULL);
> }
> -#line 3217 "parse.c"
> +#line 3209 "parse.c"
>         break;
>       case 175: /* expr ::= NOT expr */
>       case 176: /* expr ::= BITNOT expr */ yytestcase(yyruleno==176);
> -#line 1077 "parse.y"
> +#line 1084 "parse.y"
> {spanUnaryPrefix(&yymsp[-1].minor.yy162,pParse,yymsp[-1].major,&yymsp[0].minor.yy162,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
> -#line 3223 "parse.c"
> +#line 3215 "parse.c"
>         break;
>       case 177: /* expr ::= MINUS expr */
> -#line 1081 "parse.y"
> +#line 1088 "parse.y"
> {spanUnaryPrefix(&yymsp[-1].minor.yy162,pParse,TK_UMINUS,&yymsp[0].minor.yy162,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
> -#line 3228 "parse.c"
> +#line 3220 "parse.c"
>         break;
>       case 178: /* expr ::= PLUS expr */
> -#line 1083 "parse.y"
> +#line 1090 "parse.y"
> {spanUnaryPrefix(&yymsp[-1].minor.yy162,pParse,TK_UPLUS,&yymsp[0].minor.yy162,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
> -#line 3233 "parse.c"
> +#line 3225 "parse.c"
>         break;
>       case 179: /* between_op ::= BETWEEN */
>       case 182: /* in_op ::= IN */ yytestcase(yyruleno==182);
> -#line 1086 "parse.y"
> +#line 1093 "parse.y"
> {yymsp[0].minor.yy52 = 0;}
> -#line 3239 "parse.c"
> +#line 3231 "parse.c"
>         break;
>       case 181: /* expr ::= expr between_op expr AND expr */
> -#line 1088 "parse.y"
> +#line 1095 "parse.y"
> {
>   ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy162.pExpr);
>   pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy162.pExpr);
> @@ -3251,10 +3243,10 @@ static void yy_reduce(
>   exprNot(pParse, yymsp[-3].minor.yy52, &yymsp[-4].minor.yy162);
>   yymsp[-4].minor.yy162.zEnd = yymsp[0].minor.yy162.zEnd;
> }
> -#line 3255 "parse.c"
> +#line 3247 "parse.c"
>         break;
>       case 184: /* expr ::= expr in_op LP exprlist RP */
> -#line 1104 "parse.y"
> +#line 1111 "parse.y"
> {
>     if( yymsp[-1].minor.yy382==0 ){
>       /* Expressions of the form
> @@ -3306,29 +3298,29 @@ static void yy_reduce(
>     }
>     yymsp[-4].minor.yy162.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
>   }
> -#line 3310 "parse.c"
> +#line 3302 "parse.c"
>         break;
>       case 185: /* expr ::= LP select RP */
> -#line 1155 "parse.y"
> +#line 1162 "parse.y"
> {
>     spanSet(&yymsp[-2].minor.yy162,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
>     yymsp[-2].minor.yy162.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
>     sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy162.pExpr, yymsp[-1].minor.yy279);
>   }
> -#line 3319 "parse.c"
> +#line 3311 "parse.c"
>         break;
>       case 186: /* expr ::= expr in_op LP select RP */
> -#line 1160 "parse.y"
> +#line 1167 "parse.y"
> {
>     yymsp[-4].minor.yy162.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy162.pExpr, 0);
>     sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy162.pExpr, yymsp[-1].minor.yy279);
>     exprNot(pParse, yymsp[-3].minor.yy52, &yymsp[-4].minor.yy162);
>     yymsp[-4].minor.yy162.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
>   }
> -#line 3329 "parse.c"
> +#line 3321 "parse.c"
>         break;
>       case 187: /* expr ::= expr in_op nm paren_exprlist */
> -#line 1166 "parse.y"
> +#line 1173 "parse.y"
> {
>     SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0);
>     Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
> @@ -3338,20 +3330,20 @@ static void yy_reduce(
>     exprNot(pParse, yymsp[-2].minor.yy52, &yymsp[-3].minor.yy162);
>     yymsp[-3].minor.yy162.zEnd = &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n];
>   }
> -#line 3342 "parse.c"
> +#line 3334 "parse.c"
>         break;
>       case 188: /* expr ::= EXISTS LP select RP */
> -#line 1175 "parse.y"
> +#line 1182 "parse.y"
> {
>     Expr *p;
>     spanSet(&yymsp[-3].minor.yy162,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
>     p = yymsp[-3].minor.yy162.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
>     sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy279);
>   }
> -#line 3352 "parse.c"
> +#line 3344 "parse.c"
>         break;
>       case 189: /* expr ::= CASE case_operand case_exprlist case_else END */
> -#line 1184 "parse.y"
> +#line 1191 "parse.y"
> {
>   spanSet(&yymsp[-4].minor.yy162,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);  /*A-overwrites-C*/
>   yymsp[-4].minor.yy162.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy362, 0);
> @@ -3363,261 +3355,261 @@ static void yy_reduce(
>     sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy362);
>   }
> }
> -#line 3367 "parse.c"
> +#line 3359 "parse.c"
>         break;
>       case 190: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
> -#line 1197 "parse.y"
> +#line 1204 "parse.y"
> {
>   yymsp[-4].minor.yy382 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy382, yymsp[-2].minor.yy162.pExpr);
>   yymsp[-4].minor.yy382 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy382, yymsp[0].minor.yy162.pExpr);
> }
> -#line 3375 "parse.c"
> +#line 3367 "parse.c"
>         break;
>       case 191: /* case_exprlist ::= WHEN expr THEN expr */
> -#line 1201 "parse.y"
> +#line 1208 "parse.y"
> {
>   yymsp[-3].minor.yy382 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy162.pExpr);
>   yymsp[-3].minor.yy382 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy382, yymsp[0].minor.yy162.pExpr);
> }
> -#line 3383 "parse.c"
> +#line 3375 "parse.c"
>         break;
>       case 194: /* case_operand ::= expr */
> -#line 1211 "parse.y"
> +#line 1218 "parse.y"
> {yymsp[0].minor.yy362 = yymsp[0].minor.yy162.pExpr; /*A-overwrites-X*/}
> -#line 3388 "parse.c"
> +#line 3380 "parse.c"
>         break;
>       case 197: /* nexprlist ::= nexprlist COMMA expr */
> -#line 1222 "parse.y"
> +#line 1229 "parse.y"
> {yymsp[-2].minor.yy382 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy382,yymsp[0].minor.yy162.pExpr);}
> -#line 3393 "parse.c"
> +#line 3385 "parse.c"
>         break;
>       case 198: /* nexprlist ::= expr */
> -#line 1224 "parse.y"
> +#line 1231 "parse.y"
> {yymsp[0].minor.yy382 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy162.pExpr); /*A-overwrites-Y*/}
> -#line 3398 "parse.c"
> +#line 3390 "parse.c"
>         break;
>       case 200: /* paren_exprlist ::= LP exprlist RP */
>       case 205: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==205);
> -#line 1232 "parse.y"
> +#line 1239 "parse.y"
> {yymsp[-2].minor.yy382 = yymsp[-1].minor.yy382;}
> -#line 3404 "parse.c"
> +#line 3396 "parse.c"
>         break;
>       case 201: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm ON nm LP sortlist RP where_opt */
> -#line 1239 "parse.y"
> +#line 1246 "parse.y"
> {
>   sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, 
>                      sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0), yymsp[-2].minor.yy382, yymsp[-9].minor.yy52,
>                       &yymsp[-10].minor.yy0, yymsp[0].minor.yy362, SQLITE_SO_ASC, yymsp[-7].minor.yy52, SQLITE_IDXTYPE_APPDEF);
> }
> -#line 3413 "parse.c"
> +#line 3405 "parse.c"
>         break;
>       case 202: /* uniqueflag ::= UNIQUE */
>       case 243: /* raisetype ::= ABORT */ yytestcase(yyruleno==243);
> -#line 1246 "parse.y"
> +#line 1253 "parse.y"
> {yymsp[0].minor.yy52 = ON_CONFLICT_ACTION_ABORT;}
> -#line 3419 "parse.c"
> +#line 3411 "parse.c"
>         break;
>       case 203: /* uniqueflag ::= */
> -#line 1247 "parse.y"
> +#line 1254 "parse.y"
> {yymsp[1].minor.yy52 = ON_CONFLICT_ACTION_NONE;}
> -#line 3424 "parse.c"
> +#line 3416 "parse.c"
>         break;
>       case 206: /* eidlist ::= eidlist COMMA nm collate sortorder */
> -#line 1290 "parse.y"
> +#line 1297 "parse.y"
> {
>   yymsp[-4].minor.yy382 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy382, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy52, yymsp[0].minor.yy52);
> }
> -#line 3431 "parse.c"
> +#line 3423 "parse.c"
>         break;
>       case 207: /* eidlist ::= nm collate sortorder */
> -#line 1293 "parse.y"
> +#line 1300 "parse.y"
> {
>   yymsp[-2].minor.yy382 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy52, yymsp[0].minor.yy52); /*A-overwrites-Y*/
> }
> -#line 3438 "parse.c"
> +#line 3430 "parse.c"
>         break;
>       case 210: /* cmd ::= DROP INDEX ifexists fullname ON nm */
> -#line 1304 "parse.y"
> +#line 1311 "parse.y"
> {
>     sqlite3DropIndex(pParse, yymsp[-2].minor.yy387, &yymsp[0].minor.yy0, yymsp[-3].minor.yy52);
> }
> -#line 3445 "parse.c"
> +#line 3437 "parse.c"
>         break;
>       case 211: /* cmd ::= PRAGMA nm */
> -#line 1311 "parse.y"
> +#line 1318 "parse.y"
> {
>     sqlite3Pragma(pParse,&yymsp[0].minor.yy0,0,0,0,0);
> }
> -#line 3452 "parse.c"
> +#line 3444 "parse.c"
>         break;
>       case 212: /* cmd ::= PRAGMA nm EQ nmnum */
> -#line 1314 "parse.y"
> +#line 1321 "parse.y"
> {
>     sqlite3Pragma(pParse,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy0,0,0);
> }
> -#line 3459 "parse.c"
> +#line 3451 "parse.c"
>         break;
>       case 213: /* cmd ::= PRAGMA nm LP nmnum RP */
> -#line 1317 "parse.y"
> +#line 1324 "parse.y"
> {
>     sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,0,&yymsp[-1].minor.yy0,0,0);
> }
> -#line 3466 "parse.c"
> +#line 3458 "parse.c"
>         break;
>       case 214: /* cmd ::= PRAGMA nm EQ minus_num */
> -#line 1320 "parse.y"
> +#line 1327 "parse.y"
> {
>     sqlite3Pragma(pParse,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy0,0,1);
> }
> -#line 3473 "parse.c"
> +#line 3465 "parse.c"
>         break;
>       case 215: /* cmd ::= PRAGMA nm LP minus_num RP */
> -#line 1323 "parse.y"
> +#line 1330 "parse.y"
> {
>     sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,0,&yymsp[-1].minor.yy0,0,1);
> }
> -#line 3480 "parse.c"
> +#line 3472 "parse.c"
>         break;
>       case 216: /* cmd ::= PRAGMA nm EQ nm DOT nm */
> -#line 1326 "parse.y"
> +#line 1333 "parse.y"
> {
>     sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,0,&yymsp[0].minor.yy0,&yymsp[-2].minor.yy0,0);
> }
> -#line 3487 "parse.c"
> +#line 3479 "parse.c"
>         break;
>       case 217: /* cmd ::= PRAGMA */
> -#line 1329 "parse.y"
> +#line 1336 "parse.y"
> {
>     sqlite3Pragma(pParse, 0,0,0,0,0);
> }
> -#line 3494 "parse.c"
> +#line 3486 "parse.c"
>         break;
>       case 220: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
> -#line 1349 "parse.y"
> +#line 1356 "parse.y"
> {
>   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.yy427, &all);
> }
> -#line 3504 "parse.c"
> +#line 3496 "parse.c"
>         break;
>       case 221: /* trigger_decl ::= TRIGGER ifnotexists nm trigger_time trigger_event ON fullname foreach_clause when_clause */
> -#line 1358 "parse.y"
> +#line 1365 "parse.y"
> {
>   sqlite3BeginTrigger(pParse, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy52, yymsp[-4].minor.yy10.a, yymsp[-4].minor.yy10.b, yymsp[-2].minor.yy387, yymsp[0].minor.yy362, yymsp[-7].minor.yy52);
>   yymsp[-8].minor.yy0 = yymsp[-6].minor.yy0; /*yymsp[-8].minor.yy0-overwrites-T*/
> }
> -#line 3512 "parse.c"
> +#line 3504 "parse.c"
>         break;
>       case 222: /* trigger_time ::= BEFORE */
> -#line 1364 "parse.y"
> +#line 1371 "parse.y"
> { yymsp[0].minor.yy52 = TK_BEFORE; }
> -#line 3517 "parse.c"
> +#line 3509 "parse.c"
>         break;
>       case 223: /* trigger_time ::= AFTER */
> -#line 1365 "parse.y"
> +#line 1372 "parse.y"
> { yymsp[0].minor.yy52 = TK_AFTER;  }
> -#line 3522 "parse.c"
> +#line 3514 "parse.c"
>         break;
>       case 224: /* trigger_time ::= INSTEAD OF */
> -#line 1366 "parse.y"
> +#line 1373 "parse.y"
> { yymsp[-1].minor.yy52 = TK_INSTEAD;}
> -#line 3527 "parse.c"
> +#line 3519 "parse.c"
>         break;
>       case 225: /* trigger_time ::= */
> -#line 1367 "parse.y"
> +#line 1374 "parse.y"
> { yymsp[1].minor.yy52 = TK_BEFORE; }
> -#line 3532 "parse.c"
> +#line 3524 "parse.c"
>         break;
>       case 226: /* trigger_event ::= DELETE|INSERT */
>       case 227: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==227);
> -#line 1371 "parse.y"
> +#line 1378 "parse.y"
> {yymsp[0].minor.yy10.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy10.b = 0;}
> -#line 3538 "parse.c"
> +#line 3530 "parse.c"
>         break;
>       case 228: /* trigger_event ::= UPDATE OF idlist */
> -#line 1373 "parse.y"
> +#line 1380 "parse.y"
> {yymsp[-2].minor.yy10.a = TK_UPDATE; yymsp[-2].minor.yy10.b = yymsp[0].minor.yy40;}
> -#line 3543 "parse.c"
> +#line 3535 "parse.c"
>         break;
>       case 229: /* when_clause ::= */
> -#line 1380 "parse.y"
> +#line 1387 "parse.y"
> { yymsp[1].minor.yy362 = 0; }
> -#line 3548 "parse.c"
> +#line 3540 "parse.c"
>         break;
>       case 230: /* when_clause ::= WHEN expr */
> -#line 1381 "parse.y"
> +#line 1388 "parse.y"
> { yymsp[-1].minor.yy362 = yymsp[0].minor.yy162.pExpr; }
> -#line 3553 "parse.c"
> +#line 3545 "parse.c"
>         break;
>       case 231: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
> -#line 1385 "parse.y"
> +#line 1392 "parse.y"
> {
>   assert( yymsp[-2].minor.yy427!=0 );
>   yymsp[-2].minor.yy427->pLast->pNext = yymsp[-1].minor.yy427;
>   yymsp[-2].minor.yy427->pLast = yymsp[-1].minor.yy427;
> }
> -#line 3562 "parse.c"
> +#line 3554 "parse.c"
>         break;
>       case 232: /* trigger_cmd_list ::= trigger_cmd SEMI */
> -#line 1390 "parse.y"
> +#line 1397 "parse.y"
> { 
>   assert( yymsp[-1].minor.yy427!=0 );
>   yymsp[-1].minor.yy427->pLast = yymsp[-1].minor.yy427;
> }
> -#line 3570 "parse.c"
> +#line 3562 "parse.c"
>         break;
>       case 233: /* trnm ::= nm DOT nm */
> -#line 1401 "parse.y"
> +#line 1408 "parse.y"
> {
>   yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
>   sqlite3ErrorMsg(pParse, 
>         "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
>         "statements within triggers");
> }
> -#line 3580 "parse.c"
> +#line 3572 "parse.c"
>         break;
>       case 234: /* tridxby ::= INDEXED BY nm */
> -#line 1413 "parse.y"
> +#line 1420 "parse.y"
> {
>   sqlite3ErrorMsg(pParse,
>         "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
>         "within triggers");
> }
> -#line 3589 "parse.c"
> +#line 3581 "parse.c"
>         break;
>       case 235: /* tridxby ::= NOT INDEXED */
> -#line 1418 "parse.y"
> +#line 1425 "parse.y"
> {
>   sqlite3ErrorMsg(pParse,
>         "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
>         "within triggers");
> }
> -#line 3598 "parse.c"
> +#line 3590 "parse.c"
>         break;
>       case 236: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
> -#line 1431 "parse.y"
> +#line 1438 "parse.y"
> {yymsp[-6].minor.yy427 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy382, yymsp[0].minor.yy362, yymsp[-5].minor.yy52);}
> -#line 3603 "parse.c"
> +#line 3595 "parse.c"
>         break;
>       case 237: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
> -#line 1435 "parse.y"
> +#line 1442 "parse.y"
> {yymsp[-4].minor.yy427 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy40, yymsp[0].minor.yy279, yymsp[-4].minor.yy52);/*A-overwrites-R*/}
> -#line 3608 "parse.c"
> +#line 3600 "parse.c"
>         break;
>       case 238: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
> -#line 1439 "parse.y"
> +#line 1446 "parse.y"
> {yymsp[-4].minor.yy427 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy362);}
> -#line 3613 "parse.c"
> +#line 3605 "parse.c"
>         break;
>       case 239: /* trigger_cmd ::= select */
> -#line 1443 "parse.y"
> +#line 1450 "parse.y"
> {yymsp[0].minor.yy427 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy279); /*A-overwrites-X*/}
> -#line 3618 "parse.c"
> +#line 3610 "parse.c"
>         break;
>       case 240: /* expr ::= RAISE LP IGNORE RP */
> -#line 1446 "parse.y"
> +#line 1453 "parse.y"
> {
>   spanSet(&yymsp[-3].minor.yy162,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);  /*A-overwrites-X*/
>   yymsp[-3].minor.yy162.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0); 
> @@ -3625,10 +3617,10 @@ static void yy_reduce(
>     yymsp[-3].minor.yy162.pExpr->affinity = ON_CONFLICT_ACTION_IGNORE;
>   }
> }
> -#line 3629 "parse.c"
> +#line 3621 "parse.c"
>         break;
>       case 241: /* expr ::= RAISE LP raisetype COMMA STRING RP */
> -#line 1453 "parse.y"
> +#line 1460 "parse.y"
> {
>   spanSet(&yymsp[-5].minor.yy162,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);  /*A-overwrites-X*/
>   yymsp[-5].minor.yy162.pExpr = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); 
> @@ -3636,130 +3628,115 @@ static void yy_reduce(
>     yymsp[-5].minor.yy162.pExpr->affinity = (char)yymsp[-3].minor.yy52;
>   }
> }
> -#line 3640 "parse.c"
> +#line 3632 "parse.c"
>         break;
>       case 242: /* raisetype ::= ROLLBACK */
> -#line 1463 "parse.y"
> +#line 1470 "parse.y"
> {yymsp[0].minor.yy52 = ON_CONFLICT_ACTION_ROLLBACK;}
> -#line 3645 "parse.c"
> +#line 3637 "parse.c"
>         break;
>       case 244: /* raisetype ::= FAIL */
> -#line 1465 "parse.y"
> +#line 1472 "parse.y"
> {yymsp[0].minor.yy52 = ON_CONFLICT_ACTION_FAIL;}
> -#line 3650 "parse.c"
> +#line 3642 "parse.c"
>         break;
>       case 245: /* cmd ::= DROP TRIGGER ifexists fullname */
> -#line 1470 "parse.y"
> +#line 1477 "parse.y"
> {
>   sqlite3DropTrigger(pParse,yymsp[0].minor.yy387,yymsp[-1].minor.yy52);
> }
> -#line 3657 "parse.c"
> +#line 3649 "parse.c"
>         break;
> -      case 246: /* cmd ::= REINDEX */
> -#line 1477 "parse.y"
> -{sqlite3Reindex(pParse, 0, 0);}
> -#line 3662 "parse.c"
> -        break;
> -      case 247: /* cmd ::= REINDEX nm */
> -#line 1478 "parse.y"
> -{sqlite3Reindex(pParse, &yymsp[0].minor.yy0, 0);}
> -#line 3667 "parse.c"
> -        break;
> -      case 248: /* cmd ::= REINDEX nm ON nm */
> -#line 1479 "parse.y"
> -{sqlite3Reindex(pParse, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);}
> -#line 3672 "parse.c"
> -        break;
> -      case 249: /* cmd ::= ANALYZE */
> -#line 1484 "parse.y"
> +      case 246: /* cmd ::= ANALYZE */
> +#line 1492 "parse.y"
> {sqlite3Analyze(pParse, 0);}
> -#line 3677 "parse.c"
> +#line 3654 "parse.c"
>         break;
> -      case 250: /* cmd ::= ANALYZE nm */
> -#line 1485 "parse.y"
> +      case 247: /* cmd ::= ANALYZE nm */
> +#line 1493 "parse.y"
> {sqlite3Analyze(pParse, &yymsp[0].minor.yy0);}
> -#line 3682 "parse.c"
> +#line 3659 "parse.c"
>         break;
> -      case 251: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
> -#line 1490 "parse.y"
> +      case 248: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
> +#line 1498 "parse.y"
> {
>   sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy387,&yymsp[0].minor.yy0);
> }
> -#line 3689 "parse.c"
> +#line 3666 "parse.c"
>         break;
> -      case 252: /* with ::= */
> -#line 1513 "parse.y"
> +      case 249: /* with ::= */
> +#line 1521 "parse.y"
> {yymsp[1].minor.yy151 = 0;}
> -#line 3694 "parse.c"
> +#line 3671 "parse.c"
>         break;
> -      case 253: /* with ::= WITH wqlist */
> -#line 1515 "parse.y"
> +      case 250: /* with ::= WITH wqlist */
> +#line 1523 "parse.y"
> { yymsp[-1].minor.yy151 = yymsp[0].minor.yy151; }
> -#line 3699 "parse.c"
> +#line 3676 "parse.c"
>         break;
> -      case 254: /* with ::= WITH RECURSIVE wqlist */
> -#line 1516 "parse.y"
> +      case 251: /* with ::= WITH RECURSIVE wqlist */
> +#line 1524 "parse.y"
> { yymsp[-2].minor.yy151 = yymsp[0].minor.yy151; }
> -#line 3704 "parse.c"
> +#line 3681 "parse.c"
>         break;
> -      case 255: /* wqlist ::= nm eidlist_opt AS LP select RP */
> -#line 1518 "parse.y"
> +      case 252: /* wqlist ::= nm eidlist_opt AS LP select RP */
> +#line 1526 "parse.y"
> {
>   yymsp[-5].minor.yy151 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy382, yymsp[-1].minor.yy279); /*A-overwrites-X*/
> }
> -#line 3711 "parse.c"
> +#line 3688 "parse.c"
>         break;
> -      case 256: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
> -#line 1521 "parse.y"
> +      case 253: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
> +#line 1529 "parse.y"
> {
>   yymsp[-7].minor.yy151 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy151, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy382, yymsp[-1].minor.yy279);
> }
> -#line 3718 "parse.c"
> +#line 3695 "parse.c"
>         break;
>       default:
> -      /* (257) input ::= ecmd */ yytestcase(yyruleno==257);
> -      /* (258) explain ::= */ yytestcase(yyruleno==258);
> -      /* (259) cmdx ::= cmd (OPTIMIZED OUT) */ assert(yyruleno!=259);
> -      /* (260) trans_opt ::= */ yytestcase(yyruleno==260);
> -      /* (261) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==261);
> -      /* (262) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==262);
> -      /* (263) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==263);
> -      /* (264) savepoint_opt ::= */ yytestcase(yyruleno==264);
> -      /* (265) cmd ::= create_table create_table_args */ yytestcase(yyruleno==265);
> -      /* (266) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==266);
> -      /* (267) columnlist ::= columnname carglist */ yytestcase(yyruleno==267);
> -      /* (268) typetoken ::= typename */ yytestcase(yyruleno==268);
> -      /* (269) typename ::= ID|STRING */ yytestcase(yyruleno==269);
> -      /* (270) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=270);
> -      /* (271) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=271);
> -      /* (272) carglist ::= carglist ccons */ yytestcase(yyruleno==272);
> -      /* (273) carglist ::= */ yytestcase(yyruleno==273);
> -      /* (274) ccons ::= NULL onconf */ yytestcase(yyruleno==274);
> -      /* (275) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==275);
> -      /* (276) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==276);
> -      /* (277) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=277);
> -      /* (278) tconscomma ::= */ yytestcase(yyruleno==278);
> -      /* (279) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=279);
> -      /* (280) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=280);
> -      /* (281) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=281);
> -      /* (282) oneselect ::= values */ yytestcase(yyruleno==282);
> -      /* (283) sclp ::= selcollist COMMA */ yytestcase(yyruleno==283);
> -      /* (284) as ::= ID|STRING */ yytestcase(yyruleno==284);
> -      /* (285) join_nm ::= ID|INDEXED */ yytestcase(yyruleno==285);
> -      /* (286) join_nm ::= JOIN_KW */ yytestcase(yyruleno==286);
> -      /* (287) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=287);
> -      /* (288) exprlist ::= nexprlist */ yytestcase(yyruleno==288);
> -      /* (289) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=289);
> -      /* (290) nmnum ::= STRING */ yytestcase(yyruleno==290);
> -      /* (291) nmnum ::= nm */ yytestcase(yyruleno==291);
> -      /* (292) nmnum ::= ON */ yytestcase(yyruleno==292);
> -      /* (293) nmnum ::= DELETE */ yytestcase(yyruleno==293);
> -      /* (294) nmnum ::= DEFAULT */ yytestcase(yyruleno==294);
> -      /* (295) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==295);
> -      /* (296) foreach_clause ::= */ yytestcase(yyruleno==296);
> -      /* (297) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==297);
> -      /* (298) trnm ::= nm */ yytestcase(yyruleno==298);
> -      /* (299) tridxby ::= */ yytestcase(yyruleno==299);
> +      /* (254) input ::= ecmd */ yytestcase(yyruleno==254);
> +      /* (255) explain ::= */ yytestcase(yyruleno==255);
> +      /* (256) cmdx ::= cmd (OPTIMIZED OUT) */ assert(yyruleno!=256);
> +      /* (257) trans_opt ::= */ yytestcase(yyruleno==257);
> +      /* (258) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==258);
> +      /* (259) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==259);
> +      /* (260) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==260);
> +      /* (261) savepoint_opt ::= */ yytestcase(yyruleno==261);
> +      /* (262) cmd ::= create_table create_table_args */ yytestcase(yyruleno==262);
> +      /* (263) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==263);
> +      /* (264) columnlist ::= columnname carglist */ yytestcase(yyruleno==264);
> +      /* (265) typetoken ::= typename */ yytestcase(yyruleno==265);
> +      /* (266) typename ::= ID|STRING */ yytestcase(yyruleno==266);
> +      /* (267) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=267);
> +      /* (268) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=268);
> +      /* (269) carglist ::= carglist ccons */ yytestcase(yyruleno==269);
> +      /* (270) carglist ::= */ yytestcase(yyruleno==270);
> +      /* (271) ccons ::= NULL onconf */ yytestcase(yyruleno==271);
> +      /* (272) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==272);
> +      /* (273) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==273);
> +      /* (274) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=274);
> +      /* (275) tconscomma ::= */ yytestcase(yyruleno==275);
> +      /* (276) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=276);
> +      /* (277) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=277);
> +      /* (278) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=278);
> +      /* (279) oneselect ::= values */ yytestcase(yyruleno==279);
> +      /* (280) sclp ::= selcollist COMMA */ yytestcase(yyruleno==280);
> +      /* (281) as ::= ID|STRING */ yytestcase(yyruleno==281);
> +      /* (282) join_nm ::= ID|INDEXED */ yytestcase(yyruleno==282);
> +      /* (283) join_nm ::= JOIN_KW */ yytestcase(yyruleno==283);
> +      /* (284) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=284);
> +      /* (285) exprlist ::= nexprlist */ yytestcase(yyruleno==285);
> +      /* (286) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=286);
> +      /* (287) nmnum ::= STRING */ yytestcase(yyruleno==287);
> +      /* (288) nmnum ::= nm */ yytestcase(yyruleno==288);
> +      /* (289) nmnum ::= ON */ yytestcase(yyruleno==289);
> +      /* (290) nmnum ::= DELETE */ yytestcase(yyruleno==290);
> +      /* (291) nmnum ::= DEFAULT */ yytestcase(yyruleno==291);
> +      /* (292) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==292);
> +      /* (293) foreach_clause ::= */ yytestcase(yyruleno==293);
> +      /* (294) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==294);
> +      /* (295) trnm ::= nm */ yytestcase(yyruleno==295);
> +      /* (296) tridxby ::= */ yytestcase(yyruleno==296);
>         break;
> /********** End reduce actions ************************************************/
>   };
> @@ -3825,7 +3802,7 @@ static void yy_syntax_error(
>   } else {
>     sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN);
>   }
> -#line 3829 "parse.c"
> +#line 3806 "parse.c"
> /************ End %syntax_error code ******************************************/
>   sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
> }
> diff --git a/src/box/sql/parse.y b/src/box/sql/parse.y
> index 914fc53..376be47 100644
> --- a/src/box/sql/parse.y
> +++ b/src/box/sql/parse.y
> @@ -202,6 +202,13 @@ columnname(A) ::= nm(A) typetoken(Y). {sqlite3AddColumn(pParse,&A,&Y);}
> // fallback to ID if they will not parse as their original value.
> // This obviates the need for the "id" nonterminal.
> //
> +// A keyword is checked for being a reserve one in `nm`, before
> +// processing of this %fallback directive. Reserved keywords included
> +// here to avoid the situation when a keyword has no usages within
> +// `parse.y` file (a keyword can have more or less usages depending on
> +// compiler defines). When a keyword has no usages it is excluded
> +// from autogenerated file `parse.h` that lead to compile-time error.
> +//
> %fallback ID
>   ABORT ACTION ADD AFTER AUTOINCREMENT BEFORE CASCADE
>   CONFLICT DEFERRED END FAIL
> @@ -1473,11 +1480,12 @@ cmd ::= DROP TRIGGER ifexists(NOERR) fullname(X). {
> %endif  !SQLITE_OMIT_TRIGGER
> 
> ////////////////////////// REINDEX collation //////////////////////////////////
> -%ifndef SQLITE_OMIT_REINDEX
> -cmd ::= REINDEX.                {sqlite3Reindex(pParse, 0, 0);}
> -cmd ::= REINDEX nm(X).          {sqlite3Reindex(pParse, &X, 0);}
> -cmd ::= REINDEX nm(X) ON nm(Y). {sqlite3Reindex(pParse, &X, &Y);}
> -%endif  SQLITE_OMIT_REINDEX
> +/* gh-2174: Commended until REINDEX is implemented in scope of gh-3195 */

Typo: ‘commend' has different meaning from ‘comment’.

> +/* %ifndef SQLITE_OMIT_REINDEX */
> +/* cmd ::= REINDEX.                {sqlite3Reindex(pParse, 0, 0);} */
> +/* cmd ::= REINDEX nm(X).          {sqlite3Reindex(pParse, &X, 0);} */
> +/* cmd ::= REINDEX nm(X) ON nm(Y). {sqlite3Reindex(pParse, &X, &Y);} */
> +/* %endif  SQLITE_OMIT_REINDEX */
> 
> /////////////////////////////////// ANALYZE ///////////////////////////////////
> %ifndef SQLITE_OMIT_ANALYZE
> diff --git a/test/sql-tap/gh-2174-ban-reindex-syntax.test.lua b/test/sql-tap/gh-2174-ban-reindex-syntax.test.lua
> new file mode 100755
> index 0000000..baa67b4
> --- /dev/null
> +++ b/test/sql-tap/gh-2174-ban-reindex-syntax.test.lua
> @@ -0,0 +1,29 @@
> +#!/usr/bin/env tarantool
> +
> +-- this test will be deleted in scope of #3195
> +test = require("sqltester")
> +test:plan(3)
> +
> +test:execsql("DROP TABLE IF EXISTS t1");
> +test:execsql("CREATE TABLE t1(a INT PRIMARY KEY)");
> +test:execsql("CREATE INDEX i1 on t1(a)");
> +
> +test:do_catchsql_test(
> +	"1",
> +	"REINDEX i1 ON t1",
> +	{1, "keyword \"REINDEX\" is reserved”}

Personally I stick to the point that this error message is awful and confusing.
But as far as this is temporary ‘fix’, let it be.

> +)
> +
> +test:do_catchsql_test(
> +	"2",
> +	"REINDEX t1",
> +	 {1, "keyword \"REINDEX\" is reserved"}
> +)
> +
> +test:do_catchsql_test(
> +	"3",
> +	"REINDEX",
> +	{1, "keyword \"REINDEX\" is reserved"}
> +)
> +
> +test:finish_test()
> diff --git a/test/sql-tap/gh2130-index-refer-table.test.lua b/test/sql-tap/gh2130-index-refer-table.test.lua
> index 3df37a3..3a6064c 100755
> --- a/test/sql-tap/gh2130-index-refer-table.test.lua
> +++ b/test/sql-tap/gh2130-index-refer-table.test.lua
> @@ -1,6 +1,6 @@
> #!/usr/bin/env tarantool
> test = require("sqltester")
> -test:plan(6)
> +test:plan(5)
> 
> test:execsql " DROP TABLE IF EXISTS t1 "
> test:execsql " DROP TABLE IF EXISTS t2 "
> @@ -69,15 +69,16 @@ test:do_execsql_test(
> 	-- <index-1.5>
> 	})
> 
> -test:do_execsql_test(
> -	"index-1.6",
> -	[[
> -		REINDEX t1ix1 ON t1;
> -	]],
> -	{
> -	-- <index-1.6>
> -
> -	-- <index-1.6>
> -	})
> +-- This part of test is banned in scope of #2174
> +-- test:do_execsql_test(
> +--	"index-1.6",
> +--	[[
> +--		REINDEX t1ix1 ON t1;
> +--	]],
> +--	{
> +--	-- <index-1.6>
> +--
> +--	-- <index-1.6>
> +--	})
> 
> test:finish_test()
> diff --git a/test/sql-tap/misc3.test.lua b/test/sql-tap/misc3.test.lua
> index 517c1f5..7029e56 100755
> --- a/test/sql-tap/misc3.test.lua
> +++ b/test/sql-tap/misc3.test.lua
> @@ -1,7 +1,7 @@
> #!/usr/bin/env tarantool
> test = require("sqltester")
> local json = require("json")
> -test:plan(36)
> +test:plan(34)
> 
> --!./tcltestrunner.lua
> -- 2003 December 17
> @@ -444,41 +444,42 @@ test:do_test(
>     })
> 
> -- Do some additional EXPLAIN operations to exercise the displayP4 logic.
> -test:do_test(
> -    "misc3-6.10",
> -    function()
> -        local x = test:execsql([[
> -            CREATE TABLE ex1(
> -              id PRIMARY KEY,
> -              a INTEGER DEFAULT 54321,
> -              b TEXT DEFAULT "hello",
> -              c REAL DEFAULT 3.1415926
> -            );
> -            CREATE UNIQUE INDEX ex1i1 ON ex1(a);
> -            EXPLAIN REINDEX;
> -        ]])
> -        x = json.encode(x)
> -        return string.find(x, "\"SorterCompare\",%d+,%d+,%d+") > 0
> -    end, true)
> -
> -test:do_test(
> -    "misc3-6.11-utf8",
> -    function()
> -        local x = test:execsql([[
> -            EXPLAIN SELECT a+123456789012, b*4.5678, c FROM ex1 ORDER BY +a, b DESC
> -        ]])
> -        x = json.encode(x)
> -        local y = {}
> -        table.insert(y, string.find(x, "123456789012")>0)
> -        table.insert(y, string.find(x, "4.5678")>0)
> -        table.insert(y, string.find(x, "hello")>0)
> -        table.insert(y, string.find(x, "-B")>0)
> -        return y
> -    end, {
> -        -- <misc3-6.11-utf8>
> -        1, 1, 1, 1
> -        -- </misc3-6.11-utf8>
> -    })
> +-- This part of test is disabled in scope of #2174
> +-- test:do_test(
> +--    "misc3-6.10",
> +--    function()
> +--        local x = test:execsql([[
> +--            CREATE TABLE ex1(
> +--              id PRIMARY KEY,
> +--              a INTEGER DEFAULT 54321,
> +--              b TEXT DEFAULT "hello",
> +--              c REAL DEFAULT 3.1415926
> +--            );
> +--            CREATE UNIQUE INDEX ex1i1 ON ex1(a);
> +--            EXPLAIN REINDEX;
> +--        ]])
> +--        x = json.encode(x)
> +--        return string.find(x, "\"SorterCompare\",%d+,%d+,%d+") > 0
> +--    end, true)
> +--
> +-- test:do_test(
> +--     "misc3-6.11-utf8",
> +--     function()
> +--         local x = test:execsql([[
> +--             EXPLAIN SELECT a+123456789012, b*4.5678, c FROM ex1 ORDER BY +a, b DESC
> +--         ]])
> +--         x = json.encode(x)
> +--         local y = {}
> +--         table.insert(y, string.find(x, "123456789012")>0)
> +--         table.insert(y, string.find(x, "4.5678")>0)
> +--         table.insert(y, string.find(x, "hello")>0)
> +--         table.insert(y, string.find(x, "-B")>0)
> +--         return y
> +--     end, {
> +--         -- <misc3-6.11-utf8>
> +--         1, 1, 1, 1
> +--         -- </misc3-6.11-utf8>
> +--     })
> 
> 
> 
> diff --git a/test/sql-tap/suite.ini b/test/sql-tap/suite.ini
> index 0bc9e83..e259be2 100644
> --- a/test/sql-tap/suite.ini
> +++ b/test/sql-tap/suite.ini
> @@ -1,5 +1,7 @@
> [default]
> core = app
> description = Database tests with #! using TAP
> +disabled =
> +	reindex.test.lua ; This test is banned in scope of #2174
> lua_libs = lua/sqltester.lua ../sql/lua/sql_tokenizer.lua ../box/lua/identifier.lua
> is_parallel = True
> -- 
> 2.7.4
> 
> 
> 
> 





More information about the Tarantool-patches mailing list