summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2018-04-10 23:20:21 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2018-04-10 23:20:21 +0200
commitd2ebe414647e066d8e1b5bac97a11f263b97f249 (patch)
tree14c29d874c8d7d345bff9880134edff0f48c140e
parent6e8cce08f90e2fd81e0c977de3787acbbd70add8 (diff)
downloadphp-git-d2ebe414647e066d8e1b5bac97a11f263b97f249.tar.gz
Update bundled libsqlite to 3.23.1
-rw-r--r--NEWS2
-rw-r--r--ext/sqlite3/libsqlite/sqlite3.c2649
-rw-r--r--ext/sqlite3/libsqlite/sqlite3.h38
3 files changed, 1410 insertions, 1279 deletions
diff --git a/NEWS b/NEWS
index 693ee4e7a2..5a88496560 100644
--- a/NEWS
+++ b/NEWS
@@ -177,7 +177,7 @@ PHP NEWS
(carusogabriel)
- SQLite3:
- . Updated bundled libsqlite to 3.23.0. (cmb)
+ . Updated bundled libsqlite to 3.23.1. (cmb)
- Standard:
. Added is_countable() function. (Gabriel Caruso)
diff --git a/ext/sqlite3/libsqlite/sqlite3.c b/ext/sqlite3/libsqlite/sqlite3.c
index 77dc0278d6..c49f89c923 100644
--- a/ext/sqlite3/libsqlite/sqlite3.c
+++ b/ext/sqlite3/libsqlite/sqlite3.c
@@ -1,6 +1,6 @@
/******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite
-** version 3.23.0. By combining all the individual C code files into this
+** version 3.23.1. By combining all the individual C code files into this
** single large file, the entire code can be compiled as a single translation
** unit. This allows many compilers to do optimizations that would not be
** possible if the files were compiled separately. Performance improvements
@@ -1147,9 +1147,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
-#define SQLITE_VERSION "3.23.0"
-#define SQLITE_VERSION_NUMBER 3023000
-#define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
+#define SQLITE_VERSION "3.23.1"
+#define SQLITE_VERSION_NUMBER 3023001
+#define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
/*
** CAPI3REF: Run-Time Library Version Numbers
@@ -11130,6 +11130,13 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*);
** is only allocated and populated if one or more conflicts were encountered
** while applying the patchset. See comments surrounding the sqlite3_rebaser
** APIs for further details.
+**
+** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
+** may be modified by passing a combination of
+** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
+**
+** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
+** and therefore subject to change.
*/
SQLITE_API int sqlite3changeset_apply(
sqlite3 *db, /* Apply change to "main" db of this handle */
@@ -11160,9 +11167,28 @@ SQLITE_API int sqlite3changeset_apply_v2(
sqlite3_changeset_iter *p /* Handle describing change and conflict */
),
void *pCtx, /* First argument passed to xConflict */
- void **ppRebase, int *pnRebase
+ void **ppRebase, int *pnRebase, /* OUT: Rebase data */
+ int flags /* Combination of SESSION_APPLY_* flags */
);
+/*
+** CAPI3REF: Flags for sqlite3changeset_apply_v2
+**
+** The following flags may passed via the 9th parameter to
+** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
+**
+** <dl>
+** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
+** Usually, the sessions module encloses all operations performed by
+** a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
+** SAVEPOINT is committed if the changeset or patchset is successfully
+** applied, or rolled back if an error occurs. Specifying this flag
+** causes the sessions module to omit this savepoint. In this case, if the
+** caller has an open transaction or savepoint when apply_v2() is called,
+** it may revert the partially applied changeset by rolling it back.
+*/
+#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
+
/*
** CAPI3REF: Constants Passed To The Conflict Handler
**
@@ -11423,6 +11449,7 @@ SQLITE_API void sqlite3rebaser_delete(sqlite3_rebaser *p);
** <table border=1 style="margin-left:8ex;margin-right:8ex">
** <tr><th>Streaming function<th>Non-streaming equivalent</th>
** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
+** <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2]
** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
@@ -11532,7 +11559,8 @@ SQLITE_API int sqlite3changeset_apply_v2_strm(
sqlite3_changeset_iter *p /* Handle describing change and conflict */
),
void *pCtx, /* First argument passed to xConflict */
- void **ppRebase, int *pnRebase
+ void **ppRebase, int *pnRebase,
+ int flags
);
SQLITE_API int sqlite3changeset_concat_strm(
int (*xInputA)(void *pIn, void *pData, int *pnData),
@@ -21287,6 +21315,7 @@ SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut){
** routine has no return value since the return value would be meaningless.
*/
SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){
+ if( id->pMethods==0 ) return SQLITE_NOTFOUND;
#ifdef SQLITE_TEST
if( op!=SQLITE_FCNTL_COMMIT_PHASETWO
&& op!=SQLITE_FCNTL_LOCK_TIMEOUT
@@ -21304,7 +21333,6 @@ SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){
DO_OS_MALLOC_TEST(id);
}
#endif
- if( id->pMethods==0 ) return SQLITE_NOTFOUND;
return id->pMethods->xFileControl(id, op, pArg);
}
SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file *id, int op, void *pArg){
@@ -99000,12 +99028,16 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){
if( ExprHasProperty(pExpr, EP_FromJoin) ) return WRC_Prune;
switch( pExpr->op ){
+ case TK_ISNOT:
+ case TK_NOT:
case TK_ISNULL:
case TK_IS:
case TK_OR:
case TK_CASE:
case TK_IN:
case TK_FUNCTION:
+ testcase( pExpr->op==TK_ISNOT );
+ testcase( pExpr->op==TK_NOT );
testcase( pExpr->op==TK_ISNULL );
testcase( pExpr->op==TK_IS );
testcase( pExpr->op==TK_OR );
@@ -99019,6 +99051,27 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){
return WRC_Abort;
}
return WRC_Prune;
+
+ /* Virtual tables are allowed to use constraints like x=NULL. So
+ ** a term of the form x=y does not prove that y is not null if x
+ ** is the column of a virtual table */
+ case TK_EQ:
+ case TK_NE:
+ case TK_LT:
+ case TK_LE:
+ case TK_GT:
+ case TK_GE:
+ testcase( pExpr->op==TK_EQ );
+ testcase( pExpr->op==TK_NE );
+ testcase( pExpr->op==TK_LT );
+ testcase( pExpr->op==TK_LE );
+ testcase( pExpr->op==TK_GT );
+ testcase( pExpr->op==TK_GE );
+ if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->pTab))
+ || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->pTab))
+ ){
+ return WRC_Prune;
+ }
default:
return WRC_Continue;
}
@@ -104606,7 +104659,7 @@ SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
Vdbe *v = pParse->pVdbe;
assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_SCHEMA_VERSION,
- db->aDb[iDb].pSchema->schema_cookie+1);
+ (int)(1+(unsigned)db->aDb[iDb].pSchema->schema_cookie));
}
/*
@@ -124595,9 +124648,7 @@ static int selectExpander(Walker *pWalker, Select *p){
}
pTabList = p->pSrc;
pEList = p->pEList;
- if( OK_IF_ALWAYS_TRUE(p->pWith) ){
- sqlite3WithPush(pParse, p->pWith, 0);
- }
+ sqlite3WithPush(pParse, p->pWith, 0);
/* Make sure cursor numbers have been assigned to all entries in
** the FROM clause of the SELECT statement.
@@ -128060,7 +128111,7 @@ SQLITE_PRIVATE void sqlite3Update(
regKey = ++pParse->nMem;
iEph = pParse->nTab++;
- sqlite3VdbeAddOp2(v, OP_Null, 0, iPk);
+ sqlite3VdbeAddOp3(v, OP_Null, 0, iPk, iPk+nPk-1);
addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk);
sqlite3VdbeSetP4KeyInfo(pParse, pPk);
}
@@ -130232,7 +130283,7 @@ SQLITE_API int sqlite3_vtab_config(sqlite3 *db, int op, ...){
** Trace output macros
*/
#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG)
-/***/ int sqlite3WhereTrace;
+/***/ extern int sqlite3WhereTrace;
#endif
#if defined(SQLITE_DEBUG) \
&& (defined(SQLITE_TEST) || defined(SQLITE_ENABLE_WHERETRACE))
@@ -136885,8 +136936,8 @@ static int whereLoopAddBtreeIndex(
pNew = pBuilder->pNew;
if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;
- WHERETRACE(0x800, ("BEGIN addBtreeIdx(%s), nEq=%d\n",
- pProbe->zName, pNew->u.btree.nEq));
+ WHERETRACE(0x800, ("BEGIN %s.addBtreeIdx(%s), nEq=%d\n",
+ pProbe->pTable->zName,pProbe->zName, pNew->u.btree.nEq));
assert( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 );
assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 );
@@ -137172,8 +137223,8 @@ static int whereLoopAddBtreeIndex(
pNew->wsFlags = saved_wsFlags;
}
- WHERETRACE(0x800, ("END addBtreeIdx(%s), nEq=%d, rc=%d\n",
- pProbe->zName, saved_nEq, rc));
+ WHERETRACE(0x800, ("END %s.addBtreeIdx(%s), nEq=%d, rc=%d\n",
+ pProbe->pTable->zName, pProbe->zName, saved_nEq, rc));
return rc;
}
@@ -137611,9 +137662,9 @@ static int whereLoopAddVirtualOne(
|| pNew->aLTerm[iTerm]!=0
|| pIdxCons->usable==0
){
- rc = SQLITE_ERROR;
sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
- return rc;
+ testcase( pIdxInfo->needToFreeIdxStr );
+ return SQLITE_ERROR;
}
testcase( iTerm==nConstraint-1 );
testcase( j==0 );
@@ -137641,6 +137692,15 @@ static int whereLoopAddVirtualOne(
pNew->u.vtab.omitMask &= ~mNoOmit;
pNew->nLTerm = mxTerm+1;
+ for(i=0; i<=mxTerm; i++){
+ if( pNew->aLTerm[i]==0 ){
+ /* The non-zero argvIdx values must be contiguous. Raise an
+ ** error if they are not */
+ sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
+ testcase( pIdxInfo->needToFreeIdxStr );
+ return SQLITE_ERROR;
+ }
+ }
assert( pNew->nLTerm<=pNew->nLSlot );
pNew->u.vtab.idxNum = pIdxInfo->idxNum;
pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr;
@@ -137756,6 +137816,7 @@ static int whereLoopAddVirtual(
}
/* First call xBestIndex() with all constraints usable. */
+ WHERETRACE(0x800, ("BEGIN %s.addVirtual()\n", pSrc->pTab->zName));
WHERETRACE(0x40, (" VirtualOne: all usable\n"));
rc = whereLoopAddVirtualOne(pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn);
@@ -137831,6 +137892,7 @@ static int whereLoopAddVirtual(
if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr);
sqlite3DbFreeNN(pParse->db, p);
+ WHERETRACE(0x800, ("END %s.addVirtual(), rc=%d\n", pSrc->pTab->zName, rc));
return rc;
}
#endif /* SQLITE_OMIT_VIRTUALTABLE */
@@ -139971,17 +140033,17 @@ typedef union {
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
#define YYFALLBACK 1
-#define YYNSTATE 466
-#define YYNRULE 330
+#define YYNSTATE 472
+#define YYNRULE 333
#define YYNTOKEN 143
-#define YY_MAX_SHIFT 465
-#define YY_MIN_SHIFTREDUCE 675
-#define YY_MAX_SHIFTREDUCE 1004
-#define YY_ERROR_ACTION 1005
-#define YY_ACCEPT_ACTION 1006
-#define YY_NO_ACTION 1007
-#define YY_MIN_REDUCE 1008
-#define YY_MAX_REDUCE 1337
+#define YY_MAX_SHIFT 471
+#define YY_MIN_SHIFTREDUCE 681
+#define YY_MAX_SHIFTREDUCE 1013
+#define YY_ERROR_ACTION 1014
+#define YY_ACCEPT_ACTION 1015
+#define YY_NO_ACTION 1016
+#define YY_MIN_REDUCE 1017
+#define YY_MAX_REDUCE 1349
/************* End control #defines *******************************************/
/* Define the yytestcase() macro to be a no-op if is not already defined
@@ -140047,322 +140109,324 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
-#define YY_ACTTAB_COUNT (1541)
+#define YY_ACTTAB_COUNT (1566)
static const YYACTIONTYPE yy_action[] = {
- /* 0 */ 1006, 156, 156, 2, 1302, 90, 87, 179, 90, 87,
- /* 10 */ 179, 460, 1048, 460, 465, 1010, 460, 333, 1130, 335,
- /* 20 */ 246, 330, 112, 303, 439, 1258, 304, 419, 1129, 1087,
- /* 30 */ 72, 798, 50, 50, 50, 50, 331, 30, 30, 799,
- /* 40 */ 951, 364, 371, 97, 98, 88, 983, 983, 859, 862,
- /* 50 */ 851, 851, 95, 95, 96, 96, 96, 96, 120, 371,
- /* 60 */ 370, 120, 348, 22, 90, 87, 179, 438, 423, 438,
- /* 70 */ 440, 335, 420, 385, 90, 87, 179, 116, 73, 163,
- /* 80 */ 848, 848, 860, 863, 94, 94, 94, 94, 93, 93,
- /* 90 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983,
- /* 100 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
- /* 110 */ 718, 365, 339, 93, 93, 92, 92, 92, 91, 361,
- /* 120 */ 99, 371, 453, 335, 94, 94, 94, 94, 93, 93,
- /* 130 */ 92, 92, 92, 91, 361, 852, 94, 94, 94, 94,
- /* 140 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88,
- /* 150 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96,
- /* 160 */ 96, 96, 92, 92, 92, 91, 361, 838, 132, 195,
- /* 170 */ 58, 244, 412, 409, 408, 335, 457, 457, 457, 304,
- /* 180 */ 59, 332, 831, 407, 394, 962, 830, 391, 94, 94,
- /* 190 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97,
- /* 200 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95,
- /* 210 */ 96, 96, 96, 96, 426, 357, 460, 830, 830, 832,
- /* 220 */ 91, 361, 962, 963, 964, 195, 459, 335, 412, 409,
- /* 230 */ 408, 280, 361, 820, 132, 11, 11, 50, 50, 407,
- /* 240 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91,
- /* 250 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851,
- /* 260 */ 95, 95, 96, 96, 96, 96, 460, 221, 460, 264,
- /* 270 */ 375, 254, 438, 428, 1276, 1276, 383, 1074, 1053, 335,
- /* 280 */ 245, 422, 299, 713, 271, 271, 1074, 50, 50, 50,
- /* 290 */ 50, 962, 94, 94, 94, 94, 93, 93, 92, 92,
- /* 300 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862,
- /* 310 */ 851, 851, 95, 95, 96, 96, 96, 96, 90, 87,
- /* 320 */ 179, 1306, 438, 437, 438, 418, 368, 253, 962, 963,
- /* 330 */ 964, 335, 360, 360, 360, 706, 359, 358, 324, 962,
- /* 340 */ 1281, 951, 364, 230, 94, 94, 94, 94, 93, 93,
- /* 350 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983,
- /* 360 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
- /* 370 */ 769, 460, 120, 226, 226, 366, 962, 963, 964, 1089,
- /* 380 */ 990, 900, 990, 335, 1057, 425, 421, 839, 759, 759,
- /* 390 */ 425, 427, 50, 50, 432, 381, 94, 94, 94, 94,
- /* 400 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88,
- /* 410 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96,
- /* 420 */ 96, 96, 460, 259, 460, 120, 117, 354, 942, 1332,
- /* 430 */ 942, 1333, 1332, 278, 1333, 335, 680, 681, 682, 825,
- /* 440 */ 201, 176, 303, 50, 50, 49, 49, 404, 94, 94,
- /* 450 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97,
- /* 460 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95,
- /* 470 */ 96, 96, 96, 96, 199, 460, 380, 265, 433, 380,
- /* 480 */ 265, 383, 256, 158, 258, 319, 1003, 335, 155, 940,
- /* 490 */ 177, 940, 273, 379, 276, 322, 34, 34, 302, 962,
- /* 500 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91,
- /* 510 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851,
- /* 520 */ 95, 95, 96, 96, 96, 96, 905, 905, 397, 460,
- /* 530 */ 301, 158, 101, 319, 941, 340, 962, 963, 964, 313,
- /* 540 */ 283, 449, 335, 327, 146, 1266, 1004, 257, 234, 248,
- /* 550 */ 35, 35, 94, 94, 94, 94, 93, 93, 92, 92,
- /* 560 */ 92, 91, 361, 709, 785, 1227, 97, 98, 88, 983,
- /* 570 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
- /* 580 */ 96, 962, 1227, 1229, 245, 422, 838, 198, 197, 196,
- /* 590 */ 1079, 1079, 1077, 1077, 1004, 1334, 320, 335, 172, 171,
- /* 600 */ 709, 831, 159, 271, 271, 830, 76, 94, 94, 94,
- /* 610 */ 94, 93, 93, 92, 92, 92, 91, 361, 962, 963,
- /* 620 */ 964, 97, 98, 88, 983, 983, 859, 862, 851, 851,
- /* 630 */ 95, 95, 96, 96, 96, 96, 830, 830, 832, 1157,
- /* 640 */ 1157, 199, 1157, 173, 1227, 231, 232, 1282, 2, 335,
- /* 650 */ 271, 764, 271, 820, 271, 271, 763, 389, 389, 389,
- /* 660 */ 132, 79, 94, 94, 94, 94, 93, 93, 92, 92,
- /* 670 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862,
- /* 680 */ 851, 851, 95, 95, 96, 96, 96, 96, 460, 264,
- /* 690 */ 223, 460, 1257, 783, 1223, 1157, 1086, 1082, 80, 271,
- /* 700 */ 78, 335, 340, 1031, 341, 344, 345, 902, 346, 10,
- /* 710 */ 10, 902, 25, 25, 94, 94, 94, 94, 93, 93,
- /* 720 */ 92, 92, 92, 91, 361, 97, 86, 88, 983, 983,
- /* 730 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
- /* 740 */ 1157, 270, 395, 117, 233, 263, 235, 70, 456, 341,
- /* 750 */ 225, 176, 335, 1305, 342, 133, 736, 966, 980, 249,
- /* 760 */ 1150, 396, 325, 1085, 1028, 178, 94, 94, 94, 94,
- /* 770 */ 93, 93, 92, 92, 92, 91, 361, 98, 88, 983,
- /* 780 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
- /* 790 */ 96, 783, 783, 132, 120, 966, 120, 120, 120, 798,
- /* 800 */ 252, 937, 335, 353, 321, 429, 355, 799, 822, 692,
- /* 810 */ 390, 203, 446, 450, 372, 716, 454, 94, 94, 94,
- /* 820 */ 94, 93, 93, 92, 92, 92, 91, 361, 88, 983,
- /* 830 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
- /* 840 */ 96, 84, 455, 1225, 3, 1209, 120, 120, 382, 387,
- /* 850 */ 120, 203, 1271, 716, 384, 168, 266, 203, 458, 72,
- /* 860 */ 260, 1246, 84, 455, 178, 3, 378, 94, 94, 94,
- /* 870 */ 94, 93, 93, 92, 92, 92, 91, 361, 350, 458,
- /* 880 */ 1245, 362, 430, 213, 228, 290, 415, 285, 414, 200,
- /* 890 */ 783, 882, 444, 726, 725, 405, 283, 921, 209, 921,
- /* 900 */ 281, 132, 362, 72, 838, 289, 147, 733, 734, 392,
- /* 910 */ 81, 82, 922, 444, 922, 267, 288, 83, 362, 462,
- /* 920 */ 461, 272, 132, 830, 23, 838, 388, 923, 1216, 923,
- /* 930 */ 1056, 81, 82, 84, 455, 899, 3, 899, 83, 362,
- /* 940 */ 462, 461, 761, 962, 830, 75, 1, 443, 275, 747,
- /* 950 */ 458, 5, 962, 204, 830, 830, 832, 833, 18, 748,
- /* 960 */ 229, 962, 277, 19, 153, 317, 317, 316, 216, 314,
- /* 970 */ 279, 460, 689, 362, 1055, 830, 830, 832, 833, 18,
- /* 980 */ 962, 963, 964, 962, 444, 181, 460, 251, 981, 962,
- /* 990 */ 963, 964, 8, 8, 20, 250, 838, 1070, 962, 963,
- /* 1000 */ 964, 417, 81, 82, 768, 204, 347, 36, 36, 83,
- /* 1010 */ 362, 462, 461, 1054, 284, 830, 84, 455, 1123, 3,
- /* 1020 */ 962, 963, 964, 460, 183, 962, 981, 764, 889, 1107,
- /* 1030 */ 460, 184, 763, 458, 132, 182, 74, 455, 460, 3,
- /* 1040 */ 981, 898, 834, 898, 8, 8, 830, 830, 832, 833,
- /* 1050 */ 18, 8, 8, 458, 219, 1156, 362, 1103, 349, 8,
- /* 1060 */ 8, 240, 962, 963, 964, 236, 889, 444, 792, 336,
- /* 1070 */ 158, 203, 885, 435, 700, 209, 362, 114, 981, 838,
- /* 1080 */ 834, 227, 334, 1114, 441, 81, 82, 444, 442, 305,
- /* 1090 */ 784, 306, 83, 362, 462, 461, 369, 1162, 830, 838,
- /* 1100 */ 460, 1037, 237, 1030, 237, 81, 82, 7, 96, 96,
- /* 1110 */ 96, 96, 83, 362, 462, 461, 1019, 1018, 830, 1020,
- /* 1120 */ 1289, 37, 37, 400, 96, 96, 96, 96, 89, 830,
- /* 1130 */ 830, 832, 833, 18, 1100, 318, 962, 292, 94, 94,
- /* 1140 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 830,
- /* 1150 */ 830, 832, 833, 18, 94, 94, 94, 94, 93, 93,
- /* 1160 */ 92, 92, 92, 91, 361, 359, 358, 226, 226, 727,
- /* 1170 */ 294, 296, 460, 962, 963, 964, 460, 989, 160, 425,
- /* 1180 */ 170, 1295, 262, 460, 987, 374, 988, 386, 1145, 255,
- /* 1190 */ 326, 460, 373, 38, 38, 410, 174, 39, 39, 413,
- /* 1200 */ 460, 287, 460, 1053, 40, 40, 298, 728, 1220, 990,
- /* 1210 */ 445, 990, 26, 26, 1219, 460, 311, 460, 169, 1292,
- /* 1220 */ 460, 27, 27, 29, 29, 998, 460, 206, 135, 995,
- /* 1230 */ 1265, 1263, 460, 57, 60, 460, 41, 41, 42, 42,
- /* 1240 */ 460, 43, 43, 460, 343, 351, 460, 9, 9, 460,
- /* 1250 */ 144, 460, 130, 44, 44, 460, 103, 103, 460, 137,
- /* 1260 */ 70, 45, 45, 460, 46, 46, 460, 31, 31, 1142,
- /* 1270 */ 47, 47, 48, 48, 460, 376, 32, 32, 460, 122,
- /* 1280 */ 122, 460, 157, 460, 123, 123, 139, 124, 124, 460,
- /* 1290 */ 186, 460, 377, 460, 115, 54, 54, 460, 403, 33,
- /* 1300 */ 33, 460, 104, 104, 51, 51, 460, 161, 460, 140,
- /* 1310 */ 105, 105, 106, 106, 102, 102, 460, 141, 121, 121,
- /* 1320 */ 460, 142, 119, 119, 190, 460, 1152, 110, 110, 109,
- /* 1330 */ 109, 702, 460, 148, 393, 65, 460, 107, 107, 460,
- /* 1340 */ 323, 108, 108, 399, 460, 1234, 53, 53, 1214, 269,
- /* 1350 */ 154, 416, 1115, 55, 55, 220, 401, 52, 52, 191,
- /* 1360 */ 24, 24, 274, 192, 193, 28, 28, 1021, 328, 702,
- /* 1370 */ 1073, 352, 1072, 718, 1071, 431, 1111, 1064, 329, 1045,
- /* 1380 */ 69, 205, 6, 291, 1044, 286, 1112, 1043, 1304, 1110,
- /* 1390 */ 293, 300, 295, 297, 1063, 1200, 1109, 77, 241, 448,
- /* 1400 */ 356, 452, 436, 100, 214, 71, 434, 1027, 1093, 21,
- /* 1410 */ 463, 242, 243, 957, 215, 217, 218, 464, 309, 307,
- /* 1420 */ 308, 310, 1016, 125, 1250, 1251, 1011, 1249, 126, 127,
- /* 1430 */ 1248, 113, 676, 337, 238, 338, 134, 363, 167, 1041,
- /* 1440 */ 1040, 56, 247, 367, 180, 897, 111, 895, 136, 1038,
- /* 1450 */ 818, 128, 138, 750, 261, 911, 185, 143, 145, 61,
- /* 1460 */ 62, 63, 64, 129, 914, 187, 188, 910, 118, 12,
- /* 1470 */ 189, 903, 268, 992, 203, 162, 398, 150, 149, 691,
- /* 1480 */ 402, 288, 194, 406, 151, 411, 66, 13, 729, 239,
- /* 1490 */ 282, 14, 67, 131, 837, 836, 865, 758, 15, 4,
- /* 1500 */ 68, 762, 175, 222, 224, 424, 152, 869, 791, 202,
- /* 1510 */ 786, 75, 72, 880, 866, 864, 16, 17, 920, 207,
- /* 1520 */ 919, 208, 447, 946, 164, 211, 947, 210, 165, 451,
- /* 1530 */ 868, 166, 315, 835, 701, 85, 212, 1297, 312, 952,
- /* 1540 */ 1296,
+ /* 0 */ 1169, 1015, 167, 167, 1, 168, 466, 1313, 466, 1083,
+ /* 10 */ 1062, 466, 97, 94, 183, 1057, 466, 329, 1083, 342,
+ /* 20 */ 97, 94, 183, 459, 459, 459, 436, 57, 57, 57,
+ /* 30 */ 57, 807, 57, 57, 367, 367, 367, 57, 57, 808,
+ /* 40 */ 1270, 1088, 1088, 104, 105, 95, 991, 991, 868, 871,
+ /* 50 */ 860, 860, 102, 102, 103, 103, 103, 103, 233, 233,
+ /* 60 */ 326, 1011, 449, 437, 449, 446, 351, 449, 461, 1142,
+ /* 70 */ 463, 342, 449, 426, 1316, 209, 180, 742, 80, 299,
+ /* 80 */ 857, 857, 869, 872, 101, 101, 101, 101, 100, 100,
+ /* 90 */ 99, 99, 99, 98, 368, 104, 105, 95, 991, 991,
+ /* 100 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
+ /* 110 */ 99, 99, 99, 98, 368, 355, 97, 94, 183, 228,
+ /* 120 */ 106, 1012, 407, 342, 101, 101, 101, 101, 100, 100,
+ /* 130 */ 99, 99, 99, 98, 368, 861, 101, 101, 101, 101,
+ /* 140 */ 100, 100, 99, 99, 99, 98, 368, 104, 105, 95,
+ /* 150 */ 991, 991, 868, 871, 860, 860, 102, 102, 103, 103,
+ /* 160 */ 103, 103, 201, 368, 375, 420, 417, 416, 387, 273,
+ /* 170 */ 65, 97, 94, 183, 168, 342, 415, 951, 1343, 396,
+ /* 180 */ 66, 1343, 320, 959, 371, 970, 334, 340, 101, 101,
+ /* 190 */ 101, 101, 100, 100, 99, 99, 99, 98, 368, 104,
+ /* 200 */ 105, 95, 991, 991, 868, 871, 860, 860, 102, 102,
+ /* 210 */ 103, 103, 103, 103, 373, 100, 100, 99, 99, 99,
+ /* 220 */ 98, 368, 970, 971, 972, 201, 1100, 342, 420, 417,
+ /* 230 */ 416, 287, 366, 365, 337, 970, 1162, 463, 949, 415,
+ /* 240 */ 101, 101, 101, 101, 100, 100, 99, 99, 99, 98,
+ /* 250 */ 368, 104, 105, 95, 991, 991, 868, 871, 860, 860,
+ /* 260 */ 102, 102, 103, 103, 103, 103, 777, 241, 233, 233,
+ /* 270 */ 9, 847, 970, 971, 972, 390, 998, 1141, 998, 342,
+ /* 280 */ 463, 252, 829, 719, 98, 368, 840, 298, 338, 142,
+ /* 290 */ 839, 339, 101, 101, 101, 101, 100, 100, 99, 99,
+ /* 300 */ 99, 98, 368, 104, 105, 95, 991, 991, 868, 871,
+ /* 310 */ 860, 860, 102, 102, 103, 103, 103, 103, 272, 466,
+ /* 320 */ 392, 839, 839, 841, 97, 94, 183, 390, 1317, 253,
+ /* 330 */ 456, 342, 125, 166, 807, 712, 208, 407, 386, 970,
+ /* 340 */ 57, 57, 808, 238, 101, 101, 101, 101, 100, 100,
+ /* 350 */ 99, 99, 99, 98, 368, 104, 105, 95, 991, 991,
+ /* 360 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
+ /* 370 */ 466, 108, 466, 267, 465, 442, 970, 971, 972, 261,
+ /* 380 */ 951, 1344, 909, 342, 1344, 142, 829, 848, 1292, 959,
+ /* 390 */ 371, 55, 55, 57, 57, 242, 101, 101, 101, 101,
+ /* 400 */ 100, 100, 99, 99, 99, 98, 368, 104, 105, 95,
+ /* 410 */ 991, 991, 868, 871, 860, 860, 102, 102, 103, 103,
+ /* 420 */ 103, 103, 272, 382, 262, 253, 456, 310, 364, 253,
+ /* 430 */ 456, 86, 264, 84, 266, 342, 441, 176, 175, 834,
+ /* 440 */ 464, 949, 767, 767, 332, 313, 1094, 396, 101, 101,
+ /* 450 */ 101, 101, 100, 100, 99, 99, 99, 98, 368, 104,
+ /* 460 */ 105, 95, 991, 991, 868, 871, 860, 860, 102, 102,
+ /* 470 */ 103, 103, 103, 103, 227, 227, 233, 233, 233, 233,
+ /* 480 */ 387, 273, 234, 234, 326, 950, 463, 342, 463, 298,
+ /* 490 */ 463, 914, 914, 404, 463, 1037, 123, 265, 27, 970,
+ /* 500 */ 101, 101, 101, 101, 100, 100, 99, 99, 99, 98,
+ /* 510 */ 368, 104, 105, 95, 991, 991, 868, 871, 860, 860,
+ /* 520 */ 102, 102, 103, 103, 103, 103, 435, 233, 233, 466,
+ /* 530 */ 285, 686, 687, 688, 127, 271, 970, 971, 972, 463,
+ /* 540 */ 1345, 327, 342, 407, 157, 1012, 988, 13, 13, 181,
+ /* 550 */ 41, 41, 101, 101, 101, 101, 100, 100, 99, 99,
+ /* 560 */ 99, 98, 368, 715, 794, 378, 104, 105, 95, 991,
+ /* 570 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
+ /* 580 */ 103, 970, 378, 377, 346, 239, 847, 1086, 1086, 280,
+ /* 590 */ 1169, 283, 204, 203, 202, 177, 298, 342, 407, 298,
+ /* 600 */ 715, 840, 169, 299, 407, 839, 82, 101, 101, 101,
+ /* 610 */ 101, 100, 100, 99, 99, 99, 98, 368, 970, 971,
+ /* 620 */ 972, 104, 105, 95, 991, 991, 868, 871, 860, 860,
+ /* 630 */ 102, 102, 103, 103, 103, 103, 839, 839, 841, 362,
+ /* 640 */ 240, 124, 1169, 172, 126, 378, 1269, 1169, 1066, 342,
+ /* 650 */ 253, 456, 407, 407, 407, 396, 352, 401, 407, 429,
+ /* 660 */ 398, 85, 101, 101, 101, 101, 100, 100, 99, 99,
+ /* 670 */ 99, 98, 368, 104, 105, 95, 991, 991, 868, 871,
+ /* 680 */ 860, 860, 102, 102, 103, 103, 103, 103, 1169, 466,
+ /* 690 */ 230, 233, 233, 792, 1235, 1095, 1091, 1293, 1, 77,
+ /* 700 */ 278, 342, 205, 463, 974, 911, 1040, 348, 353, 911,
+ /* 710 */ 42, 42, 79, 403, 101, 101, 101, 101, 100, 100,
+ /* 720 */ 99, 99, 99, 98, 368, 104, 93, 95, 991, 991,
+ /* 730 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
+ /* 740 */ 402, 9, 974, 243, 772, 458, 348, 232, 180, 771,
+ /* 750 */ 946, 312, 342, 328, 363, 349, 143, 831, 389, 1278,
+ /* 760 */ 211, 211, 21, 347, 432, 182, 101, 101, 101, 101,
+ /* 770 */ 100, 100, 99, 99, 99, 98, 368, 105, 95, 991,
+ /* 780 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
+ /* 790 */ 103, 792, 724, 22, 732, 731, 233, 233, 1239, 256,
+ /* 800 */ 391, 274, 342, 211, 79, 360, 257, 413, 463, 397,
+ /* 810 */ 207, 288, 260, 450, 79, 1239, 1241, 101, 101, 101,
+ /* 820 */ 101, 100, 100, 99, 99, 99, 98, 368, 95, 991,
+ /* 830 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
+ /* 840 */ 103, 91, 457, 296, 3, 233, 233, 5, 438, 212,
+ /* 850 */ 331, 394, 739, 740, 295, 898, 894, 463, 460, 207,
+ /* 860 */ 801, 1237, 722, 211, 698, 843, 1283, 101, 101, 101,
+ /* 870 */ 101, 100, 100, 99, 99, 99, 98, 368, 1239, 380,
+ /* 880 */ 357, 369, 233, 233, 989, 219, 236, 297, 423, 292,
+ /* 890 */ 422, 206, 454, 898, 463, 970, 91, 457, 290, 3,
+ /* 900 */ 722, 142, 268, 843, 847, 466, 1258, 149, 388, 425,
+ /* 910 */ 88, 89, 769, 460, 930, 87, 447, 90, 369, 468,
+ /* 920 */ 467, 385, 989, 839, 1257, 439, 57, 57, 395, 931,
+ /* 930 */ 1065, 158, 970, 971, 972, 772, 369, 471, 1019, 399,
+ /* 940 */ 771, 253, 456, 254, 932, 119, 891, 454, 233, 233,
+ /* 950 */ 4, 970, 1096, 275, 839, 839, 841, 842, 19, 847,
+ /* 960 */ 463, 449, 448, 163, 453, 88, 89, 776, 970, 1127,
+ /* 970 */ 279, 930, 90, 369, 468, 467, 91, 457, 839, 3,
+ /* 980 */ 235, 1064, 466, 1228, 233, 233, 931, 970, 970, 971,
+ /* 990 */ 972, 970, 908, 460, 908, 2, 463, 81, 457, 212,
+ /* 1000 */ 3, 932, 282, 10, 10, 970, 971, 972, 189, 839,
+ /* 1010 */ 839, 841, 842, 19, 460, 284, 369, 354, 907, 286,
+ /* 1020 */ 907, 753, 466, 1079, 970, 971, 972, 454, 970, 971,
+ /* 1030 */ 972, 754, 970, 1063, 989, 372, 792, 369, 1118, 847,
+ /* 1040 */ 291, 452, 466, 10, 10, 88, 89, 142, 454, 168,
+ /* 1050 */ 300, 412, 90, 369, 468, 467, 793, 356, 839, 706,
+ /* 1060 */ 847, 341, 121, 10, 10, 301, 88, 89, 379, 970,
+ /* 1070 */ 971, 972, 989, 90, 369, 468, 467, 244, 205, 839,
+ /* 1080 */ 1306, 245, 1135, 245, 250, 1168, 1114, 253, 456, 839,
+ /* 1090 */ 839, 841, 842, 19, 1125, 237, 122, 451, 1174, 733,
+ /* 1100 */ 324, 324, 323, 222, 321, 466, 1046, 695, 182, 225,
+ /* 1110 */ 839, 839, 841, 842, 19, 103, 103, 103, 103, 96,
+ /* 1120 */ 185, 466, 259, 1039, 1028, 170, 10, 10, 1027, 421,
+ /* 1130 */ 258, 1029, 1300, 708, 792, 466, 408, 734, 8, 347,
+ /* 1140 */ 444, 174, 12, 12, 290, 101, 101, 101, 101, 100,
+ /* 1150 */ 100, 99, 99, 99, 98, 368, 32, 32, 466, 187,
+ /* 1160 */ 466, 1111, 103, 103, 103, 103, 188, 466, 325, 138,
+ /* 1170 */ 186, 708, 303, 305, 307, 358, 970, 270, 393, 43,
+ /* 1180 */ 43, 44, 44, 1157, 333, 178, 418, 294, 45, 45,
+ /* 1190 */ 1232, 318, 101, 101, 101, 101, 100, 100, 99, 99,
+ /* 1200 */ 99, 98, 368, 381, 343, 366, 365, 466, 263, 253,
+ /* 1210 */ 456, 466, 1062, 970, 971, 972, 1231, 997, 309, 466,
+ /* 1220 */ 455, 466, 427, 466, 995, 173, 996, 1303, 46, 46,
+ /* 1230 */ 145, 376, 37, 37, 1006, 1277, 466, 214, 1275, 64,
+ /* 1240 */ 47, 47, 33, 33, 34, 34, 1003, 67, 466, 998,
+ /* 1250 */ 350, 998, 466, 155, 233, 233, 466, 36, 36, 24,
+ /* 1260 */ 140, 77, 1154, 466, 383, 466, 463, 428, 466, 48,
+ /* 1270 */ 48, 466, 147, 49, 49, 466, 150, 50, 50, 466,
+ /* 1280 */ 151, 152, 466, 384, 11, 11, 51, 51, 466, 110,
+ /* 1290 */ 110, 153, 52, 52, 411, 466, 38, 38, 466, 191,
+ /* 1300 */ 53, 53, 466, 54, 54, 466, 400, 466, 330, 39,
+ /* 1310 */ 39, 466, 1164, 466, 25, 466, 56, 56, 466, 131,
+ /* 1320 */ 131, 72, 466, 132, 132, 159, 133, 133, 61, 61,
+ /* 1330 */ 1226, 195, 40, 40, 111, 111, 58, 58, 406, 112,
+ /* 1340 */ 112, 466, 277, 113, 113, 466, 226, 466, 1246, 466,
+ /* 1350 */ 197, 466, 164, 466, 409, 466, 198, 466, 199, 466,
+ /* 1360 */ 335, 281, 109, 109, 466, 1030, 130, 130, 129, 129,
+ /* 1370 */ 117, 117, 116, 116, 114, 114, 115, 115, 60, 60,
+ /* 1380 */ 62, 62, 466, 359, 466, 59, 59, 424, 1082, 1081,
+ /* 1390 */ 1080, 724, 1073, 1054, 336, 293, 1053, 1052, 1315, 431,
+ /* 1400 */ 361, 76, 248, 31, 31, 35, 35, 1072, 249, 440,
+ /* 1410 */ 302, 434, 213, 1122, 6, 311, 1212, 107, 83, 251,
+ /* 1420 */ 78, 1123, 445, 220, 443, 1036, 304, 23, 1121, 469,
+ /* 1430 */ 965, 221, 223, 1104, 314, 224, 344, 317, 315, 316,
+ /* 1440 */ 470, 306, 1025, 1120, 308, 1262, 1020, 134, 120, 246,
+ /* 1450 */ 682, 370, 171, 255, 1263, 135, 184, 1261, 1260, 374,
+ /* 1460 */ 118, 906, 904, 827, 1050, 146, 136, 137, 148, 1049,
+ /* 1470 */ 63, 1047, 756, 190, 269, 920, 154, 156, 68, 69,
+ /* 1480 */ 70, 71, 139, 923, 192, 193, 144, 919, 345, 128,
+ /* 1490 */ 14, 194, 276, 211, 1000, 405, 196, 161, 912, 160,
+ /* 1500 */ 26, 697, 410, 295, 200, 289, 414, 162, 419, 73,
+ /* 1510 */ 15, 16, 141, 74, 28, 247, 846, 845, 735, 874,
+ /* 1520 */ 954, 75, 430, 955, 29, 433, 179, 229, 231, 800,
+ /* 1530 */ 165, 795, 87, 210, 889, 79, 875, 17, 873, 877,
+ /* 1540 */ 929, 18, 928, 216, 215, 878, 20, 30, 462, 844,
+ /* 1550 */ 707, 92, 766, 770, 7, 322, 217, 218, 319, 1308,
+ /* 1560 */ 960, 1016, 1016, 1016, 1016, 1307,
};
static const YYCODETYPE yy_lookahead[] = {
- /* 0 */ 144, 145, 146, 147, 172, 222, 223, 224, 222, 223,
- /* 10 */ 224, 152, 180, 152, 148, 149, 152, 173, 176, 19,
- /* 20 */ 154, 173, 156, 152, 163, 242, 152, 163, 176, 163,
- /* 30 */ 26, 31, 173, 174, 173, 174, 173, 173, 174, 39,
- /* 40 */ 1, 2, 152, 43, 44, 45, 46, 47, 48, 49,
- /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 197, 169,
- /* 60 */ 170, 197, 188, 197, 222, 223, 224, 208, 209, 208,
- /* 70 */ 209, 19, 208, 152, 222, 223, 224, 22, 26, 24,
+ /* 0 */ 152, 144, 145, 146, 147, 152, 152, 172, 152, 180,
+ /* 10 */ 181, 152, 223, 224, 225, 180, 152, 164, 189, 19,
+ /* 20 */ 223, 224, 225, 168, 169, 170, 163, 173, 174, 173,
+ /* 30 */ 174, 31, 173, 174, 168, 169, 170, 173, 174, 39,
+ /* 40 */ 243, 191, 192, 43, 44, 45, 46, 47, 48, 49,
+ /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 195, 196,
+ /* 60 */ 22, 23, 208, 209, 208, 209, 218, 208, 209, 176,
+ /* 70 */ 207, 19, 208, 209, 23, 212, 213, 26, 26, 152,
/* 80 */ 46, 47, 48, 49, 84, 85, 86, 87, 88, 89,
/* 90 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
/* 100 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- /* 110 */ 106, 245, 157, 88, 89, 90, 91, 92, 93, 94,
- /* 120 */ 68, 231, 251, 19, 84, 85, 86, 87, 88, 89,
+ /* 110 */ 90, 91, 92, 93, 94, 188, 223, 224, 225, 171,
+ /* 120 */ 68, 83, 152, 19, 84, 85, 86, 87, 88, 89,
/* 130 */ 90, 91, 92, 93, 94, 101, 84, 85, 86, 87,
/* 140 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
/* 150 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- /* 160 */ 56, 57, 90, 91, 92, 93, 94, 82, 79, 99,
- /* 170 */ 66, 200, 102, 103, 104, 19, 168, 169, 170, 152,
- /* 180 */ 24, 210, 97, 113, 229, 59, 101, 232, 84, 85,
+ /* 160 */ 56, 57, 99, 94, 194, 102, 103, 104, 109, 110,
+ /* 170 */ 66, 223, 224, 225, 152, 19, 113, 22, 23, 152,
+ /* 180 */ 24, 26, 160, 1, 2, 59, 164, 173, 84, 85,
/* 190 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
/* 200 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- /* 210 */ 54, 55, 56, 57, 152, 188, 152, 132, 133, 134,
- /* 220 */ 93, 94, 96, 97, 98, 99, 152, 19, 102, 103,
- /* 230 */ 104, 23, 94, 72, 79, 173, 174, 173, 174, 113,
+ /* 210 */ 54, 55, 56, 57, 244, 88, 89, 90, 91, 92,
+ /* 220 */ 93, 94, 96, 97, 98, 99, 196, 19, 102, 103,
+ /* 230 */ 104, 23, 88, 89, 173, 59, 163, 207, 83, 113,
/* 240 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
/* 250 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- /* 260 */ 52, 53, 54, 55, 56, 57, 152, 171, 152, 108,
- /* 270 */ 109, 110, 208, 209, 119, 120, 152, 180, 181, 19,
- /* 280 */ 119, 120, 152, 23, 152, 152, 189, 173, 174, 173,
- /* 290 */ 174, 59, 84, 85, 86, 87, 88, 89, 90, 91,
+ /* 260 */ 52, 53, 54, 55, 56, 57, 90, 240, 195, 196,
+ /* 270 */ 171, 82, 96, 97, 98, 152, 132, 176, 134, 19,
+ /* 280 */ 207, 200, 72, 23, 93, 94, 97, 152, 173, 79,
+ /* 290 */ 101, 210, 84, 85, 86, 87, 88, 89, 90, 91,
/* 300 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
- /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 222, 223,
- /* 320 */ 224, 186, 208, 209, 208, 209, 194, 194, 96, 97,
- /* 330 */ 98, 19, 168, 169, 170, 23, 88, 89, 163, 59,
- /* 340 */ 0, 1, 2, 219, 84, 85, 86, 87, 88, 89,
+ /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 108, 152,
+ /* 320 */ 152, 132, 133, 134, 223, 224, 225, 152, 186, 119,
+ /* 330 */ 120, 19, 197, 234, 31, 23, 26, 152, 239, 59,
+ /* 340 */ 173, 174, 39, 220, 84, 85, 86, 87, 88, 89,
/* 350 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
/* 360 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- /* 370 */ 90, 152, 197, 195, 196, 243, 96, 97, 98, 196,
- /* 380 */ 132, 11, 134, 19, 182, 207, 115, 23, 117, 118,
- /* 390 */ 207, 163, 173, 174, 152, 220, 84, 85, 86, 87,
+ /* 370 */ 152, 22, 152, 16, 152, 208, 96, 97, 98, 194,
+ /* 380 */ 22, 23, 11, 19, 26, 79, 72, 23, 0, 1,
+ /* 390 */ 2, 173, 174, 173, 174, 220, 84, 85, 86, 87,
/* 400 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
/* 410 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- /* 420 */ 56, 57, 152, 16, 152, 197, 171, 208, 22, 23,
- /* 430 */ 22, 23, 26, 16, 26, 19, 7, 8, 9, 23,
- /* 440 */ 212, 213, 152, 173, 174, 173, 174, 19, 84, 85,
+ /* 420 */ 56, 57, 108, 109, 110, 119, 120, 152, 208, 119,
+ /* 430 */ 120, 137, 75, 139, 77, 19, 152, 88, 89, 23,
+ /* 440 */ 115, 83, 117, 118, 163, 227, 163, 152, 84, 85,
/* 450 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
/* 460 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- /* 470 */ 54, 55, 56, 57, 46, 152, 109, 110, 208, 109,
- /* 480 */ 110, 152, 75, 152, 77, 22, 23, 19, 233, 83,
- /* 490 */ 152, 83, 75, 238, 77, 164, 173, 174, 226, 59,
+ /* 470 */ 54, 55, 56, 57, 195, 196, 195, 196, 195, 196,
+ /* 480 */ 109, 110, 195, 196, 22, 23, 207, 19, 207, 152,
+ /* 490 */ 207, 108, 109, 110, 207, 163, 22, 140, 24, 59,
/* 500 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
/* 510 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- /* 520 */ 52, 53, 54, 55, 56, 57, 108, 109, 110, 152,
- /* 530 */ 152, 152, 22, 22, 23, 107, 96, 97, 98, 160,
- /* 540 */ 112, 251, 19, 164, 22, 152, 83, 140, 219, 152,
+ /* 520 */ 52, 53, 54, 55, 56, 57, 152, 195, 196, 152,
+ /* 530 */ 16, 7, 8, 9, 197, 240, 96, 97, 98, 207,
+ /* 540 */ 249, 250, 19, 152, 22, 83, 26, 173, 174, 152,
/* 550 */ 173, 174, 84, 85, 86, 87, 88, 89, 90, 91,
/* 560 */ 92, 93, 94, 59, 124, 152, 43, 44, 45, 46,
/* 570 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- /* 580 */ 57, 59, 169, 170, 119, 120, 82, 108, 109, 110,
- /* 590 */ 191, 192, 191, 192, 83, 248, 249, 19, 88, 89,
+ /* 580 */ 57, 59, 169, 170, 157, 194, 82, 191, 192, 75,
+ /* 590 */ 152, 77, 108, 109, 110, 26, 152, 19, 152, 152,
/* 600 */ 96, 97, 24, 152, 152, 101, 138, 84, 85, 86,
/* 610 */ 87, 88, 89, 90, 91, 92, 93, 94, 96, 97,
/* 620 */ 98, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- /* 630 */ 52, 53, 54, 55, 56, 57, 132, 133, 134, 152,
- /* 640 */ 152, 46, 152, 26, 231, 194, 194, 146, 147, 19,
- /* 650 */ 152, 116, 152, 72, 152, 152, 121, 152, 152, 152,
- /* 660 */ 79, 138, 84, 85, 86, 87, 88, 89, 90, 91,
+ /* 630 */ 52, 53, 54, 55, 56, 57, 132, 133, 134, 188,
+ /* 640 */ 194, 197, 152, 123, 197, 232, 194, 152, 182, 19,
+ /* 650 */ 119, 120, 152, 152, 152, 152, 218, 230, 152, 163,
+ /* 660 */ 233, 138, 84, 85, 86, 87, 88, 89, 90, 91,
/* 670 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
- /* 680 */ 50, 51, 52, 53, 54, 55, 56, 57, 152, 108,
- /* 690 */ 23, 152, 194, 26, 194, 152, 194, 194, 137, 152,
- /* 700 */ 139, 19, 107, 166, 167, 218, 218, 29, 218, 173,
- /* 710 */ 174, 33, 173, 174, 84, 85, 86, 87, 88, 89,
+ /* 680 */ 50, 51, 52, 53, 54, 55, 56, 57, 152, 152,
+ /* 690 */ 23, 195, 196, 26, 194, 194, 194, 146, 147, 130,
+ /* 700 */ 194, 19, 46, 207, 59, 29, 166, 167, 218, 33,
+ /* 710 */ 173, 174, 26, 218, 84, 85, 86, 87, 88, 89,
/* 720 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
/* 730 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- /* 740 */ 152, 194, 64, 171, 239, 239, 239, 130, 166, 167,
- /* 750 */ 212, 213, 19, 23, 246, 247, 26, 59, 26, 152,
- /* 760 */ 163, 218, 163, 163, 163, 98, 84, 85, 86, 87,
+ /* 740 */ 64, 171, 97, 240, 116, 166, 167, 212, 213, 121,
+ /* 750 */ 23, 152, 19, 26, 218, 247, 248, 23, 23, 152,
+ /* 760 */ 26, 26, 22, 107, 163, 98, 84, 85, 86, 87,
/* 770 */ 88, 89, 90, 91, 92, 93, 94, 44, 45, 46,
/* 780 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- /* 790 */ 57, 124, 26, 79, 197, 97, 197, 197, 197, 31,
- /* 800 */ 152, 23, 19, 19, 26, 19, 218, 39, 23, 21,
- /* 810 */ 238, 26, 163, 163, 100, 59, 163, 84, 85, 86,
+ /* 790 */ 57, 124, 106, 53, 100, 101, 195, 196, 152, 152,
+ /* 800 */ 23, 23, 19, 26, 26, 19, 152, 23, 207, 239,
+ /* 810 */ 26, 23, 152, 163, 26, 169, 170, 84, 85, 86,
/* 820 */ 87, 88, 89, 90, 91, 92, 93, 94, 45, 46,
/* 830 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- /* 840 */ 57, 19, 20, 152, 22, 23, 197, 197, 23, 19,
- /* 850 */ 197, 26, 152, 97, 23, 123, 23, 26, 36, 26,
- /* 860 */ 152, 152, 19, 20, 98, 22, 78, 84, 85, 86,
- /* 870 */ 87, 88, 89, 90, 91, 92, 93, 94, 94, 36,
- /* 880 */ 152, 59, 96, 99, 100, 101, 102, 103, 104, 105,
- /* 890 */ 124, 103, 70, 100, 101, 23, 112, 12, 26, 12,
- /* 900 */ 23, 79, 59, 26, 82, 101, 22, 7, 8, 152,
- /* 910 */ 88, 89, 27, 70, 27, 152, 112, 95, 96, 97,
- /* 920 */ 98, 152, 79, 101, 22, 82, 96, 42, 140, 42,
- /* 930 */ 182, 88, 89, 19, 20, 132, 22, 134, 95, 96,
- /* 940 */ 97, 98, 23, 59, 101, 26, 22, 62, 152, 62,
- /* 950 */ 36, 22, 59, 24, 132, 133, 134, 135, 136, 72,
- /* 960 */ 5, 59, 152, 22, 71, 10, 11, 12, 13, 14,
- /* 970 */ 152, 152, 17, 59, 182, 132, 133, 134, 135, 136,
- /* 980 */ 96, 97, 98, 59, 70, 30, 152, 32, 59, 96,
- /* 990 */ 97, 98, 173, 174, 53, 40, 82, 152, 96, 97,
- /* 1000 */ 98, 90, 88, 89, 90, 24, 187, 173, 174, 95,
- /* 1010 */ 96, 97, 98, 152, 152, 101, 19, 20, 152, 22,
- /* 1020 */ 96, 97, 98, 152, 69, 59, 97, 116, 59, 214,
- /* 1030 */ 152, 76, 121, 36, 79, 80, 19, 20, 152, 22,
- /* 1040 */ 59, 132, 59, 134, 173, 174, 132, 133, 134, 135,
- /* 1050 */ 136, 173, 174, 36, 234, 152, 59, 152, 187, 173,
- /* 1060 */ 174, 211, 96, 97, 98, 187, 97, 70, 23, 114,
- /* 1070 */ 152, 26, 23, 187, 23, 26, 59, 26, 97, 82,
- /* 1080 */ 97, 22, 164, 152, 152, 88, 89, 70, 192, 152,
- /* 1090 */ 124, 152, 95, 96, 97, 98, 141, 152, 101, 82,
- /* 1100 */ 152, 152, 184, 152, 186, 88, 89, 199, 54, 55,
- /* 1110 */ 56, 57, 95, 96, 97, 98, 152, 152, 101, 152,
- /* 1120 */ 152, 173, 174, 235, 54, 55, 56, 57, 58, 132,
- /* 1130 */ 133, 134, 135, 136, 211, 150, 59, 211, 84, 85,
- /* 1140 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 132,
- /* 1150 */ 133, 134, 135, 136, 84, 85, 86, 87, 88, 89,
- /* 1160 */ 90, 91, 92, 93, 94, 88, 89, 195, 196, 35,
- /* 1170 */ 211, 211, 152, 96, 97, 98, 152, 100, 198, 207,
- /* 1180 */ 171, 122, 240, 152, 107, 215, 109, 240, 202, 215,
- /* 1190 */ 202, 152, 220, 173, 174, 177, 185, 173, 174, 65,
- /* 1200 */ 152, 176, 152, 181, 173, 174, 215, 73, 176, 132,
- /* 1210 */ 228, 134, 173, 174, 176, 152, 201, 152, 199, 155,
- /* 1220 */ 152, 173, 174, 173, 174, 60, 152, 122, 244, 38,
- /* 1230 */ 159, 159, 152, 241, 241, 152, 173, 174, 173, 174,
- /* 1240 */ 152, 173, 174, 152, 159, 111, 152, 173, 174, 152,
- /* 1250 */ 22, 152, 43, 173, 174, 152, 173, 174, 152, 190,
- /* 1260 */ 130, 173, 174, 152, 173, 174, 152, 173, 174, 202,
- /* 1270 */ 173, 174, 173, 174, 152, 18, 173, 174, 152, 173,
- /* 1280 */ 174, 152, 221, 152, 173, 174, 193, 173, 174, 152,
- /* 1290 */ 158, 152, 159, 152, 22, 173, 174, 152, 18, 173,
- /* 1300 */ 174, 152, 173, 174, 173, 174, 152, 221, 152, 193,
- /* 1310 */ 173, 174, 173, 174, 173, 174, 152, 193, 173, 174,
- /* 1320 */ 152, 193, 173, 174, 158, 152, 190, 173, 174, 173,
- /* 1330 */ 174, 59, 152, 190, 159, 137, 152, 173, 174, 152,
- /* 1340 */ 202, 173, 174, 61, 152, 237, 173, 174, 202, 236,
- /* 1350 */ 22, 107, 159, 173, 174, 159, 178, 173, 174, 158,
- /* 1360 */ 173, 174, 159, 158, 158, 173, 174, 159, 178, 97,
- /* 1370 */ 175, 63, 175, 106, 175, 125, 217, 183, 178, 175,
- /* 1380 */ 107, 159, 22, 216, 177, 175, 217, 175, 175, 217,
- /* 1390 */ 216, 159, 216, 216, 183, 225, 217, 137, 227, 178,
- /* 1400 */ 94, 178, 126, 129, 25, 128, 127, 162, 206, 26,
- /* 1410 */ 161, 230, 230, 13, 153, 153, 6, 151, 203, 205,
- /* 1420 */ 204, 202, 151, 165, 171, 171, 151, 171, 165, 165,
- /* 1430 */ 171, 179, 4, 250, 179, 250, 247, 3, 22, 171,
- /* 1440 */ 171, 171, 142, 81, 15, 23, 16, 23, 131, 171,
- /* 1450 */ 120, 111, 123, 20, 16, 1, 125, 123, 131, 53,
- /* 1460 */ 53, 53, 53, 111, 96, 34, 122, 1, 5, 22,
- /* 1470 */ 107, 67, 140, 74, 26, 24, 41, 107, 67, 20,
- /* 1480 */ 19, 112, 105, 66, 22, 66, 22, 22, 28, 66,
- /* 1490 */ 23, 22, 22, 37, 23, 23, 23, 116, 22, 22,
- /* 1500 */ 26, 23, 122, 23, 23, 26, 22, 11, 96, 34,
- /* 1510 */ 124, 26, 26, 23, 23, 23, 34, 34, 23, 26,
- /* 1520 */ 23, 22, 24, 23, 22, 122, 23, 26, 22, 24,
- /* 1530 */ 23, 22, 15, 23, 23, 22, 122, 122, 23, 1,
- /* 1540 */ 122, 252, 252, 252, 252, 252, 252, 252, 252, 252,
- /* 1550 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
- /* 1560 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
+ /* 840 */ 57, 19, 20, 101, 22, 195, 196, 22, 19, 24,
+ /* 850 */ 163, 19, 7, 8, 112, 59, 23, 207, 36, 26,
+ /* 860 */ 23, 152, 59, 26, 21, 59, 152, 84, 85, 86,
+ /* 870 */ 87, 88, 89, 90, 91, 92, 93, 94, 232, 221,
+ /* 880 */ 94, 59, 195, 196, 59, 99, 100, 101, 102, 103,
+ /* 890 */ 104, 105, 70, 97, 207, 59, 19, 20, 112, 22,
+ /* 900 */ 97, 79, 152, 97, 82, 152, 152, 71, 221, 90,
+ /* 910 */ 88, 89, 23, 36, 12, 26, 163, 95, 96, 97,
+ /* 920 */ 98, 78, 97, 101, 152, 96, 173, 174, 96, 27,
+ /* 930 */ 182, 22, 96, 97, 98, 116, 59, 148, 149, 152,
+ /* 940 */ 121, 119, 120, 154, 42, 156, 103, 70, 195, 196,
+ /* 950 */ 22, 59, 163, 152, 132, 133, 134, 135, 136, 82,
+ /* 960 */ 207, 208, 209, 71, 62, 88, 89, 90, 59, 152,
+ /* 970 */ 152, 12, 95, 96, 97, 98, 19, 20, 101, 22,
+ /* 980 */ 22, 182, 152, 140, 195, 196, 27, 59, 96, 97,
+ /* 990 */ 98, 59, 132, 36, 134, 22, 207, 19, 20, 24,
+ /* 1000 */ 22, 42, 152, 173, 174, 96, 97, 98, 219, 132,
+ /* 1010 */ 133, 134, 135, 136, 36, 152, 59, 187, 132, 152,
+ /* 1020 */ 134, 62, 152, 152, 96, 97, 98, 70, 96, 97,
+ /* 1030 */ 98, 72, 59, 152, 59, 246, 26, 59, 214, 82,
+ /* 1040 */ 152, 192, 152, 173, 174, 88, 89, 79, 70, 152,
+ /* 1050 */ 152, 19, 95, 96, 97, 98, 124, 187, 101, 23,
+ /* 1060 */ 82, 164, 26, 173, 174, 152, 88, 89, 100, 96,
+ /* 1070 */ 97, 98, 97, 95, 96, 97, 98, 187, 46, 101,
+ /* 1080 */ 122, 184, 152, 186, 211, 152, 152, 119, 120, 132,
+ /* 1090 */ 133, 134, 135, 136, 152, 5, 22, 152, 152, 35,
+ /* 1100 */ 10, 11, 12, 13, 14, 152, 152, 17, 98, 235,
+ /* 1110 */ 132, 133, 134, 135, 136, 54, 55, 56, 57, 58,
+ /* 1120 */ 30, 152, 32, 152, 152, 198, 173, 174, 152, 65,
+ /* 1130 */ 40, 152, 152, 59, 124, 152, 236, 73, 199, 107,
+ /* 1140 */ 187, 171, 173, 174, 112, 84, 85, 86, 87, 88,
+ /* 1150 */ 89, 90, 91, 92, 93, 94, 173, 174, 152, 69,
+ /* 1160 */ 152, 211, 54, 55, 56, 57, 76, 152, 150, 79,
+ /* 1170 */ 80, 97, 211, 211, 211, 111, 59, 241, 241, 173,
+ /* 1180 */ 174, 173, 174, 202, 202, 185, 177, 176, 173, 174,
+ /* 1190 */ 176, 201, 84, 85, 86, 87, 88, 89, 90, 91,
+ /* 1200 */ 92, 93, 94, 215, 114, 88, 89, 152, 215, 119,
+ /* 1210 */ 120, 152, 181, 96, 97, 98, 176, 100, 215, 152,
+ /* 1220 */ 229, 152, 163, 152, 107, 199, 109, 155, 173, 174,
+ /* 1230 */ 245, 141, 173, 174, 60, 159, 152, 122, 159, 242,
+ /* 1240 */ 173, 174, 173, 174, 173, 174, 38, 242, 152, 132,
+ /* 1250 */ 159, 134, 152, 22, 195, 196, 152, 173, 174, 222,
+ /* 1260 */ 43, 130, 202, 152, 18, 152, 207, 208, 152, 173,
+ /* 1270 */ 174, 152, 190, 173, 174, 152, 193, 173, 174, 152,
+ /* 1280 */ 193, 193, 152, 159, 173, 174, 173, 174, 152, 173,
+ /* 1290 */ 174, 193, 173, 174, 18, 152, 173, 174, 152, 158,
+ /* 1300 */ 173, 174, 152, 173, 174, 152, 159, 152, 202, 173,
+ /* 1310 */ 174, 152, 190, 152, 222, 152, 173, 174, 152, 173,
+ /* 1320 */ 174, 137, 152, 173, 174, 190, 173, 174, 173, 174,
+ /* 1330 */ 202, 158, 173, 174, 173, 174, 173, 174, 61, 173,
+ /* 1340 */ 174, 152, 237, 173, 174, 152, 159, 152, 238, 152,
+ /* 1350 */ 158, 152, 22, 152, 178, 152, 158, 152, 158, 152,
+ /* 1360 */ 178, 159, 173, 174, 152, 159, 173, 174, 173, 174,
+ /* 1370 */ 173, 174, 173, 174, 173, 174, 173, 174, 173, 174,
+ /* 1380 */ 173, 174, 152, 63, 152, 173, 174, 107, 175, 175,
+ /* 1390 */ 175, 106, 183, 175, 178, 175, 177, 175, 175, 178,
+ /* 1400 */ 94, 107, 231, 173, 174, 173, 174, 183, 231, 125,
+ /* 1410 */ 216, 178, 159, 217, 22, 159, 226, 129, 137, 228,
+ /* 1420 */ 128, 217, 126, 25, 127, 162, 216, 26, 217, 161,
+ /* 1430 */ 13, 153, 153, 206, 205, 6, 251, 202, 204, 203,
+ /* 1440 */ 151, 216, 151, 217, 216, 171, 151, 165, 179, 179,
+ /* 1450 */ 4, 3, 22, 142, 171, 165, 15, 171, 171, 81,
+ /* 1460 */ 16, 23, 23, 120, 171, 131, 165, 111, 123, 171,
+ /* 1470 */ 171, 171, 20, 125, 16, 1, 123, 131, 53, 53,
+ /* 1480 */ 53, 53, 111, 96, 34, 122, 248, 1, 251, 5,
+ /* 1490 */ 22, 107, 140, 26, 74, 41, 122, 107, 67, 67,
+ /* 1500 */ 24, 20, 19, 112, 105, 23, 66, 22, 66, 22,
+ /* 1510 */ 22, 22, 37, 22, 22, 66, 23, 23, 28, 23,
+ /* 1520 */ 23, 26, 24, 23, 22, 24, 122, 23, 23, 96,
+ /* 1530 */ 22, 124, 26, 34, 23, 26, 23, 34, 23, 23,
+ /* 1540 */ 23, 34, 23, 22, 26, 11, 22, 22, 26, 23,
+ /* 1550 */ 23, 22, 116, 23, 22, 15, 122, 122, 23, 122,
+ /* 1560 */ 1, 252, 252, 252, 252, 122, 252, 252, 252, 252,
/* 1570 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
/* 1580 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
/* 1590 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
@@ -140374,147 +140438,152 @@ static const YYCODETYPE yy_lookahead[] = {
/* 1650 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
/* 1660 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
/* 1670 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
- /* 1680 */ 252, 252, 252, 252,
+ /* 1680 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
+ /* 1690 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
+ /* 1700 */ 252, 252, 252, 252, 252, 252, 252, 252, 252,
};
-#define YY_SHIFT_COUNT (465)
+#define YY_SHIFT_COUNT (471)
#define YY_SHIFT_MIN (0)
-#define YY_SHIFT_MAX (1538)
+#define YY_SHIFT_MAX (1559)
static const unsigned short int yy_shift_ofst[] = {
- /* 0 */ 39, 822, 955, 843, 997, 997, 997, 997, 0, 0,
- /* 10 */ 104, 630, 997, 997, 997, 997, 997, 997, 997, 1077,
- /* 20 */ 1077, 126, 161, 155, 52, 156, 208, 260, 312, 364,
- /* 30 */ 416, 468, 523, 578, 630, 630, 630, 630, 630, 630,
- /* 40 */ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
- /* 50 */ 630, 682, 630, 733, 783, 783, 914, 997, 997, 997,
- /* 60 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
- /* 70 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
- /* 80 */ 997, 997, 997, 997, 997, 997, 997, 997, 1017, 997,
- /* 90 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
- /* 100 */ 997, 997, 1070, 1054, 1054, 1054, 1054, 1054, 40, 25,
- /* 110 */ 72, 232, 788, 428, 248, 248, 232, 581, 367, 127,
- /* 120 */ 465, 138, 1541, 1541, 1541, 784, 784, 784, 522, 522,
- /* 130 */ 887, 887, 893, 406, 408, 232, 232, 232, 232, 232,
- /* 140 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- /* 150 */ 232, 232, 232, 232, 232, 370, 340, 714, 698, 698,
- /* 160 */ 465, 89, 89, 89, 89, 89, 89, 1541, 1541, 1541,
- /* 170 */ 504, 85, 85, 884, 70, 280, 902, 440, 966, 924,
- /* 180 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- /* 190 */ 232, 232, 232, 232, 232, 232, 1134, 1134, 1134, 232,
- /* 200 */ 232, 667, 232, 232, 232, 929, 232, 232, 885, 232,
- /* 210 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 418,
- /* 220 */ 678, 981, 981, 981, 981, 766, 271, 911, 510, 429,
- /* 230 */ 617, 786, 786, 830, 617, 830, 4, 730, 595, 768,
- /* 240 */ 786, 561, 768, 768, 732, 535, 55, 1165, 1105, 1105,
- /* 250 */ 1191, 1191, 1105, 1228, 1209, 1130, 1257, 1257, 1257, 1257,
- /* 260 */ 1105, 1280, 1130, 1228, 1209, 1209, 1130, 1105, 1280, 1198,
- /* 270 */ 1282, 1105, 1105, 1280, 1328, 1105, 1280, 1105, 1280, 1328,
- /* 280 */ 1244, 1244, 1244, 1308, 1328, 1244, 1267, 1244, 1308, 1244,
- /* 290 */ 1244, 1250, 1273, 1250, 1273, 1250, 1273, 1250, 1273, 1105,
- /* 300 */ 1360, 1105, 1260, 1328, 1306, 1306, 1328, 1274, 1276, 1277,
- /* 310 */ 1279, 1130, 1379, 1383, 1400, 1400, 1410, 1410, 1410, 1541,
- /* 320 */ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
- /* 330 */ 1541, 1541, 1541, 1541, 1541, 34, 407, 463, 511, 417,
- /* 340 */ 479, 1272, 778, 941, 785, 825, 831, 833, 872, 877,
- /* 350 */ 756, 793, 900, 804, 919, 1045, 969, 1049, 803, 909,
- /* 360 */ 1051, 983, 1059, 1428, 1434, 1416, 1300, 1429, 1362, 1430,
- /* 370 */ 1422, 1424, 1330, 1317, 1340, 1329, 1433, 1331, 1438, 1454,
- /* 380 */ 1334, 1327, 1406, 1407, 1408, 1409, 1352, 1368, 1431, 1344,
- /* 390 */ 1466, 1463, 1447, 1363, 1332, 1404, 1448, 1411, 1399, 1435,
- /* 400 */ 1370, 1451, 1459, 1461, 1369, 1377, 1462, 1417, 1464, 1465,
- /* 410 */ 1467, 1469, 1419, 1460, 1470, 1423, 1456, 1471, 1472, 1473,
- /* 420 */ 1474, 1381, 1476, 1478, 1477, 1479, 1380, 1480, 1481, 1412,
- /* 430 */ 1475, 1484, 1386, 1485, 1482, 1486, 1483, 1490, 1485, 1491,
- /* 440 */ 1492, 1495, 1493, 1497, 1499, 1496, 1500, 1502, 1498, 1501,
- /* 450 */ 1503, 1506, 1505, 1501, 1507, 1509, 1510, 1511, 1513, 1403,
- /* 460 */ 1414, 1415, 1418, 1515, 1517, 1538,
+ /* 0 */ 182, 1090, 822, 822, 306, 957, 957, 957, 957, 210,
+ /* 10 */ 0, 0, 104, 630, 957, 957, 957, 957, 957, 957,
+ /* 20 */ 957, 1117, 1117, 126, 968, 306, 306, 306, 306, 306,
+ /* 30 */ 306, 52, 156, 208, 260, 312, 364, 416, 468, 523,
+ /* 40 */ 578, 630, 630, 630, 630, 630, 630, 630, 630, 630,
+ /* 50 */ 630, 630, 630, 630, 630, 630, 630, 630, 682, 630,
+ /* 60 */ 733, 783, 783, 877, 957, 957, 957, 957, 957, 957,
+ /* 70 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
+ /* 80 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
+ /* 90 */ 957, 957, 957, 957, 957, 978, 957, 957, 957, 957,
+ /* 100 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 1061,
+ /* 110 */ 1108, 1108, 1108, 1108, 1108, 40, 127, 20, 280, 843,
+ /* 120 */ 1032, 144, 144, 280, 310, 310, 310, 310, 59, 191,
+ /* 130 */ 69, 1566, 1566, 1566, 786, 786, 786, 522, 836, 522,
+ /* 140 */ 959, 959, 892, 155, 358, 280, 280, 280, 280, 280,
+ /* 150 */ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
+ /* 160 */ 280, 280, 280, 280, 280, 280, 371, 388, 645, 645,
+ /* 170 */ 531, 1566, 1566, 1566, 504, 189, 189, 909, 63, 176,
+ /* 180 */ 928, 440, 932, 973, 280, 280, 280, 280, 280, 314,
+ /* 190 */ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
+ /* 200 */ 280, 280, 1064, 1064, 1064, 280, 280, 280, 280, 667,
+ /* 210 */ 280, 280, 280, 825, 280, 280, 902, 280, 280, 280,
+ /* 220 */ 280, 280, 280, 280, 280, 383, 676, 325, 975, 975,
+ /* 230 */ 975, 975, 1010, 325, 325, 819, 349, 524, 569, 829,
+ /* 240 */ 829, 832, 569, 832, 686, 51, 656, 303, 303, 303,
+ /* 250 */ 829, 294, 520, 628, 474, 1174, 1115, 1115, 1208, 1208,
+ /* 260 */ 1115, 1231, 1217, 1131, 1246, 1246, 1246, 1246, 1115, 1276,
+ /* 270 */ 1131, 1231, 1217, 1217, 1131, 1115, 1276, 1184, 1277, 1115,
+ /* 280 */ 1276, 1330, 1115, 1276, 1115, 1276, 1330, 1280, 1280, 1280,
+ /* 290 */ 1320, 1330, 1280, 1285, 1280, 1320, 1280, 1280, 1330, 1306,
+ /* 300 */ 1306, 1330, 1284, 1294, 1284, 1294, 1284, 1294, 1284, 1294,
+ /* 310 */ 1115, 1392, 1115, 1281, 1288, 1296, 1292, 1297, 1131, 1398,
+ /* 320 */ 1401, 1417, 1417, 1429, 1429, 1429, 1566, 1566, 1566, 1566,
+ /* 330 */ 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
+ /* 340 */ 1566, 1566, 34, 357, 38, 462, 514, 484, 1074, 727,
+ /* 350 */ 740, 734, 735, 777, 778, 784, 788, 803, 694, 845,
+ /* 360 */ 742, 796, 833, 837, 889, 860, 886, 1036, 806, 958,
+ /* 370 */ 1446, 1448, 1430, 1311, 1441, 1378, 1444, 1438, 1439, 1343,
+ /* 380 */ 1334, 1356, 1345, 1452, 1348, 1458, 1474, 1353, 1346, 1425,
+ /* 390 */ 1426, 1427, 1428, 1371, 1387, 1450, 1363, 1486, 1484, 1468,
+ /* 400 */ 1384, 1352, 1431, 1467, 1432, 1420, 1454, 1374, 1390, 1476,
+ /* 410 */ 1481, 1483, 1391, 1399, 1485, 1440, 1487, 1488, 1482, 1489,
+ /* 420 */ 1442, 1490, 1491, 1449, 1475, 1493, 1494, 1496, 1495, 1497,
+ /* 430 */ 1492, 1498, 1500, 1502, 1501, 1404, 1504, 1505, 1433, 1499,
+ /* 440 */ 1508, 1407, 1506, 1503, 1509, 1507, 1511, 1513, 1515, 1506,
+ /* 450 */ 1516, 1517, 1518, 1519, 1521, 1534, 1524, 1525, 1526, 1527,
+ /* 460 */ 1529, 1530, 1532, 1522, 1436, 1434, 1435, 1437, 1443, 1535,
+ /* 470 */ 1540, 1559,
};
-#define YY_REDUCE_COUNT (334)
-#define YY_REDUCE_MIN (-217)
-#define YY_REDUCE_MAX (1278)
+#define YY_REDUCE_COUNT (341)
+#define YY_REDUCE_MIN (-211)
+#define YY_REDUCE_MAX (1301)
static const short yy_reduce_ofst[] = {
- /* 0 */ -144, -139, -134, -136, -141, 64, 114, 116, -158, -148,
- /* 10 */ -217, 96, 819, 871, 878, 219, 270, 886, 272, -110,
- /* 20 */ 413, 918, 972, 228, -214, -214, -214, -214, -214, -214,
- /* 30 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
- /* 40 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
- /* 50 */ -214, -214, -214, -214, -214, -214, 62, 323, 377, 536,
- /* 60 */ 539, 834, 948, 1020, 1024, 1031, 1039, 1048, 1050, 1063,
- /* 70 */ 1065, 1068, 1074, 1080, 1083, 1088, 1091, 1094, 1097, 1099,
- /* 80 */ 1103, 1106, 1111, 1114, 1122, 1126, 1129, 1131, 1137, 1139,
- /* 90 */ 1141, 1145, 1149, 1154, 1156, 1164, 1168, 1173, 1180, 1184,
- /* 100 */ 1187, 1192, -214, -214, -214, -214, -214, -214, -214, -214,
- /* 110 */ -214, 132, -45, 97, 8, 164, 379, 175, 255, -214,
- /* 120 */ 178, -214, -214, -214, -214, -168, -168, -168, 124, 329,
- /* 130 */ 399, 401, -129, 347, 347, 331, 133, 451, 452, 498,
- /* 140 */ 500, 502, 503, 505, 487, 506, 488, 490, 507, 543,
- /* 150 */ 547, -126, 588, 290, 27, 572, 501, 597, 537, 582,
- /* 160 */ 183, 599, 600, 601, 649, 650, 653, 508, 538, -29,
- /* 170 */ -156, -152, -137, -79, 135, 74, 130, 242, 338, 378,
- /* 180 */ 393, 397, 607, 648, 691, 700, 708, 709, 728, 757,
- /* 190 */ 763, 769, 796, 810, 818, 845, 202, 748, 792, 861,
- /* 200 */ 862, 815, 866, 903, 905, 850, 931, 932, 896, 937,
- /* 210 */ 939, 945, 74, 949, 951, 964, 965, 967, 968, 888,
- /* 220 */ 820, 923, 926, 959, 960, 815, 980, 908, 1009, 985,
- /* 230 */ 986, 970, 974, 942, 988, 947, 1018, 1011, 1022, 1025,
- /* 240 */ 991, 982, 1032, 1038, 1015, 1019, 1064, 984, 1071, 1072,
- /* 250 */ 992, 993, 1085, 1061, 1069, 1067, 1093, 1116, 1124, 1128,
- /* 260 */ 1133, 1132, 1138, 1086, 1136, 1143, 1146, 1175, 1166, 1108,
- /* 270 */ 1113, 1193, 1196, 1201, 1178, 1203, 1205, 1208, 1206, 1190,
- /* 280 */ 1195, 1197, 1199, 1194, 1200, 1204, 1207, 1210, 1211, 1212,
- /* 290 */ 1213, 1159, 1167, 1169, 1174, 1172, 1176, 1179, 1177, 1222,
- /* 300 */ 1170, 1232, 1171, 1221, 1181, 1182, 1223, 1202, 1214, 1216,
- /* 310 */ 1215, 1219, 1245, 1249, 1261, 1262, 1266, 1271, 1275, 1183,
- /* 320 */ 1185, 1189, 1258, 1253, 1254, 1256, 1259, 1263, 1252, 1255,
- /* 330 */ 1268, 1269, 1270, 1278, 1264,
+ /* 0 */ -143, 789, 753, 1059, -137, -146, -144, -141, -136, 687,
+ /* 10 */ -107, 101, -203, -52, 830, 870, 890, 167, 953, 218,
+ /* 20 */ 220, 413, 646, 897, 73, 281, 283, 332, 496, 601,
+ /* 30 */ 650, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+ /* 40 */ -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+ /* 50 */ -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+ /* 60 */ -211, -211, -211, 374, 377, 537, 969, 983, 1006, 1008,
+ /* 70 */ 1015, 1055, 1067, 1069, 1071, 1084, 1096, 1100, 1104, 1111,
+ /* 80 */ 1113, 1116, 1119, 1123, 1127, 1130, 1136, 1143, 1146, 1150,
+ /* 90 */ 1153, 1155, 1159, 1161, 1163, 1166, 1170, 1189, 1193, 1195,
+ /* 100 */ 1197, 1199, 1201, 1203, 1205, 1207, 1212, 1230, 1232, -211,
+ /* 110 */ -211, -211, -211, -211, -211, -211, -211, -211, -30, 427,
+ /* 120 */ -171, -145, -134, 22, 279, 287, 279, 287, 99, -211,
+ /* 130 */ -211, -211, -211, -211, -165, -165, -165, 123, 135, 175,
+ /* 140 */ -150, 396, 337, 291, 291, -147, 185, 391, 446, 444,
+ /* 150 */ 452, 500, 501, 502, 27, -152, 295, 438, 490, 503,
+ /* 160 */ 495, 506, -73, 447, 451, 536, 570, 551, 540, 579,
+ /* 170 */ 30, 508, 535, 81, 14, 61, 115, 168, 142, 222,
+ /* 180 */ 275, 284, 397, 599, 607, 647, 654, 660, 709, 658,
+ /* 190 */ 714, 750, 754, 772, 787, 801, 817, 818, 850, 863,
+ /* 200 */ 867, 871, 466, 748, 799, 881, 888, 898, 913, 824,
+ /* 210 */ 930, 933, 934, 873, 942, 945, 849, 946, 222, 954,
+ /* 220 */ 971, 972, 976, 979, 980, 900, 874, 927, 950, 961,
+ /* 230 */ 962, 963, 824, 927, 927, 939, 970, 1018, 981, 988,
+ /* 240 */ 993, 936, 982, 937, 1009, 1000, 1031, 1011, 1014, 1040,
+ /* 250 */ 1003, 991, 990, 1026, 1072, 985, 1076, 1079, 997, 1005,
+ /* 260 */ 1091, 1037, 1082, 1060, 1083, 1087, 1088, 1098, 1124, 1141,
+ /* 270 */ 1106, 1092, 1122, 1135, 1128, 1147, 1173, 1110, 1105, 1187,
+ /* 280 */ 1192, 1176, 1202, 1198, 1206, 1200, 1182, 1213, 1214, 1215,
+ /* 290 */ 1209, 1216, 1218, 1219, 1220, 1224, 1222, 1223, 1221, 1171,
+ /* 300 */ 1177, 1233, 1196, 1194, 1204, 1210, 1211, 1225, 1226, 1228,
+ /* 310 */ 1253, 1190, 1256, 1191, 1227, 1229, 1234, 1236, 1235, 1263,
+ /* 320 */ 1268, 1278, 1279, 1289, 1291, 1295, 1185, 1237, 1238, 1282,
+ /* 330 */ 1274, 1283, 1286, 1287, 1290, 1269, 1270, 1293, 1298, 1299,
+ /* 340 */ 1300, 1301,
};
static const YYACTIONTYPE yy_default[] = {
- /* 0 */ 1286, 1276, 1276, 1276, 1209, 1209, 1209, 1209, 1133, 1133,
- /* 10 */ 1260, 1036, 1005, 1005, 1005, 1005, 1005, 1005, 1208, 1005,
- /* 20 */ 1005, 1005, 1005, 1108, 1139, 1005, 1005, 1005, 1005, 1210,
- /* 30 */ 1211, 1005, 1005, 1005, 1259, 1261, 1149, 1148, 1147, 1146,
- /* 40 */ 1242, 1120, 1144, 1137, 1141, 1210, 1204, 1205, 1203, 1207,
- /* 50 */ 1211, 1005, 1140, 1174, 1188, 1173, 1005, 1005, 1005, 1005,
- /* 60 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 70 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 80 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 90 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 100 */ 1005, 1005, 1182, 1187, 1194, 1186, 1183, 1176, 1175, 1177,
- /* 110 */ 1178, 1005, 1026, 1075, 1005, 1005, 1005, 1276, 1036, 1179,
- /* 120 */ 1005, 1180, 1191, 1190, 1189, 1267, 1294, 1293, 1005, 1005,
- /* 130 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 140 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 150 */ 1005, 1005, 1005, 1005, 1005, 1036, 1286, 1276, 1032, 1032,
- /* 160 */ 1005, 1276, 1276, 1276, 1276, 1276, 1276, 1272, 1108, 1099,
- /* 170 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 180 */ 1005, 1264, 1262, 1005, 1224, 1005, 1005, 1005, 1005, 1005,
- /* 190 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 200 */ 1005, 1005, 1005, 1005, 1005, 1104, 1005, 1005, 1005, 1005,
- /* 210 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1288, 1005,
- /* 220 */ 1237, 1104, 1104, 1104, 1104, 1106, 1088, 1098, 1036, 1012,
- /* 230 */ 1143, 1122, 1122, 1327, 1143, 1327, 1050, 1308, 1047, 1133,
- /* 240 */ 1122, 1206, 1133, 1133, 1105, 1098, 1005, 1330, 1113, 1113,
- /* 250 */ 1329, 1329, 1113, 1154, 1078, 1143, 1084, 1084, 1084, 1084,
- /* 260 */ 1113, 1023, 1143, 1154, 1078, 1078, 1143, 1113, 1023, 1241,
- /* 270 */ 1324, 1113, 1113, 1023, 1217, 1113, 1023, 1113, 1023, 1217,
- /* 280 */ 1076, 1076, 1076, 1065, 1217, 1076, 1050, 1076, 1065, 1076,
- /* 290 */ 1076, 1126, 1121, 1126, 1121, 1126, 1121, 1126, 1121, 1113,
- /* 300 */ 1212, 1113, 1005, 1217, 1221, 1221, 1217, 1138, 1127, 1136,
- /* 310 */ 1134, 1143, 1029, 1068, 1291, 1291, 1287, 1287, 1287, 1335,
- /* 320 */ 1335, 1272, 1303, 1036, 1036, 1036, 1036, 1303, 1052, 1052,
- /* 330 */ 1036, 1036, 1036, 1036, 1303, 1005, 1005, 1005, 1005, 1005,
- /* 340 */ 1005, 1298, 1005, 1226, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 350 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 360 */ 1005, 1005, 1159, 1005, 1008, 1269, 1005, 1005, 1268, 1005,
- /* 370 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 380 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1326,
- /* 390 */ 1005, 1005, 1005, 1005, 1005, 1005, 1240, 1239, 1005, 1005,
- /* 400 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 410 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- /* 420 */ 1005, 1090, 1005, 1005, 1005, 1312, 1005, 1005, 1005, 1005,
- /* 430 */ 1005, 1005, 1005, 1135, 1005, 1128, 1005, 1005, 1317, 1005,
- /* 440 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1278,
- /* 450 */ 1005, 1005, 1005, 1277, 1005, 1005, 1005, 1005, 1005, 1161,
- /* 460 */ 1005, 1160, 1164, 1005, 1017, 1005,
+ /* 0 */ 1297, 1349, 1221, 1014, 1119, 1221, 1221, 1221, 1221, 1014,
+ /* 10 */ 1145, 1145, 1272, 1045, 1014, 1014, 1014, 1014, 1014, 1220,
+ /* 20 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 30 */ 1014, 1151, 1014, 1014, 1014, 1014, 1222, 1223, 1014, 1014,
+ /* 40 */ 1014, 1271, 1273, 1161, 1160, 1159, 1158, 1254, 1132, 1156,
+ /* 50 */ 1149, 1153, 1216, 1217, 1215, 1219, 1222, 1223, 1014, 1152,
+ /* 60 */ 1186, 1200, 1185, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 70 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 80 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 90 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 100 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1194,
+ /* 110 */ 1199, 1206, 1198, 1195, 1188, 1187, 1189, 1190, 1014, 1035,
+ /* 120 */ 1084, 1014, 1014, 1014, 1289, 1288, 1014, 1014, 1045, 1191,
+ /* 130 */ 1192, 1203, 1202, 1201, 1279, 1305, 1304, 1014, 1014, 1014,
+ /* 140 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 150 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 160 */ 1014, 1014, 1014, 1014, 1014, 1014, 1045, 1297, 1041, 1041,
+ /* 170 */ 1014, 1284, 1119, 1110, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 180 */ 1014, 1014, 1014, 1014, 1014, 1276, 1274, 1014, 1236, 1014,
+ /* 190 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 200 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 210 */ 1014, 1014, 1014, 1115, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 220 */ 1014, 1014, 1014, 1014, 1299, 1014, 1249, 1098, 1115, 1115,
+ /* 230 */ 1115, 1115, 1117, 1099, 1097, 1109, 1045, 1021, 1155, 1134,
+ /* 240 */ 1134, 1338, 1155, 1338, 1059, 1319, 1056, 1145, 1145, 1145,
+ /* 250 */ 1134, 1218, 1116, 1109, 1014, 1341, 1124, 1124, 1340, 1340,
+ /* 260 */ 1124, 1166, 1087, 1155, 1093, 1093, 1093, 1093, 1124, 1032,
+ /* 270 */ 1155, 1166, 1087, 1087, 1155, 1124, 1032, 1253, 1335, 1124,
+ /* 280 */ 1032, 1229, 1124, 1032, 1124, 1032, 1229, 1085, 1085, 1085,
+ /* 290 */ 1074, 1229, 1085, 1059, 1085, 1074, 1085, 1085, 1229, 1233,
+ /* 300 */ 1233, 1229, 1138, 1133, 1138, 1133, 1138, 1133, 1138, 1133,
+ /* 310 */ 1124, 1224, 1124, 1014, 1150, 1139, 1148, 1146, 1155, 1038,
+ /* 320 */ 1077, 1302, 1302, 1298, 1298, 1298, 1346, 1346, 1284, 1314,
+ /* 330 */ 1045, 1045, 1045, 1045, 1314, 1061, 1061, 1045, 1045, 1045,
+ /* 340 */ 1045, 1314, 1014, 1014, 1014, 1014, 1014, 1014, 1309, 1014,
+ /* 350 */ 1238, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 360 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1171,
+ /* 370 */ 1014, 1017, 1281, 1014, 1014, 1280, 1014, 1014, 1014, 1014,
+ /* 380 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 390 */ 1014, 1014, 1014, 1014, 1014, 1014, 1337, 1014, 1014, 1014,
+ /* 400 */ 1014, 1014, 1014, 1252, 1251, 1014, 1014, 1126, 1014, 1014,
+ /* 410 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 420 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 430 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 440 */ 1014, 1014, 1147, 1014, 1140, 1014, 1014, 1014, 1014, 1328,
+ /* 450 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ /* 460 */ 1014, 1014, 1014, 1323, 1101, 1173, 1014, 1172, 1176, 1014,
+ /* 470 */ 1026, 1014,
};
/********** End of lemon-generated parsing tables *****************************/
@@ -140900,7 +140969,7 @@ static const char *const yyTokenName[] = {
/* 194 */ "fullname",
/* 195 */ "selectnowith",
/* 196 */ "oneselect",
- /* 197 */ "with",
+ /* 197 */ "wqlist",
/* 198 */ "multiselect_op",
/* 199 */ "distinct",
/* 200 */ "selcollist",
@@ -140922,39 +140991,39 @@ static const char *const yyTokenName[] = {
/* 216 */ "on_opt",
/* 217 */ "using_opt",
/* 218 */ "idlist",
- /* 219 */ "setlist",
- /* 220 */ "insert_cmd",
- /* 221 */ "idlist_opt",
- /* 222 */ "likeop",
- /* 223 */ "between_op",
- /* 224 */ "in_op",
- /* 225 */ "paren_exprlist",
- /* 226 */ "case_operand",
- /* 227 */ "case_exprlist",
- /* 228 */ "case_else",
- /* 229 */ "uniqueflag",
- /* 230 */ "collate",
- /* 231 */ "nmnum",
- /* 232 */ "trigger_decl",
- /* 233 */ "trigger_cmd_list",
- /* 234 */ "trigger_time",
- /* 235 */ "trigger_event",
- /* 236 */ "foreach_clause",
- /* 237 */ "when_clause",
- /* 238 */ "trigger_cmd",
- /* 239 */ "trnm",
- /* 240 */ "tridxby",
- /* 241 */ "database_kw_opt",
- /* 242 */ "key_opt",
- /* 243 */ "add_column_fullname",
- /* 244 */ "kwcolumn_opt",
- /* 245 */ "create_vtab",
- /* 246 */ "vtabarglist",
- /* 247 */ "vtabarg",
- /* 248 */ "vtabargtoken",
- /* 249 */ "lp",
- /* 250 */ "anylist",
- /* 251 */ "wqlist",
+ /* 219 */ "with",
+ /* 220 */ "setlist",
+ /* 221 */ "insert_cmd",
+ /* 222 */ "idlist_opt",
+ /* 223 */ "likeop",
+ /* 224 */ "between_op",
+ /* 225 */ "in_op",
+ /* 226 */ "paren_exprlist",
+ /* 227 */ "case_operand",
+ /* 228 */ "case_exprlist",
+ /* 229 */ "case_else",
+ /* 230 */ "uniqueflag",
+ /* 231 */ "collate",
+ /* 232 */ "nmnum",
+ /* 233 */ "trigger_decl",
+ /* 234 */ "trigger_cmd_list",
+ /* 235 */ "trigger_time",
+ /* 236 */ "trigger_event",
+ /* 237 */ "foreach_clause",
+ /* 238 */ "when_clause",
+ /* 239 */ "trigger_cmd",
+ /* 240 */ "trnm",
+ /* 241 */ "tridxby",
+ /* 242 */ "database_kw_opt",
+ /* 243 */ "key_opt",
+ /* 244 */ "add_column_fullname",
+ /* 245 */ "kwcolumn_opt",
+ /* 246 */ "create_vtab",
+ /* 247 */ "vtabarglist",
+ /* 248 */ "vtabarg",
+ /* 249 */ "vtabargtoken",
+ /* 250 */ "lp",
+ /* 251 */ "anylist",
};
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
@@ -141042,256 +141111,259 @@ static const char *const yyRuleName[] = {
/* 77 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select",
/* 78 */ "cmd ::= DROP VIEW ifexists fullname",
/* 79 */ "cmd ::= select",
- /* 80 */ "select ::= with selectnowith",
- /* 81 */ "selectnowith ::= selectnowith multiselect_op oneselect",
- /* 82 */ "multiselect_op ::= UNION",
- /* 83 */ "multiselect_op ::= UNION ALL",
- /* 84 */ "multiselect_op ::= EXCEPT|INTERSECT",
- /* 85 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
- /* 86 */ "values ::= VALUES LP nexprlist RP",
- /* 87 */ "values ::= values COMMA LP exprlist RP",
- /* 88 */ "distinct ::= DISTINCT",
- /* 89 */ "distinct ::= ALL",
- /* 90 */ "distinct ::=",
- /* 91 */ "sclp ::=",
- /* 92 */ "selcollist ::= sclp scanpt expr scanpt as",
- /* 93 */ "selcollist ::= sclp scanpt STAR",
- /* 94 */ "selcollist ::= sclp scanpt nm DOT STAR",
- /* 95 */ "as ::= AS nm",
- /* 96 */ "as ::=",
- /* 97 */ "from ::=",
- /* 98 */ "from ::= FROM seltablist",
- /* 99 */ "stl_prefix ::= seltablist joinop",
- /* 100 */ "stl_prefix ::=",
- /* 101 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
- /* 102 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
- /* 103 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
- /* 104 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
- /* 105 */ "dbnm ::=",
- /* 106 */ "dbnm ::= DOT nm",
- /* 107 */ "fullname ::= nm dbnm",
- /* 108 */ "joinop ::= COMMA|JOIN",
- /* 109 */ "joinop ::= JOIN_KW JOIN",
- /* 110 */ "joinop ::= JOIN_KW nm JOIN",
- /* 111 */ "joinop ::= JOIN_KW nm nm JOIN",
- /* 112 */ "on_opt ::= ON expr",
- /* 113 */ "on_opt ::=",
- /* 114 */ "indexed_opt ::=",
- /* 115 */ "indexed_opt ::= INDEXED BY nm",
- /* 116 */ "indexed_opt ::= NOT INDEXED",
- /* 117 */ "using_opt ::= USING LP idlist RP",
- /* 118 */ "using_opt ::=",
- /* 119 */ "orderby_opt ::=",
- /* 120 */ "orderby_opt ::= ORDER BY sortlist",
- /* 121 */ "sortlist ::= sortlist COMMA expr sortorder",
- /* 122 */ "sortlist ::= expr sortorder",
- /* 123 */ "sortorder ::= ASC",
- /* 124 */ "sortorder ::= DESC",
- /* 125 */ "sortorder ::=",
- /* 126 */ "groupby_opt ::=",
- /* 127 */ "groupby_opt ::= GROUP BY nexprlist",
- /* 128 */ "having_opt ::=",
- /* 129 */ "having_opt ::= HAVING expr",
- /* 130 */ "limit_opt ::=",
- /* 131 */ "limit_opt ::= LIMIT expr",
- /* 132 */ "limit_opt ::= LIMIT expr OFFSET expr",
- /* 133 */ "limit_opt ::= LIMIT expr COMMA expr",
- /* 134 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
- /* 135 */ "where_opt ::=",
- /* 136 */ "where_opt ::= WHERE expr",
- /* 137 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
- /* 138 */ "setlist ::= setlist COMMA nm EQ expr",
- /* 139 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
- /* 140 */ "setlist ::= nm EQ expr",
- /* 141 */ "setlist ::= LP idlist RP EQ expr",
- /* 142 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
- /* 143 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
- /* 144 */ "insert_cmd ::= INSERT orconf",
- /* 145 */ "insert_cmd ::= REPLACE",
- /* 146 */ "idlist_opt ::=",
- /* 147 */ "idlist_opt ::= LP idlist RP",
- /* 148 */ "idlist ::= idlist COMMA nm",
- /* 149 */ "idlist ::= nm",
- /* 150 */ "expr ::= LP expr RP",
- /* 151 */ "expr ::= ID|INDEXED",
- /* 152 */ "expr ::= JOIN_KW",
- /* 153 */ "expr ::= nm DOT nm",
- /* 154 */ "expr ::= nm DOT nm DOT nm",
- /* 155 */ "term ::= NULL|FLOAT|BLOB",
- /* 156 */ "term ::= STRING",
- /* 157 */ "term ::= INTEGER",
- /* 158 */ "expr ::= VARIABLE",
- /* 159 */ "expr ::= expr COLLATE ID|STRING",
- /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
- /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
- /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
- /* 163 */ "term ::= CTIME_KW",
- /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
- /* 165 */ "expr ::= expr AND expr",
- /* 166 */ "expr ::= expr OR expr",
- /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
- /* 168 */ "expr ::= expr EQ|NE expr",
- /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
- /* 170 */ "expr ::= expr PLUS|MINUS expr",
- /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
- /* 172 */ "expr ::= expr CONCAT expr",
- /* 173 */ "likeop ::= NOT LIKE_KW|MATCH",
- /* 174 */ "expr ::= expr likeop expr",
- /* 175 */ "expr ::= expr likeop expr ESCAPE expr",
- /* 176 */ "expr ::= expr ISNULL|NOTNULL",
- /* 177 */ "expr ::= expr NOT NULL",
- /* 178 */ "expr ::= expr IS expr",
- /* 179 */ "expr ::= expr IS NOT expr",
- /* 180 */ "expr ::= NOT expr",
- /* 181 */ "expr ::= BITNOT expr",
- /* 182 */ "expr ::= MINUS expr",
- /* 183 */ "expr ::= PLUS expr",
- /* 184 */ "between_op ::= BETWEEN",
- /* 185 */ "between_op ::= NOT BETWEEN",
- /* 186 */ "expr ::= expr between_op expr AND expr",
- /* 187 */ "in_op ::= IN",
- /* 188 */ "in_op ::= NOT IN",
- /* 189 */ "expr ::= expr in_op LP exprlist RP",
- /* 190 */ "expr ::= LP select RP",
- /* 191 */ "expr ::= expr in_op LP select RP",
- /* 192 */ "expr ::= expr in_op nm dbnm paren_exprlist",
- /* 193 */ "expr ::= EXISTS LP select RP",
- /* 194 */ "expr ::= CASE case_operand case_exprlist case_else END",
- /* 195 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
- /* 196 */ "case_exprlist ::= WHEN expr THEN expr",
- /* 197 */ "case_else ::= ELSE expr",
- /* 198 */ "case_else ::=",
- /* 199 */ "case_operand ::= expr",
- /* 200 */ "case_operand ::=",
- /* 201 */ "exprlist ::=",
- /* 202 */ "nexprlist ::= nexprlist COMMA expr",
- /* 203 */ "nexprlist ::= expr",
- /* 204 */ "paren_exprlist ::=",
- /* 205 */ "paren_exprlist ::= LP exprlist RP",
- /* 206 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
- /* 207 */ "uniqueflag ::= UNIQUE",
- /* 208 */ "uniqueflag ::=",
- /* 209 */ "eidlist_opt ::=",
- /* 210 */ "eidlist_opt ::= LP eidlist RP",
- /* 211 */ "eidlist ::= eidlist COMMA nm collate sortorder",
- /* 212 */ "eidlist ::= nm collate sortorder",
- /* 213 */ "collate ::=",
- /* 214 */ "collate ::= COLLATE ID|STRING",
- /* 215 */ "cmd ::= DROP INDEX ifexists fullname",
- /* 216 */ "cmd ::= VACUUM",
- /* 217 */ "cmd ::= VACUUM nm",
- /* 218 */ "cmd ::= PRAGMA nm dbnm",
- /* 219 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
- /* 220 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
- /* 221 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
- /* 222 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
- /* 223 */ "plus_num ::= PLUS INTEGER|FLOAT",
- /* 224 */ "minus_num ::= MINUS INTEGER|FLOAT",
- /* 225 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
- /* 226 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
- /* 227 */ "trigger_time ::= BEFORE|AFTER",
- /* 228 */ "trigger_time ::= INSTEAD OF",
- /* 229 */ "trigger_time ::=",
- /* 230 */ "trigger_event ::= DELETE|INSERT",
- /* 231 */ "trigger_event ::= UPDATE",
- /* 232 */ "trigger_event ::= UPDATE OF idlist",
- /* 233 */ "when_clause ::=",
- /* 234 */ "when_clause ::= WHEN expr",
- /* 235 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
- /* 236 */ "trigger_cmd_list ::= trigger_cmd SEMI",
- /* 237 */ "trnm ::= nm DOT nm",
- /* 238 */ "tridxby ::= INDEXED BY nm",
- /* 239 */ "tridxby ::= NOT INDEXED",
- /* 240 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
- /* 241 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
- /* 242 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
- /* 243 */ "trigger_cmd ::= scanpt select scanpt",
- /* 244 */ "expr ::= RAISE LP IGNORE RP",
- /* 245 */ "expr ::= RAISE LP raisetype COMMA nm RP",
- /* 246 */ "raisetype ::= ROLLBACK",
- /* 247 */ "raisetype ::= ABORT",
- /* 248 */ "raisetype ::= FAIL",
- /* 249 */ "cmd ::= DROP TRIGGER ifexists fullname",
- /* 250 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
- /* 251 */ "cmd ::= DETACH database_kw_opt expr",
- /* 252 */ "key_opt ::=",
- /* 253 */ "key_opt ::= KEY expr",
- /* 254 */ "cmd ::= REINDEX",
- /* 255 */ "cmd ::= REINDEX nm dbnm",
- /* 256 */ "cmd ::= ANALYZE",
- /* 257 */ "cmd ::= ANALYZE nm dbnm",
- /* 258 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
- /* 259 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
- /* 260 */ "add_column_fullname ::= fullname",
- /* 261 */ "cmd ::= create_vtab",
- /* 262 */ "cmd ::= create_vtab LP vtabarglist RP",
- /* 263 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
- /* 264 */ "vtabarg ::=",
- /* 265 */ "vtabargtoken ::= ANY",
- /* 266 */ "vtabargtoken ::= lp anylist RP",
- /* 267 */ "lp ::= LP",
- /* 268 */ "with ::=",
- /* 269 */ "with ::= WITH wqlist",
- /* 270 */ "with ::= WITH RECURSIVE wqlist",
- /* 271 */ "wqlist ::= nm eidlist_opt AS LP select RP",
- /* 272 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
- /* 273 */ "input ::= cmdlist",
- /* 274 */ "cmdlist ::= cmdlist ecmd",
- /* 275 */ "cmdlist ::= ecmd",
- /* 276 */ "ecmd ::= SEMI",
- /* 277 */ "ecmd ::= explain cmdx SEMI",
- /* 278 */ "explain ::=",
- /* 279 */ "trans_opt ::=",
- /* 280 */ "trans_opt ::= TRANSACTION",
- /* 281 */ "trans_opt ::= TRANSACTION nm",
- /* 282 */ "savepoint_opt ::= SAVEPOINT",
- /* 283 */ "savepoint_opt ::=",
- /* 284 */ "cmd ::= create_table create_table_args",
- /* 285 */ "columnlist ::= columnlist COMMA columnname carglist",
- /* 286 */ "columnlist ::= columnname carglist",
- /* 287 */ "nm ::= ID|INDEXED",
- /* 288 */ "nm ::= STRING",
- /* 289 */ "nm ::= JOIN_KW",
- /* 290 */ "typetoken ::= typename",
- /* 291 */ "typename ::= ID|STRING",
- /* 292 */ "signed ::= plus_num",
- /* 293 */ "signed ::= minus_num",
- /* 294 */ "carglist ::= carglist ccons",
- /* 295 */ "carglist ::=",
- /* 296 */ "ccons ::= NULL onconf",
- /* 297 */ "conslist_opt ::= COMMA conslist",
- /* 298 */ "conslist ::= conslist tconscomma tcons",
- /* 299 */ "conslist ::= tcons",
- /* 300 */ "tconscomma ::=",
- /* 301 */ "defer_subclause_opt ::= defer_subclause",
- /* 302 */ "resolvetype ::= raisetype",
- /* 303 */ "selectnowith ::= oneselect",
- /* 304 */ "oneselect ::= values",
- /* 305 */ "sclp ::= selcollist COMMA",
- /* 306 */ "as ::= ID|STRING",
- /* 307 */ "expr ::= term",
- /* 308 */ "likeop ::= LIKE_KW|MATCH",
- /* 309 */ "exprlist ::= nexprlist",
- /* 310 */ "nmnum ::= plus_num",
- /* 311 */ "nmnum ::= nm",
- /* 312 */ "nmnum ::= ON",
- /* 313 */ "nmnum ::= DELETE",
- /* 314 */ "nmnum ::= DEFAULT",
- /* 315 */ "plus_num ::= INTEGER|FLOAT",
- /* 316 */ "foreach_clause ::=",
- /* 317 */ "foreach_clause ::= FOR EACH ROW",
- /* 318 */ "trnm ::= nm",
- /* 319 */ "tridxby ::=",
- /* 320 */ "database_kw_opt ::= DATABASE",
- /* 321 */ "database_kw_opt ::=",
- /* 322 */ "kwcolumn_opt ::=",
- /* 323 */ "kwcolumn_opt ::= COLUMNKW",
- /* 324 */ "vtabarglist ::= vtabarg",
- /* 325 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
- /* 326 */ "vtabarg ::= vtabarg vtabargtoken",
- /* 327 */ "anylist ::=",
- /* 328 */ "anylist ::= anylist LP anylist RP",
- /* 329 */ "anylist ::= anylist ANY",
+ /* 80 */ "select ::= WITH wqlist selectnowith",
+ /* 81 */ "select ::= WITH RECURSIVE wqlist selectnowith",
+ /* 82 */ "select ::= selectnowith",
+ /* 83 */ "selectnowith ::= selectnowith multiselect_op oneselect",
+ /* 84 */ "multiselect_op ::= UNION",
+ /* 85 */ "multiselect_op ::= UNION ALL",
+ /* 86 */ "multiselect_op ::= EXCEPT|INTERSECT",
+ /* 87 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
+ /* 88 */ "values ::= VALUES LP nexprlist RP",
+ /* 89 */ "values ::= values COMMA LP exprlist RP",
+ /* 90 */ "distinct ::= DISTINCT",
+ /* 91 */ "distinct ::= ALL",
+ /* 92 */ "distinct ::=",
+ /* 93 */ "sclp ::=",
+ /* 94 */ "selcollist ::= sclp scanpt expr scanpt as",
+ /* 95 */ "selcollist ::= sclp scanpt STAR",
+ /* 96 */ "selcollist ::= sclp scanpt nm DOT STAR",
+ /* 97 */ "as ::= AS nm",
+ /* 98 */ "as ::=",
+ /* 99 */ "from ::=",
+ /* 100 */ "from ::= FROM seltablist",
+ /* 101 */ "stl_prefix ::= seltablist joinop",
+ /* 102 */ "stl_prefix ::=",
+ /* 103 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
+ /* 104 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
+ /* 105 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
+ /* 106 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
+ /* 107 */ "dbnm ::=",
+ /* 108 */ "dbnm ::= DOT nm",
+ /* 109 */ "fullname ::= nm",
+ /* 110 */ "fullname ::= nm DOT nm",
+ /* 111 */ "joinop ::= COMMA|JOIN",
+ /* 112 */ "joinop ::= JOIN_KW JOIN",
+ /* 113 */ "joinop ::= JOIN_KW nm JOIN",
+ /* 114 */ "joinop ::= JOIN_KW nm nm JOIN",
+ /* 115 */ "on_opt ::= ON expr",
+ /* 116 */ "on_opt ::=",
+ /* 117 */ "indexed_opt ::=",
+ /* 118 */ "indexed_opt ::= INDEXED BY nm",
+ /* 119 */ "indexed_opt ::= NOT INDEXED",
+ /* 120 */ "using_opt ::= USING LP idlist RP",
+ /* 121 */ "using_opt ::=",
+ /* 122 */ "orderby_opt ::=",
+ /* 123 */ "orderby_opt ::= ORDER BY sortlist",
+ /* 124 */ "sortlist ::= sortlist COMMA expr sortorder",
+ /* 125 */ "sortlist ::= expr sortorder",
+ /* 126 */ "sortorder ::= ASC",
+ /* 127 */ "sortorder ::= DESC",
+ /* 128 */ "sortorder ::=",
+ /* 129 */ "groupby_opt ::=",
+ /* 130 */ "groupby_opt ::= GROUP BY nexprlist",
+ /* 131 */ "having_opt ::=",
+ /* 132 */ "having_opt ::= HAVING expr",
+ /* 133 */ "limit_opt ::=",
+ /* 134 */ "limit_opt ::= LIMIT expr",
+ /* 135 */ "limit_opt ::= LIMIT expr OFFSET expr",
+ /* 136 */ "limit_opt ::= LIMIT expr COMMA expr",
+ /* 137 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
+ /* 138 */ "where_opt ::=",
+ /* 139 */ "where_opt ::= WHERE expr",
+ /* 140 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
+ /* 141 */ "setlist ::= setlist COMMA nm EQ expr",
+ /* 142 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
+ /* 143 */ "setlist ::= nm EQ expr",
+ /* 144 */ "setlist ::= LP idlist RP EQ expr",
+ /* 145 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
+ /* 146 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
+ /* 147 */ "insert_cmd ::= INSERT orconf",
+ /* 148 */ "insert_cmd ::= REPLACE",
+ /* 149 */ "idlist_opt ::=",
+ /* 150 */ "idlist_opt ::= LP idlist RP",
+ /* 151 */ "idlist ::= idlist COMMA nm",
+ /* 152 */ "idlist ::= nm",
+ /* 153 */ "expr ::= LP expr RP",
+ /* 154 */ "expr ::= ID|INDEXED",
+ /* 155 */ "expr ::= JOIN_KW",
+ /* 156 */ "expr ::= nm DOT nm",
+ /* 157 */ "expr ::= nm DOT nm DOT nm",
+ /* 158 */ "term ::= NULL|FLOAT|BLOB",
+ /* 159 */ "term ::= STRING",
+ /* 160 */ "term ::= INTEGER",
+ /* 161 */ "expr ::= VARIABLE",
+ /* 162 */ "expr ::= expr COLLATE ID|STRING",
+ /* 163 */ "expr ::= CAST LP expr AS typetoken RP",
+ /* 164 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
+ /* 165 */ "expr ::= ID|INDEXED LP STAR RP",
+ /* 166 */ "term ::= CTIME_KW",
+ /* 167 */ "expr ::= LP nexprlist COMMA expr RP",
+ /* 168 */ "expr ::= expr AND expr",
+ /* 169 */ "expr ::= expr OR expr",
+ /* 170 */ "expr ::= expr LT|GT|GE|LE expr",
+ /* 171 */ "expr ::= expr EQ|NE expr",
+ /* 172 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
+ /* 173 */ "expr ::= expr PLUS|MINUS expr",
+ /* 174 */ "expr ::= expr STAR|SLASH|REM expr",
+ /* 175 */ "expr ::= expr CONCAT expr",
+ /* 176 */ "likeop ::= NOT LIKE_KW|MATCH",
+ /* 177 */ "expr ::= expr likeop expr",
+ /* 178 */ "expr ::= expr likeop expr ESCAPE expr",
+ /* 179 */ "expr ::= expr ISNULL|NOTNULL",
+ /* 180 */ "expr ::= expr NOT NULL",
+ /* 181 */ "expr ::= expr IS expr",
+ /* 182 */ "expr ::= expr IS NOT expr",
+ /* 183 */ "expr ::= NOT expr",
+ /* 184 */ "expr ::= BITNOT expr",
+ /* 185 */ "expr ::= MINUS expr",
+ /* 186 */ "expr ::= PLUS expr",
+ /* 187 */ "between_op ::= BETWEEN",
+ /* 188 */ "between_op ::= NOT BETWEEN",
+ /* 189 */ "expr ::= expr between_op expr AND expr",
+ /* 190 */ "in_op ::= IN",
+ /* 191 */ "in_op ::= NOT IN",
+ /* 192 */ "expr ::= expr in_op LP exprlist RP",
+ /* 193 */ "expr ::= LP select RP",
+ /* 194 */ "expr ::= expr in_op LP select RP",
+ /* 195 */ "expr ::= expr in_op nm dbnm paren_exprlist",
+ /* 196 */ "expr ::= EXISTS LP select RP",
+ /* 197 */ "expr ::= CASE case_operand case_exprlist case_else END",
+ /* 198 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
+ /* 199 */ "case_exprlist ::= WHEN expr THEN expr",
+ /* 200 */ "case_else ::= ELSE expr",
+ /* 201 */ "case_else ::=",
+ /* 202 */ "case_operand ::= expr",
+ /* 203 */ "case_operand ::=",
+ /* 204 */ "exprlist ::=",
+ /* 205 */ "nexprlist ::= nexprlist COMMA expr",
+ /* 206 */ "nexprlist ::= expr",
+ /* 207 */ "paren_exprlist ::=",
+ /* 208 */ "paren_exprlist ::= LP exprlist RP",
+ /* 209 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
+ /* 210 */ "uniqueflag ::= UNIQUE",
+ /* 211 */ "uniqueflag ::=",
+ /* 212 */ "eidlist_opt ::=",
+ /* 213 */ "eidlist_opt ::= LP eidlist RP",
+ /* 214 */ "eidlist ::= eidlist COMMA nm collate sortorder",
+ /* 215 */ "eidlist ::= nm collate sortorder",
+ /* 216 */ "collate ::=",
+ /* 217 */ "collate ::= COLLATE ID|STRING",
+ /* 218 */ "cmd ::= DROP INDEX ifexists fullname",
+ /* 219 */ "cmd ::= VACUUM",
+ /* 220 */ "cmd ::= VACUUM nm",
+ /* 221 */ "cmd ::= PRAGMA nm dbnm",
+ /* 222 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
+ /* 223 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
+ /* 224 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
+ /* 225 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
+ /* 226 */ "plus_num ::= PLUS INTEGER|FLOAT",
+ /* 227 */ "minus_num ::= MINUS INTEGER|FLOAT",
+ /* 228 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
+ /* 229 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
+ /* 230 */ "trigger_time ::= BEFORE|AFTER",
+ /* 231 */ "trigger_time ::= INSTEAD OF",
+ /* 232 */ "trigger_time ::=",
+ /* 233 */ "trigger_event ::= DELETE|INSERT",
+ /* 234 */ "trigger_event ::= UPDATE",
+ /* 235 */ "trigger_event ::= UPDATE OF idlist",
+ /* 236 */ "when_clause ::=",
+ /* 237 */ "when_clause ::= WHEN expr",
+ /* 238 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
+ /* 239 */ "trigger_cmd_list ::= trigger_cmd SEMI",
+ /* 240 */ "trnm ::= nm DOT nm",
+ /* 241 */ "tridxby ::= INDEXED BY nm",
+ /* 242 */ "tridxby ::= NOT INDEXED",
+ /* 243 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
+ /* 244 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
+ /* 245 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
+ /* 246 */ "trigger_cmd ::= scanpt select scanpt",
+ /* 247 */ "expr ::= RAISE LP IGNORE RP",
+ /* 248 */ "expr ::= RAISE LP raisetype COMMA nm RP",
+ /* 249 */ "raisetype ::= ROLLBACK",
+ /* 250 */ "raisetype ::= ABORT",
+ /* 251 */ "raisetype ::= FAIL",
+ /* 252 */ "cmd ::= DROP TRIGGER ifexists fullname",
+ /* 253 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
+ /* 254 */ "cmd ::= DETACH database_kw_opt expr",
+ /* 255 */ "key_opt ::=",
+ /* 256 */ "key_opt ::= KEY expr",
+ /* 257 */ "cmd ::= REINDEX",
+ /* 258 */ "cmd ::= REINDEX nm dbnm",
+ /* 259 */ "cmd ::= ANALYZE",
+ /* 260 */ "cmd ::= ANALYZE nm dbnm",
+ /* 261 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
+ /* 262 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
+ /* 263 */ "add_column_fullname ::= fullname",
+ /* 264 */ "cmd ::= create_vtab",
+ /* 265 */ "cmd ::= create_vtab LP vtabarglist RP",
+ /* 266 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
+ /* 267 */ "vtabarg ::=",
+ /* 268 */ "vtabargtoken ::= ANY",
+ /* 269 */ "vtabargtoken ::= lp anylist RP",
+ /* 270 */ "lp ::= LP",
+ /* 271 */ "with ::= WITH wqlist",
+ /* 272 */ "with ::= WITH RECURSIVE wqlist",
+ /* 273 */ "wqlist ::= nm eidlist_opt AS LP select RP",
+ /* 274 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
+ /* 275 */ "input ::= cmdlist",
+ /* 276 */ "cmdlist ::= cmdlist ecmd",
+ /* 277 */ "cmdlist ::= ecmd",
+ /* 278 */ "ecmd ::= SEMI",
+ /* 279 */ "ecmd ::= explain cmdx SEMI",
+ /* 280 */ "explain ::=",
+ /* 281 */ "trans_opt ::=",
+ /* 282 */ "trans_opt ::= TRANSACTION",
+ /* 283 */ "trans_opt ::= TRANSACTION nm",
+ /* 284 */ "savepoint_opt ::= SAVEPOINT",
+ /* 285 */ "savepoint_opt ::=",
+ /* 286 */ "cmd ::= create_table create_table_args",
+ /* 287 */ "columnlist ::= columnlist COMMA columnname carglist",
+ /* 288 */ "columnlist ::= columnname carglist",
+ /* 289 */ "nm ::= ID|INDEXED",
+ /* 290 */ "nm ::= STRING",
+ /* 291 */ "nm ::= JOIN_KW",
+ /* 292 */ "typetoken ::= typename",
+ /* 293 */ "typename ::= ID|STRING",
+ /* 294 */ "signed ::= plus_num",
+ /* 295 */ "signed ::= minus_num",
+ /* 296 */ "carglist ::= carglist ccons",
+ /* 297 */ "carglist ::=",
+ /* 298 */ "ccons ::= NULL onconf",
+ /* 299 */ "conslist_opt ::= COMMA conslist",
+ /* 300 */ "conslist ::= conslist tconscomma tcons",
+ /* 301 */ "conslist ::= tcons",
+ /* 302 */ "tconscomma ::=",
+ /* 303 */ "defer_subclause_opt ::= defer_subclause",
+ /* 304 */ "resolvetype ::= raisetype",
+ /* 305 */ "selectnowith ::= oneselect",
+ /* 306 */ "oneselect ::= values",
+ /* 307 */ "sclp ::= selcollist COMMA",
+ /* 308 */ "as ::= ID|STRING",
+ /* 309 */ "expr ::= term",
+ /* 310 */ "likeop ::= LIKE_KW|MATCH",
+ /* 311 */ "exprlist ::= nexprlist",
+ /* 312 */ "nmnum ::= plus_num",
+ /* 313 */ "nmnum ::= nm",
+ /* 314 */ "nmnum ::= ON",
+ /* 315 */ "nmnum ::= DELETE",
+ /* 316 */ "nmnum ::= DEFAULT",
+ /* 317 */ "plus_num ::= INTEGER|FLOAT",
+ /* 318 */ "foreach_clause ::=",
+ /* 319 */ "foreach_clause ::= FOR EACH ROW",
+ /* 320 */ "trnm ::= nm",
+ /* 321 */ "tridxby ::=",
+ /* 322 */ "database_kw_opt ::= DATABASE",
+ /* 323 */ "database_kw_opt ::=",
+ /* 324 */ "kwcolumn_opt ::=",
+ /* 325 */ "kwcolumn_opt ::= COLUMNKW",
+ /* 326 */ "vtabarglist ::= vtabarg",
+ /* 327 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
+ /* 328 */ "vtabarg ::= vtabarg vtabargtoken",
+ /* 329 */ "anylist ::=",
+ /* 330 */ "anylist ::= anylist LP anylist RP",
+ /* 331 */ "anylist ::= anylist ANY",
+ /* 332 */ "with ::=",
};
#endif /* NDEBUG */
@@ -141425,10 +141497,10 @@ sqlite3SelectDelete(pParse->db, (yypminor->yy387));
case 202: /* where_opt */
case 204: /* having_opt */
case 216: /* on_opt */
- case 226: /* case_operand */
- case 228: /* case_else */
- case 237: /* when_clause */
- case 242: /* key_opt */
+ case 227: /* case_operand */
+ case 229: /* case_else */
+ case 238: /* when_clause */
+ case 243: /* key_opt */
{
sqlite3ExprDelete(pParse->db, (yypminor->yy314));
}
@@ -141442,9 +141514,9 @@ sqlite3ExprDelete(pParse->db, (yypminor->yy314));
case 208: /* nexprlist */
case 209: /* exprlist */
case 210: /* sclp */
- case 219: /* setlist */
- case 225: /* paren_exprlist */
- case 227: /* case_exprlist */
+ case 220: /* setlist */
+ case 226: /* paren_exprlist */
+ case 228: /* case_exprlist */
{
sqlite3ExprListDelete(pParse->db, (yypminor->yy322));
}
@@ -141457,26 +141529,25 @@ sqlite3ExprListDelete(pParse->db, (yypminor->yy322));
sqlite3SrcListDelete(pParse->db, (yypminor->yy259));
}
break;
- case 197: /* with */
- case 251: /* wqlist */
+ case 197: /* wqlist */
{
sqlite3WithDelete(pParse->db, (yypminor->yy451));
}
break;
case 217: /* using_opt */
case 218: /* idlist */
- case 221: /* idlist_opt */
+ case 222: /* idlist_opt */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy384));
}
break;
- case 233: /* trigger_cmd_list */
- case 238: /* trigger_cmd */
+ case 234: /* trigger_cmd_list */
+ case 239: /* trigger_cmd */
{
sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203));
}
break;
- case 235: /* trigger_event */
+ case 236: /* trigger_event */
{
sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
}
@@ -141855,256 +141926,259 @@ static const struct {
{ 149, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
{ 149, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */
{ 149, -1 }, /* (79) cmd ::= select */
- { 163, -2 }, /* (80) select ::= with selectnowith */
- { 195, -3 }, /* (81) selectnowith ::= selectnowith multiselect_op oneselect */
- { 198, -1 }, /* (82) multiselect_op ::= UNION */
- { 198, -2 }, /* (83) multiselect_op ::= UNION ALL */
- { 198, -1 }, /* (84) multiselect_op ::= EXCEPT|INTERSECT */
- { 196, -9 }, /* (85) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
- { 207, -4 }, /* (86) values ::= VALUES LP nexprlist RP */
- { 207, -5 }, /* (87) values ::= values COMMA LP exprlist RP */
- { 199, -1 }, /* (88) distinct ::= DISTINCT */
- { 199, -1 }, /* (89) distinct ::= ALL */
- { 199, 0 }, /* (90) distinct ::= */
- { 210, 0 }, /* (91) sclp ::= */
- { 200, -5 }, /* (92) selcollist ::= sclp scanpt expr scanpt as */
- { 200, -3 }, /* (93) selcollist ::= sclp scanpt STAR */
- { 200, -5 }, /* (94) selcollist ::= sclp scanpt nm DOT STAR */
- { 211, -2 }, /* (95) as ::= AS nm */
- { 211, 0 }, /* (96) as ::= */
- { 201, 0 }, /* (97) from ::= */
- { 201, -2 }, /* (98) from ::= FROM seltablist */
- { 213, -2 }, /* (99) stl_prefix ::= seltablist joinop */
- { 213, 0 }, /* (100) stl_prefix ::= */
- { 212, -7 }, /* (101) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
- { 212, -9 }, /* (102) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
- { 212, -7 }, /* (103) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
- { 212, -7 }, /* (104) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
- { 159, 0 }, /* (105) dbnm ::= */
- { 159, -2 }, /* (106) dbnm ::= DOT nm */
- { 194, -2 }, /* (107) fullname ::= nm dbnm */
- { 214, -1 }, /* (108) joinop ::= COMMA|JOIN */
- { 214, -2 }, /* (109) joinop ::= JOIN_KW JOIN */
- { 214, -3 }, /* (110) joinop ::= JOIN_KW nm JOIN */
- { 214, -4 }, /* (111) joinop ::= JOIN_KW nm nm JOIN */
- { 216, -2 }, /* (112) on_opt ::= ON expr */
- { 216, 0 }, /* (113) on_opt ::= */
- { 215, 0 }, /* (114) indexed_opt ::= */
- { 215, -3 }, /* (115) indexed_opt ::= INDEXED BY nm */
- { 215, -2 }, /* (116) indexed_opt ::= NOT INDEXED */
- { 217, -4 }, /* (117) using_opt ::= USING LP idlist RP */
- { 217, 0 }, /* (118) using_opt ::= */
- { 205, 0 }, /* (119) orderby_opt ::= */
- { 205, -3 }, /* (120) orderby_opt ::= ORDER BY sortlist */
- { 187, -4 }, /* (121) sortlist ::= sortlist COMMA expr sortorder */
- { 187, -2 }, /* (122) sortlist ::= expr sortorder */
- { 176, -1 }, /* (123) sortorder ::= ASC */
- { 176, -1 }, /* (124) sortorder ::= DESC */
- { 176, 0 }, /* (125) sortorder ::= */
- { 203, 0 }, /* (126) groupby_opt ::= */
- { 203, -3 }, /* (127) groupby_opt ::= GROUP BY nexprlist */
- { 204, 0 }, /* (128) having_opt ::= */
- { 204, -2 }, /* (129) having_opt ::= HAVING expr */
- { 206, 0 }, /* (130) limit_opt ::= */
- { 206, -2 }, /* (131) limit_opt ::= LIMIT expr */
- { 206, -4 }, /* (132) limit_opt ::= LIMIT expr OFFSET expr */
- { 206, -4 }, /* (133) limit_opt ::= LIMIT expr COMMA expr */
- { 149, -6 }, /* (134) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
- { 202, 0 }, /* (135) where_opt ::= */
- { 202, -2 }, /* (136) where_opt ::= WHERE expr */
- { 149, -8 }, /* (137) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
- { 219, -5 }, /* (138) setlist ::= setlist COMMA nm EQ expr */
- { 219, -7 }, /* (139) setlist ::= setlist COMMA LP idlist RP EQ expr */
- { 219, -3 }, /* (140) setlist ::= nm EQ expr */
- { 219, -5 }, /* (141) setlist ::= LP idlist RP EQ expr */
- { 149, -6 }, /* (142) cmd ::= with insert_cmd INTO fullname idlist_opt select */
- { 149, -7 }, /* (143) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
- { 220, -2 }, /* (144) insert_cmd ::= INSERT orconf */
- { 220, -1 }, /* (145) insert_cmd ::= REPLACE */
- { 221, 0 }, /* (146) idlist_opt ::= */
- { 221, -3 }, /* (147) idlist_opt ::= LP idlist RP */
- { 218, -3 }, /* (148) idlist ::= idlist COMMA nm */
- { 218, -1 }, /* (149) idlist ::= nm */
- { 174, -3 }, /* (150) expr ::= LP expr RP */
- { 174, -1 }, /* (151) expr ::= ID|INDEXED */
- { 174, -1 }, /* (152) expr ::= JOIN_KW */
- { 174, -3 }, /* (153) expr ::= nm DOT nm */
- { 174, -5 }, /* (154) expr ::= nm DOT nm DOT nm */
- { 173, -1 }, /* (155) term ::= NULL|FLOAT|BLOB */
- { 173, -1 }, /* (156) term ::= STRING */
- { 173, -1 }, /* (157) term ::= INTEGER */
- { 174, -1 }, /* (158) expr ::= VARIABLE */
- { 174, -3 }, /* (159) expr ::= expr COLLATE ID|STRING */
- { 174, -6 }, /* (160) expr ::= CAST LP expr AS typetoken RP */
- { 174, -5 }, /* (161) expr ::= ID|INDEXED LP distinct exprlist RP */
- { 174, -4 }, /* (162) expr ::= ID|INDEXED LP STAR RP */
- { 173, -1 }, /* (163) term ::= CTIME_KW */
- { 174, -5 }, /* (164) expr ::= LP nexprlist COMMA expr RP */
- { 174, -3 }, /* (165) expr ::= expr AND expr */
- { 174, -3 }, /* (166) expr ::= expr OR expr */
- { 174, -3 }, /* (167) expr ::= expr LT|GT|GE|LE expr */
- { 174, -3 }, /* (168) expr ::= expr EQ|NE expr */
- { 174, -3 }, /* (169) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
- { 174, -3 }, /* (170) expr ::= expr PLUS|MINUS expr */
- { 174, -3 }, /* (171) expr ::= expr STAR|SLASH|REM expr */
- { 174, -3 }, /* (172) expr ::= expr CONCAT expr */
- { 222, -2 }, /* (173) likeop ::= NOT LIKE_KW|MATCH */
- { 174, -3 }, /* (174) expr ::= expr likeop expr */
- { 174, -5 }, /* (175) expr ::= expr likeop expr ESCAPE expr */
- { 174, -2 }, /* (176) expr ::= expr ISNULL|NOTNULL */
- { 174, -3 }, /* (177) expr ::= expr NOT NULL */
- { 174, -3 }, /* (178) expr ::= expr IS expr */
- { 174, -4 }, /* (179) expr ::= expr IS NOT expr */
- { 174, -2 }, /* (180) expr ::= NOT expr */
- { 174, -2 }, /* (181) expr ::= BITNOT expr */
- { 174, -2 }, /* (182) expr ::= MINUS expr */
- { 174, -2 }, /* (183) expr ::= PLUS expr */
- { 223, -1 }, /* (184) between_op ::= BETWEEN */
- { 223, -2 }, /* (185) between_op ::= NOT BETWEEN */
- { 174, -5 }, /* (186) expr ::= expr between_op expr AND expr */
- { 224, -1 }, /* (187) in_op ::= IN */
- { 224, -2 }, /* (188) in_op ::= NOT IN */
- { 174, -5 }, /* (189) expr ::= expr in_op LP exprlist RP */
- { 174, -3 }, /* (190) expr ::= LP select RP */
- { 174, -5 }, /* (191) expr ::= expr in_op LP select RP */
- { 174, -5 }, /* (192) expr ::= expr in_op nm dbnm paren_exprlist */
- { 174, -4 }, /* (193) expr ::= EXISTS LP select RP */
- { 174, -5 }, /* (194) expr ::= CASE case_operand case_exprlist case_else END */
- { 227, -5 }, /* (195) case_exprlist ::= case_exprlist WHEN expr THEN expr */
- { 227, -4 }, /* (196) case_exprlist ::= WHEN expr THEN expr */
- { 228, -2 }, /* (197) case_else ::= ELSE expr */
- { 228, 0 }, /* (198) case_else ::= */
- { 226, -1 }, /* (199) case_operand ::= expr */
- { 226, 0 }, /* (200) case_operand ::= */
- { 209, 0 }, /* (201) exprlist ::= */
- { 208, -3 }, /* (202) nexprlist ::= nexprlist COMMA expr */
- { 208, -1 }, /* (203) nexprlist ::= expr */
- { 225, 0 }, /* (204) paren_exprlist ::= */
- { 225, -3 }, /* (205) paren_exprlist ::= LP exprlist RP */
- { 149, -12 }, /* (206) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
- { 229, -1 }, /* (207) uniqueflag ::= UNIQUE */
- { 229, 0 }, /* (208) uniqueflag ::= */
- { 178, 0 }, /* (209) eidlist_opt ::= */
- { 178, -3 }, /* (210) eidlist_opt ::= LP eidlist RP */
- { 188, -5 }, /* (211) eidlist ::= eidlist COMMA nm collate sortorder */
- { 188, -3 }, /* (212) eidlist ::= nm collate sortorder */
- { 230, 0 }, /* (213) collate ::= */
- { 230, -2 }, /* (214) collate ::= COLLATE ID|STRING */
- { 149, -4 }, /* (215) cmd ::= DROP INDEX ifexists fullname */
- { 149, -1 }, /* (216) cmd ::= VACUUM */
- { 149, -2 }, /* (217) cmd ::= VACUUM nm */
- { 149, -3 }, /* (218) cmd ::= PRAGMA nm dbnm */
- { 149, -5 }, /* (219) cmd ::= PRAGMA nm dbnm EQ nmnum */
- { 149, -6 }, /* (220) cmd ::= PRAGMA nm dbnm LP nmnum RP */
- { 149, -5 }, /* (221) cmd ::= PRAGMA nm dbnm EQ minus_num */
- { 149, -6 }, /* (222) cmd ::= PRAGMA nm dbnm LP minus_num RP */
- { 169, -2 }, /* (223) plus_num ::= PLUS INTEGER|FLOAT */
- { 170, -2 }, /* (224) minus_num ::= MINUS INTEGER|FLOAT */
- { 149, -5 }, /* (225) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
- { 232, -11 }, /* (226) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
- { 234, -1 }, /* (227) trigger_time ::= BEFORE|AFTER */
- { 234, -2 }, /* (228) trigger_time ::= INSTEAD OF */
- { 234, 0 }, /* (229) trigger_time ::= */
- { 235, -1 }, /* (230) trigger_event ::= DELETE|INSERT */
- { 235, -1 }, /* (231) trigger_event ::= UPDATE */
- { 235, -3 }, /* (232) trigger_event ::= UPDATE OF idlist */
- { 237, 0 }, /* (233) when_clause ::= */
- { 237, -2 }, /* (234) when_clause ::= WHEN expr */
- { 233, -3 }, /* (235) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
- { 233, -2 }, /* (236) trigger_cmd_list ::= trigger_cmd SEMI */
- { 239, -3 }, /* (237) trnm ::= nm DOT nm */
- { 240, -3 }, /* (238) tridxby ::= INDEXED BY nm */
- { 240, -2 }, /* (239) tridxby ::= NOT INDEXED */
- { 238, -8 }, /* (240) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
- { 238, -7 }, /* (241) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
- { 238, -6 }, /* (242) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
- { 238, -3 }, /* (243) trigger_cmd ::= scanpt select scanpt */
- { 174, -4 }, /* (244) expr ::= RAISE LP IGNORE RP */
- { 174, -6 }, /* (245) expr ::= RAISE LP raisetype COMMA nm RP */
- { 192, -1 }, /* (246) raisetype ::= ROLLBACK */
- { 192, -1 }, /* (247) raisetype ::= ABORT */
- { 192, -1 }, /* (248) raisetype ::= FAIL */
- { 149, -4 }, /* (249) cmd ::= DROP TRIGGER ifexists fullname */
- { 149, -6 }, /* (250) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
- { 149, -3 }, /* (251) cmd ::= DETACH database_kw_opt expr */
- { 242, 0 }, /* (252) key_opt ::= */
- { 242, -2 }, /* (253) key_opt ::= KEY expr */
- { 149, -1 }, /* (254) cmd ::= REINDEX */
- { 149, -3 }, /* (255) cmd ::= REINDEX nm dbnm */
- { 149, -1 }, /* (256) cmd ::= ANALYZE */
- { 149, -3 }, /* (257) cmd ::= ANALYZE nm dbnm */
- { 149, -6 }, /* (258) cmd ::= ALTER TABLE fullname RENAME TO nm */
- { 149, -7 }, /* (259) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
- { 243, -1 }, /* (260) add_column_fullname ::= fullname */
- { 149, -1 }, /* (261) cmd ::= create_vtab */
- { 149, -4 }, /* (262) cmd ::= create_vtab LP vtabarglist RP */
- { 245, -8 }, /* (263) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
- { 247, 0 }, /* (264) vtabarg ::= */
- { 248, -1 }, /* (265) vtabargtoken ::= ANY */
- { 248, -3 }, /* (266) vtabargtoken ::= lp anylist RP */
- { 249, -1 }, /* (267) lp ::= LP */
- { 197, 0 }, /* (268) with ::= */
- { 197, -2 }, /* (269) with ::= WITH wqlist */
- { 197, -3 }, /* (270) with ::= WITH RECURSIVE wqlist */
- { 251, -6 }, /* (271) wqlist ::= nm eidlist_opt AS LP select RP */
- { 251, -8 }, /* (272) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
- { 144, -1 }, /* (273) input ::= cmdlist */
- { 145, -2 }, /* (274) cmdlist ::= cmdlist ecmd */
- { 145, -1 }, /* (275) cmdlist ::= ecmd */
- { 146, -1 }, /* (276) ecmd ::= SEMI */
- { 146, -3 }, /* (277) ecmd ::= explain cmdx SEMI */
- { 147, 0 }, /* (278) explain ::= */
- { 151, 0 }, /* (279) trans_opt ::= */
- { 151, -1 }, /* (280) trans_opt ::= TRANSACTION */
- { 151, -2 }, /* (281) trans_opt ::= TRANSACTION nm */
- { 153, -1 }, /* (282) savepoint_opt ::= SAVEPOINT */
- { 153, 0 }, /* (283) savepoint_opt ::= */
- { 149, -2 }, /* (284) cmd ::= create_table create_table_args */
- { 160, -4 }, /* (285) columnlist ::= columnlist COMMA columnname carglist */
- { 160, -2 }, /* (286) columnlist ::= columnname carglist */
- { 152, -1 }, /* (287) nm ::= ID|INDEXED */
- { 152, -1 }, /* (288) nm ::= STRING */
- { 152, -1 }, /* (289) nm ::= JOIN_KW */
- { 166, -1 }, /* (290) typetoken ::= typename */
- { 167, -1 }, /* (291) typename ::= ID|STRING */
- { 168, -1 }, /* (292) signed ::= plus_num */
- { 168, -1 }, /* (293) signed ::= minus_num */
- { 165, -2 }, /* (294) carglist ::= carglist ccons */
- { 165, 0 }, /* (295) carglist ::= */
- { 172, -2 }, /* (296) ccons ::= NULL onconf */
- { 161, -2 }, /* (297) conslist_opt ::= COMMA conslist */
- { 184, -3 }, /* (298) conslist ::= conslist tconscomma tcons */
- { 184, -1 }, /* (299) conslist ::= tcons */
- { 185, 0 }, /* (300) tconscomma ::= */
- { 189, -1 }, /* (301) defer_subclause_opt ::= defer_subclause */
- { 191, -1 }, /* (302) resolvetype ::= raisetype */
- { 195, -1 }, /* (303) selectnowith ::= oneselect */
- { 196, -1 }, /* (304) oneselect ::= values */
- { 210, -2 }, /* (305) sclp ::= selcollist COMMA */
- { 211, -1 }, /* (306) as ::= ID|STRING */
- { 174, -1 }, /* (307) expr ::= term */
- { 222, -1 }, /* (308) likeop ::= LIKE_KW|MATCH */
- { 209, -1 }, /* (309) exprlist ::= nexprlist */
- { 231, -1 }, /* (310) nmnum ::= plus_num */
- { 231, -1 }, /* (311) nmnum ::= nm */
- { 231, -1 }, /* (312) nmnum ::= ON */
- { 231, -1 }, /* (313) nmnum ::= DELETE */
- { 231, -1 }, /* (314) nmnum ::= DEFAULT */
- { 169, -1 }, /* (315) plus_num ::= INTEGER|FLOAT */
- { 236, 0 }, /* (316) foreach_clause ::= */
- { 236, -3 }, /* (317) foreach_clause ::= FOR EACH ROW */
- { 239, -1 }, /* (318) trnm ::= nm */
- { 240, 0 }, /* (319) tridxby ::= */
- { 241, -1 }, /* (320) database_kw_opt ::= DATABASE */
- { 241, 0 }, /* (321) database_kw_opt ::= */
- { 244, 0 }, /* (322) kwcolumn_opt ::= */
- { 244, -1 }, /* (323) kwcolumn_opt ::= COLUMNKW */
- { 246, -1 }, /* (324) vtabarglist ::= vtabarg */
- { 246, -3 }, /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */
- { 247, -2 }, /* (326) vtabarg ::= vtabarg vtabargtoken */
- { 250, 0 }, /* (327) anylist ::= */
- { 250, -4 }, /* (328) anylist ::= anylist LP anylist RP */
- { 250, -2 }, /* (329) anylist ::= anylist ANY */
+ { 163, -3 }, /* (80) select ::= WITH wqlist selectnowith */
+ { 163, -4 }, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
+ { 163, -1 }, /* (82) select ::= selectnowith */
+ { 195, -3 }, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
+ { 198, -1 }, /* (84) multiselect_op ::= UNION */
+ { 198, -2 }, /* (85) multiselect_op ::= UNION ALL */
+ { 198, -1 }, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
+ { 196, -9 }, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
+ { 207, -4 }, /* (88) values ::= VALUES LP nexprlist RP */
+ { 207, -5 }, /* (89) values ::= values COMMA LP exprlist RP */
+ { 199, -1 }, /* (90) distinct ::= DISTINCT */
+ { 199, -1 }, /* (91) distinct ::= ALL */
+ { 199, 0 }, /* (92) distinct ::= */
+ { 210, 0 }, /* (93) sclp ::= */
+ { 200, -5 }, /* (94) selcollist ::= sclp scanpt expr scanpt as */
+ { 200, -3 }, /* (95) selcollist ::= sclp scanpt STAR */
+ { 200, -5 }, /* (96) selcollist ::= sclp scanpt nm DOT STAR */
+ { 211, -2 }, /* (97) as ::= AS nm */
+ { 211, 0 }, /* (98) as ::= */
+ { 201, 0 }, /* (99) from ::= */
+ { 201, -2 }, /* (100) from ::= FROM seltablist */
+ { 213, -2 }, /* (101) stl_prefix ::= seltablist joinop */
+ { 213, 0 }, /* (102) stl_prefix ::= */
+ { 212, -7 }, /* (103) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
+ { 212, -9 }, /* (104) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
+ { 212, -7 }, /* (105) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
+ { 212, -7 }, /* (106) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
+ { 159, 0 }, /* (107) dbnm ::= */
+ { 159, -2 }, /* (108) dbnm ::= DOT nm */
+ { 194, -1 }, /* (109) fullname ::= nm */
+ { 194, -3 }, /* (110) fullname ::= nm DOT nm */
+ { 214, -1 }, /* (111) joinop ::= COMMA|JOIN */
+ { 214, -2 }, /* (112) joinop ::= JOIN_KW JOIN */
+ { 214, -3 }, /* (113) joinop ::= JOIN_KW nm JOIN */
+ { 214, -4 }, /* (114) joinop ::= JOIN_KW nm nm JOIN */
+ { 216, -2 }, /* (115) on_opt ::= ON expr */
+ { 216, 0 }, /* (116) on_opt ::= */
+ { 215, 0 }, /* (117) indexed_opt ::= */
+ { 215, -3 }, /* (118) indexed_opt ::= INDEXED BY nm */
+ { 215, -2 }, /* (119) indexed_opt ::= NOT INDEXED */
+ { 217, -4 }, /* (120) using_opt ::= USING LP idlist RP */
+ { 217, 0 }, /* (121) using_opt ::= */
+ { 205, 0 }, /* (122) orderby_opt ::= */
+ { 205, -3 }, /* (123) orderby_opt ::= ORDER BY sortlist */
+ { 187, -4 }, /* (124) sortlist ::= sortlist COMMA expr sortorder */
+ { 187, -2 }, /* (125) sortlist ::= expr sortorder */
+ { 176, -1 }, /* (126) sortorder ::= ASC */
+ { 176, -1 }, /* (127) sortorder ::= DESC */
+ { 176, 0 }, /* (128) sortorder ::= */
+ { 203, 0 }, /* (129) groupby_opt ::= */
+ { 203, -3 }, /* (130) groupby_opt ::= GROUP BY nexprlist */
+ { 204, 0 }, /* (131) having_opt ::= */
+ { 204, -2 }, /* (132) having_opt ::= HAVING expr */
+ { 206, 0 }, /* (133) limit_opt ::= */
+ { 206, -2 }, /* (134) limit_opt ::= LIMIT expr */
+ { 206, -4 }, /* (135) limit_opt ::= LIMIT expr OFFSET expr */
+ { 206, -4 }, /* (136) limit_opt ::= LIMIT expr COMMA expr */
+ { 149, -6 }, /* (137) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
+ { 202, 0 }, /* (138) where_opt ::= */
+ { 202, -2 }, /* (139) where_opt ::= WHERE expr */
+ { 149, -8 }, /* (140) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
+ { 220, -5 }, /* (141) setlist ::= setlist COMMA nm EQ expr */
+ { 220, -7 }, /* (142) setlist ::= setlist COMMA LP idlist RP EQ expr */
+ { 220, -3 }, /* (143) setlist ::= nm EQ expr */
+ { 220, -5 }, /* (144) setlist ::= LP idlist RP EQ expr */
+ { 149, -6 }, /* (145) cmd ::= with insert_cmd INTO fullname idlist_opt select */
+ { 149, -7 }, /* (146) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
+ { 221, -2 }, /* (147) insert_cmd ::= INSERT orconf */
+ { 221, -1 }, /* (148) insert_cmd ::= REPLACE */
+ { 222, 0 }, /* (149) idlist_opt ::= */
+ { 222, -3 }, /* (150) idlist_opt ::= LP idlist RP */
+ { 218, -3 }, /* (151) idlist ::= idlist COMMA nm */
+ { 218, -1 }, /* (152) idlist ::= nm */
+ { 174, -3 }, /* (153) expr ::= LP expr RP */
+ { 174, -1 }, /* (154) expr ::= ID|INDEXED */
+ { 174, -1 }, /* (155) expr ::= JOIN_KW */
+ { 174, -3 }, /* (156) expr ::= nm DOT nm */
+ { 174, -5 }, /* (157) expr ::= nm DOT nm DOT nm */
+ { 173, -1 }, /* (158) term ::= NULL|FLOAT|BLOB */
+ { 173, -1 }, /* (159) term ::= STRING */
+ { 173, -1 }, /* (160) term ::= INTEGER */
+ { 174, -1 }, /* (161) expr ::= VARIABLE */
+ { 174, -3 }, /* (162) expr ::= expr COLLATE ID|STRING */
+ { 174, -6 }, /* (163) expr ::= CAST LP expr AS typetoken RP */
+ { 174, -5 }, /* (164) expr ::= ID|INDEXED LP distinct exprlist RP */
+ { 174, -4 }, /* (165) expr ::= ID|INDEXED LP STAR RP */
+ { 173, -1 }, /* (166) term ::= CTIME_KW */
+ { 174, -5 }, /* (167) expr ::= LP nexprlist COMMA expr RP */
+ { 174, -3 }, /* (168) expr ::= expr AND expr */
+ { 174, -3 }, /* (169) expr ::= expr OR expr */
+ { 174, -3 }, /* (170) expr ::= expr LT|GT|GE|LE expr */
+ { 174, -3 }, /* (171) expr ::= expr EQ|NE expr */
+ { 174, -3 }, /* (172) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
+ { 174, -3 }, /* (173) expr ::= expr PLUS|MINUS expr */
+ { 174, -3 }, /* (174) expr ::= expr STAR|SLASH|REM expr */
+ { 174, -3 }, /* (175) expr ::= expr CONCAT expr */
+ { 223, -2 }, /* (176) likeop ::= NOT LIKE_KW|MATCH */
+ { 174, -3 }, /* (177) expr ::= expr likeop expr */
+ { 174, -5 }, /* (178) expr ::= expr likeop expr ESCAPE expr */
+ { 174, -2 }, /* (179) expr ::= expr ISNULL|NOTNULL */
+ { 174, -3 }, /* (180) expr ::= expr NOT NULL */
+ { 174, -3 }, /* (181) expr ::= expr IS expr */
+ { 174, -4 }, /* (182) expr ::= expr IS NOT expr */
+ { 174, -2 }, /* (183) expr ::= NOT expr */
+ { 174, -2 }, /* (184) expr ::= BITNOT expr */
+ { 174, -2 }, /* (185) expr ::= MINUS expr */
+ { 174, -2 }, /* (186) expr ::= PLUS expr */
+ { 224, -1 }, /* (187) between_op ::= BETWEEN */
+ { 224, -2 }, /* (188) between_op ::= NOT BETWEEN */
+ { 174, -5 }, /* (189) expr ::= expr between_op expr AND expr */
+ { 225, -1 }, /* (190) in_op ::= IN */
+ { 225, -2 }, /* (191) in_op ::= NOT IN */
+ { 174, -5 }, /* (192) expr ::= expr in_op LP exprlist RP */
+ { 174, -3 }, /* (193) expr ::= LP select RP */
+ { 174, -5 }, /* (194) expr ::= expr in_op LP select RP */
+ { 174, -5 }, /* (195) expr ::= expr in_op nm dbnm paren_exprlist */
+ { 174, -4 }, /* (196) expr ::= EXISTS LP select RP */
+ { 174, -5 }, /* (197) expr ::= CASE case_operand case_exprlist case_else END */
+ { 228, -5 }, /* (198) case_exprlist ::= case_exprlist WHEN expr THEN expr */
+ { 228, -4 }, /* (199) case_exprlist ::= WHEN expr THEN expr */
+ { 229, -2 }, /* (200) case_else ::= ELSE expr */
+ { 229, 0 }, /* (201) case_else ::= */
+ { 227, -1 }, /* (202) case_operand ::= expr */
+ { 227, 0 }, /* (203) case_operand ::= */
+ { 209, 0 }, /* (204) exprlist ::= */
+ { 208, -3 }, /* (205) nexprlist ::= nexprlist COMMA expr */
+ { 208, -1 }, /* (206) nexprlist ::= expr */
+ { 226, 0 }, /* (207) paren_exprlist ::= */
+ { 226, -3 }, /* (208) paren_exprlist ::= LP exprlist RP */
+ { 149, -12 }, /* (209) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
+ { 230, -1 }, /* (210) uniqueflag ::= UNIQUE */
+ { 230, 0 }, /* (211) uniqueflag ::= */
+ { 178, 0 }, /* (212) eidlist_opt ::= */
+ { 178, -3 }, /* (213) eidlist_opt ::= LP eidlist RP */
+ { 188, -5 }, /* (214) eidlist ::= eidlist COMMA nm collate sortorder */
+ { 188, -3 }, /* (215) eidlist ::= nm collate sortorder */
+ { 231, 0 }, /* (216) collate ::= */
+ { 231, -2 }, /* (217) collate ::= COLLATE ID|STRING */
+ { 149, -4 }, /* (218) cmd ::= DROP INDEX ifexists fullname */
+ { 149, -1 }, /* (219) cmd ::= VACUUM */
+ { 149, -2 }, /* (220) cmd ::= VACUUM nm */
+ { 149, -3 }, /* (221) cmd ::= PRAGMA nm dbnm */
+ { 149, -5 }, /* (222) cmd ::= PRAGMA nm dbnm EQ nmnum */
+ { 149, -6 }, /* (223) cmd ::= PRAGMA nm dbnm LP nmnum RP */
+ { 149, -5 }, /* (224) cmd ::= PRAGMA nm dbnm EQ minus_num */
+ { 149, -6 }, /* (225) cmd ::= PRAGMA nm dbnm LP minus_num RP */
+ { 169, -2 }, /* (226) plus_num ::= PLUS INTEGER|FLOAT */
+ { 170, -2 }, /* (227) minus_num ::= MINUS INTEGER|FLOAT */
+ { 149, -5 }, /* (228) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
+ { 233, -11 }, /* (229) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
+ { 235, -1 }, /* (230) trigger_time ::= BEFORE|AFTER */
+ { 235, -2 }, /* (231) trigger_time ::= INSTEAD OF */
+ { 235, 0 }, /* (232) trigger_time ::= */
+ { 236, -1 }, /* (233) trigger_event ::= DELETE|INSERT */
+ { 236, -1 }, /* (234) trigger_event ::= UPDATE */
+ { 236, -3 }, /* (235) trigger_event ::= UPDATE OF idlist */
+ { 238, 0 }, /* (236) when_clause ::= */
+ { 238, -2 }, /* (237) when_clause ::= WHEN expr */
+ { 234, -3 }, /* (238) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
+ { 234, -2 }, /* (239) trigger_cmd_list ::= trigger_cmd SEMI */
+ { 240, -3 }, /* (240) trnm ::= nm DOT nm */
+ { 241, -3 }, /* (241) tridxby ::= INDEXED BY nm */
+ { 241, -2 }, /* (242) tridxby ::= NOT INDEXED */
+ { 239, -8 }, /* (243) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
+ { 239, -7 }, /* (244) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
+ { 239, -6 }, /* (245) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
+ { 239, -3 }, /* (246) trigger_cmd ::= scanpt select scanpt */
+ { 174, -4 }, /* (247) expr ::= RAISE LP IGNORE RP */
+ { 174, -6 }, /* (248) expr ::= RAISE LP raisetype COMMA nm RP */
+ { 192, -1 }, /* (249) raisetype ::= ROLLBACK */
+ { 192, -1 }, /* (250) raisetype ::= ABORT */
+ { 192, -1 }, /* (251) raisetype ::= FAIL */
+ { 149, -4 }, /* (252) cmd ::= DROP TRIGGER ifexists fullname */
+ { 149, -6 }, /* (253) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
+ { 149, -3 }, /* (254) cmd ::= DETACH database_kw_opt expr */
+ { 243, 0 }, /* (255) key_opt ::= */
+ { 243, -2 }, /* (256) key_opt ::= KEY expr */
+ { 149, -1 }, /* (257) cmd ::= REINDEX */
+ { 149, -3 }, /* (258) cmd ::= REINDEX nm dbnm */
+ { 149, -1 }, /* (259) cmd ::= ANALYZE */
+ { 149, -3 }, /* (260) cmd ::= ANALYZE nm dbnm */
+ { 149, -6 }, /* (261) cmd ::= ALTER TABLE fullname RENAME TO nm */
+ { 149, -7 }, /* (262) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
+ { 244, -1 }, /* (263) add_column_fullname ::= fullname */
+ { 149, -1 }, /* (264) cmd ::= create_vtab */
+ { 149, -4 }, /* (265) cmd ::= create_vtab LP vtabarglist RP */
+ { 246, -8 }, /* (266) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
+ { 248, 0 }, /* (267) vtabarg ::= */
+ { 249, -1 }, /* (268) vtabargtoken ::= ANY */
+ { 249, -3 }, /* (269) vtabargtoken ::= lp anylist RP */
+ { 250, -1 }, /* (270) lp ::= LP */
+ { 219, -2 }, /* (271) with ::= WITH wqlist */
+ { 219, -3 }, /* (272) with ::= WITH RECURSIVE wqlist */
+ { 197, -6 }, /* (273) wqlist ::= nm eidlist_opt AS LP select RP */
+ { 197, -8 }, /* (274) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
+ { 144, -1 }, /* (275) input ::= cmdlist */
+ { 145, -2 }, /* (276) cmdlist ::= cmdlist ecmd */
+ { 145, -1 }, /* (277) cmdlist ::= ecmd */
+ { 146, -1 }, /* (278) ecmd ::= SEMI */
+ { 146, -3 }, /* (279) ecmd ::= explain cmdx SEMI */
+ { 147, 0 }, /* (280) explain ::= */
+ { 151, 0 }, /* (281) trans_opt ::= */
+ { 151, -1 }, /* (282) trans_opt ::= TRANSACTION */
+ { 151, -2 }, /* (283) trans_opt ::= TRANSACTION nm */
+ { 153, -1 }, /* (284) savepoint_opt ::= SAVEPOINT */
+ { 153, 0 }, /* (285) savepoint_opt ::= */
+ { 149, -2 }, /* (286) cmd ::= create_table create_table_args */
+ { 160, -4 }, /* (287) columnlist ::= columnlist COMMA columnname carglist */
+ { 160, -2 }, /* (288) columnlist ::= columnname carglist */
+ { 152, -1 }, /* (289) nm ::= ID|INDEXED */
+ { 152, -1 }, /* (290) nm ::= STRING */
+ { 152, -1 }, /* (291) nm ::= JOIN_KW */
+ { 166, -1 }, /* (292) typetoken ::= typename */
+ { 167, -1 }, /* (293) typename ::= ID|STRING */
+ { 168, -1 }, /* (294) signed ::= plus_num */
+ { 168, -1 }, /* (295) signed ::= minus_num */
+ { 165, -2 }, /* (296) carglist ::= carglist ccons */
+ { 165, 0 }, /* (297) carglist ::= */
+ { 172, -2 }, /* (298) ccons ::= NULL onconf */
+ { 161, -2 }, /* (299) conslist_opt ::= COMMA conslist */
+ { 184, -3 }, /* (300) conslist ::= conslist tconscomma tcons */
+ { 184, -1 }, /* (301) conslist ::= tcons */
+ { 185, 0 }, /* (302) tconscomma ::= */
+ { 189, -1 }, /* (303) defer_subclause_opt ::= defer_subclause */
+ { 191, -1 }, /* (304) resolvetype ::= raisetype */
+ { 195, -1 }, /* (305) selectnowith ::= oneselect */
+ { 196, -1 }, /* (306) oneselect ::= values */
+ { 210, -2 }, /* (307) sclp ::= selcollist COMMA */
+ { 211, -1 }, /* (308) as ::= ID|STRING */
+ { 174, -1 }, /* (309) expr ::= term */
+ { 223, -1 }, /* (310) likeop ::= LIKE_KW|MATCH */
+ { 209, -1 }, /* (311) exprlist ::= nexprlist */
+ { 232, -1 }, /* (312) nmnum ::= plus_num */
+ { 232, -1 }, /* (313) nmnum ::= nm */
+ { 232, -1 }, /* (314) nmnum ::= ON */
+ { 232, -1 }, /* (315) nmnum ::= DELETE */
+ { 232, -1 }, /* (316) nmnum ::= DEFAULT */
+ { 169, -1 }, /* (317) plus_num ::= INTEGER|FLOAT */
+ { 237, 0 }, /* (318) foreach_clause ::= */
+ { 237, -3 }, /* (319) foreach_clause ::= FOR EACH ROW */
+ { 240, -1 }, /* (320) trnm ::= nm */
+ { 241, 0 }, /* (321) tridxby ::= */
+ { 242, -1 }, /* (322) database_kw_opt ::= DATABASE */
+ { 242, 0 }, /* (323) database_kw_opt ::= */
+ { 245, 0 }, /* (324) kwcolumn_opt ::= */
+ { 245, -1 }, /* (325) kwcolumn_opt ::= COLUMNKW */
+ { 247, -1 }, /* (326) vtabarglist ::= vtabarg */
+ { 247, -3 }, /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */
+ { 248, -2 }, /* (328) vtabarg ::= vtabarg vtabargtoken */
+ { 251, 0 }, /* (329) anylist ::= */
+ { 251, -4 }, /* (330) anylist ::= anylist LP anylist RP */
+ { 251, -2 }, /* (331) anylist ::= anylist ANY */
+ { 219, 0 }, /* (332) with ::= */
};
static void yy_accept(yyParser*); /* Forward Declaration */
@@ -142238,8 +142312,8 @@ static void yy_reduce(
case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
- case 90: /* distinct ::= */ yytestcase(yyruleno==90);
- case 213: /* collate ::= */ yytestcase(yyruleno==213);
+ case 92: /* distinct ::= */ yytestcase(yyruleno==92);
+ case 216: /* collate ::= */ yytestcase(yyruleno==216);
{yymsp[1].minor.yy4 = 0;}
break;
case 16: /* ifnotexists ::= IF NOT EXISTS */
@@ -142275,7 +142349,7 @@ static void yy_reduce(
break;
case 24: /* typetoken ::= */
case 60: /* conslist_opt ::= */ yytestcase(yyruleno==60);
- case 96: /* as ::= */ yytestcase(yyruleno==96);
+ case 98: /* as ::= */ yytestcase(yyruleno==98);
{yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;}
break;
case 25: /* typetoken ::= typename LP signed RP */
@@ -142386,14 +142460,14 @@ static void yy_reduce(
break;
case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
- case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144);
+ case 147: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==147);
{yymsp[-1].minor.yy4 = yymsp[0].minor.yy4;}
break;
case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
- case 185: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==185);
- case 188: /* in_op ::= NOT IN */ yytestcase(yyruleno==188);
- case 214: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==214);
+ case 188: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==188);
+ case 191: /* in_op ::= NOT IN */ yytestcase(yyruleno==191);
+ case 217: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==217);
{yymsp[-1].minor.yy4 = 1;}
break;
case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
@@ -142429,7 +142503,7 @@ static void yy_reduce(
{yymsp[0].minor.yy4 = OE_Ignore;}
break;
case 73: /* resolvetype ::= REPLACE */
- case 145: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==145);
+ case 148: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==148);
{yymsp[0].minor.yy4 = OE_Replace;}
break;
case 74: /* cmd ::= DROP TABLE ifexists fullname */
@@ -142454,7 +142528,19 @@ static void yy_reduce(
sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
}
break;
- case 80: /* select ::= with selectnowith */
+ case 80: /* select ::= WITH wqlist selectnowith */
+{
+ Select *p = yymsp[0].minor.yy387;
+ if( p ){
+ p->pWith = yymsp[-1].minor.yy451;
+ parserDoubleLinkSelect(pParse, p);
+ }else{
+ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
+ }
+ yymsp[-2].minor.yy387 = p;
+}
+ break;
+ case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
{
Select *p = yymsp[0].minor.yy387;
if( p ){
@@ -142463,10 +142549,19 @@ static void yy_reduce(
}else{
sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
}
- yymsp[-1].minor.yy387 = p; /*A-overwrites-W*/
+ yymsp[-3].minor.yy387 = p;
}
break;
- case 81: /* selectnowith ::= selectnowith multiselect_op oneselect */
+ case 82: /* select ::= selectnowith */
+{
+ Select *p = yymsp[0].minor.yy387;
+ if( p ){
+ parserDoubleLinkSelect(pParse, p);
+ }
+ yymsp[0].minor.yy387 = p; /*A-overwrites-X*/
+}
+ break;
+ case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
{
Select *pRhs = yymsp[0].minor.yy387;
Select *pLhs = yymsp[-2].minor.yy387;
@@ -142490,14 +142585,14 @@ static void yy_reduce(
yymsp[-2].minor.yy387 = pRhs;
}
break;
- case 82: /* multiselect_op ::= UNION */
- case 84: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==84);
+ case 84: /* multiselect_op ::= UNION */
+ case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
{yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-OP*/}
break;
- case 83: /* multiselect_op ::= UNION ALL */
+ case 85: /* multiselect_op ::= UNION ALL */
{yymsp[-1].minor.yy4 = TK_ALL;}
break;
- case 85: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
+ case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
{
#if SELECTTRACE_ENABLED
Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/
@@ -142528,12 +142623,12 @@ static void yy_reduce(
#endif /* SELECTRACE_ENABLED */
}
break;
- case 86: /* values ::= VALUES LP nexprlist RP */
+ case 88: /* values ::= VALUES LP nexprlist RP */
{
yymsp[-3].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0);
}
break;
- case 87: /* values ::= values COMMA LP exprlist RP */
+ case 89: /* values ::= values COMMA LP exprlist RP */
{
Select *pRight, *pLeft = yymsp[-4].minor.yy387;
pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0);
@@ -142547,34 +142642,34 @@ static void yy_reduce(
}
}
break;
- case 88: /* distinct ::= DISTINCT */
+ case 90: /* distinct ::= DISTINCT */
{yymsp[0].minor.yy4 = SF_Distinct;}
break;
- case 89: /* distinct ::= ALL */
+ case 91: /* distinct ::= ALL */
{yymsp[0].minor.yy4 = SF_All;}
break;
- case 91: /* sclp ::= */
- case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119);
- case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126);
- case 201: /* exprlist ::= */ yytestcase(yyruleno==201);
- case 204: /* paren_exprlist ::= */ yytestcase(yyruleno==204);
- case 209: /* eidlist_opt ::= */ yytestcase(yyruleno==209);
+ case 93: /* sclp ::= */
+ case 122: /* orderby_opt ::= */ yytestcase(yyruleno==122);
+ case 129: /* groupby_opt ::= */ yytestcase(yyruleno==129);
+ case 204: /* exprlist ::= */ yytestcase(yyruleno==204);
+ case 207: /* paren_exprlist ::= */ yytestcase(yyruleno==207);
+ case 212: /* eidlist_opt ::= */ yytestcase(yyruleno==212);
{yymsp[1].minor.yy322 = 0;}
break;
- case 92: /* selcollist ::= sclp scanpt expr scanpt as */
+ case 94: /* selcollist ::= sclp scanpt expr scanpt as */
{
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1);
sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy336,yymsp[-1].minor.yy336);
}
break;
- case 93: /* selcollist ::= sclp scanpt STAR */
+ case 95: /* selcollist ::= sclp scanpt STAR */
{
Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p);
}
break;
- case 94: /* selcollist ::= sclp scanpt nm DOT STAR */
+ case 96: /* selcollist ::= sclp scanpt nm DOT STAR */
{
Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
@@ -142582,47 +142677,47 @@ static void yy_reduce(
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot);
}
break;
- case 95: /* as ::= AS nm */
- case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106);
- case 223: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
- case 224: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
+ case 97: /* as ::= AS nm */
+ case 108: /* dbnm ::= DOT nm */ yytestcase(yyruleno==108);
+ case 226: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==226);
+ case 227: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==227);
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
break;
- case 97: /* from ::= */
+ case 99: /* from ::= */
{yymsp[1].minor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy259));}
break;
- case 98: /* from ::= FROM seltablist */
+ case 100: /* from ::= FROM seltablist */
{
yymsp[-1].minor.yy259 = yymsp[0].minor.yy259;
sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy259);
}
break;
- case 99: /* stl_prefix ::= seltablist joinop */
+ case 101: /* stl_prefix ::= seltablist joinop */
{
if( ALWAYS(yymsp[-1].minor.yy259 && yymsp[-1].minor.yy259->nSrc>0) ) yymsp[-1].minor.yy259->a[yymsp[-1].minor.yy259->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy4;
}
break;
- case 100: /* stl_prefix ::= */
+ case 102: /* stl_prefix ::= */
{yymsp[1].minor.yy259 = 0;}
break;
- case 101: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
+ case 103: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
{
yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy259, &yymsp[-2].minor.yy0);
}
break;
- case 102: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
+ case 104: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
{
yymsp[-8].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy259,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy259, yymsp[-4].minor.yy322);
}
break;
- case 103: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
+ case 105: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
{
yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy387,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
}
break;
- case 104: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
+ case 106: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
{
if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy314==0 && yymsp[0].minor.yy384==0 ){
yymsp[-6].minor.yy259 = yymsp[-4].minor.yy259;
@@ -142646,153 +142741,152 @@ static void yy_reduce(
}
}
break;
- case 105: /* dbnm ::= */
- case 114: /* indexed_opt ::= */ yytestcase(yyruleno==114);
+ case 107: /* dbnm ::= */
+ case 117: /* indexed_opt ::= */ yytestcase(yyruleno==117);
{yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
break;
- case 107: /* fullname ::= nm dbnm */
-{yymsp[-1].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
+ case 109: /* fullname ::= nm */
+{yymsp[0].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
+ break;
+ case 110: /* fullname ::= nm DOT nm */
+{yymsp[-2].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
break;
- case 108: /* joinop ::= COMMA|JOIN */
+ case 111: /* joinop ::= COMMA|JOIN */
{ yymsp[0].minor.yy4 = JT_INNER; }
break;
- case 109: /* joinop ::= JOIN_KW JOIN */
+ case 112: /* joinop ::= JOIN_KW JOIN */
{yymsp[-1].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
break;
- case 110: /* joinop ::= JOIN_KW nm JOIN */
+ case 113: /* joinop ::= JOIN_KW nm JOIN */
{yymsp[-2].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
break;
- case 111: /* joinop ::= JOIN_KW nm nm JOIN */
+ case 114: /* joinop ::= JOIN_KW nm nm JOIN */
{yymsp[-3].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
break;
- case 112: /* on_opt ::= ON expr */
- case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129);
- case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136);
- case 197: /* case_else ::= ELSE expr */ yytestcase(yyruleno==197);
+ case 115: /* on_opt ::= ON expr */
+ case 132: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==132);
+ case 139: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==139);
+ case 200: /* case_else ::= ELSE expr */ yytestcase(yyruleno==200);
{yymsp[-1].minor.yy314 = yymsp[0].minor.yy314;}
break;
- case 113: /* on_opt ::= */
- case 128: /* having_opt ::= */ yytestcase(yyruleno==128);
- case 130: /* limit_opt ::= */ yytestcase(yyruleno==130);
- case 135: /* where_opt ::= */ yytestcase(yyruleno==135);
- case 198: /* case_else ::= */ yytestcase(yyruleno==198);
- case 200: /* case_operand ::= */ yytestcase(yyruleno==200);
+ case 116: /* on_opt ::= */
+ case 131: /* having_opt ::= */ yytestcase(yyruleno==131);
+ case 133: /* limit_opt ::= */ yytestcase(yyruleno==133);
+ case 138: /* where_opt ::= */ yytestcase(yyruleno==138);
+ case 201: /* case_else ::= */ yytestcase(yyruleno==201);
+ case 203: /* case_operand ::= */ yytestcase(yyruleno==203);
{yymsp[1].minor.yy314 = 0;}
break;
- case 115: /* indexed_opt ::= INDEXED BY nm */
+ case 118: /* indexed_opt ::= INDEXED BY nm */
{yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
break;
- case 116: /* indexed_opt ::= NOT INDEXED */
+ case 119: /* indexed_opt ::= NOT INDEXED */
{yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
break;
- case 117: /* using_opt ::= USING LP idlist RP */
+ case 120: /* using_opt ::= USING LP idlist RP */
{yymsp[-3].minor.yy384 = yymsp[-1].minor.yy384;}
break;
- case 118: /* using_opt ::= */
- case 146: /* idlist_opt ::= */ yytestcase(yyruleno==146);
+ case 121: /* using_opt ::= */
+ case 149: /* idlist_opt ::= */ yytestcase(yyruleno==149);
{yymsp[1].minor.yy384 = 0;}
break;
- case 120: /* orderby_opt ::= ORDER BY sortlist */
- case 127: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==127);
+ case 123: /* orderby_opt ::= ORDER BY sortlist */
+ case 130: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==130);
{yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;}
break;
- case 121: /* sortlist ::= sortlist COMMA expr sortorder */
+ case 124: /* sortlist ::= sortlist COMMA expr sortorder */
{
yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[-1].minor.yy314);
sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy322,yymsp[0].minor.yy4);
}
break;
- case 122: /* sortlist ::= expr sortorder */
+ case 125: /* sortlist ::= expr sortorder */
{
yymsp[-1].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314); /*A-overwrites-Y*/
sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy322,yymsp[0].minor.yy4);
}
break;
- case 123: /* sortorder ::= ASC */
+ case 126: /* sortorder ::= ASC */
{yymsp[0].minor.yy4 = SQLITE_SO_ASC;}
break;
- case 124: /* sortorder ::= DESC */
+ case 127: /* sortorder ::= DESC */
{yymsp[0].minor.yy4 = SQLITE_SO_DESC;}
break;
- case 125: /* sortorder ::= */
+ case 128: /* sortorder ::= */
{yymsp[1].minor.yy4 = SQLITE_SO_UNDEFINED;}
break;
- case 131: /* limit_opt ::= LIMIT expr */
+ case 134: /* limit_opt ::= LIMIT expr */
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,0);}
break;
- case 132: /* limit_opt ::= LIMIT expr OFFSET expr */
+ case 135: /* limit_opt ::= LIMIT expr OFFSET expr */
{yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
break;
- case 133: /* limit_opt ::= LIMIT expr COMMA expr */
+ case 136: /* limit_opt ::= LIMIT expr COMMA expr */
{yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,yymsp[-2].minor.yy314);}
break;
- case 134: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
+ case 137: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
{
- sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0);
sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314,0,0);
}
break;
- case 137: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
+ case 140: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
{
- sqlite3WithPush(pParse, yymsp[-7].minor.yy451, 1);
sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0);
sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list");
sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].minor.yy314,yymsp[-5].minor.yy4,0,0);
}
break;
- case 138: /* setlist ::= setlist COMMA nm EQ expr */
+ case 141: /* setlist ::= setlist COMMA nm EQ expr */
{
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1);
}
break;
- case 139: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
+ case 142: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
{
yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
}
break;
- case 140: /* setlist ::= nm EQ expr */
+ case 143: /* setlist ::= nm EQ expr */
{
yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy314);
sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1);
}
yymsp[-2].minor.yy322 = yylhsminor.yy322;
break;
- case 141: /* setlist ::= LP idlist RP EQ expr */
+ case 144: /* setlist ::= LP idlist RP EQ expr */
{
yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
}
break;
- case 142: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
+ case 145: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
{
- sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
sqlite3Insert(pParse, yymsp[-2].minor.yy259, yymsp[0].minor.yy387, yymsp[-1].minor.yy384, yymsp[-4].minor.yy4);
}
break;
- case 143: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
+ case 146: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
{
- sqlite3WithPush(pParse, yymsp[-6].minor.yy451, 1);
sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, yymsp[-2].minor.yy384, yymsp[-5].minor.yy4);
}
break;
- case 147: /* idlist_opt ::= LP idlist RP */
+ case 150: /* idlist_opt ::= LP idlist RP */
{yymsp[-2].minor.yy384 = yymsp[-1].minor.yy384;}
break;
- case 148: /* idlist ::= idlist COMMA nm */
+ case 151: /* idlist ::= idlist COMMA nm */
{yymsp[-2].minor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp[0].minor.yy0);}
break;
- case 149: /* idlist ::= nm */
+ case 152: /* idlist ::= nm */
{yymsp[0].minor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
break;
- case 150: /* expr ::= LP expr RP */
+ case 153: /* expr ::= LP expr RP */
{yymsp[-2].minor.yy314 = yymsp[-1].minor.yy314;}
break;
- case 151: /* expr ::= ID|INDEXED */
- case 152: /* expr ::= JOIN_KW */ yytestcase(yyruleno==152);
+ case 154: /* expr ::= ID|INDEXED */
+ case 155: /* expr ::= JOIN_KW */ yytestcase(yyruleno==155);
{yymsp[0].minor.yy314=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
break;
- case 153: /* expr ::= nm DOT nm */
+ case 156: /* expr ::= nm DOT nm */
{
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
@@ -142800,7 +142894,7 @@ static void yy_reduce(
}
yymsp[-2].minor.yy314 = yylhsminor.yy314;
break;
- case 154: /* expr ::= nm DOT nm DOT nm */
+ case 157: /* expr ::= nm DOT nm DOT nm */
{
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
@@ -142810,17 +142904,17 @@ static void yy_reduce(
}
yymsp[-4].minor.yy314 = yylhsminor.yy314;
break;
- case 155: /* term ::= NULL|FLOAT|BLOB */
- case 156: /* term ::= STRING */ yytestcase(yyruleno==156);
+ case 158: /* term ::= NULL|FLOAT|BLOB */
+ case 159: /* term ::= STRING */ yytestcase(yyruleno==159);
{yymsp[0].minor.yy314=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
break;
- case 157: /* term ::= INTEGER */
+ case 160: /* term ::= INTEGER */
{
yylhsminor.yy314 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
}
yymsp[0].minor.yy314 = yylhsminor.yy314;
break;
- case 158: /* expr ::= VARIABLE */
+ case 161: /* expr ::= VARIABLE */
{
if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
u32 n = yymsp[0].minor.yy0.n;
@@ -142842,18 +142936,18 @@ static void yy_reduce(
}
}
break;
- case 159: /* expr ::= expr COLLATE ID|STRING */
+ case 162: /* expr ::= expr COLLATE ID|STRING */
{
yymsp[-2].minor.yy314 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy314, &yymsp[0].minor.yy0, 1);
}
break;
- case 160: /* expr ::= CAST LP expr AS typetoken RP */
+ case 163: /* expr ::= CAST LP expr AS typetoken RP */
{
yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy314, yymsp[-3].minor.yy314, 0);
}
break;
- case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
+ case 164: /* expr ::= ID|INDEXED LP distinct exprlist RP */
{
if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
@@ -142865,19 +142959,19 @@ static void yy_reduce(
}
yymsp[-4].minor.yy314 = yylhsminor.yy314;
break;
- case 162: /* expr ::= ID|INDEXED LP STAR RP */
+ case 165: /* expr ::= ID|INDEXED LP STAR RP */
{
yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
}
yymsp[-3].minor.yy314 = yylhsminor.yy314;
break;
- case 163: /* term ::= CTIME_KW */
+ case 166: /* term ::= CTIME_KW */
{
yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
}
yymsp[0].minor.yy314 = yylhsminor.yy314;
break;
- case 164: /* expr ::= LP nexprlist COMMA expr RP */
+ case 167: /* expr ::= LP nexprlist COMMA expr RP */
{
ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy314);
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
@@ -142888,20 +142982,20 @@ static void yy_reduce(
}
}
break;
- case 165: /* expr ::= expr AND expr */
- case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
- case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
- case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
- case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
- case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
- case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
- case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
+ case 168: /* expr ::= expr AND expr */
+ case 169: /* expr ::= expr OR expr */ yytestcase(yyruleno==169);
+ case 170: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==170);
+ case 171: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==171);
+ case 172: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==172);
+ case 173: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==173);
+ case 174: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==174);
+ case 175: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==175);
{yymsp[-2].minor.yy314=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
break;
- case 173: /* likeop ::= NOT LIKE_KW|MATCH */
+ case 176: /* likeop ::= NOT LIKE_KW|MATCH */
{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
break;
- case 174: /* expr ::= expr likeop expr */
+ case 177: /* expr ::= expr likeop expr */
{
ExprList *pList;
int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
@@ -142913,7 +143007,7 @@ static void yy_reduce(
if( yymsp[-2].minor.yy314 ) yymsp[-2].minor.yy314->flags |= EP_InfixFunc;
}
break;
- case 175: /* expr ::= expr likeop expr ESCAPE expr */
+ case 178: /* expr ::= expr likeop expr ESCAPE expr */
{
ExprList *pList;
int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
@@ -142926,39 +143020,39 @@ static void yy_reduce(
if( yymsp[-4].minor.yy314 ) yymsp[-4].minor.yy314->flags |= EP_InfixFunc;
}
break;
- case 176: /* expr ::= expr ISNULL|NOTNULL */
+ case 179: /* expr ::= expr ISNULL|NOTNULL */
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy314,0);}
break;
- case 177: /* expr ::= expr NOT NULL */
+ case 180: /* expr ::= expr NOT NULL */
{yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy314,0);}
break;
- case 178: /* expr ::= expr IS expr */
+ case 181: /* expr ::= expr IS expr */
{
yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-2].minor.yy314, TK_ISNULL);
}
break;
- case 179: /* expr ::= expr IS NOT expr */
+ case 182: /* expr ::= expr IS NOT expr */
{
yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy314,yymsp[0].minor.yy314);
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-3].minor.yy314, TK_NOTNULL);
}
break;
- case 180: /* expr ::= NOT expr */
- case 181: /* expr ::= BITNOT expr */ yytestcase(yyruleno==181);
+ case 183: /* expr ::= NOT expr */
+ case 184: /* expr ::= BITNOT expr */ yytestcase(yyruleno==184);
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy314, 0);/*A-overwrites-B*/}
break;
- case 182: /* expr ::= MINUS expr */
+ case 185: /* expr ::= MINUS expr */
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy314, 0);}
break;
- case 183: /* expr ::= PLUS expr */
+ case 186: /* expr ::= PLUS expr */
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy314, 0);}
break;
- case 184: /* between_op ::= BETWEEN */
- case 187: /* in_op ::= IN */ yytestcase(yyruleno==187);
+ case 187: /* between_op ::= BETWEEN */
+ case 190: /* in_op ::= IN */ yytestcase(yyruleno==190);
{yymsp[0].minor.yy4 = 0;}
break;
- case 186: /* expr ::= expr between_op expr AND expr */
+ case 189: /* expr ::= expr between_op expr AND expr */
{
ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314);
@@ -142971,7 +143065,7 @@ static void yy_reduce(
if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
}
break;
- case 189: /* expr ::= expr in_op LP exprlist RP */
+ case 192: /* expr ::= expr in_op LP exprlist RP */
{
if( yymsp[-1].minor.yy322==0 ){
/* Expressions of the form
@@ -143023,20 +143117,20 @@ static void yy_reduce(
}
}
break;
- case 190: /* expr ::= LP select RP */
+ case 193: /* expr ::= LP select RP */
{
yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy314, yymsp[-1].minor.yy387);
}
break;
- case 191: /* expr ::= expr in_op LP select RP */
+ case 194: /* expr ::= expr in_op LP select RP */
{
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, yymsp[-1].minor.yy387);
if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
}
break;
- case 192: /* expr ::= expr in_op nm dbnm paren_exprlist */
+ case 195: /* expr ::= expr in_op nm dbnm paren_exprlist */
{
SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
@@ -143046,14 +143140,14 @@ static void yy_reduce(
if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
}
break;
- case 193: /* expr ::= EXISTS LP select RP */
+ case 196: /* expr ::= EXISTS LP select RP */
{
Expr *p;
p = yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy387);
}
break;
- case 194: /* expr ::= CASE case_operand case_exprlist case_else END */
+ case 197: /* expr ::= CASE case_operand case_exprlist case_else END */
{
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, 0);
if( yymsp[-4].minor.yy314 ){
@@ -143065,80 +143159,80 @@ static void yy_reduce(
}
}
break;
- case 195: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
+ case 198: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
{
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
}
break;
- case 196: /* case_exprlist ::= WHEN expr THEN expr */
+ case 199: /* case_exprlist ::= WHEN expr THEN expr */
{
yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy314);
}
break;
- case 199: /* case_operand ::= expr */
+ case 202: /* case_operand ::= expr */
{yymsp[0].minor.yy314 = yymsp[0].minor.yy314; /*A-overwrites-X*/}
break;
- case 202: /* nexprlist ::= nexprlist COMMA expr */
+ case 205: /* nexprlist ::= nexprlist COMMA expr */
{yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy314);}
break;
- case 203: /* nexprlist ::= expr */
+ case 206: /* nexprlist ::= expr */
{yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy314); /*A-overwrites-Y*/}
break;
- case 205: /* paren_exprlist ::= LP exprlist RP */
- case 210: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==210);
+ case 208: /* paren_exprlist ::= LP exprlist RP */
+ case 213: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==213);
{yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;}
break;
- case 206: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
+ case 209: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
{
sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy4,
&yymsp[-11].minor.yy0, yymsp[0].minor.yy314, SQLITE_SO_ASC, yymsp[-8].minor.yy4, SQLITE_IDXTYPE_APPDEF);
}
break;
- case 207: /* uniqueflag ::= UNIQUE */
- case 247: /* raisetype ::= ABORT */ yytestcase(yyruleno==247);
+ case 210: /* uniqueflag ::= UNIQUE */
+ case 250: /* raisetype ::= ABORT */ yytestcase(yyruleno==250);
{yymsp[0].minor.yy4 = OE_Abort;}
break;
- case 208: /* uniqueflag ::= */
+ case 211: /* uniqueflag ::= */
{yymsp[1].minor.yy4 = OE_None;}
break;
- case 211: /* eidlist ::= eidlist COMMA nm collate sortorder */
+ case 214: /* eidlist ::= eidlist COMMA nm collate sortorder */
{
yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4);
}
break;
- case 212: /* eidlist ::= nm collate sortorder */
+ case 215: /* eidlist ::= nm collate sortorder */
{
yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4); /*A-overwrites-Y*/
}
break;
- case 215: /* cmd ::= DROP INDEX ifexists fullname */
+ case 218: /* cmd ::= DROP INDEX ifexists fullname */
{sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);}
break;
- case 216: /* cmd ::= VACUUM */
+ case 219: /* cmd ::= VACUUM */
{sqlite3Vacuum(pParse,0);}
break;
- case 217: /* cmd ::= VACUUM nm */
+ case 220: /* cmd ::= VACUUM nm */
{sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
break;
- case 218: /* cmd ::= PRAGMA nm dbnm */
+ case 221: /* cmd ::= PRAGMA nm dbnm */
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
break;
- case 219: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
+ case 222: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
break;
- case 220: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
+ case 223: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
break;
- case 221: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
+ case 224: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
break;
- case 222: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
+ case 225: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
break;
- case 225: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
+ case 228: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
{
Token all;
all.z = yymsp[-3].minor.yy0.z;
@@ -143146,50 +143240,50 @@ static void yy_reduce(
sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all);
}
break;
- case 226: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
+ case 229: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
{
sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy4, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.yy259, yymsp[0].minor.yy314, yymsp[-10].minor.yy4, yymsp[-8].minor.yy4);
yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
}
break;
- case 227: /* trigger_time ::= BEFORE|AFTER */
+ case 230: /* trigger_time ::= BEFORE|AFTER */
{ yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-X*/ }
break;
- case 228: /* trigger_time ::= INSTEAD OF */
+ case 231: /* trigger_time ::= INSTEAD OF */
{ yymsp[-1].minor.yy4 = TK_INSTEAD;}
break;
- case 229: /* trigger_time ::= */
+ case 232: /* trigger_time ::= */
{ yymsp[1].minor.yy4 = TK_BEFORE; }
break;
- case 230: /* trigger_event ::= DELETE|INSERT */
- case 231: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==231);
+ case 233: /* trigger_event ::= DELETE|INSERT */
+ case 234: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==234);
{yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;}
break;
- case 232: /* trigger_event ::= UPDATE OF idlist */
+ case 235: /* trigger_event ::= UPDATE OF idlist */
{yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy384;}
break;
- case 233: /* when_clause ::= */
- case 252: /* key_opt ::= */ yytestcase(yyruleno==252);
+ case 236: /* when_clause ::= */
+ case 255: /* key_opt ::= */ yytestcase(yyruleno==255);
{ yymsp[1].minor.yy314 = 0; }
break;
- case 234: /* when_clause ::= WHEN expr */
- case 253: /* key_opt ::= KEY expr */ yytestcase(yyruleno==253);
+ case 237: /* when_clause ::= WHEN expr */
+ case 256: /* key_opt ::= KEY expr */ yytestcase(yyruleno==256);
{ yymsp[-1].minor.yy314 = yymsp[0].minor.yy314; }
break;
- case 235: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
+ case 238: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
{
assert( yymsp[-2].minor.yy203!=0 );
yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203;
yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203;
}
break;
- case 236: /* trigger_cmd_list ::= trigger_cmd SEMI */
+ case 239: /* trigger_cmd_list ::= trigger_cmd SEMI */
{
assert( yymsp[-1].minor.yy203!=0 );
yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203;
}
break;
- case 237: /* trnm ::= nm DOT nm */
+ case 240: /* trnm ::= nm DOT nm */
{
yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
sqlite3ErrorMsg(pParse,
@@ -143197,37 +143291,37 @@ static void yy_reduce(
"statements within triggers");
}
break;
- case 238: /* tridxby ::= INDEXED BY nm */
+ case 241: /* tridxby ::= INDEXED BY nm */
{
sqlite3ErrorMsg(pParse,
"the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
"within triggers");
}
break;
- case 239: /* tridxby ::= NOT INDEXED */
+ case 242: /* tridxby ::= NOT INDEXED */
{
sqlite3ErrorMsg(pParse,
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
"within triggers");
}
break;
- case 240: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
+ case 243: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
{yylhsminor.yy203 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy314, yymsp[-6].minor.yy4, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy336);}
yymsp[-7].minor.yy203 = yylhsminor.yy203;
break;
- case 241: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
+ case 244: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
{yylhsminor.yy203 = sqlite3TriggerInsertStep(pParse->db,&yymsp[-3].minor.yy0,yymsp[-2].minor.yy384,yymsp[-1].minor.yy387,yymsp[-5].minor.yy4,yymsp[-6].minor.yy336,yymsp[0].minor.yy336);/*yylhsminor.yy203-overwrites-yymsp[-5].minor.yy4*/}
yymsp[-6].minor.yy203 = yylhsminor.yy203;
break;
- case 242: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
+ case 245: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
{yylhsminor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy314, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy336);}
yymsp[-5].minor.yy203 = yylhsminor.yy203;
break;
- case 243: /* trigger_cmd ::= scanpt select scanpt */
+ case 246: /* trigger_cmd ::= scanpt select scanpt */
{yylhsminor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy387, yymsp[-2].minor.yy336, yymsp[0].minor.yy336); /*yylhsminor.yy203-overwrites-yymsp[-1].minor.yy387*/}
yymsp[-2].minor.yy203 = yylhsminor.yy203;
break;
- case 244: /* expr ::= RAISE LP IGNORE RP */
+ case 247: /* expr ::= RAISE LP IGNORE RP */
{
yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
if( yymsp[-3].minor.yy314 ){
@@ -143235,7 +143329,7 @@ static void yy_reduce(
}
}
break;
- case 245: /* expr ::= RAISE LP raisetype COMMA nm RP */
+ case 248: /* expr ::= RAISE LP raisetype COMMA nm RP */
{
yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
if( yymsp[-5].minor.yy314 ) {
@@ -143243,152 +143337,148 @@ static void yy_reduce(
}
}
break;
- case 246: /* raisetype ::= ROLLBACK */
+ case 249: /* raisetype ::= ROLLBACK */
{yymsp[0].minor.yy4 = OE_Rollback;}
break;
- case 248: /* raisetype ::= FAIL */
+ case 251: /* raisetype ::= FAIL */
{yymsp[0].minor.yy4 = OE_Fail;}
break;
- case 249: /* cmd ::= DROP TRIGGER ifexists fullname */
+ case 252: /* cmd ::= DROP TRIGGER ifexists fullname */
{
sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4);
}
break;
- case 250: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
+ case 253: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
{
sqlite3Attach(pParse, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, yymsp[0].minor.yy314);
}
break;
- case 251: /* cmd ::= DETACH database_kw_opt expr */
+ case 254: /* cmd ::= DETACH database_kw_opt expr */
{
sqlite3Detach(pParse, yymsp[0].minor.yy314);
}
break;
- case 254: /* cmd ::= REINDEX */
+ case 257: /* cmd ::= REINDEX */
{sqlite3Reindex(pParse, 0, 0);}
break;
- case 255: /* cmd ::= REINDEX nm dbnm */
+ case 258: /* cmd ::= REINDEX nm dbnm */
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
break;
- case 256: /* cmd ::= ANALYZE */
+ case 259: /* cmd ::= ANALYZE */
{sqlite3Analyze(pParse, 0, 0);}
break;
- case 257: /* cmd ::= ANALYZE nm dbnm */
+ case 260: /* cmd ::= ANALYZE nm dbnm */
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
break;
- case 258: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
+ case 261: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
{
sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0);
}
break;
- case 259: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
+ case 262: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
{
yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
}
break;
- case 260: /* add_column_fullname ::= fullname */
+ case 263: /* add_column_fullname ::= fullname */
{
disableLookaside(pParse);
sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259);
}
break;
- case 261: /* cmd ::= create_vtab */
+ case 264: /* cmd ::= create_vtab */
{sqlite3VtabFinishParse(pParse,0);}
break;
- case 262: /* cmd ::= create_vtab LP vtabarglist RP */
+ case 265: /* cmd ::= create_vtab LP vtabarglist RP */
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
break;
- case 263: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
+ case 266: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
{
sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy4);
}
break;
- case 264: /* vtabarg ::= */
+ case 267: /* vtabarg ::= */
{sqlite3VtabArgInit(pParse);}
break;
- case 265: /* vtabargtoken ::= ANY */
- case 266: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==266);
- case 267: /* lp ::= LP */ yytestcase(yyruleno==267);
+ case 268: /* vtabargtoken ::= ANY */
+ case 269: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==269);
+ case 270: /* lp ::= LP */ yytestcase(yyruleno==270);
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
break;
- case 268: /* with ::= */
-{yymsp[1].minor.yy451 = 0;}
- break;
- case 269: /* with ::= WITH wqlist */
-{ yymsp[-1].minor.yy451 = yymsp[0].minor.yy451; }
- break;
- case 270: /* with ::= WITH RECURSIVE wqlist */
-{ yymsp[-2].minor.yy451 = yymsp[0].minor.yy451; }
+ case 271: /* with ::= WITH wqlist */
+ case 272: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==272);
+{ sqlite3WithPush(pParse, yymsp[0].minor.yy451, 1); }
break;
- case 271: /* wqlist ::= nm eidlist_opt AS LP select RP */
+ case 273: /* wqlist ::= nm eidlist_opt AS LP select RP */
{
yymsp[-5].minor.yy451 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387); /*A-overwrites-X*/
}
break;
- case 272: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
+ case 274: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
{
yymsp[-7].minor.yy451 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy451, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387);
}
break;
default:
- /* (273) input ::= cmdlist */ yytestcase(yyruleno==273);
- /* (274) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==274);
- /* (275) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=275);
- /* (276) ecmd ::= SEMI */ yytestcase(yyruleno==276);
- /* (277) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==277);
- /* (278) explain ::= */ yytestcase(yyruleno==278);
- /* (279) trans_opt ::= */ yytestcase(yyruleno==279);
- /* (280) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==280);
- /* (281) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==281);
- /* (282) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==282);
- /* (283) savepoint_opt ::= */ yytestcase(yyruleno==283);
- /* (284) cmd ::= create_table create_table_args */ yytestcase(yyruleno==284);
- /* (285) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==285);
- /* (286) columnlist ::= columnname carglist */ yytestcase(yyruleno==286);
- /* (287) nm ::= ID|INDEXED */ yytestcase(yyruleno==287);
- /* (288) nm ::= STRING */ yytestcase(yyruleno==288);
- /* (289) nm ::= JOIN_KW */ yytestcase(yyruleno==289);
- /* (290) typetoken ::= typename */ yytestcase(yyruleno==290);
- /* (291) typename ::= ID|STRING */ yytestcase(yyruleno==291);
- /* (292) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
- /* (293) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=293);
- /* (294) carglist ::= carglist ccons */ yytestcase(yyruleno==294);
- /* (295) carglist ::= */ yytestcase(yyruleno==295);
- /* (296) ccons ::= NULL onconf */ yytestcase(yyruleno==296);
- /* (297) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==297);
- /* (298) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==298);
- /* (299) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=299);
- /* (300) tconscomma ::= */ yytestcase(yyruleno==300);
- /* (301) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=301);
- /* (302) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=302);
- /* (303) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=303);
- /* (304) oneselect ::= values */ yytestcase(yyruleno==304);
- /* (305) sclp ::= selcollist COMMA */ yytestcase(yyruleno==305);
- /* (306) as ::= ID|STRING */ yytestcase(yyruleno==306);
- /* (307) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=307);
- /* (308) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==308);
- /* (309) exprlist ::= nexprlist */ yytestcase(yyruleno==309);
- /* (310) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=310);
- /* (311) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=311);
- /* (312) nmnum ::= ON */ yytestcase(yyruleno==312);
- /* (313) nmnum ::= DELETE */ yytestcase(yyruleno==313);
- /* (314) nmnum ::= DEFAULT */ yytestcase(yyruleno==314);
- /* (315) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==315);
- /* (316) foreach_clause ::= */ yytestcase(yyruleno==316);
- /* (317) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==317);
- /* (318) trnm ::= nm */ yytestcase(yyruleno==318);
- /* (319) tridxby ::= */ yytestcase(yyruleno==319);
- /* (320) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==320);
- /* (321) database_kw_opt ::= */ yytestcase(yyruleno==321);
- /* (322) kwcolumn_opt ::= */ yytestcase(yyruleno==322);
- /* (323) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==323);
- /* (324) vtabarglist ::= vtabarg */ yytestcase(yyruleno==324);
- /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==325);
- /* (326) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==326);
- /* (327) anylist ::= */ yytestcase(yyruleno==327);
- /* (328) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==328);
- /* (329) anylist ::= anylist ANY */ yytestcase(yyruleno==329);
+ /* (275) input ::= cmdlist */ yytestcase(yyruleno==275);
+ /* (276) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==276);
+ /* (277) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=277);
+ /* (278) ecmd ::= SEMI */ yytestcase(yyruleno==278);
+ /* (279) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==279);
+ /* (280) explain ::= */ yytestcase(yyruleno==280);
+ /* (281) trans_opt ::= */ yytestcase(yyruleno==281);
+ /* (282) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==282);
+ /* (283) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==283);
+ /* (284) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==284);
+ /* (285) savepoint_opt ::= */ yytestcase(yyruleno==285);
+ /* (286) cmd ::= create_table create_table_args */ yytestcase(yyruleno==286);
+ /* (287) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==287);
+ /* (288) columnlist ::= columnname carglist */ yytestcase(yyruleno==288);
+ /* (289) nm ::= ID|INDEXED */ yytestcase(yyruleno==289);
+ /* (290) nm ::= STRING */ yytestcase(yyruleno==290);
+ /* (291) nm ::= JOIN_KW */ yytestcase(yyruleno==291);
+ /* (292) typetoken ::= typename */ yytestcase(yyruleno==292);
+ /* (293) typename ::= ID|STRING */ yytestcase(yyruleno==293);
+ /* (294) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=294);
+ /* (295) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
+ /* (296) carglist ::= carglist ccons */ yytestcase(yyruleno==296);
+ /* (297) carglist ::= */ yytestcase(yyruleno==297);
+ /* (298) ccons ::= NULL onconf */ yytestcase(yyruleno==298);
+ /* (299) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==299);
+ /* (300) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==300);
+ /* (301) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=301);
+ /* (302) tconscomma ::= */ yytestcase(yyruleno==302);
+ /* (303) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=303);
+ /* (304) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=304);
+ /* (305) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=305);
+ /* (306) oneselect ::= values */ yytestcase(yyruleno==306);
+ /* (307) sclp ::= selcollist COMMA */ yytestcase(yyruleno==307);
+ /* (308) as ::= ID|STRING */ yytestcase(yyruleno==308);
+ /* (309) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=309);
+ /* (310) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==310);
+ /* (311) exprlist ::= nexprlist */ yytestcase(yyruleno==311);
+ /* (312) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=312);
+ /* (313) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=313);
+ /* (314) nmnum ::= ON */ yytestcase(yyruleno==314);
+ /* (315) nmnum ::= DELETE */ yytestcase(yyruleno==315);
+ /* (316) nmnum ::= DEFAULT */ yytestcase(yyruleno==316);
+ /* (317) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==317);
+ /* (318) foreach_clause ::= */ yytestcase(yyruleno==318);
+ /* (319) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==319);
+ /* (320) trnm ::= nm */ yytestcase(yyruleno==320);
+ /* (321) tridxby ::= */ yytestcase(yyruleno==321);
+ /* (322) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==322);
+ /* (323) database_kw_opt ::= */ yytestcase(yyruleno==323);
+ /* (324) kwcolumn_opt ::= */ yytestcase(yyruleno==324);
+ /* (325) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==325);
+ /* (326) vtabarglist ::= vtabarg */ yytestcase(yyruleno==326);
+ /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==327);
+ /* (328) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==328);
+ /* (329) anylist ::= */ yytestcase(yyruleno==329);
+ /* (330) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==330);
+ /* (331) anylist ::= anylist ANY */ yytestcase(yyruleno==331);
+ /* (332) with ::= */ yytestcase(yyruleno==332);
break;
/********** End reduce actions ************************************************/
};
@@ -180442,7 +180532,7 @@ struct SessionBuffer {
** sqlite3changeset_start_strm()).
*/
struct SessionInput {
- int bNoDiscard; /* If true, discard no data */
+ int bNoDiscard; /* If true, do not discard in InputBuffer() */
int iCurrent; /* Offset in aData[] of current change */
int iNext; /* Offset in aData[] of next change */
u8 *aData; /* Pointer to buffer containing changeset */
@@ -182967,7 +183057,7 @@ SQLITE_API int sqlite3changeset_start_strm(
** object and the buffer is full, discard some data to free up space.
*/
static void sessionDiscardData(SessionInput *pIn){
- if( pIn->bEof && pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
+ if( pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
int nMove = pIn->buf.nBuf - pIn->iNext;
assert( nMove>=0 );
if( nMove>0 ){
@@ -184608,10 +184698,11 @@ static int sessionChangesetApply(
sqlite3_changeset_iter *p /* Handle describing change and conflict */
),
void *pCtx, /* First argument passed to xConflict */
- void **ppRebase, int *pnRebase /* OUT: Rebase information */
+ void **ppRebase, int *pnRebase, /* OUT: Rebase information */
+ int flags /* SESSION_APPLY_XXX flags */
){
int schemaMismatch = 0;
- int rc; /* Return code */
+ int rc = SQLITE_OK; /* Return code */
const char *zTab = 0; /* Name of current table */
int nTab = 0; /* Result of sqlite3Strlen30(zTab) */
SessionApplyCtx sApply; /* changeset_apply() context object */
@@ -184622,7 +184713,9 @@ static int sessionChangesetApply(
pIter->in.bNoDiscard = 1;
memset(&sApply, 0, sizeof(sApply));
sqlite3_mutex_enter(sqlite3_db_mutex(db));
- rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
+ if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
+ rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
+ }
if( rc==SQLITE_OK ){
rc = sqlite3_exec(db, "PRAGMA defer_foreign_keys = 1", 0, 0, 0);
}
@@ -184760,11 +184853,13 @@ static int sessionChangesetApply(
}
sqlite3_exec(db, "PRAGMA defer_foreign_keys = 0", 0, 0, 0);
- if( rc==SQLITE_OK ){
- rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
- }else{
- sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
- sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
+ if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
+ if( rc==SQLITE_OK ){
+ rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
+ }else{
+ sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
+ sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
+ }
}
if( rc==SQLITE_OK && bPatchset==0 && ppRebase && pnRebase ){
@@ -184801,13 +184896,14 @@ SQLITE_API int sqlite3changeset_apply_v2(
sqlite3_changeset_iter *p /* Handle describing change and conflict */
),
void *pCtx, /* First argument passed to xConflict */
- void **ppRebase, int *pnRebase
+ void **ppRebase, int *pnRebase,
+ int flags
){
sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
int rc = sqlite3changeset_start(&pIter, nChangeset, pChangeset);
if( rc==SQLITE_OK ){
rc = sessionChangesetApply(
- db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
+ db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
);
}
return rc;
@@ -184834,7 +184930,7 @@ SQLITE_API int sqlite3changeset_apply(
void *pCtx /* First argument passed to xConflict */
){
return sqlite3changeset_apply_v2(
- db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0
+ db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0, 0
);
}
@@ -184857,13 +184953,14 @@ SQLITE_API int sqlite3changeset_apply_v2_strm(
sqlite3_changeset_iter *p /* Handle describing change and conflict */
),
void *pCtx, /* First argument passed to xConflict */
- void **ppRebase, int *pnRebase
+ void **ppRebase, int *pnRebase,
+ int flags
){
sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
int rc = sqlite3changeset_start_strm(&pIter, xInput, pIn);
if( rc==SQLITE_OK ){
rc = sessionChangesetApply(
- db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
+ db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
);
}
return rc;
@@ -184884,7 +184981,7 @@ SQLITE_API int sqlite3changeset_apply_strm(
void *pCtx /* First argument passed to xConflict */
){
return sqlite3changeset_apply_v2_strm(
- db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0
+ db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0, 0
);
}
@@ -203465,6 +203562,12 @@ static int fts5BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){
aColMap[1] = nCol;
aColMap[2] = nCol+1;
+ assert( SQLITE_INDEX_CONSTRAINT_EQ<SQLITE_INDEX_CONSTRAINT_MATCH );
+ assert( SQLITE_INDEX_CONSTRAINT_GT<SQLITE_INDEX_CONSTRAINT_MATCH );
+ assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
+ assert( SQLITE_INDEX_CONSTRAINT_GE<SQLITE_INDEX_CONSTRAINT_MATCH );
+ assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
+
/* Set idxFlags flags for all WHERE clause terms that will be used. */
for(i=0; i<pInfo->nConstraint; i++){
struct sqlite3_index_constraint *p = &pInfo->aConstraint[i];
@@ -203483,11 +203586,11 @@ static int fts5BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){
pInfo->estimatedCost = 1e50;
return SQLITE_OK;
}
- }else{
+ }else if( p->op<=SQLITE_INDEX_CONSTRAINT_MATCH ){
int j;
for(j=1; j<ArraySize(aConstraint); j++){
struct Constraint *pC = &aConstraint[j];
- if( iCol==aColMap[pC->iCol] && p->op & pC->op && p->usable ){
+ if( iCol==aColMap[pC->iCol] && (p->op & pC->op) && p->usable ){
pC->iConsIndex = i;
idxFlags |= pC->fts5op;
}
@@ -205559,7 +205662,7 @@ static void fts5SourceIdFunc(
){
assert( nArg==0 );
UNUSED_PARAM2(nArg, apUnused);
- sqlite3_result_text(pCtx, "fts5: 2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2", -1, SQLITE_TRANSIENT);
+ sqlite3_result_text(pCtx, "fts5: 2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b", -1, SQLITE_TRANSIENT);
}
static int fts5Init(sqlite3 *db){
@@ -209829,9 +209932,9 @@ SQLITE_API int sqlite3_stmt_init(
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
/************** End of stmt.c ************************************************/
-#if __LINE__!=209832
+#if __LINE__!=209935
#undef SQLITE_SOURCE_ID
-#define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98falt2"
+#define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd14alt2"
#endif
/* Return the source-id for this library */
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
diff --git a/ext/sqlite3/libsqlite/sqlite3.h b/ext/sqlite3/libsqlite/sqlite3.h
index b501c4dbe9..0ba2852d78 100644
--- a/ext/sqlite3/libsqlite/sqlite3.h
+++ b/ext/sqlite3/libsqlite/sqlite3.h
@@ -123,9 +123,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
-#define SQLITE_VERSION "3.23.0"
-#define SQLITE_VERSION_NUMBER 3023000
-#define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
+#define SQLITE_VERSION "3.23.1"
+#define SQLITE_VERSION_NUMBER 3023001
+#define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
/*
** CAPI3REF: Run-Time Library Version Numbers
@@ -10106,6 +10106,13 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*);
** is only allocated and populated if one or more conflicts were encountered
** while applying the patchset. See comments surrounding the sqlite3_rebaser
** APIs for further details.
+**
+** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
+** may be modified by passing a combination of
+** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
+**
+** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
+** and therefore subject to change.
*/
SQLITE_API int sqlite3changeset_apply(
sqlite3 *db, /* Apply change to "main" db of this handle */
@@ -10136,9 +10143,28 @@ SQLITE_API int sqlite3changeset_apply_v2(
sqlite3_changeset_iter *p /* Handle describing change and conflict */
),
void *pCtx, /* First argument passed to xConflict */
- void **ppRebase, int *pnRebase
+ void **ppRebase, int *pnRebase, /* OUT: Rebase data */
+ int flags /* Combination of SESSION_APPLY_* flags */
);
+/*
+** CAPI3REF: Flags for sqlite3changeset_apply_v2
+**
+** The following flags may passed via the 9th parameter to
+** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
+**
+** <dl>
+** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
+** Usually, the sessions module encloses all operations performed by
+** a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
+** SAVEPOINT is committed if the changeset or patchset is successfully
+** applied, or rolled back if an error occurs. Specifying this flag
+** causes the sessions module to omit this savepoint. In this case, if the
+** caller has an open transaction or savepoint when apply_v2() is called,
+** it may revert the partially applied changeset by rolling it back.
+*/
+#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
+
/*
** CAPI3REF: Constants Passed To The Conflict Handler
**
@@ -10399,6 +10425,7 @@ SQLITE_API void sqlite3rebaser_delete(sqlite3_rebaser *p);
** <table border=1 style="margin-left:8ex;margin-right:8ex">
** <tr><th>Streaming function<th>Non-streaming equivalent</th>
** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
+** <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2]
** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
@@ -10508,7 +10535,8 @@ SQLITE_API int sqlite3changeset_apply_v2_strm(
sqlite3_changeset_iter *p /* Handle describing change and conflict */
),
void *pCtx, /* First argument passed to xConflict */
- void **ppRebase, int *pnRebase
+ void **ppRebase, int *pnRebase,
+ int flags
);
SQLITE_API int sqlite3changeset_concat_strm(
int (*xInputA)(void *pIn, void *pData, int *pnData),