From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 693B72C01A for ; Wed, 4 Apr 2018 11:42:16 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HV5QxQGg1I08 for ; Wed, 4 Apr 2018 11:42:16 -0400 (EDT) Received: from smtp36.i.mail.ru (smtp36.i.mail.ru [94.100.177.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id E14082BFD5 for ; Wed, 4 Apr 2018 11:42:14 -0400 (EDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: [tarantool-patches] Re: [PATCH v2] sql: ban of REINDEX syntax From: "n.pettik" In-Reply-To: <1522845032-25749-1-git-send-email-vanyail@yandex.ru> Date: Wed, 4 Apr 2018 18:42:10 +0300 Content-Transfer-Encoding: quoted-printable Message-Id: <372ED065-AD77-48BE-A098-CFB74EF893A2@tarantool.org> References: <1522845032-25749-1-git-send-email-vanyail@yandex.ru> Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: tarantool-patches@freelists.org Cc: vanyail Hello. See only one minor remark. The rest seems OK to me. > On 4 Apr 2018, at 15:30, Ivan Ilyin wrote: >=20 > From: vanyail >=20 > This change removes REINDEX from keywords and also disables tests > which were using this syntax. >=20 > This patch affects only parser, REINDEX implementation still exists, > because it is planned to be fixed and enabled in the scope of #3195. >=20 > 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. >=20 > 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 >=20 > 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++; > } >=20 > -#line 392 "parse.y" > +#line 399 "parse.y" >=20 > /* > ** For a compound SELECT statement, make sure p->pPrior->pNext=3D=3Dp = for > @@ -104,7 +104,7 @@ static void disableLookaside(Parse *pParse){ > } > } > } > -#line 831 "parse.y" > +#line 838 "parse.y" >=20 > /* 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 =3D t.z; > pOut->zEnd =3D &t.z[t.n]; > } > -#line 939 "parse.y" > +#line 946 "parse.y" >=20 > /* 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 =3D sqlite3PExpr(pParse, TK_NOT, pSpan->pExpr, 0); > } > } > -#line 1013 "parse.y" > +#line 1020 "parse.y" >=20 > /* Construct an expression node for a unary postfix operator > */ > @@ -176,7 +176,7 @@ static void disableLookaside(Parse *pParse){ > pOperand->pExpr =3D sqlite3PExpr(pParse, op, pOperand->pExpr, 0); > pOperand->zEnd =3D &pPostOp->z[pPostOp->n]; > } =20 > -#line 1030 "parse.y" > +#line 1037 "parse.y" >=20 > /* 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 =3D 0; > } > } > -#line 1058 "parse.y" > +#line 1065 "parse.y" >=20 > /* Construct an expression node for a unary prefix operator > */ > @@ -203,7 +203,7 @@ static void disableLookaside(Parse *pParse){ > pOut->pExpr =3D sqlite3PExpr(pParse, op, pOperand->pExpr, 0); > pOut->zEnd =3D pOperand->zEnd; > } > -#line 1263 "parse.y" > +#line 1270 "parse.y" >=20 > /* 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 =3D yypParser->pParse > #define sqlite3ParserARG_STORE yypParser->pParse =3D 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 = *******************************************/ >=20 > /* 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[] =3D { > - /* 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[] =3D { > /* 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[] =3D { > - /* 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[] =3D { > /* 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[] =3D { > - /* 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[] =3D { > - /* 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 = *****************************/ >=20 > @@ -1299,60 +1297,57 @@ static const char *const yyRuleName[] =3D { > /* 243 */ "raisetype ::=3D ABORT", > /* 244 */ "raisetype ::=3D FAIL", > /* 245 */ "cmd ::=3D DROP TRIGGER ifexists fullname", > - /* 246 */ "cmd ::=3D REINDEX", > - /* 247 */ "cmd ::=3D REINDEX nm", > - /* 248 */ "cmd ::=3D REINDEX nm ON nm", > - /* 249 */ "cmd ::=3D ANALYZE", > - /* 250 */ "cmd ::=3D ANALYZE nm", > - /* 251 */ "cmd ::=3D ALTER TABLE fullname RENAME TO nm", > - /* 252 */ "with ::=3D", > - /* 253 */ "with ::=3D WITH wqlist", > - /* 254 */ "with ::=3D WITH RECURSIVE wqlist", > - /* 255 */ "wqlist ::=3D nm eidlist_opt AS LP select RP", > - /* 256 */ "wqlist ::=3D wqlist COMMA nm eidlist_opt AS LP select = RP", > - /* 257 */ "input ::=3D ecmd", > - /* 258 */ "explain ::=3D", > - /* 259 */ "cmdx ::=3D cmd", > - /* 260 */ "trans_opt ::=3D", > - /* 261 */ "trans_opt ::=3D TRANSACTION", > - /* 262 */ "trans_opt ::=3D TRANSACTION nm", > - /* 263 */ "savepoint_opt ::=3D SAVEPOINT", > - /* 264 */ "savepoint_opt ::=3D", > - /* 265 */ "cmd ::=3D create_table create_table_args", > - /* 266 */ "columnlist ::=3D columnlist COMMA columnname carglist", > - /* 267 */ "columnlist ::=3D columnname carglist", > - /* 268 */ "typetoken ::=3D typename", > - /* 269 */ "typename ::=3D ID|STRING", > - /* 270 */ "signed ::=3D plus_num", > - /* 271 */ "signed ::=3D minus_num", > - /* 272 */ "carglist ::=3D carglist ccons", > - /* 273 */ "carglist ::=3D", > - /* 274 */ "ccons ::=3D NULL onconf", > - /* 275 */ "conslist_opt ::=3D COMMA conslist", > - /* 276 */ "conslist ::=3D conslist tconscomma tcons", > - /* 277 */ "conslist ::=3D tcons", > - /* 278 */ "tconscomma ::=3D", > - /* 279 */ "defer_subclause_opt ::=3D defer_subclause", > - /* 280 */ "resolvetype ::=3D raisetype", > - /* 281 */ "selectnowith ::=3D oneselect", > - /* 282 */ "oneselect ::=3D values", > - /* 283 */ "sclp ::=3D selcollist COMMA", > - /* 284 */ "as ::=3D ID|STRING", > - /* 285 */ "join_nm ::=3D ID|INDEXED", > - /* 286 */ "join_nm ::=3D JOIN_KW", > - /* 287 */ "expr ::=3D term", > - /* 288 */ "exprlist ::=3D nexprlist", > - /* 289 */ "nmnum ::=3D plus_num", > - /* 290 */ "nmnum ::=3D STRING", > - /* 291 */ "nmnum ::=3D nm", > - /* 292 */ "nmnum ::=3D ON", > - /* 293 */ "nmnum ::=3D DELETE", > - /* 294 */ "nmnum ::=3D DEFAULT", > - /* 295 */ "plus_num ::=3D INTEGER|FLOAT", > - /* 296 */ "foreach_clause ::=3D", > - /* 297 */ "foreach_clause ::=3D FOR EACH ROW", > - /* 298 */ "trnm ::=3D nm", > - /* 299 */ "tridxby ::=3D", > + /* 246 */ "cmd ::=3D ANALYZE", > + /* 247 */ "cmd ::=3D ANALYZE nm", > + /* 248 */ "cmd ::=3D ALTER TABLE fullname RENAME TO nm", > + /* 249 */ "with ::=3D", > + /* 250 */ "with ::=3D WITH wqlist", > + /* 251 */ "with ::=3D WITH RECURSIVE wqlist", > + /* 252 */ "wqlist ::=3D nm eidlist_opt AS LP select RP", > + /* 253 */ "wqlist ::=3D wqlist COMMA nm eidlist_opt AS LP select = RP", > + /* 254 */ "input ::=3D ecmd", > + /* 255 */ "explain ::=3D", > + /* 256 */ "cmdx ::=3D cmd", > + /* 257 */ "trans_opt ::=3D", > + /* 258 */ "trans_opt ::=3D TRANSACTION", > + /* 259 */ "trans_opt ::=3D TRANSACTION nm", > + /* 260 */ "savepoint_opt ::=3D SAVEPOINT", > + /* 261 */ "savepoint_opt ::=3D", > + /* 262 */ "cmd ::=3D create_table create_table_args", > + /* 263 */ "columnlist ::=3D columnlist COMMA columnname carglist", > + /* 264 */ "columnlist ::=3D columnname carglist", > + /* 265 */ "typetoken ::=3D typename", > + /* 266 */ "typename ::=3D ID|STRING", > + /* 267 */ "signed ::=3D plus_num", > + /* 268 */ "signed ::=3D minus_num", > + /* 269 */ "carglist ::=3D carglist ccons", > + /* 270 */ "carglist ::=3D", > + /* 271 */ "ccons ::=3D NULL onconf", > + /* 272 */ "conslist_opt ::=3D COMMA conslist", > + /* 273 */ "conslist ::=3D conslist tconscomma tcons", > + /* 274 */ "conslist ::=3D tcons", > + /* 275 */ "tconscomma ::=3D", > + /* 276 */ "defer_subclause_opt ::=3D defer_subclause", > + /* 277 */ "resolvetype ::=3D raisetype", > + /* 278 */ "selectnowith ::=3D oneselect", > + /* 279 */ "oneselect ::=3D values", > + /* 280 */ "sclp ::=3D selcollist COMMA", > + /* 281 */ "as ::=3D ID|STRING", > + /* 282 */ "join_nm ::=3D ID|INDEXED", > + /* 283 */ "join_nm ::=3D JOIN_KW", > + /* 284 */ "expr ::=3D term", > + /* 285 */ "exprlist ::=3D nexprlist", > + /* 286 */ "nmnum ::=3D plus_num", > + /* 287 */ "nmnum ::=3D STRING", > + /* 288 */ "nmnum ::=3D nm", > + /* 289 */ "nmnum ::=3D ON", > + /* 290 */ "nmnum ::=3D DELETE", > + /* 291 */ "nmnum ::=3D DEFAULT", > + /* 292 */ "plus_num ::=3D INTEGER|FLOAT", > + /* 293 */ "foreach_clause ::=3D", > + /* 294 */ "foreach_clause ::=3D FOR EACH ROW", > + /* 295 */ "trnm ::=3D nm", > + /* 296 */ "tridxby ::=3D", > }; > #endif /* NDEBUG */ >=20 > @@ -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" >=20 > 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 ::=3D explain cmdx SEMI */ > #line 111 "parse.y" > { sqlite3FinishCoding(pParse); } > -#line 2169 "parse.c" > +#line 2161 "parse.c" > break; > case 1: /* ecmd ::=3D SEMI */ > #line 112 "parse.y" > { > sqlite3ErrorMsg(pParse, "syntax error: empty request"); > } > -#line 2176 "parse.c" > +#line 2168 "parse.c" > break; > case 2: /* explain ::=3D EXPLAIN */ > #line 117 "parse.y" > { pParse->explain =3D 1; } > -#line 2181 "parse.c" > +#line 2173 "parse.c" > break; > case 3: /* explain ::=3D EXPLAIN QUERY PLAN */ > #line 118 "parse.y" > { pParse->explain =3D 2; } > -#line 2186 "parse.c" > +#line 2178 "parse.c" > break; > case 4: /* cmd ::=3D 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 ::=3D */ > #line 155 "parse.y" > {yymsp[1].minor.yy52 =3D TK_DEFERRED;} > -#line 2196 "parse.c" > +#line 2188 "parse.c" > break; > case 6: /* transtype ::=3D DEFERRED */ > #line 156 "parse.y" > {yymsp[0].minor.yy52 =3D yymsp[0].major; /*A-overwrites-X*/} > -#line 2201 "parse.c" > +#line 2193 "parse.c" > break; > case 7: /* cmd ::=3D COMMIT trans_opt */ > case 8: /* cmd ::=3D END trans_opt */ yytestcase(yyruleno=3D=3D8);= > #line 157 "parse.y" > {sqlite3CommitTransaction(pParse);} > -#line 2207 "parse.c" > +#line 2199 "parse.c" > break; > case 9: /* cmd ::=3D ROLLBACK trans_opt */ > #line 159 "parse.y" > {sqlite3RollbackTransaction(pParse);} > -#line 2212 "parse.c" > +#line 2204 "parse.c" > break; > case 10: /* cmd ::=3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D CREATE */ > #line 179 "parse.y" > {disableLookaside(pParse);} > -#line 2245 "parse.c" > +#line 2237 "parse.c" > break; > case 15: /* ifnotexists ::=3D */ > case 38: /* autoinc ::=3D */ yytestcase(yyruleno=3D=3D38); > @@ -2252,19 +2244,19 @@ static void yy_reduce( > case 208: /* collate ::=3D */ yytestcase(yyruleno=3D=3D208); > #line 182 "parse.y" > {yymsp[1].minor.yy52 =3D 0;} > -#line 2256 "parse.c" > +#line 2248 "parse.c" > break; > case 16: /* ifnotexists ::=3D IF NOT EXISTS */ > #line 183 "parse.y" > {yymsp[-2].minor.yy52 =3D 1;} > -#line 2261 "parse.c" > +#line 2253 "parse.c" > break; > case 17: /* create_table_args ::=3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D */ > case 56: /* conslist_opt ::=3D */ yytestcase(yyruleno=3D=3D56); > case 92: /* as ::=3D */ yytestcase(yyruleno=3D=3D92); > -#line 236 "parse.y" > +#line 243 "parse.y" > {yymsp[1].minor.yy0.n =3D 0; yymsp[1].minor.yy0.z =3D 0;} > -#line 2297 "parse.c" > +#line 2289 "parse.c" > break; > case 22: /* typetoken ::=3D typename LP signed RP */ > -#line 238 "parse.y" > +#line 245 "parse.y" > { > yymsp[-3].minor.yy0.n =3D = (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 ::=3D typename LP signed COMMA signed RP = */ > -#line 241 "parse.y" > +#line 248 "parse.y" > { > yymsp[-5].minor.yy0.n =3D = (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 ::=3D typename ID|STRING */ > -#line 246 "parse.y" > +#line 253 "parse.y" > = {yymsp[-1].minor.yy0.n=3Dyymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-y= ymsp[-1].minor.yy0.z);} > -#line 2316 "parse.c" > +#line 2308 "parse.c" > break; > case 25: /* ccons ::=3D CONSTRAINT nm */ > case 58: /* tcons ::=3D CONSTRAINT nm */ = yytestcase(yyruleno=3D=3D58); > -#line 255 "parse.y" > +#line 262 "parse.y" > {pParse->constraintName =3D yymsp[0].minor.yy0;} > -#line 2322 "parse.c" > +#line 2314 "parse.c" > break; > case 26: /* ccons ::=3D DEFAULT term */ > case 28: /* ccons ::=3D DEFAULT PLUS term */ = yytestcase(yyruleno=3D=3D28); > -#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 ::=3D 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 ::=3D DEFAULT MINUS term */ > -#line 259 "parse.y" > +#line 266 "parse.y" > { > ExprSpan v; > v.pExpr =3D sqlite3PExpr(pParse, TK_UMINUS, = yymsp[0].minor.yy162.pExpr, 0); > @@ -2340,222 +2332,222 @@ static void yy_reduce( > v.zEnd =3D yymsp[0].minor.yy162.zEnd; > sqlite3AddDefaultValue(pParse,&v); > } > -#line 2344 "parse.c" > +#line 2336 "parse.c" > break; > case 30: /* ccons ::=3D 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 ::=3D 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 ::=3D PRIMARY KEY sortorder onconf autoinc */ > -#line 278 "parse.y" > +#line 285 "parse.y" > = {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy52,yymsp[0].minor.yy52,yy= msp[-2].minor.yy52);} > -#line 2363 "parse.c" > +#line 2355 "parse.c" > break; > case 33: /* ccons ::=3D 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 ::=3D 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 ::=3D REFERENCES nm eidlist_opt refargs */ > -#line 283 "parse.y" > +#line 290 "parse.y" > = {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy3= 82,yymsp[0].minor.yy52);} > -#line 2379 "parse.c" > +#line 2371 "parse.c" > break; > case 36: /* ccons ::=3D 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 ::=3D 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 ::=3D AUTOINCR */ > -#line 290 "parse.y" > +#line 297 "parse.y" > {yymsp[0].minor.yy52 =3D 1;} > -#line 2394 "parse.c" > +#line 2386 "parse.c" > break; > case 40: /* refargs ::=3D */ > -#line 298 "parse.y" > +#line 305 "parse.y" > { yymsp[1].minor.yy52 =3D ON_CONFLICT_ACTION_NONE*0x0101; /* EV: = R-19803-45884 */} > -#line 2399 "parse.c" > +#line 2391 "parse.c" > break; > case 41: /* refargs ::=3D refargs refarg */ > -#line 299 "parse.y" > +#line 306 "parse.y" > { yymsp[-1].minor.yy52 =3D (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 ::=3D MATCH nm */ > -#line 301 "parse.y" > +#line 308 "parse.y" > { yymsp[-1].minor.yy107.value =3D 0; yymsp[-1].minor.yy107.mask =3D = 0x000000; } > -#line 2409 "parse.c" > +#line 2401 "parse.c" > break; > case 43: /* refarg ::=3D ON INSERT refact */ > -#line 302 "parse.y" > +#line 309 "parse.y" > { yymsp[-2].minor.yy107.value =3D 0; yymsp[-2].minor.yy107.mask =3D = 0x000000; } > -#line 2414 "parse.c" > +#line 2406 "parse.c" > break; > case 44: /* refarg ::=3D ON DELETE refact */ > -#line 303 "parse.y" > +#line 310 "parse.y" > { yymsp[-2].minor.yy107.value =3D yymsp[0].minor.yy52; = yymsp[-2].minor.yy107.mask =3D 0x0000ff; } > -#line 2419 "parse.c" > +#line 2411 "parse.c" > break; > case 45: /* refarg ::=3D ON UPDATE refact */ > -#line 304 "parse.y" > +#line 311 "parse.y" > { yymsp[-2].minor.yy107.value =3D yymsp[0].minor.yy52<<8; = yymsp[-2].minor.yy107.mask =3D 0x00ff00; } > -#line 2424 "parse.c" > +#line 2416 "parse.c" > break; > case 46: /* refact ::=3D SET NULL */ > -#line 306 "parse.y" > +#line 313 "parse.y" > { yymsp[-1].minor.yy52 =3D OE_SetNull; /* EV: R-33326-45252 */} > -#line 2429 "parse.c" > +#line 2421 "parse.c" > break; > case 47: /* refact ::=3D SET DEFAULT */ > -#line 307 "parse.y" > +#line 314 "parse.y" > { yymsp[-1].minor.yy52 =3D OE_SetDflt; /* EV: R-33326-45252 */} > -#line 2434 "parse.c" > +#line 2426 "parse.c" > break; > case 48: /* refact ::=3D CASCADE */ > -#line 308 "parse.y" > +#line 315 "parse.y" > { yymsp[0].minor.yy52 =3D OE_Cascade; /* EV: R-33326-45252 */} > -#line 2439 "parse.c" > +#line 2431 "parse.c" > break; > case 49: /* refact ::=3D RESTRICT */ > -#line 309 "parse.y" > +#line 316 "parse.y" > { yymsp[0].minor.yy52 =3D OE_Restrict; /* EV: R-33326-45252 */} > -#line 2444 "parse.c" > +#line 2436 "parse.c" > break; > case 50: /* refact ::=3D NO ACTION */ > -#line 310 "parse.y" > +#line 317 "parse.y" > { yymsp[-1].minor.yy52 =3D ON_CONFLICT_ACTION_NONE; /* EV: = R-33326-45252 */} > -#line 2449 "parse.c" > +#line 2441 "parse.c" > break; > case 51: /* defer_subclause ::=3D NOT DEFERRABLE = init_deferred_pred_opt */ > -#line 312 "parse.y" > +#line 319 "parse.y" > {yymsp[-2].minor.yy52 =3D 0;} > -#line 2454 "parse.c" > +#line 2446 "parse.c" > break; > case 52: /* defer_subclause ::=3D DEFERRABLE = init_deferred_pred_opt */ > case 67: /* orconf ::=3D OR resolvetype */ = yytestcase(yyruleno=3D=3D67); > case 138: /* insert_cmd ::=3D INSERT orconf */ = yytestcase(yyruleno=3D=3D138); > -#line 313 "parse.y" > +#line 320 "parse.y" > {yymsp[-1].minor.yy52 =3D yymsp[0].minor.yy52;} > -#line 2461 "parse.c" > +#line 2453 "parse.c" > break; > case 54: /* init_deferred_pred_opt ::=3D INITIALLY DEFERRED */ > case 71: /* ifexists ::=3D IF EXISTS */ = yytestcase(yyruleno=3D=3D71); > case 180: /* between_op ::=3D NOT BETWEEN */ = yytestcase(yyruleno=3D=3D180); > case 183: /* in_op ::=3D NOT IN */ yytestcase(yyruleno=3D=3D183); > case 209: /* collate ::=3D COLLATE ID|INDEXED */ = yytestcase(yyruleno=3D=3D209); > -#line 316 "parse.y" > +#line 323 "parse.y" > {yymsp[-1].minor.yy52 =3D 1;} > -#line 2470 "parse.c" > +#line 2462 "parse.c" > break; > case 55: /* init_deferred_pred_opt ::=3D INITIALLY IMMEDIATE */ > -#line 317 "parse.y" > +#line 324 "parse.y" > {yymsp[-1].minor.yy52 =3D 0;} > -#line 2475 "parse.c" > +#line 2467 "parse.c" > break; > case 57: /* tconscomma ::=3D COMMA */ > -#line 323 "parse.y" > +#line 330 "parse.y" > {pParse->constraintName.n =3D 0;} > -#line 2480 "parse.c" > +#line 2472 "parse.c" > break; > case 59: /* tcons ::=3D 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,yym= sp[-2].minor.yy52,0);} > -#line 2485 "parse.c" > +#line 2477 "parse.c" > break; > case 60: /* tcons ::=3D 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 ::=3D 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 ::=3D 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 ::=3D */ > case 66: /* orconf ::=3D */ yytestcase(yyruleno=3D=3D66); > -#line 348 "parse.y" > +#line 355 "parse.y" > {yymsp[1].minor.yy52 =3D ON_CONFLICT_ACTION_DEFAULT;} > -#line 2510 "parse.c" > +#line 2502 "parse.c" > break; > case 65: /* onconf ::=3D ON CONFLICT resolvetype */ > -#line 349 "parse.y" > +#line 356 "parse.y" > {yymsp[-2].minor.yy52 =3D yymsp[0].minor.yy52;} > -#line 2515 "parse.c" > +#line 2507 "parse.c" > break; > case 68: /* resolvetype ::=3D IGNORE */ > -#line 353 "parse.y" > +#line 360 "parse.y" > {yymsp[0].minor.yy52 =3D ON_CONFLICT_ACTION_IGNORE;} > -#line 2520 "parse.c" > +#line 2512 "parse.c" > break; > case 69: /* resolvetype ::=3D REPLACE */ > case 139: /* insert_cmd ::=3D REPLACE */ = yytestcase(yyruleno=3D=3D139); > -#line 354 "parse.y" > +#line 361 "parse.y" > {yymsp[0].minor.yy52 =3D ON_CONFLICT_ACTION_REPLACE;} > -#line 2526 "parse.c" > +#line 2518 "parse.c" > break; > case 70: /* cmd ::=3D 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 ::=3D 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 ::=3D 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 ::=3D select */ > -#line 379 "parse.y" > +#line 386 "parse.y" > { > SelectDest dest =3D {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 ::=3D with selectnowith */ > -#line 416 "parse.y" > +#line 423 "parse.y" > { > Select *p =3D yymsp[0].minor.yy279; > if( p ){ > @@ -2566,10 +2558,10 @@ static void yy_reduce( > } > yymsp[-1].minor.yy279 =3D p; /*A-overwrites-W*/ > } > -#line 2570 "parse.c" > +#line 2562 "parse.c" > break; > case 77: /* selectnowith ::=3D selectnowith multiselect_op = oneselect */ > -#line 429 "parse.y" > +#line 436 "parse.y" > { > Select *pRhs =3D yymsp[0].minor.yy279; > Select *pLhs =3D yymsp[-2].minor.yy279; > @@ -2592,21 +2584,21 @@ static void yy_reduce( > } > yymsp[-2].minor.yy279 =3D pRhs; > } > -#line 2596 "parse.c" > +#line 2588 "parse.c" > break; > case 78: /* multiselect_op ::=3D UNION */ > case 80: /* multiselect_op ::=3D EXCEPT|INTERSECT */ = yytestcase(yyruleno=3D=3D80); > -#line 452 "parse.y" > +#line 459 "parse.y" > {yymsp[0].minor.yy52 =3D yymsp[0].major; /*A-overwrites-OP*/} > -#line 2602 "parse.c" > +#line 2594 "parse.c" > break; > case 79: /* multiselect_op ::=3D UNION ALL */ > -#line 453 "parse.y" > +#line 460 "parse.y" > {yymsp[-1].minor.yy52 =3D TK_ALL;} > -#line 2607 "parse.c" > +#line 2599 "parse.c" > break; > case 81: /* oneselect ::=3D 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 =3D 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 ::=3D VALUES LP nexprlist RP */ > -#line 491 "parse.y" > +#line 498 "parse.y" > { > yymsp[-3].minor.yy279 =3D = 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 ::=3D values COMMA LP exprlist RP */ > -#line 494 "parse.y" > +#line 501 "parse.y" > { > Select *pRight, *pLeft =3D yymsp[-4].minor.yy279; > pRight =3D = sqlite3SelectNew(pParse,yymsp[-1].minor.yy382,0,0,0,0,0,SF_Values|SF_Multi= Value,0,0); > @@ -2660,17 +2652,17 @@ static void yy_reduce( > yymsp[-4].minor.yy279 =3D pLeft; > } > } > -#line 2664 "parse.c" > +#line 2656 "parse.c" > break; > case 84: /* distinct ::=3D DISTINCT */ > -#line 511 "parse.y" > +#line 518 "parse.y" > {yymsp[0].minor.yy52 =3D SF_Distinct;} > -#line 2669 "parse.c" > +#line 2661 "parse.c" > break; > case 85: /* distinct ::=3D ALL */ > -#line 512 "parse.y" > +#line 519 "parse.y" > {yymsp[0].minor.yy52 =3D SF_All;} > -#line 2674 "parse.c" > +#line 2666 "parse.c" > break; > case 87: /* sclp ::=3D */ > case 113: /* orderby_opt ::=3D */ yytestcase(yyruleno=3D=3D113); > @@ -2678,94 +2670,94 @@ static void yy_reduce( > case 196: /* exprlist ::=3D */ yytestcase(yyruleno=3D=3D196); > case 199: /* paren_exprlist ::=3D */ yytestcase(yyruleno=3D=3D199)= ; > case 204: /* eidlist_opt ::=3D */ yytestcase(yyruleno=3D=3D204); > -#line 525 "parse.y" > +#line 532 "parse.y" > {yymsp[1].minor.yy382 =3D 0;} > -#line 2684 "parse.c" > +#line 2676 "parse.c" > break; > case 88: /* selcollist ::=3D sclp expr as */ > -#line 526 "parse.y" > +#line 533 "parse.y" > { > yymsp[-2].minor.yy382 =3D 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 ::=3D sclp STAR */ > -#line 531 "parse.y" > +#line 538 "parse.y" > { > Expr *p =3D sqlite3Expr(pParse->db, TK_ASTERISK, 0); > yymsp[-1].minor.yy382 =3D sqlite3ExprListAppend(pParse, = yymsp[-1].minor.yy382, p); > } > -#line 2701 "parse.c" > +#line 2693 "parse.c" > break; > case 90: /* selcollist ::=3D sclp nm DOT STAR */ > -#line 535 "parse.y" > +#line 542 "parse.y" > { > Expr *pRight =3D sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); > Expr *pLeft =3D sqlite3ExprAlloc(pParse->db, TK_ID, = &yymsp[-2].minor.yy0, 1); > Expr *pDot =3D sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); > yymsp[-3].minor.yy382 =3D = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy382, pDot); > } > -#line 2711 "parse.c" > +#line 2703 "parse.c" > break; > case 91: /* as ::=3D AS nm */ > case 218: /* plus_num ::=3D PLUS INTEGER|FLOAT */ = yytestcase(yyruleno=3D=3D218); > case 219: /* minus_num ::=3D MINUS INTEGER|FLOAT */ = yytestcase(yyruleno=3D=3D219); > -#line 546 "parse.y" > +#line 553 "parse.y" > {yymsp[-1].minor.yy0 =3D yymsp[0].minor.yy0;} > -#line 2718 "parse.c" > +#line 2710 "parse.c" > break; > case 93: /* from ::=3D */ > -#line 560 "parse.y" > +#line 567 "parse.y" > {yymsp[1].minor.yy387 =3D sqlite3DbMallocZero(pParse->db, = sizeof(*yymsp[1].minor.yy387));} > -#line 2723 "parse.c" > +#line 2715 "parse.c" > break; > case 94: /* from ::=3D FROM seltablist */ > -#line 561 "parse.y" > +#line 568 "parse.y" > { > yymsp[-1].minor.yy387 =3D yymsp[0].minor.yy387; > sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy387); > } > -#line 2731 "parse.c" > +#line 2723 "parse.c" > break; > case 95: /* stl_prefix ::=3D 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 =3D = (u8)yymsp[0].minor.yy52; > } > -#line 2738 "parse.c" > +#line 2730 "parse.c" > break; > case 96: /* stl_prefix ::=3D */ > -#line 572 "parse.y" > +#line 579 "parse.y" > {yymsp[1].minor.yy387 =3D 0;} > -#line 2743 "parse.c" > +#line 2735 "parse.c" > break; > case 97: /* seltablist ::=3D stl_prefix nm as indexed_opt on_opt = using_opt */ > -#line 574 "parse.y" > +#line 581 "parse.y" > { > yymsp[-5].minor.yy387 =3D = 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 ::=3D stl_prefix nm LP exprlist RP as = on_opt using_opt */ > -#line 579 "parse.y" > +#line 586 "parse.y" > { > yymsp[-7].minor.yy387 =3D = 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 ::=3D stl_prefix LP select RP as on_opt = using_opt */ > -#line 585 "parse.y" > +#line 592 "parse.y" > { > yymsp[-6].minor.yy387 =3D = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy387,0,&yymsp[-2].min= or.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 ::=3D stl_prefix LP seltablist RP as = on_opt using_opt */ > -#line 589 "parse.y" > +#line 596 "parse.y" > { > if( yymsp[-6].minor.yy387=3D=3D0 && yymsp[-2].minor.yy0.n=3D=3D0 = && yymsp[-1].minor.yy362=3D=3D0 && yymsp[0].minor.yy40=3D=3D0 ){ > yymsp[-6].minor.yy387 =3D yymsp[-4].minor.yy387; > @@ -2787,135 +2779,135 @@ static void yy_reduce( > yymsp[-6].minor.yy387 =3D = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy387,0,&yymsp[-2].min= or.yy0,pSubquery,yymsp[-1].minor.yy362,yymsp[0].minor.yy40); > } > } > -#line 2791 "parse.c" > +#line 2783 "parse.c" > break; > case 101: /* fullname ::=3D nm */ > -#line 615 "parse.y" > +#line 622 "parse.y" > {yymsp[0].minor.yy387 =3D = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0); = /*A-overwrites-X*/} > -#line 2796 "parse.c" > +#line 2788 "parse.c" > break; > case 102: /* joinop ::=3D COMMA|JOIN */ > -#line 621 "parse.y" > +#line 628 "parse.y" > { yymsp[0].minor.yy52 =3D JT_INNER; } > -#line 2801 "parse.c" > +#line 2793 "parse.c" > break; > case 103: /* joinop ::=3D JOIN_KW JOIN */ > -#line 623 "parse.y" > +#line 630 "parse.y" > {yymsp[-1].minor.yy52 =3D = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} > -#line 2806 "parse.c" > +#line 2798 "parse.c" > break; > case 104: /* joinop ::=3D JOIN_KW join_nm JOIN */ > -#line 625 "parse.y" > +#line 632 "parse.y" > {yymsp[-2].minor.yy52 =3D = 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 ::=3D JOIN_KW join_nm join_nm JOIN */ > -#line 627 "parse.y" > +#line 634 "parse.y" > {yymsp[-3].minor.yy52 =3D = 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 ::=3D ON expr */ > case 123: /* having_opt ::=3D HAVING expr */ = yytestcase(yyruleno=3D=3D123); > case 130: /* where_opt ::=3D WHERE expr */ = yytestcase(yyruleno=3D=3D130); > case 192: /* case_else ::=3D ELSE expr */ = yytestcase(yyruleno=3D=3D192); > -#line 631 "parse.y" > +#line 638 "parse.y" > {yymsp[-1].minor.yy362 =3D yymsp[0].minor.yy162.pExpr;} > -#line 2824 "parse.c" > +#line 2816 "parse.c" > break; > case 107: /* on_opt ::=3D */ > case 122: /* having_opt ::=3D */ yytestcase(yyruleno=3D=3D122); > case 129: /* where_opt ::=3D */ yytestcase(yyruleno=3D=3D129); > case 193: /* case_else ::=3D */ yytestcase(yyruleno=3D=3D193); > case 195: /* case_operand ::=3D */ yytestcase(yyruleno=3D=3D195); > -#line 632 "parse.y" > +#line 639 "parse.y" > {yymsp[1].minor.yy362 =3D 0;} > -#line 2833 "parse.c" > +#line 2825 "parse.c" > break; > case 108: /* indexed_opt ::=3D */ > -#line 645 "parse.y" > +#line 652 "parse.y" > {yymsp[1].minor.yy0.z=3D0; yymsp[1].minor.yy0.n=3D0;} > -#line 2838 "parse.c" > +#line 2830 "parse.c" > break; > case 109: /* indexed_opt ::=3D INDEXED BY nm */ > -#line 646 "parse.y" > +#line 653 "parse.y" > {yymsp[-2].minor.yy0 =3D yymsp[0].minor.yy0;} > -#line 2843 "parse.c" > +#line 2835 "parse.c" > break; > case 110: /* indexed_opt ::=3D NOT INDEXED */ > -#line 647 "parse.y" > +#line 654 "parse.y" > {yymsp[-1].minor.yy0.z=3D0; yymsp[-1].minor.yy0.n=3D1;} > -#line 2848 "parse.c" > +#line 2840 "parse.c" > break; > case 111: /* using_opt ::=3D USING LP idlist RP */ > -#line 651 "parse.y" > +#line 658 "parse.y" > {yymsp[-3].minor.yy40 =3D yymsp[-1].minor.yy40;} > -#line 2853 "parse.c" > +#line 2845 "parse.c" > break; > case 112: /* using_opt ::=3D */ > case 140: /* idlist_opt ::=3D */ yytestcase(yyruleno=3D=3D140); > -#line 652 "parse.y" > +#line 659 "parse.y" > {yymsp[1].minor.yy40 =3D 0;} > -#line 2859 "parse.c" > +#line 2851 "parse.c" > break; > case 114: /* orderby_opt ::=3D ORDER BY sortlist */ > case 121: /* groupby_opt ::=3D GROUP BY nexprlist */ = yytestcase(yyruleno=3D=3D121); > -#line 666 "parse.y" > +#line 673 "parse.y" > {yymsp[-2].minor.yy382 =3D yymsp[0].minor.yy382;} > -#line 2865 "parse.c" > +#line 2857 "parse.c" > break; > case 115: /* sortlist ::=3D sortlist COMMA expr sortorder */ > -#line 667 "parse.y" > +#line 674 "parse.y" > { > yymsp[-3].minor.yy382 =3D = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy382,yymsp[-1].minor.yy162.p= Expr); > = sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy382,yymsp[0].minor.yy52); > } > -#line 2873 "parse.c" > +#line 2865 "parse.c" > break; > case 116: /* sortlist ::=3D expr sortorder */ > -#line 671 "parse.y" > +#line 678 "parse.y" > { > yymsp[-1].minor.yy382 =3D = 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 ::=3D ASC */ > -#line 678 "parse.y" > +#line 685 "parse.y" > {yymsp[0].minor.yy52 =3D SQLITE_SO_ASC;} > -#line 2886 "parse.c" > +#line 2878 "parse.c" > break; > case 118: /* sortorder ::=3D DESC */ > -#line 679 "parse.y" > +#line 686 "parse.y" > {yymsp[0].minor.yy52 =3D SQLITE_SO_DESC;} > -#line 2891 "parse.c" > +#line 2883 "parse.c" > break; > case 119: /* sortorder ::=3D */ > -#line 680 "parse.y" > +#line 687 "parse.y" > {yymsp[1].minor.yy52 =3D SQLITE_SO_UNDEFINED;} > -#line 2896 "parse.c" > +#line 2888 "parse.c" > break; > case 124: /* limit_opt ::=3D */ > -#line 705 "parse.y" > +#line 712 "parse.y" > {yymsp[1].minor.yy384.pLimit =3D 0; yymsp[1].minor.yy384.pOffset =3D = 0;} > -#line 2901 "parse.c" > +#line 2893 "parse.c" > break; > case 125: /* limit_opt ::=3D LIMIT expr */ > -#line 706 "parse.y" > +#line 713 "parse.y" > {yymsp[-1].minor.yy384.pLimit =3D yymsp[0].minor.yy162.pExpr; = yymsp[-1].minor.yy384.pOffset =3D 0;} > -#line 2906 "parse.c" > +#line 2898 "parse.c" > break; > case 126: /* limit_opt ::=3D LIMIT expr OFFSET expr */ > -#line 708 "parse.y" > +#line 715 "parse.y" > {yymsp[-3].minor.yy384.pLimit =3D yymsp[-2].minor.yy162.pExpr; = yymsp[-3].minor.yy384.pOffset =3D yymsp[0].minor.yy162.pExpr;} > -#line 2911 "parse.c" > +#line 2903 "parse.c" > break; > case 127: /* limit_opt ::=3D LIMIT expr COMMA expr */ > -#line 710 "parse.y" > +#line 717 "parse.y" > {yymsp[-3].minor.yy384.pOffset =3D yymsp[-2].minor.yy162.pExpr; = yymsp[-3].minor.yy384.pLimit =3D yymsp[0].minor.yy162.pExpr;} > -#line 2916 "parse.c" > +#line 2908 "parse.c" > break; > case 128: /* cmd ::=3D 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 =3D true; > = sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy387,yymsp[0].minor.yy362); > } > -#line 2928 "parse.c" > +#line 2920 "parse.c" > break; > case 131: /* cmd ::=3D 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 =3D 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 ::=3D setlist COMMA nm EQ expr */ > -#line 774 "parse.y" > +#line 781 "parse.y" > { > yymsp[-4].minor.yy382 =3D 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 ::=3D setlist COMMA LP idlist RP EQ expr */ > -#line 778 "parse.y" > +#line 785 "parse.y" > { > yymsp[-6].minor.yy382 =3D 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 ::=3D nm EQ expr */ > -#line 781 "parse.y" > +#line 788 "parse.y" > { > yylhsminor.yy382 =3D 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 =3D yylhsminor.yy382; > break; > case 135: /* setlist ::=3D LP idlist RP EQ expr */ > -#line 785 "parse.y" > +#line 792 "parse.y" > { > yymsp[-4].minor.yy382 =3D sqlite3ExprListAppendVector(pParse, 0, = yymsp[-3].minor.yy40, yymsp[0].minor.yy162.pExpr); > } > -#line 2972 "parse.c" > +#line 2964 "parse.c" > break; > case 136: /* cmd ::=3D with insert_cmd INTO fullname idlist_opt = select */ > -#line 791 "parse.y" > +#line 798 "parse.y" > { > sqlite3WithPush(pParse, yymsp[-5].minor.yy151, 1); > sqlSubProgramsRemaining =3D SQL_MAX_COMPILING_TRIGGERS; > @@ -2979,10 +2971,10 @@ static void yy_reduce( > pParse->initiateTTrans =3D 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 ::=3D 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 =3D SQL_MAX_COMPILING_TRIGGERS; > @@ -2990,64 +2982,64 @@ static void yy_reduce( > pParse->initiateTTrans =3D 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 ::=3D LP idlist RP */ > -#line 817 "parse.y" > +#line 824 "parse.y" > {yymsp[-2].minor.yy40 =3D yymsp[-1].minor.yy40;} > -#line 2999 "parse.c" > +#line 2991 "parse.c" > break; > case 142: /* idlist ::=3D idlist COMMA nm */ > -#line 819 "parse.y" > +#line 826 "parse.y" > {yymsp[-2].minor.yy40 =3D = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy40,&yymsp[0].minor.yy0);}= > -#line 3004 "parse.c" > +#line 2996 "parse.c" > break; > case 143: /* idlist ::=3D nm */ > -#line 821 "parse.y" > +#line 828 "parse.y" > {yymsp[0].minor.yy40 =3D = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); = /*A-overwrites-Y*/} > -#line 3009 "parse.c" > +#line 3001 "parse.c" > break; > case 144: /* expr ::=3D 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 =3D = yymsp[-1].minor.yy162.pExpr;} > -#line 3014 "parse.c" > +#line 3006 "parse.c" > break; > case 145: /* term ::=3D NULL */ > case 149: /* term ::=3D FLOAT|BLOB */ yytestcase(yyruleno=3D=3D149= ); > case 150: /* term ::=3D STRING */ yytestcase(yyruleno=3D=3D150); > -#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 ::=3D ID|INDEXED */ > case 147: /* expr ::=3D JOIN_KW */ yytestcase(yyruleno=3D=3D147); > -#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 ::=3D nm DOT nm */ > -#line 874 "parse.y" > +#line 881 "parse.y" > { > Expr *temp1 =3D sqlite3ExprAlloc(pParse->db, TK_ID, = &yymsp[-2].minor.yy0, 1); > Expr *temp2 =3D 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 =3D sqlite3PExpr(pParse, TK_DOT, temp1, = temp2); > } > -#line 3037 "parse.c" > +#line 3029 "parse.c" > break; > case 151: /* term ::=3D INTEGER */ > -#line 882 "parse.y" > +#line 889 "parse.y" > { > yylhsminor.yy162.pExpr =3D sqlite3ExprAlloc(pParse->db, TK_INTEGER, = &yymsp[0].minor.yy0, 1); > yylhsminor.yy162.zStart =3D yymsp[0].minor.yy0.z; > yylhsminor.yy162.zEnd =3D yymsp[0].minor.yy0.z + = yymsp[0].minor.yy0.n; > if( yylhsminor.yy162.pExpr ) yylhsminor.yy162.pExpr->flags |=3D = EP_Leaf; > } > -#line 3047 "parse.c" > +#line 3039 "parse.c" > yymsp[0].minor.yy162 =3D yylhsminor.yy162; > break; > case 152: /* expr ::=3D VARIABLE */ > -#line 888 "parse.y" > +#line 895 "parse.y" > { > if( !(yymsp[0].minor.yy0.z[0]=3D=3D'#' && = sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ > u32 n =3D 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 ::=3D expr COLLATE ID|INDEXED */ > -#line 909 "parse.y" > +#line 916 "parse.y" > { > yymsp[-2].minor.yy162.pExpr =3D sqlite3ExprAddCollateToken(pParse, = yymsp[-2].minor.yy162.pExpr, &yymsp[0].minor.yy0, 1); > yymsp[-2].minor.yy162.zEnd =3D = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; > } > -#line 3081 "parse.c" > +#line 3073 "parse.c" > break; > case 154: /* expr ::=3D 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 =3D 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 ::=3D 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 |=3D EP_Distinct; > } > } > -#line 3104 "parse.c" > +#line 3096 "parse.c" > yymsp[-4].minor.yy162 =3D yylhsminor.yy162; > break; > case 156: /* expr ::=3D ID|INDEXED LP STAR RP */ > -#line 930 "parse.y" > +#line 937 "parse.y" > { > yylhsminor.yy162.pExpr =3D 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 =3D yylhsminor.yy162; > break; > case 157: /* term ::=3D CTIME_KW */ > -#line 934 "parse.y" > +#line 941 "parse.y" > { > yylhsminor.yy162.pExpr =3D 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 =3D yylhsminor.yy162; > break; > case 158: /* expr ::=3D LP nexprlist COMMA expr RP */ > -#line 963 "parse.y" > +#line 970 "parse.y" > { > ExprList *pList =3D sqlite3ExprListAppend(pParse, = yymsp[-3].minor.yy382, yymsp[-1].minor.yy162.pExpr); > yylhsminor.yy162.pExpr =3D 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 =3D yylhsminor.yy162; > break; > case 159: /* expr ::=3D expr AND expr */ > @@ -3144,22 +3136,22 @@ static void yy_reduce( > case 164: /* expr ::=3D expr PLUS|MINUS expr */ = yytestcase(yyruleno=3D=3D164); > case 165: /* expr ::=3D expr STAR|SLASH|REM expr */ = yytestcase(yyruleno=3D=3D165); > case 166: /* expr ::=3D expr CONCAT expr */ = yytestcase(yyruleno=3D=3D166); > -#line 974 "parse.y" > +#line 981 "parse.y" > = {spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy162,&yymsp[0].mi= nor.yy162);} > -#line 3150 "parse.c" > +#line 3142 "parse.c" > break; > case 167: /* likeop ::=3D LIKE_KW|MATCH */ > -#line 987 "parse.y" > +#line 994 "parse.y" > {yymsp[0].minor.yy0=3Dyymsp[0].minor.yy0;/*A-overwrites-X*/} > -#line 3155 "parse.c" > +#line 3147 "parse.c" > break; > case 168: /* likeop ::=3D NOT LIKE_KW|MATCH */ > -#line 988 "parse.y" > +#line 995 "parse.y" > {yymsp[-1].minor.yy0=3Dyymsp[0].minor.yy0; = yymsp[-1].minor.yy0.n|=3D0x80000000; = /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} > -#line 3160 "parse.c" > +#line 3152 "parse.c" > break; > case 169: /* expr ::=3D expr likeop expr */ > -#line 989 "parse.y" > +#line 996 "parse.y" > { > ExprList *pList; > int bNot =3D yymsp[-1].minor.yy0.n & 0x80000000; > @@ -3171,10 +3163,10 @@ static void yy_reduce( > yymsp[-2].minor.yy162.zEnd =3D yymsp[0].minor.yy162.zEnd; > if( yymsp[-2].minor.yy162.pExpr ) yymsp[-2].minor.yy162.pExpr->flags = |=3D EP_InfixFunc; > } > -#line 3175 "parse.c" > +#line 3167 "parse.c" > break; > case 170: /* expr ::=3D expr likeop expr ESCAPE expr */ > -#line 1000 "parse.y" > +#line 1007 "parse.y" > { > ExprList *pList; > int bNot =3D yymsp[-3].minor.yy0.n & 0x80000000; > @@ -3187,58 +3179,58 @@ static void yy_reduce( > yymsp[-4].minor.yy162.zEnd =3D yymsp[0].minor.yy162.zEnd; > if( yymsp[-4].minor.yy162.pExpr ) yymsp[-4].minor.yy162.pExpr->flags = |=3D EP_InfixFunc; > } > -#line 3191 "parse.c" > +#line 3183 "parse.c" > break; > case 171: /* expr ::=3D expr ISNULL|NOTNULL */ > -#line 1027 "parse.y" > +#line 1034 "parse.y" > = {spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy162,&yymsp[0].m= inor.yy0);} > -#line 3196 "parse.c" > +#line 3188 "parse.c" > break; > case 172: /* expr ::=3D 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 ::=3D 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 ::=3D expr IS NOT expr */ > -#line 1053 "parse.y" > +#line 1060 "parse.y" > { > = spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy162,&yymsp[0].minor.yy16= 2); > 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 ::=3D NOT expr */ > case 176: /* expr ::=3D BITNOT expr */ = yytestcase(yyruleno=3D=3D176); > -#line 1077 "parse.y" > +#line 1084 "parse.y" > = {spanUnaryPrefix(&yymsp[-1].minor.yy162,pParse,yymsp[-1].major,&yymsp[0].m= inor.yy162,&yymsp[-1].minor.yy0);/*A-overwrites-B*/} > -#line 3223 "parse.c" > +#line 3215 "parse.c" > break; > case 177: /* expr ::=3D MINUS expr */ > -#line 1081 "parse.y" > +#line 1088 "parse.y" > = {spanUnaryPrefix(&yymsp[-1].minor.yy162,pParse,TK_UMINUS,&yymsp[0].minor.y= y162,&yymsp[-1].minor.yy0);/*A-overwrites-B*/} > -#line 3228 "parse.c" > +#line 3220 "parse.c" > break; > case 178: /* expr ::=3D PLUS expr */ > -#line 1083 "parse.y" > +#line 1090 "parse.y" > = {spanUnaryPrefix(&yymsp[-1].minor.yy162,pParse,TK_UPLUS,&yymsp[0].minor.yy= 162,&yymsp[-1].minor.yy0);/*A-overwrites-B*/} > -#line 3233 "parse.c" > +#line 3225 "parse.c" > break; > case 179: /* between_op ::=3D BETWEEN */ > case 182: /* in_op ::=3D IN */ yytestcase(yyruleno=3D=3D182); > -#line 1086 "parse.y" > +#line 1093 "parse.y" > {yymsp[0].minor.yy52 =3D 0;} > -#line 3239 "parse.c" > +#line 3231 "parse.c" > break; > case 181: /* expr ::=3D expr between_op expr AND expr */ > -#line 1088 "parse.y" > +#line 1095 "parse.y" > { > ExprList *pList =3D sqlite3ExprListAppend(pParse,0, = yymsp[-2].minor.yy162.pExpr); > pList =3D 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 =3D yymsp[0].minor.yy162.zEnd; > } > -#line 3255 "parse.c" > +#line 3247 "parse.c" > break; > case 184: /* expr ::=3D expr in_op LP exprlist RP */ > -#line 1104 "parse.y" > +#line 1111 "parse.y" > { > if( yymsp[-1].minor.yy382=3D=3D0 ){ > /* Expressions of the form > @@ -3306,29 +3298,29 @@ static void yy_reduce( > } > yymsp[-4].minor.yy162.zEnd =3D = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; > } > -#line 3310 "parse.c" > +#line 3302 "parse.c" > break; > case 185: /* expr ::=3D 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 =3D 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 ::=3D expr in_op LP select RP */ > -#line 1160 "parse.y" > +#line 1167 "parse.y" > { > yymsp[-4].minor.yy162.pExpr =3D 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 =3D = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; > } > -#line 3329 "parse.c" > +#line 3321 "parse.c" > break; > case 187: /* expr ::=3D expr in_op nm paren_exprlist */ > -#line 1166 "parse.y" > +#line 1173 "parse.y" > { > SrcList *pSrc =3D sqlite3SrcListAppend(pParse->db, = 0,&yymsp[-1].minor.yy0); > Select *pSelect =3D 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 =3D = &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]; > } > -#line 3342 "parse.c" > +#line 3334 "parse.c" > break; > case 188: /* expr ::=3D 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 =3D yymsp[-3].minor.yy162.pExpr =3D 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 ::=3D 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 =3D 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 ::=3D case_exprlist WHEN expr THEN = expr */ > -#line 1197 "parse.y" > +#line 1204 "parse.y" > { > yymsp[-4].minor.yy382 =3D = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy382, = yymsp[-2].minor.yy162.pExpr); > yymsp[-4].minor.yy382 =3D = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy382, = yymsp[0].minor.yy162.pExpr); > } > -#line 3375 "parse.c" > +#line 3367 "parse.c" > break; > case 191: /* case_exprlist ::=3D WHEN expr THEN expr */ > -#line 1201 "parse.y" > +#line 1208 "parse.y" > { > yymsp[-3].minor.yy382 =3D sqlite3ExprListAppend(pParse,0, = yymsp[-2].minor.yy162.pExpr); > yymsp[-3].minor.yy382 =3D = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy382, = yymsp[0].minor.yy162.pExpr); > } > -#line 3383 "parse.c" > +#line 3375 "parse.c" > break; > case 194: /* case_operand ::=3D expr */ > -#line 1211 "parse.y" > +#line 1218 "parse.y" > {yymsp[0].minor.yy362 =3D yymsp[0].minor.yy162.pExpr; = /*A-overwrites-X*/} > -#line 3388 "parse.c" > +#line 3380 "parse.c" > break; > case 197: /* nexprlist ::=3D nexprlist COMMA expr */ > -#line 1222 "parse.y" > +#line 1229 "parse.y" > {yymsp[-2].minor.yy382 =3D = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy382,yymsp[0].minor.yy162.pE= xpr);} > -#line 3393 "parse.c" > +#line 3385 "parse.c" > break; > case 198: /* nexprlist ::=3D expr */ > -#line 1224 "parse.y" > +#line 1231 "parse.y" > {yymsp[0].minor.yy382 =3D = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy162.pExpr); = /*A-overwrites-Y*/} > -#line 3398 "parse.c" > +#line 3390 "parse.c" > break; > case 200: /* paren_exprlist ::=3D LP exprlist RP */ > case 205: /* eidlist_opt ::=3D LP eidlist RP */ = yytestcase(yyruleno=3D=3D205); > -#line 1232 "parse.y" > +#line 1239 "parse.y" > {yymsp[-2].minor.yy382 =3D yymsp[-1].minor.yy382;} > -#line 3404 "parse.c" > +#line 3396 "parse.c" > break; > case 201: /* cmd ::=3D 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,=20 > = 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 ::=3D UNIQUE */ > case 243: /* raisetype ::=3D ABORT */ yytestcase(yyruleno=3D=3D243= ); > -#line 1246 "parse.y" > +#line 1253 "parse.y" > {yymsp[0].minor.yy52 =3D ON_CONFLICT_ACTION_ABORT;} > -#line 3419 "parse.c" > +#line 3411 "parse.c" > break; > case 203: /* uniqueflag ::=3D */ > -#line 1247 "parse.y" > +#line 1254 "parse.y" > {yymsp[1].minor.yy52 =3D ON_CONFLICT_ACTION_NONE;} > -#line 3424 "parse.c" > +#line 3416 "parse.c" > break; > case 206: /* eidlist ::=3D eidlist COMMA nm collate sortorder */ > -#line 1290 "parse.y" > +#line 1297 "parse.y" > { > yymsp[-4].minor.yy382 =3D 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 ::=3D nm collate sortorder */ > -#line 1293 "parse.y" > +#line 1300 "parse.y" > { > yymsp[-2].minor.yy382 =3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D 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 ::=3D createkw trigger_decl BEGIN = trigger_cmd_list END */ > -#line 1349 "parse.y" > +#line 1356 "parse.y" > { > Token all; > all.z =3D yymsp[-3].minor.yy0.z; > all.n =3D (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 ::=3D 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 =3D yymsp[-6].minor.yy0; = /*yymsp[-8].minor.yy0-overwrites-T*/ > } > -#line 3512 "parse.c" > +#line 3504 "parse.c" > break; > case 222: /* trigger_time ::=3D BEFORE */ > -#line 1364 "parse.y" > +#line 1371 "parse.y" > { yymsp[0].minor.yy52 =3D TK_BEFORE; } > -#line 3517 "parse.c" > +#line 3509 "parse.c" > break; > case 223: /* trigger_time ::=3D AFTER */ > -#line 1365 "parse.y" > +#line 1372 "parse.y" > { yymsp[0].minor.yy52 =3D TK_AFTER; } > -#line 3522 "parse.c" > +#line 3514 "parse.c" > break; > case 224: /* trigger_time ::=3D INSTEAD OF */ > -#line 1366 "parse.y" > +#line 1373 "parse.y" > { yymsp[-1].minor.yy52 =3D TK_INSTEAD;} > -#line 3527 "parse.c" > +#line 3519 "parse.c" > break; > case 225: /* trigger_time ::=3D */ > -#line 1367 "parse.y" > +#line 1374 "parse.y" > { yymsp[1].minor.yy52 =3D TK_BEFORE; } > -#line 3532 "parse.c" > +#line 3524 "parse.c" > break; > case 226: /* trigger_event ::=3D DELETE|INSERT */ > case 227: /* trigger_event ::=3D UPDATE */ = yytestcase(yyruleno=3D=3D227); > -#line 1371 "parse.y" > +#line 1378 "parse.y" > {yymsp[0].minor.yy10.a =3D yymsp[0].major; /*A-overwrites-X*/ = yymsp[0].minor.yy10.b =3D 0;} > -#line 3538 "parse.c" > +#line 3530 "parse.c" > break; > case 228: /* trigger_event ::=3D UPDATE OF idlist */ > -#line 1373 "parse.y" > +#line 1380 "parse.y" > {yymsp[-2].minor.yy10.a =3D TK_UPDATE; yymsp[-2].minor.yy10.b =3D = yymsp[0].minor.yy40;} > -#line 3543 "parse.c" > +#line 3535 "parse.c" > break; > case 229: /* when_clause ::=3D */ > -#line 1380 "parse.y" > +#line 1387 "parse.y" > { yymsp[1].minor.yy362 =3D 0; } > -#line 3548 "parse.c" > +#line 3540 "parse.c" > break; > case 230: /* when_clause ::=3D WHEN expr */ > -#line 1381 "parse.y" > +#line 1388 "parse.y" > { yymsp[-1].minor.yy362 =3D yymsp[0].minor.yy162.pExpr; } > -#line 3553 "parse.c" > +#line 3545 "parse.c" > break; > case 231: /* trigger_cmd_list ::=3D trigger_cmd_list trigger_cmd = SEMI */ > -#line 1385 "parse.y" > +#line 1392 "parse.y" > { > assert( yymsp[-2].minor.yy427!=3D0 ); > yymsp[-2].minor.yy427->pLast->pNext =3D yymsp[-1].minor.yy427; > yymsp[-2].minor.yy427->pLast =3D yymsp[-1].minor.yy427; > } > -#line 3562 "parse.c" > +#line 3554 "parse.c" > break; > case 232: /* trigger_cmd_list ::=3D trigger_cmd SEMI */ > -#line 1390 "parse.y" > +#line 1397 "parse.y" > {=20 > assert( yymsp[-1].minor.yy427!=3D0 ); > yymsp[-1].minor.yy427->pLast =3D yymsp[-1].minor.yy427; > } > -#line 3570 "parse.c" > +#line 3562 "parse.c" > break; > case 233: /* trnm ::=3D nm DOT nm */ > -#line 1401 "parse.y" > +#line 1408 "parse.y" > { > yymsp[-2].minor.yy0 =3D yymsp[0].minor.yy0; > sqlite3ErrorMsg(pParse,=20 > "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 ::=3D 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 ::=3D 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 ::=3D UPDATE orconf trnm tridxby SET = setlist where_opt */ > -#line 1431 "parse.y" > +#line 1438 "parse.y" > {yymsp[-6].minor.yy427 =3D 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 ::=3D insert_cmd INTO trnm idlist_opt = select */ > -#line 1435 "parse.y" > +#line 1442 "parse.y" > {yymsp[-4].minor.yy427 =3D 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 ::=3D DELETE FROM trnm tridxby = where_opt */ > -#line 1439 "parse.y" > +#line 1446 "parse.y" > {yymsp[-4].minor.yy427 =3D sqlite3TriggerDeleteStep(pParse->db, = &yymsp[-2].minor.yy0, yymsp[0].minor.yy362);} > -#line 3613 "parse.c" > +#line 3605 "parse.c" > break; > case 239: /* trigger_cmd ::=3D select */ > -#line 1443 "parse.y" > +#line 1450 "parse.y" > {yymsp[0].minor.yy427 =3D sqlite3TriggerSelectStep(pParse->db, = yymsp[0].minor.yy279); /*A-overwrites-X*/} > -#line 3618 "parse.c" > +#line 3610 "parse.c" > break; > case 240: /* expr ::=3D 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 =3D sqlite3PExpr(pParse, TK_RAISE, 0, = 0);=20 > @@ -3625,10 +3617,10 @@ static void yy_reduce( > yymsp[-3].minor.yy162.pExpr->affinity =3D = ON_CONFLICT_ACTION_IGNORE; > } > } > -#line 3629 "parse.c" > +#line 3621 "parse.c" > break; > case 241: /* expr ::=3D 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 =3D sqlite3ExprAlloc(pParse->db, = TK_RAISE, &yymsp[-1].minor.yy0, 1);=20 > @@ -3636,130 +3628,115 @@ static void yy_reduce( > yymsp[-5].minor.yy162.pExpr->affinity =3D = (char)yymsp[-3].minor.yy52; > } > } > -#line 3640 "parse.c" > +#line 3632 "parse.c" > break; > case 242: /* raisetype ::=3D ROLLBACK */ > -#line 1463 "parse.y" > +#line 1470 "parse.y" > {yymsp[0].minor.yy52 =3D ON_CONFLICT_ACTION_ROLLBACK;} > -#line 3645 "parse.c" > +#line 3637 "parse.c" > break; > case 244: /* raisetype ::=3D FAIL */ > -#line 1465 "parse.y" > +#line 1472 "parse.y" > {yymsp[0].minor.yy52 =3D ON_CONFLICT_ACTION_FAIL;} > -#line 3650 "parse.c" > +#line 3642 "parse.c" > break; > case 245: /* cmd ::=3D 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 ::=3D REINDEX */ > -#line 1477 "parse.y" > -{sqlite3Reindex(pParse, 0, 0);} > -#line 3662 "parse.c" > - break; > - case 247: /* cmd ::=3D REINDEX nm */ > -#line 1478 "parse.y" > -{sqlite3Reindex(pParse, &yymsp[0].minor.yy0, 0);} > -#line 3667 "parse.c" > - break; > - case 248: /* cmd ::=3D 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 ::=3D ANALYZE */ > -#line 1484 "parse.y" > + case 246: /* cmd ::=3D ANALYZE */ > +#line 1492 "parse.y" > {sqlite3Analyze(pParse, 0);} > -#line 3677 "parse.c" > +#line 3654 "parse.c" > break; > - case 250: /* cmd ::=3D ANALYZE nm */ > -#line 1485 "parse.y" > + case 247: /* cmd ::=3D ANALYZE nm */ > +#line 1493 "parse.y" > {sqlite3Analyze(pParse, &yymsp[0].minor.yy0);} > -#line 3682 "parse.c" > +#line 3659 "parse.c" > break; > - case 251: /* cmd ::=3D ALTER TABLE fullname RENAME TO nm */ > -#line 1490 "parse.y" > + case 248: /* cmd ::=3D 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 ::=3D */ > -#line 1513 "parse.y" > + case 249: /* with ::=3D */ > +#line 1521 "parse.y" > {yymsp[1].minor.yy151 =3D 0;} > -#line 3694 "parse.c" > +#line 3671 "parse.c" > break; > - case 253: /* with ::=3D WITH wqlist */ > -#line 1515 "parse.y" > + case 250: /* with ::=3D WITH wqlist */ > +#line 1523 "parse.y" > { yymsp[-1].minor.yy151 =3D yymsp[0].minor.yy151; } > -#line 3699 "parse.c" > +#line 3676 "parse.c" > break; > - case 254: /* with ::=3D WITH RECURSIVE wqlist */ > -#line 1516 "parse.y" > + case 251: /* with ::=3D WITH RECURSIVE wqlist */ > +#line 1524 "parse.y" > { yymsp[-2].minor.yy151 =3D yymsp[0].minor.yy151; } > -#line 3704 "parse.c" > +#line 3681 "parse.c" > break; > - case 255: /* wqlist ::=3D nm eidlist_opt AS LP select RP */ > -#line 1518 "parse.y" > + case 252: /* wqlist ::=3D nm eidlist_opt AS LP select RP */ > +#line 1526 "parse.y" > { > yymsp[-5].minor.yy151 =3D 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 ::=3D wqlist COMMA nm eidlist_opt AS LP = select RP */ > -#line 1521 "parse.y" > + case 253: /* wqlist ::=3D wqlist COMMA nm eidlist_opt AS LP = select RP */ > +#line 1529 "parse.y" > { > yymsp[-7].minor.yy151 =3D 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 ::=3D ecmd */ yytestcase(yyruleno=3D=3D257); > - /* (258) explain ::=3D */ yytestcase(yyruleno=3D=3D258); > - /* (259) cmdx ::=3D cmd (OPTIMIZED OUT) */ = assert(yyruleno!=3D259); > - /* (260) trans_opt ::=3D */ yytestcase(yyruleno=3D=3D260); > - /* (261) trans_opt ::=3D TRANSACTION */ = yytestcase(yyruleno=3D=3D261); > - /* (262) trans_opt ::=3D TRANSACTION nm */ = yytestcase(yyruleno=3D=3D262); > - /* (263) savepoint_opt ::=3D SAVEPOINT */ = yytestcase(yyruleno=3D=3D263); > - /* (264) savepoint_opt ::=3D */ yytestcase(yyruleno=3D=3D264); > - /* (265) cmd ::=3D create_table create_table_args */ = yytestcase(yyruleno=3D=3D265); > - /* (266) columnlist ::=3D columnlist COMMA columnname carglist = */ yytestcase(yyruleno=3D=3D266); > - /* (267) columnlist ::=3D columnname carglist */ = yytestcase(yyruleno=3D=3D267); > - /* (268) typetoken ::=3D typename */ yytestcase(yyruleno=3D=3D268= ); > - /* (269) typename ::=3D ID|STRING */ yytestcase(yyruleno=3D=3D269= ); > - /* (270) signed ::=3D plus_num (OPTIMIZED OUT) */ = assert(yyruleno!=3D270); > - /* (271) signed ::=3D minus_num (OPTIMIZED OUT) */ = assert(yyruleno!=3D271); > - /* (272) carglist ::=3D carglist ccons */ = yytestcase(yyruleno=3D=3D272); > - /* (273) carglist ::=3D */ yytestcase(yyruleno=3D=3D273); > - /* (274) ccons ::=3D NULL onconf */ yytestcase(yyruleno=3D=3D274)= ; > - /* (275) conslist_opt ::=3D COMMA conslist */ = yytestcase(yyruleno=3D=3D275); > - /* (276) conslist ::=3D conslist tconscomma tcons */ = yytestcase(yyruleno=3D=3D276); > - /* (277) conslist ::=3D tcons (OPTIMIZED OUT) */ = assert(yyruleno!=3D277); > - /* (278) tconscomma ::=3D */ yytestcase(yyruleno=3D=3D278); > - /* (279) defer_subclause_opt ::=3D defer_subclause (OPTIMIZED = OUT) */ assert(yyruleno!=3D279); > - /* (280) resolvetype ::=3D raisetype (OPTIMIZED OUT) */ = assert(yyruleno!=3D280); > - /* (281) selectnowith ::=3D oneselect (OPTIMIZED OUT) */ = assert(yyruleno!=3D281); > - /* (282) oneselect ::=3D values */ yytestcase(yyruleno=3D=3D282);= > - /* (283) sclp ::=3D selcollist COMMA */ = yytestcase(yyruleno=3D=3D283); > - /* (284) as ::=3D ID|STRING */ yytestcase(yyruleno=3D=3D284); > - /* (285) join_nm ::=3D ID|INDEXED */ yytestcase(yyruleno=3D=3D285= ); > - /* (286) join_nm ::=3D JOIN_KW */ yytestcase(yyruleno=3D=3D286); > - /* (287) expr ::=3D term (OPTIMIZED OUT) */ = assert(yyruleno!=3D287); > - /* (288) exprlist ::=3D nexprlist */ yytestcase(yyruleno=3D=3D288= ); > - /* (289) nmnum ::=3D plus_num (OPTIMIZED OUT) */ = assert(yyruleno!=3D289); > - /* (290) nmnum ::=3D STRING */ yytestcase(yyruleno=3D=3D290); > - /* (291) nmnum ::=3D nm */ yytestcase(yyruleno=3D=3D291); > - /* (292) nmnum ::=3D ON */ yytestcase(yyruleno=3D=3D292); > - /* (293) nmnum ::=3D DELETE */ yytestcase(yyruleno=3D=3D293); > - /* (294) nmnum ::=3D DEFAULT */ yytestcase(yyruleno=3D=3D294); > - /* (295) plus_num ::=3D INTEGER|FLOAT */ = yytestcase(yyruleno=3D=3D295); > - /* (296) foreach_clause ::=3D */ yytestcase(yyruleno=3D=3D296); > - /* (297) foreach_clause ::=3D FOR EACH ROW */ = yytestcase(yyruleno=3D=3D297); > - /* (298) trnm ::=3D nm */ yytestcase(yyruleno=3D=3D298); > - /* (299) tridxby ::=3D */ yytestcase(yyruleno=3D=3D299); > + /* (254) input ::=3D ecmd */ yytestcase(yyruleno=3D=3D254); > + /* (255) explain ::=3D */ yytestcase(yyruleno=3D=3D255); > + /* (256) cmdx ::=3D cmd (OPTIMIZED OUT) */ = assert(yyruleno!=3D256); > + /* (257) trans_opt ::=3D */ yytestcase(yyruleno=3D=3D257); > + /* (258) trans_opt ::=3D TRANSACTION */ = yytestcase(yyruleno=3D=3D258); > + /* (259) trans_opt ::=3D TRANSACTION nm */ = yytestcase(yyruleno=3D=3D259); > + /* (260) savepoint_opt ::=3D SAVEPOINT */ = yytestcase(yyruleno=3D=3D260); > + /* (261) savepoint_opt ::=3D */ yytestcase(yyruleno=3D=3D261); > + /* (262) cmd ::=3D create_table create_table_args */ = yytestcase(yyruleno=3D=3D262); > + /* (263) columnlist ::=3D columnlist COMMA columnname carglist = */ yytestcase(yyruleno=3D=3D263); > + /* (264) columnlist ::=3D columnname carglist */ = yytestcase(yyruleno=3D=3D264); > + /* (265) typetoken ::=3D typename */ yytestcase(yyruleno=3D=3D265= ); > + /* (266) typename ::=3D ID|STRING */ yytestcase(yyruleno=3D=3D266= ); > + /* (267) signed ::=3D plus_num (OPTIMIZED OUT) */ = assert(yyruleno!=3D267); > + /* (268) signed ::=3D minus_num (OPTIMIZED OUT) */ = assert(yyruleno!=3D268); > + /* (269) carglist ::=3D carglist ccons */ = yytestcase(yyruleno=3D=3D269); > + /* (270) carglist ::=3D */ yytestcase(yyruleno=3D=3D270); > + /* (271) ccons ::=3D NULL onconf */ yytestcase(yyruleno=3D=3D271)= ; > + /* (272) conslist_opt ::=3D COMMA conslist */ = yytestcase(yyruleno=3D=3D272); > + /* (273) conslist ::=3D conslist tconscomma tcons */ = yytestcase(yyruleno=3D=3D273); > + /* (274) conslist ::=3D tcons (OPTIMIZED OUT) */ = assert(yyruleno!=3D274); > + /* (275) tconscomma ::=3D */ yytestcase(yyruleno=3D=3D275); > + /* (276) defer_subclause_opt ::=3D defer_subclause (OPTIMIZED = OUT) */ assert(yyruleno!=3D276); > + /* (277) resolvetype ::=3D raisetype (OPTIMIZED OUT) */ = assert(yyruleno!=3D277); > + /* (278) selectnowith ::=3D oneselect (OPTIMIZED OUT) */ = assert(yyruleno!=3D278); > + /* (279) oneselect ::=3D values */ yytestcase(yyruleno=3D=3D279);= > + /* (280) sclp ::=3D selcollist COMMA */ = yytestcase(yyruleno=3D=3D280); > + /* (281) as ::=3D ID|STRING */ yytestcase(yyruleno=3D=3D281); > + /* (282) join_nm ::=3D ID|INDEXED */ yytestcase(yyruleno=3D=3D282= ); > + /* (283) join_nm ::=3D JOIN_KW */ yytestcase(yyruleno=3D=3D283); > + /* (284) expr ::=3D term (OPTIMIZED OUT) */ = assert(yyruleno!=3D284); > + /* (285) exprlist ::=3D nexprlist */ yytestcase(yyruleno=3D=3D285= ); > + /* (286) nmnum ::=3D plus_num (OPTIMIZED OUT) */ = assert(yyruleno!=3D286); > + /* (287) nmnum ::=3D STRING */ yytestcase(yyruleno=3D=3D287); > + /* (288) nmnum ::=3D nm */ yytestcase(yyruleno=3D=3D288); > + /* (289) nmnum ::=3D ON */ yytestcase(yyruleno=3D=3D289); > + /* (290) nmnum ::=3D DELETE */ yytestcase(yyruleno=3D=3D290); > + /* (291) nmnum ::=3D DEFAULT */ yytestcase(yyruleno=3D=3D291); > + /* (292) plus_num ::=3D INTEGER|FLOAT */ = yytestcase(yyruleno=3D=3D292); > + /* (293) foreach_clause ::=3D */ yytestcase(yyruleno=3D=3D293); > + /* (294) foreach_clause ::=3D FOR EACH ROW */ = yytestcase(yyruleno=3D=3D294); > + /* (295) trnm ::=3D nm */ yytestcase(yyruleno=3D=3D295); > + /* (296) tridxby ::=3D */ yytestcase(yyruleno=3D=3D296); > 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) ::=3D 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 ::=3D DROP TRIGGER ifexists(NOERR) = fullname(X). { > %endif !SQLITE_OMIT_TRIGGER >=20 > ////////////////////////// REINDEX collation = ////////////////////////////////// > -%ifndef SQLITE_OMIT_REINDEX > -cmd ::=3D REINDEX. {sqlite3Reindex(pParse, 0, 0);} > -cmd ::=3D REINDEX nm(X). {sqlite3Reindex(pParse, &X, 0);} > -cmd ::=3D 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: =E2=80=98commend' has different meaning from =E2=80=98comment=E2=80=99= . > +/* %ifndef SQLITE_OMIT_REINDEX */ > +/* cmd ::=3D REINDEX. {sqlite3Reindex(pParse, 0, 0);} = */ > +/* cmd ::=3D REINDEX nm(X). {sqlite3Reindex(pParse, &X, 0);} = */ > +/* cmd ::=3D REINDEX nm(X) ON nm(Y). {sqlite3Reindex(pParse, &X, = &Y);} */ > +/* %endif SQLITE_OMIT_REINDEX */ >=20 > /////////////////////////////////// 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 =3D 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=E2=80=9D} Personally I stick to the point that this error message is awful and = confusing. But as far as this is temporary =E2=80=98fix=E2=80=99, 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 =3D require("sqltester") > -test:plan(6) > +test:plan(5) >=20 > test:execsql " DROP TABLE IF EXISTS t1 " > test:execsql " DROP TABLE IF EXISTS t2 " > @@ -69,15 +69,16 @@ test:do_execsql_test( > -- > }) >=20 > -test:do_execsql_test( > - "index-1.6", > - [[ > - REINDEX t1ix1 ON t1; > - ]], > - { > - -- > - > - -- > - }) > +-- This part of test is banned in scope of #2174 > +-- test:do_execsql_test( > +-- "index-1.6", > +-- [[ > +-- REINDEX t1ix1 ON t1; > +-- ]], > +-- { > +-- -- > +-- > +-- -- > +-- }) >=20 > 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 =3D require("sqltester") > local json =3D require("json") > -test:plan(36) > +test:plan(34) >=20 > --!./tcltestrunner.lua > -- 2003 December 17 > @@ -444,41 +444,42 @@ test:do_test( > }) >=20 > -- Do some additional EXPLAIN operations to exercise the displayP4 = logic. > -test:do_test( > - "misc3-6.10", > - function() > - local x =3D 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 =3D json.encode(x) > - return string.find(x, "\"SorterCompare\",%d+,%d+,%d+") > 0 > - end, true) > - > -test:do_test( > - "misc3-6.11-utf8", > - function() > - local x =3D test:execsql([[ > - EXPLAIN SELECT a+123456789012, b*4.5678, c FROM ex1 ORDER = BY +a, b DESC > - ]]) > - x =3D json.encode(x) > - local y =3D {} > - 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, { > - -- > - 1, 1, 1, 1 > - -- > - }) > +-- This part of test is disabled in scope of #2174 > +-- test:do_test( > +-- "misc3-6.10", > +-- function() > +-- local x =3D 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 =3D json.encode(x) > +-- return string.find(x, "\"SorterCompare\",%d+,%d+,%d+") > 0 > +-- end, true) > +-- > +-- test:do_test( > +-- "misc3-6.11-utf8", > +-- function() > +-- local x =3D test:execsql([[ > +-- EXPLAIN SELECT a+123456789012, b*4.5678, c FROM ex1 = ORDER BY +a, b DESC > +-- ]]) > +-- x =3D json.encode(x) > +-- local y =3D {} > +-- 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, { > +-- -- > +-- 1, 1, 1, 1 > +-- -- > +-- }) >=20 >=20 >=20 > 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 =3D app > description =3D Database tests with #! using TAP > +disabled =3D > + reindex.test.lua ; This test is banned in scope of #2174 > lua_libs =3D lua/sqltester.lua ../sql/lua/sql_tokenizer.lua = ../box/lua/identifier.lua > is_parallel =3D True > --=20 > 2.7.4 >=20 >=20 >=20 >=20