Fossil SCM

Update the built-in SQLite to version 3.23.1.

drh 2018-04-10 17:48 trunk
Commit 52b3b8ed223190c52501f19850a307e45665665e43598ed64655b9d391f82f94
3 files changed -2 +1378 -1275 +33 -5
--- src/shell.c
+++ src/shell.c
@@ -11255,11 +11255,10 @@
1125511255
}
1125611256
}
1125711257
return f;
1125811258
}
1125911259
11260
-#if !defined(SQLITE_UNTESTABLE)
1126111260
#if !defined(SQLITE_OMIT_TRACE) && !defined(SQLITE_OMIT_FLOATING_POINT)
1126211261
/*
1126311262
** A routine for handling output from sqlite3_trace().
1126411263
*/
1126511264
static int sql_trace_callback(
@@ -11277,11 +11276,10 @@
1127711276
while( i>0 && z[i-1]==';' ){ i--; }
1127811277
utf8_printf(f, "%.*s;\n", i, z);
1127911278
}
1128011279
return 0;
1128111280
}
11282
-#endif
1128311281
#endif
1128411282
1128511283
/*
1128611284
** A no-op routine that runs with the ".breakpoint" doc-command. This is
1128711285
** a useful spot to set a debugger breakpoint.
1128811286
--- src/shell.c
+++ src/shell.c
@@ -11255,11 +11255,10 @@
11255 }
11256 }
11257 return f;
11258 }
11259
11260 #if !defined(SQLITE_UNTESTABLE)
11261 #if !defined(SQLITE_OMIT_TRACE) && !defined(SQLITE_OMIT_FLOATING_POINT)
11262 /*
11263 ** A routine for handling output from sqlite3_trace().
11264 */
11265 static int sql_trace_callback(
@@ -11277,11 +11276,10 @@
11277 while( i>0 && z[i-1]==';' ){ i--; }
11278 utf8_printf(f, "%.*s;\n", i, z);
11279 }
11280 return 0;
11281 }
11282 #endif
11283 #endif
11284
11285 /*
11286 ** A no-op routine that runs with the ".breakpoint" doc-command. This is
11287 ** a useful spot to set a debugger breakpoint.
11288
--- src/shell.c
+++ src/shell.c
@@ -11255,11 +11255,10 @@
11255 }
11256 }
11257 return f;
11258 }
11259
 
11260 #if !defined(SQLITE_OMIT_TRACE) && !defined(SQLITE_OMIT_FLOATING_POINT)
11261 /*
11262 ** A routine for handling output from sqlite3_trace().
11263 */
11264 static int sql_trace_callback(
@@ -11277,11 +11276,10 @@
11276 while( i>0 && z[i-1]==';' ){ i--; }
11277 utf8_printf(f, "%.*s;\n", i, z);
11278 }
11279 return 0;
11280 }
 
11281 #endif
11282
11283 /*
11284 ** A no-op routine that runs with the ".breakpoint" doc-command. This is
11285 ** a useful spot to set a debugger breakpoint.
11286
+1378 -1275
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
11
/******************************************************************************
22
** This file is an amalgamation of many separate C source files from SQLite
3
-** version 3.23.0. By combining all the individual C code files into this
3
+** version 3.23.1. By combining all the individual C code files into this
44
** single large file, the entire code can be compiled as a single translation
55
** unit. This allows many compilers to do optimizations that would not be
66
** possible if the files were compiled separately. Performance improvements
77
** of 5% or more are commonly seen when SQLite is compiled as a single
88
** translation unit.
@@ -1145,13 +1145,13 @@
11451145
**
11461146
** See also: [sqlite3_libversion()],
11471147
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
11481148
** [sqlite_version()] and [sqlite_source_id()].
11491149
*/
1150
-#define SQLITE_VERSION "3.23.0"
1151
-#define SQLITE_VERSION_NUMBER 3023000
1152
-#define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
1150
+#define SQLITE_VERSION "3.23.1"
1151
+#define SQLITE_VERSION_NUMBER 3023001
1152
+#define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
11531153
11541154
/*
11551155
** CAPI3REF: Run-Time Library Version Numbers
11561156
** KEYWORDS: sqlite3_version sqlite3_sourceid
11571157
**
@@ -11128,10 +11128,17 @@
1112811128
** is set to the size of the buffer in bytes. It is the responsibility of the
1112911129
** caller to eventually free any such buffer using sqlite3_free(). The buffer
1113011130
** is only allocated and populated if one or more conflicts were encountered
1113111131
** while applying the patchset. See comments surrounding the sqlite3_rebaser
1113211132
** APIs for further details.
11133
+**
11134
+** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
11135
+** may be modified by passing a combination of
11136
+** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
11137
+**
11138
+** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
11139
+** and therefore subject to change.
1113311140
*/
1113411141
SQLITE_API int sqlite3changeset_apply(
1113511142
sqlite3 *db, /* Apply change to "main" db of this handle */
1113611143
int nChangeset, /* Size of changeset in bytes */
1113711144
void *pChangeset, /* Changeset blob */
@@ -11158,13 +11165,32 @@
1115811165
void *pCtx, /* Copy of sixth arg to _apply() */
1115911166
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
1116011167
sqlite3_changeset_iter *p /* Handle describing change and conflict */
1116111168
),
1116211169
void *pCtx, /* First argument passed to xConflict */
11163
- void **ppRebase, int *pnRebase
11170
+ void **ppRebase, int *pnRebase, /* OUT: Rebase data */
11171
+ int flags /* Combination of SESSION_APPLY_* flags */
1116411172
);
1116511173
11174
+/*
11175
+** CAPI3REF: Flags for sqlite3changeset_apply_v2
11176
+**
11177
+** The following flags may passed via the 9th parameter to
11178
+** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
11179
+**
11180
+** <dl>
11181
+** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
11182
+** Usually, the sessions module encloses all operations performed by
11183
+** a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
11184
+** SAVEPOINT is committed if the changeset or patchset is successfully
11185
+** applied, or rolled back if an error occurs. Specifying this flag
11186
+** causes the sessions module to omit this savepoint. In this case, if the
11187
+** caller has an open transaction or savepoint when apply_v2() is called,
11188
+** it may revert the partially applied changeset by rolling it back.
11189
+*/
11190
+#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
11191
+
1116611192
/*
1116711193
** CAPI3REF: Constants Passed To The Conflict Handler
1116811194
**
1116911195
** Values that may be passed as the second argument to a conflict-handler.
1117011196
**
@@ -11421,10 +11447,11 @@
1142111447
** corresponding non-streaming API functions:
1142211448
**
1142311449
** <table border=1 style="margin-left:8ex;margin-right:8ex">
1142411450
** <tr><th>Streaming function<th>Non-streaming equivalent</th>
1142511451
** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
11452
+** <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2]
1142611453
** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
1142711454
** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
1142811455
** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
1142911456
** <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset]
1143011457
** <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset]
@@ -11530,11 +11557,12 @@
1153011557
void *pCtx, /* Copy of sixth arg to _apply() */
1153111558
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
1153211559
sqlite3_changeset_iter *p /* Handle describing change and conflict */
1153311560
),
1153411561
void *pCtx, /* First argument passed to xConflict */
11535
- void **ppRebase, int *pnRebase
11562
+ void **ppRebase, int *pnRebase,
11563
+ int flags
1153611564
);
1153711565
SQLITE_API int sqlite3changeset_concat_strm(
1153811566
int (*xInputA)(void *pIn, void *pData, int *pnData),
1153911567
void *pInA,
1154011568
int (*xInputB)(void *pIn, void *pData, int *pnData),
@@ -21285,10 +21313,11 @@
2128521313
** really care if the VFS receives and understands the information since it
2128621314
** is only a hint and can be safely ignored. The sqlite3OsFileControlHint()
2128721315
** routine has no return value since the return value would be meaningless.
2128821316
*/
2128921317
SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){
21318
+ if( id->pMethods==0 ) return SQLITE_NOTFOUND;
2129021319
#ifdef SQLITE_TEST
2129121320
if( op!=SQLITE_FCNTL_COMMIT_PHASETWO
2129221321
&& op!=SQLITE_FCNTL_LOCK_TIMEOUT
2129321322
){
2129421323
/* Faults are not injected into COMMIT_PHASETWO because, assuming SQLite
@@ -21302,11 +21331,10 @@
2130221331
** means the commit really has failed and an error should be returned
2130321332
** to the user. */
2130421333
DO_OS_MALLOC_TEST(id);
2130521334
}
2130621335
#endif
21307
- if( id->pMethods==0 ) return SQLITE_NOTFOUND;
2130821336
return id->pMethods->xFileControl(id, op, pArg);
2130921337
}
2131021338
SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file *id, int op, void *pArg){
2131121339
if( id->pMethods ) (void)id->pMethods->xFileControl(id, op, pArg);
2131221340
}
@@ -98998,16 +99026,20 @@
9899899026
assert( pExpr->op!=TK_AGG_COLUMN );
9899999027
testcase( pExpr->op==TK_AGG_FUNCTION );
9900099028
9900199029
if( ExprHasProperty(pExpr, EP_FromJoin) ) return WRC_Prune;
9900299030
switch( pExpr->op ){
99031
+ case TK_ISNOT:
99032
+ case TK_NOT:
9900399033
case TK_ISNULL:
9900499034
case TK_IS:
9900599035
case TK_OR:
9900699036
case TK_CASE:
9900799037
case TK_IN:
9900899038
case TK_FUNCTION:
99039
+ testcase( pExpr->op==TK_ISNOT );
99040
+ testcase( pExpr->op==TK_NOT );
9900999041
testcase( pExpr->op==TK_ISNULL );
9901099042
testcase( pExpr->op==TK_IS );
9901199043
testcase( pExpr->op==TK_OR );
9901299044
testcase( pExpr->op==TK_CASE );
9901399045
testcase( pExpr->op==TK_IN );
@@ -99017,10 +99049,31 @@
9901799049
if( pWalker->u.iCur==pExpr->iTable ){
9901899050
pWalker->eCode = 1;
9901999051
return WRC_Abort;
9902099052
}
9902199053
return WRC_Prune;
99054
+
99055
+ /* Virtual tables are allowed to use constraints like x=NULL. So
99056
+ ** a term of the form x=y does not prove that y is not null if x
99057
+ ** is the column of a virtual table */
99058
+ case TK_EQ:
99059
+ case TK_NE:
99060
+ case TK_LT:
99061
+ case TK_LE:
99062
+ case TK_GT:
99063
+ case TK_GE:
99064
+ testcase( pExpr->op==TK_EQ );
99065
+ testcase( pExpr->op==TK_NE );
99066
+ testcase( pExpr->op==TK_LT );
99067
+ testcase( pExpr->op==TK_LE );
99068
+ testcase( pExpr->op==TK_GT );
99069
+ testcase( pExpr->op==TK_GE );
99070
+ if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->pTab))
99071
+ || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->pTab))
99072
+ ){
99073
+ return WRC_Prune;
99074
+ }
9902299075
default:
9902399076
return WRC_Continue;
9902499077
}
9902599078
}
9902699079
@@ -104604,11 +104657,11 @@
104604104657
SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
104605104658
sqlite3 *db = pParse->db;
104606104659
Vdbe *v = pParse->pVdbe;
104607104660
assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
104608104661
sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_SCHEMA_VERSION,
104609
- db->aDb[iDb].pSchema->schema_cookie+1);
104662
+ (int)(1+(unsigned)db->aDb[iDb].pSchema->schema_cookie));
104610104663
}
104611104664
104612104665
/*
104613104666
** Measure the number of characters needed to output the given
104614104667
** identifier. The number returned includes any quotes used
@@ -124593,13 +124646,11 @@
124593124646
if( (selFlags & SF_Expanded)!=0 ){
124594124647
return WRC_Prune;
124595124648
}
124596124649
pTabList = p->pSrc;
124597124650
pEList = p->pEList;
124598
- if( OK_IF_ALWAYS_TRUE(p->pWith) ){
124599
- sqlite3WithPush(pParse, p->pWith, 0);
124600
- }
124651
+ sqlite3WithPush(pParse, p->pWith, 0);
124601124652
124602124653
/* Make sure cursor numbers have been assigned to all entries in
124603124654
** the FROM clause of the SELECT statement.
124604124655
*/
124605124656
sqlite3SrcListAssignCursors(pParse, pTabList);
@@ -128058,11 +128109,11 @@
128058128109
iPk = pParse->nMem+1;
128059128110
pParse->nMem += nPk;
128060128111
regKey = ++pParse->nMem;
128061128112
iEph = pParse->nTab++;
128062128113
128063
- sqlite3VdbeAddOp2(v, OP_Null, 0, iPk);
128114
+ sqlite3VdbeAddOp3(v, OP_Null, 0, iPk, iPk+nPk-1);
128064128115
addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk);
128065128116
sqlite3VdbeSetP4KeyInfo(pParse, pPk);
128066128117
}
128067128118
128068128119
/* Begin the database scan.
@@ -130230,11 +130281,11 @@
130230130281
130231130282
/*
130232130283
** Trace output macros
130233130284
*/
130234130285
#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG)
130235
-/***/ int sqlite3WhereTrace;
130286
+/***/ extern int sqlite3WhereTrace;
130236130287
#endif
130237130288
#if defined(SQLITE_DEBUG) \
130238130289
&& (defined(SQLITE_TEST) || defined(SQLITE_ENABLE_WHERETRACE))
130239130290
# define WHERETRACE(K,X) if(sqlite3WhereTrace&(K)) sqlite3DebugPrintf X
130240130291
# define WHERETRACE_ENABLED 1
@@ -136883,12 +136934,12 @@
136883136934
LogEst rLogSize; /* Logarithm of table size */
136884136935
WhereTerm *pTop = 0, *pBtm = 0; /* Top and bottom range constraints */
136885136936
136886136937
pNew = pBuilder->pNew;
136887136938
if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;
136888
- WHERETRACE(0x800, ("BEGIN addBtreeIdx(%s), nEq=%d\n",
136889
- pProbe->zName, pNew->u.btree.nEq));
136939
+ WHERETRACE(0x800, ("BEGIN %s.addBtreeIdx(%s), nEq=%d\n",
136940
+ pProbe->pTable->zName,pProbe->zName, pNew->u.btree.nEq));
136890136941
136891136942
assert( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 );
136892136943
assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 );
136893136944
if( pNew->wsFlags & WHERE_BTM_LIMIT ){
136894136945
opMask = WO_LT|WO_LE;
@@ -137170,12 +137221,12 @@
137170137221
pNew->u.btree.nEq = saved_nEq;
137171137222
pNew->nSkip = saved_nSkip;
137172137223
pNew->wsFlags = saved_wsFlags;
137173137224
}
137174137225
137175
- WHERETRACE(0x800, ("END addBtreeIdx(%s), nEq=%d, rc=%d\n",
137176
- pProbe->zName, saved_nEq, rc));
137226
+ WHERETRACE(0x800, ("END %s.addBtreeIdx(%s), nEq=%d, rc=%d\n",
137227
+ pProbe->pTable->zName, pProbe->zName, saved_nEq, rc));
137177137228
return rc;
137178137229
}
137179137230
137180137231
/*
137181137232
** Return True if it is possible that pIndex might be useful in
@@ -137609,13 +137660,13 @@
137609137660
|| j<0
137610137661
|| j>=pWC->nTerm
137611137662
|| pNew->aLTerm[iTerm]!=0
137612137663
|| pIdxCons->usable==0
137613137664
){
137614
- rc = SQLITE_ERROR;
137615137665
sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
137616
- return rc;
137666
+ testcase( pIdxInfo->needToFreeIdxStr );
137667
+ return SQLITE_ERROR;
137617137668
}
137618137669
testcase( iTerm==nConstraint-1 );
137619137670
testcase( j==0 );
137620137671
testcase( j==pWC->nTerm-1 );
137621137672
pTerm = &pWC->a[j];
@@ -137639,10 +137690,19 @@
137639137690
}
137640137691
}
137641137692
pNew->u.vtab.omitMask &= ~mNoOmit;
137642137693
137643137694
pNew->nLTerm = mxTerm+1;
137695
+ for(i=0; i<=mxTerm; i++){
137696
+ if( pNew->aLTerm[i]==0 ){
137697
+ /* The non-zero argvIdx values must be contiguous. Raise an
137698
+ ** error if they are not */
137699
+ sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
137700
+ testcase( pIdxInfo->needToFreeIdxStr );
137701
+ return SQLITE_ERROR;
137702
+ }
137703
+ }
137644137704
assert( pNew->nLTerm<=pNew->nLSlot );
137645137705
pNew->u.vtab.idxNum = pIdxInfo->idxNum;
137646137706
pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr;
137647137707
pIdxInfo->needToFreeIdxStr = 0;
137648137708
pNew->u.vtab.idxStr = pIdxInfo->idxStr;
@@ -137754,10 +137814,11 @@
137754137814
sqlite3DbFree(pParse->db, p);
137755137815
return SQLITE_NOMEM_BKPT;
137756137816
}
137757137817
137758137818
/* First call xBestIndex() with all constraints usable. */
137819
+ WHERETRACE(0x800, ("BEGIN %s.addVirtual()\n", pSrc->pTab->zName));
137759137820
WHERETRACE(0x40, (" VirtualOne: all usable\n"));
137760137821
rc = whereLoopAddVirtualOne(pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn);
137761137822
137762137823
/* If the call to xBestIndex() with all terms enabled produced a plan
137763137824
** that does not require any source tables (IOW: a plan with mBest==0),
@@ -137829,10 +137890,11 @@
137829137890
}
137830137891
}
137831137892
137832137893
if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr);
137833137894
sqlite3DbFreeNN(pParse->db, p);
137895
+ WHERETRACE(0x800, ("END %s.addVirtual(), rc=%d\n", pSrc->pTab->zName, rc));
137834137896
return rc;
137835137897
}
137836137898
#endif /* SQLITE_OMIT_VIRTUALTABLE */
137837137899
137838137900
/*
@@ -139969,21 +140031,21 @@
139969140031
#define sqlite3ParserARG_SDECL Parse *pParse;
139970140032
#define sqlite3ParserARG_PDECL ,Parse *pParse
139971140033
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
139972140034
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
139973140035
#define YYFALLBACK 1
139974
-#define YYNSTATE 466
139975
-#define YYNRULE 330
140036
+#define YYNSTATE 472
140037
+#define YYNRULE 333
139976140038
#define YYNTOKEN 143
139977
-#define YY_MAX_SHIFT 465
139978
-#define YY_MIN_SHIFTREDUCE 675
139979
-#define YY_MAX_SHIFTREDUCE 1004
139980
-#define YY_ERROR_ACTION 1005
139981
-#define YY_ACCEPT_ACTION 1006
139982
-#define YY_NO_ACTION 1007
139983
-#define YY_MIN_REDUCE 1008
139984
-#define YY_MAX_REDUCE 1337
140039
+#define YY_MAX_SHIFT 471
140040
+#define YY_MIN_SHIFTREDUCE 681
140041
+#define YY_MAX_SHIFTREDUCE 1013
140042
+#define YY_ERROR_ACTION 1014
140043
+#define YY_ACCEPT_ACTION 1015
140044
+#define YY_NO_ACTION 1016
140045
+#define YY_MIN_REDUCE 1017
140046
+#define YY_MAX_REDUCE 1349
139985140047
/************* End control #defines *******************************************/
139986140048
139987140049
/* Define the yytestcase() macro to be a no-op if is not already defined
139988140050
** otherwise.
139989140051
**
@@ -140045,326 +140107,328 @@
140045140107
** yy_reduce_ofst[] For each state, the offset into yy_action for
140046140108
** shifting non-terminals after a reduce.
140047140109
** yy_default[] Default action for each state.
140048140110
**
140049140111
*********** Begin parsing tables **********************************************/
140050
-#define YY_ACTTAB_COUNT (1541)
140112
+#define YY_ACTTAB_COUNT (1566)
140051140113
static const YYACTIONTYPE yy_action[] = {
140052
- /* 0 */ 1006, 156, 156, 2, 1302, 90, 87, 179, 90, 87,
140053
- /* 10 */ 179, 460, 1048, 460, 465, 1010, 460, 333, 1130, 335,
140054
- /* 20 */ 246, 330, 112, 303, 439, 1258, 304, 419, 1129, 1087,
140055
- /* 30 */ 72, 798, 50, 50, 50, 50, 331, 30, 30, 799,
140056
- /* 40 */ 951, 364, 371, 97, 98, 88, 983, 983, 859, 862,
140057
- /* 50 */ 851, 851, 95, 95, 96, 96, 96, 96, 120, 371,
140058
- /* 60 */ 370, 120, 348, 22, 90, 87, 179, 438, 423, 438,
140059
- /* 70 */ 440, 335, 420, 385, 90, 87, 179, 116, 73, 163,
140060
- /* 80 */ 848, 848, 860, 863, 94, 94, 94, 94, 93, 93,
140061
- /* 90 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983,
140062
- /* 100 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
140063
- /* 110 */ 718, 365, 339, 93, 93, 92, 92, 92, 91, 361,
140064
- /* 120 */ 99, 371, 453, 335, 94, 94, 94, 94, 93, 93,
140065
- /* 130 */ 92, 92, 92, 91, 361, 852, 94, 94, 94, 94,
140066
- /* 140 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88,
140067
- /* 150 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96,
140068
- /* 160 */ 96, 96, 92, 92, 92, 91, 361, 838, 132, 195,
140069
- /* 170 */ 58, 244, 412, 409, 408, 335, 457, 457, 457, 304,
140070
- /* 180 */ 59, 332, 831, 407, 394, 962, 830, 391, 94, 94,
140071
- /* 190 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97,
140072
- /* 200 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95,
140073
- /* 210 */ 96, 96, 96, 96, 426, 357, 460, 830, 830, 832,
140074
- /* 220 */ 91, 361, 962, 963, 964, 195, 459, 335, 412, 409,
140075
- /* 230 */ 408, 280, 361, 820, 132, 11, 11, 50, 50, 407,
140076
- /* 240 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91,
140077
- /* 250 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851,
140078
- /* 260 */ 95, 95, 96, 96, 96, 96, 460, 221, 460, 264,
140079
- /* 270 */ 375, 254, 438, 428, 1276, 1276, 383, 1074, 1053, 335,
140080
- /* 280 */ 245, 422, 299, 713, 271, 271, 1074, 50, 50, 50,
140081
- /* 290 */ 50, 962, 94, 94, 94, 94, 93, 93, 92, 92,
140082
- /* 300 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862,
140083
- /* 310 */ 851, 851, 95, 95, 96, 96, 96, 96, 90, 87,
140084
- /* 320 */ 179, 1306, 438, 437, 438, 418, 368, 253, 962, 963,
140085
- /* 330 */ 964, 335, 360, 360, 360, 706, 359, 358, 324, 962,
140086
- /* 340 */ 1281, 951, 364, 230, 94, 94, 94, 94, 93, 93,
140087
- /* 350 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983,
140088
- /* 360 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
140089
- /* 370 */ 769, 460, 120, 226, 226, 366, 962, 963, 964, 1089,
140090
- /* 380 */ 990, 900, 990, 335, 1057, 425, 421, 839, 759, 759,
140091
- /* 390 */ 425, 427, 50, 50, 432, 381, 94, 94, 94, 94,
140092
- /* 400 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88,
140093
- /* 410 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96,
140094
- /* 420 */ 96, 96, 460, 259, 460, 120, 117, 354, 942, 1332,
140095
- /* 430 */ 942, 1333, 1332, 278, 1333, 335, 680, 681, 682, 825,
140096
- /* 440 */ 201, 176, 303, 50, 50, 49, 49, 404, 94, 94,
140097
- /* 450 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97,
140098
- /* 460 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95,
140099
- /* 470 */ 96, 96, 96, 96, 199, 460, 380, 265, 433, 380,
140100
- /* 480 */ 265, 383, 256, 158, 258, 319, 1003, 335, 155, 940,
140101
- /* 490 */ 177, 940, 273, 379, 276, 322, 34, 34, 302, 962,
140102
- /* 500 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91,
140103
- /* 510 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851,
140104
- /* 520 */ 95, 95, 96, 96, 96, 96, 905, 905, 397, 460,
140105
- /* 530 */ 301, 158, 101, 319, 941, 340, 962, 963, 964, 313,
140106
- /* 540 */ 283, 449, 335, 327, 146, 1266, 1004, 257, 234, 248,
140107
- /* 550 */ 35, 35, 94, 94, 94, 94, 93, 93, 92, 92,
140108
- /* 560 */ 92, 91, 361, 709, 785, 1227, 97, 98, 88, 983,
140109
- /* 570 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
140110
- /* 580 */ 96, 962, 1227, 1229, 245, 422, 838, 198, 197, 196,
140111
- /* 590 */ 1079, 1079, 1077, 1077, 1004, 1334, 320, 335, 172, 171,
140112
- /* 600 */ 709, 831, 159, 271, 271, 830, 76, 94, 94, 94,
140113
- /* 610 */ 94, 93, 93, 92, 92, 92, 91, 361, 962, 963,
140114
- /* 620 */ 964, 97, 98, 88, 983, 983, 859, 862, 851, 851,
140115
- /* 630 */ 95, 95, 96, 96, 96, 96, 830, 830, 832, 1157,
140116
- /* 640 */ 1157, 199, 1157, 173, 1227, 231, 232, 1282, 2, 335,
140117
- /* 650 */ 271, 764, 271, 820, 271, 271, 763, 389, 389, 389,
140118
- /* 660 */ 132, 79, 94, 94, 94, 94, 93, 93, 92, 92,
140119
- /* 670 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862,
140120
- /* 680 */ 851, 851, 95, 95, 96, 96, 96, 96, 460, 264,
140121
- /* 690 */ 223, 460, 1257, 783, 1223, 1157, 1086, 1082, 80, 271,
140122
- /* 700 */ 78, 335, 340, 1031, 341, 344, 345, 902, 346, 10,
140123
- /* 710 */ 10, 902, 25, 25, 94, 94, 94, 94, 93, 93,
140124
- /* 720 */ 92, 92, 92, 91, 361, 97, 86, 88, 983, 983,
140125
- /* 730 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
140126
- /* 740 */ 1157, 270, 395, 117, 233, 263, 235, 70, 456, 341,
140127
- /* 750 */ 225, 176, 335, 1305, 342, 133, 736, 966, 980, 249,
140128
- /* 760 */ 1150, 396, 325, 1085, 1028, 178, 94, 94, 94, 94,
140129
- /* 770 */ 93, 93, 92, 92, 92, 91, 361, 98, 88, 983,
140130
- /* 780 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
140131
- /* 790 */ 96, 783, 783, 132, 120, 966, 120, 120, 120, 798,
140132
- /* 800 */ 252, 937, 335, 353, 321, 429, 355, 799, 822, 692,
140133
- /* 810 */ 390, 203, 446, 450, 372, 716, 454, 94, 94, 94,
140134
- /* 820 */ 94, 93, 93, 92, 92, 92, 91, 361, 88, 983,
140135
- /* 830 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
140136
- /* 840 */ 96, 84, 455, 1225, 3, 1209, 120, 120, 382, 387,
140137
- /* 850 */ 120, 203, 1271, 716, 384, 168, 266, 203, 458, 72,
140138
- /* 860 */ 260, 1246, 84, 455, 178, 3, 378, 94, 94, 94,
140139
- /* 870 */ 94, 93, 93, 92, 92, 92, 91, 361, 350, 458,
140140
- /* 880 */ 1245, 362, 430, 213, 228, 290, 415, 285, 414, 200,
140141
- /* 890 */ 783, 882, 444, 726, 725, 405, 283, 921, 209, 921,
140142
- /* 900 */ 281, 132, 362, 72, 838, 289, 147, 733, 734, 392,
140143
- /* 910 */ 81, 82, 922, 444, 922, 267, 288, 83, 362, 462,
140144
- /* 920 */ 461, 272, 132, 830, 23, 838, 388, 923, 1216, 923,
140145
- /* 930 */ 1056, 81, 82, 84, 455, 899, 3, 899, 83, 362,
140146
- /* 940 */ 462, 461, 761, 962, 830, 75, 1, 443, 275, 747,
140147
- /* 950 */ 458, 5, 962, 204, 830, 830, 832, 833, 18, 748,
140148
- /* 960 */ 229, 962, 277, 19, 153, 317, 317, 316, 216, 314,
140149
- /* 970 */ 279, 460, 689, 362, 1055, 830, 830, 832, 833, 18,
140150
- /* 980 */ 962, 963, 964, 962, 444, 181, 460, 251, 981, 962,
140151
- /* 990 */ 963, 964, 8, 8, 20, 250, 838, 1070, 962, 963,
140152
- /* 1000 */ 964, 417, 81, 82, 768, 204, 347, 36, 36, 83,
140153
- /* 1010 */ 362, 462, 461, 1054, 284, 830, 84, 455, 1123, 3,
140154
- /* 1020 */ 962, 963, 964, 460, 183, 962, 981, 764, 889, 1107,
140155
- /* 1030 */ 460, 184, 763, 458, 132, 182, 74, 455, 460, 3,
140156
- /* 1040 */ 981, 898, 834, 898, 8, 8, 830, 830, 832, 833,
140157
- /* 1050 */ 18, 8, 8, 458, 219, 1156, 362, 1103, 349, 8,
140158
- /* 1060 */ 8, 240, 962, 963, 964, 236, 889, 444, 792, 336,
140159
- /* 1070 */ 158, 203, 885, 435, 700, 209, 362, 114, 981, 838,
140160
- /* 1080 */ 834, 227, 334, 1114, 441, 81, 82, 444, 442, 305,
140161
- /* 1090 */ 784, 306, 83, 362, 462, 461, 369, 1162, 830, 838,
140162
- /* 1100 */ 460, 1037, 237, 1030, 237, 81, 82, 7, 96, 96,
140163
- /* 1110 */ 96, 96, 83, 362, 462, 461, 1019, 1018, 830, 1020,
140164
- /* 1120 */ 1289, 37, 37, 400, 96, 96, 96, 96, 89, 830,
140165
- /* 1130 */ 830, 832, 833, 18, 1100, 318, 962, 292, 94, 94,
140166
- /* 1140 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 830,
140167
- /* 1150 */ 830, 832, 833, 18, 94, 94, 94, 94, 93, 93,
140168
- /* 1160 */ 92, 92, 92, 91, 361, 359, 358, 226, 226, 727,
140169
- /* 1170 */ 294, 296, 460, 962, 963, 964, 460, 989, 160, 425,
140170
- /* 1180 */ 170, 1295, 262, 460, 987, 374, 988, 386, 1145, 255,
140171
- /* 1190 */ 326, 460, 373, 38, 38, 410, 174, 39, 39, 413,
140172
- /* 1200 */ 460, 287, 460, 1053, 40, 40, 298, 728, 1220, 990,
140173
- /* 1210 */ 445, 990, 26, 26, 1219, 460, 311, 460, 169, 1292,
140174
- /* 1220 */ 460, 27, 27, 29, 29, 998, 460, 206, 135, 995,
140175
- /* 1230 */ 1265, 1263, 460, 57, 60, 460, 41, 41, 42, 42,
140176
- /* 1240 */ 460, 43, 43, 460, 343, 351, 460, 9, 9, 460,
140177
- /* 1250 */ 144, 460, 130, 44, 44, 460, 103, 103, 460, 137,
140178
- /* 1260 */ 70, 45, 45, 460, 46, 46, 460, 31, 31, 1142,
140179
- /* 1270 */ 47, 47, 48, 48, 460, 376, 32, 32, 460, 122,
140180
- /* 1280 */ 122, 460, 157, 460, 123, 123, 139, 124, 124, 460,
140181
- /* 1290 */ 186, 460, 377, 460, 115, 54, 54, 460, 403, 33,
140182
- /* 1300 */ 33, 460, 104, 104, 51, 51, 460, 161, 460, 140,
140183
- /* 1310 */ 105, 105, 106, 106, 102, 102, 460, 141, 121, 121,
140184
- /* 1320 */ 460, 142, 119, 119, 190, 460, 1152, 110, 110, 109,
140185
- /* 1330 */ 109, 702, 460, 148, 393, 65, 460, 107, 107, 460,
140186
- /* 1340 */ 323, 108, 108, 399, 460, 1234, 53, 53, 1214, 269,
140187
- /* 1350 */ 154, 416, 1115, 55, 55, 220, 401, 52, 52, 191,
140188
- /* 1360 */ 24, 24, 274, 192, 193, 28, 28, 1021, 328, 702,
140189
- /* 1370 */ 1073, 352, 1072, 718, 1071, 431, 1111, 1064, 329, 1045,
140190
- /* 1380 */ 69, 205, 6, 291, 1044, 286, 1112, 1043, 1304, 1110,
140191
- /* 1390 */ 293, 300, 295, 297, 1063, 1200, 1109, 77, 241, 448,
140192
- /* 1400 */ 356, 452, 436, 100, 214, 71, 434, 1027, 1093, 21,
140193
- /* 1410 */ 463, 242, 243, 957, 215, 217, 218, 464, 309, 307,
140194
- /* 1420 */ 308, 310, 1016, 125, 1250, 1251, 1011, 1249, 126, 127,
140195
- /* 1430 */ 1248, 113, 676, 337, 238, 338, 134, 363, 167, 1041,
140196
- /* 1440 */ 1040, 56, 247, 367, 180, 897, 111, 895, 136, 1038,
140197
- /* 1450 */ 818, 128, 138, 750, 261, 911, 185, 143, 145, 61,
140198
- /* 1460 */ 62, 63, 64, 129, 914, 187, 188, 910, 118, 12,
140199
- /* 1470 */ 189, 903, 268, 992, 203, 162, 398, 150, 149, 691,
140200
- /* 1480 */ 402, 288, 194, 406, 151, 411, 66, 13, 729, 239,
140201
- /* 1490 */ 282, 14, 67, 131, 837, 836, 865, 758, 15, 4,
140202
- /* 1500 */ 68, 762, 175, 222, 224, 424, 152, 869, 791, 202,
140203
- /* 1510 */ 786, 75, 72, 880, 866, 864, 16, 17, 920, 207,
140204
- /* 1520 */ 919, 208, 447, 946, 164, 211, 947, 210, 165, 451,
140205
- /* 1530 */ 868, 166, 315, 835, 701, 85, 212, 1297, 312, 952,
140206
- /* 1540 */ 1296,
140114
+ /* 0 */ 1169, 1015, 167, 167, 1, 168, 466, 1313, 466, 1083,
140115
+ /* 10 */ 1062, 466, 97, 94, 183, 1057, 466, 329, 1083, 342,
140116
+ /* 20 */ 97, 94, 183, 459, 459, 459, 436, 57, 57, 57,
140117
+ /* 30 */ 57, 807, 57, 57, 367, 367, 367, 57, 57, 808,
140118
+ /* 40 */ 1270, 1088, 1088, 104, 105, 95, 991, 991, 868, 871,
140119
+ /* 50 */ 860, 860, 102, 102, 103, 103, 103, 103, 233, 233,
140120
+ /* 60 */ 326, 1011, 449, 437, 449, 446, 351, 449, 461, 1142,
140121
+ /* 70 */ 463, 342, 449, 426, 1316, 209, 180, 742, 80, 299,
140122
+ /* 80 */ 857, 857, 869, 872, 101, 101, 101, 101, 100, 100,
140123
+ /* 90 */ 99, 99, 99, 98, 368, 104, 105, 95, 991, 991,
140124
+ /* 100 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
140125
+ /* 110 */ 99, 99, 99, 98, 368, 355, 97, 94, 183, 228,
140126
+ /* 120 */ 106, 1012, 407, 342, 101, 101, 101, 101, 100, 100,
140127
+ /* 130 */ 99, 99, 99, 98, 368, 861, 101, 101, 101, 101,
140128
+ /* 140 */ 100, 100, 99, 99, 99, 98, 368, 104, 105, 95,
140129
+ /* 150 */ 991, 991, 868, 871, 860, 860, 102, 102, 103, 103,
140130
+ /* 160 */ 103, 103, 201, 368, 375, 420, 417, 416, 387, 273,
140131
+ /* 170 */ 65, 97, 94, 183, 168, 342, 415, 951, 1343, 396,
140132
+ /* 180 */ 66, 1343, 320, 959, 371, 970, 334, 340, 101, 101,
140133
+ /* 190 */ 101, 101, 100, 100, 99, 99, 99, 98, 368, 104,
140134
+ /* 200 */ 105, 95, 991, 991, 868, 871, 860, 860, 102, 102,
140135
+ /* 210 */ 103, 103, 103, 103, 373, 100, 100, 99, 99, 99,
140136
+ /* 220 */ 98, 368, 970, 971, 972, 201, 1100, 342, 420, 417,
140137
+ /* 230 */ 416, 287, 366, 365, 337, 970, 1162, 463, 949, 415,
140138
+ /* 240 */ 101, 101, 101, 101, 100, 100, 99, 99, 99, 98,
140139
+ /* 250 */ 368, 104, 105, 95, 991, 991, 868, 871, 860, 860,
140140
+ /* 260 */ 102, 102, 103, 103, 103, 103, 777, 241, 233, 233,
140141
+ /* 270 */ 9, 847, 970, 971, 972, 390, 998, 1141, 998, 342,
140142
+ /* 280 */ 463, 252, 829, 719, 98, 368, 840, 298, 338, 142,
140143
+ /* 290 */ 839, 339, 101, 101, 101, 101, 100, 100, 99, 99,
140144
+ /* 300 */ 99, 98, 368, 104, 105, 95, 991, 991, 868, 871,
140145
+ /* 310 */ 860, 860, 102, 102, 103, 103, 103, 103, 272, 466,
140146
+ /* 320 */ 392, 839, 839, 841, 97, 94, 183, 390, 1317, 253,
140147
+ /* 330 */ 456, 342, 125, 166, 807, 712, 208, 407, 386, 970,
140148
+ /* 340 */ 57, 57, 808, 238, 101, 101, 101, 101, 100, 100,
140149
+ /* 350 */ 99, 99, 99, 98, 368, 104, 105, 95, 991, 991,
140150
+ /* 360 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
140151
+ /* 370 */ 466, 108, 466, 267, 465, 442, 970, 971, 972, 261,
140152
+ /* 380 */ 951, 1344, 909, 342, 1344, 142, 829, 848, 1292, 959,
140153
+ /* 390 */ 371, 55, 55, 57, 57, 242, 101, 101, 101, 101,
140154
+ /* 400 */ 100, 100, 99, 99, 99, 98, 368, 104, 105, 95,
140155
+ /* 410 */ 991, 991, 868, 871, 860, 860, 102, 102, 103, 103,
140156
+ /* 420 */ 103, 103, 272, 382, 262, 253, 456, 310, 364, 253,
140157
+ /* 430 */ 456, 86, 264, 84, 266, 342, 441, 176, 175, 834,
140158
+ /* 440 */ 464, 949, 767, 767, 332, 313, 1094, 396, 101, 101,
140159
+ /* 450 */ 101, 101, 100, 100, 99, 99, 99, 98, 368, 104,
140160
+ /* 460 */ 105, 95, 991, 991, 868, 871, 860, 860, 102, 102,
140161
+ /* 470 */ 103, 103, 103, 103, 227, 227, 233, 233, 233, 233,
140162
+ /* 480 */ 387, 273, 234, 234, 326, 950, 463, 342, 463, 298,
140163
+ /* 490 */ 463, 914, 914, 404, 463, 1037, 123, 265, 27, 970,
140164
+ /* 500 */ 101, 101, 101, 101, 100, 100, 99, 99, 99, 98,
140165
+ /* 510 */ 368, 104, 105, 95, 991, 991, 868, 871, 860, 860,
140166
+ /* 520 */ 102, 102, 103, 103, 103, 103, 435, 233, 233, 466,
140167
+ /* 530 */ 285, 686, 687, 688, 127, 271, 970, 971, 972, 463,
140168
+ /* 540 */ 1345, 327, 342, 407, 157, 1012, 988, 13, 13, 181,
140169
+ /* 550 */ 41, 41, 101, 101, 101, 101, 100, 100, 99, 99,
140170
+ /* 560 */ 99, 98, 368, 715, 794, 378, 104, 105, 95, 991,
140171
+ /* 570 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
140172
+ /* 580 */ 103, 970, 378, 377, 346, 239, 847, 1086, 1086, 280,
140173
+ /* 590 */ 1169, 283, 204, 203, 202, 177, 298, 342, 407, 298,
140174
+ /* 600 */ 715, 840, 169, 299, 407, 839, 82, 101, 101, 101,
140175
+ /* 610 */ 101, 100, 100, 99, 99, 99, 98, 368, 970, 971,
140176
+ /* 620 */ 972, 104, 105, 95, 991, 991, 868, 871, 860, 860,
140177
+ /* 630 */ 102, 102, 103, 103, 103, 103, 839, 839, 841, 362,
140178
+ /* 640 */ 240, 124, 1169, 172, 126, 378, 1269, 1169, 1066, 342,
140179
+ /* 650 */ 253, 456, 407, 407, 407, 396, 352, 401, 407, 429,
140180
+ /* 660 */ 398, 85, 101, 101, 101, 101, 100, 100, 99, 99,
140181
+ /* 670 */ 99, 98, 368, 104, 105, 95, 991, 991, 868, 871,
140182
+ /* 680 */ 860, 860, 102, 102, 103, 103, 103, 103, 1169, 466,
140183
+ /* 690 */ 230, 233, 233, 792, 1235, 1095, 1091, 1293, 1, 77,
140184
+ /* 700 */ 278, 342, 205, 463, 974, 911, 1040, 348, 353, 911,
140185
+ /* 710 */ 42, 42, 79, 403, 101, 101, 101, 101, 100, 100,
140186
+ /* 720 */ 99, 99, 99, 98, 368, 104, 93, 95, 991, 991,
140187
+ /* 730 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
140188
+ /* 740 */ 402, 9, 974, 243, 772, 458, 348, 232, 180, 771,
140189
+ /* 750 */ 946, 312, 342, 328, 363, 349, 143, 831, 389, 1278,
140190
+ /* 760 */ 211, 211, 21, 347, 432, 182, 101, 101, 101, 101,
140191
+ /* 770 */ 100, 100, 99, 99, 99, 98, 368, 105, 95, 991,
140192
+ /* 780 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
140193
+ /* 790 */ 103, 792, 724, 22, 732, 731, 233, 233, 1239, 256,
140194
+ /* 800 */ 391, 274, 342, 211, 79, 360, 257, 413, 463, 397,
140195
+ /* 810 */ 207, 288, 260, 450, 79, 1239, 1241, 101, 101, 101,
140196
+ /* 820 */ 101, 100, 100, 99, 99, 99, 98, 368, 95, 991,
140197
+ /* 830 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
140198
+ /* 840 */ 103, 91, 457, 296, 3, 233, 233, 5, 438, 212,
140199
+ /* 850 */ 331, 394, 739, 740, 295, 898, 894, 463, 460, 207,
140200
+ /* 860 */ 801, 1237, 722, 211, 698, 843, 1283, 101, 101, 101,
140201
+ /* 870 */ 101, 100, 100, 99, 99, 99, 98, 368, 1239, 380,
140202
+ /* 880 */ 357, 369, 233, 233, 989, 219, 236, 297, 423, 292,
140203
+ /* 890 */ 422, 206, 454, 898, 463, 970, 91, 457, 290, 3,
140204
+ /* 900 */ 722, 142, 268, 843, 847, 466, 1258, 149, 388, 425,
140205
+ /* 910 */ 88, 89, 769, 460, 930, 87, 447, 90, 369, 468,
140206
+ /* 920 */ 467, 385, 989, 839, 1257, 439, 57, 57, 395, 931,
140207
+ /* 930 */ 1065, 158, 970, 971, 972, 772, 369, 471, 1019, 399,
140208
+ /* 940 */ 771, 253, 456, 254, 932, 119, 891, 454, 233, 233,
140209
+ /* 950 */ 4, 970, 1096, 275, 839, 839, 841, 842, 19, 847,
140210
+ /* 960 */ 463, 449, 448, 163, 453, 88, 89, 776, 970, 1127,
140211
+ /* 970 */ 279, 930, 90, 369, 468, 467, 91, 457, 839, 3,
140212
+ /* 980 */ 235, 1064, 466, 1228, 233, 233, 931, 970, 970, 971,
140213
+ /* 990 */ 972, 970, 908, 460, 908, 2, 463, 81, 457, 212,
140214
+ /* 1000 */ 3, 932, 282, 10, 10, 970, 971, 972, 189, 839,
140215
+ /* 1010 */ 839, 841, 842, 19, 460, 284, 369, 354, 907, 286,
140216
+ /* 1020 */ 907, 753, 466, 1079, 970, 971, 972, 454, 970, 971,
140217
+ /* 1030 */ 972, 754, 970, 1063, 989, 372, 792, 369, 1118, 847,
140218
+ /* 1040 */ 291, 452, 466, 10, 10, 88, 89, 142, 454, 168,
140219
+ /* 1050 */ 300, 412, 90, 369, 468, 467, 793, 356, 839, 706,
140220
+ /* 1060 */ 847, 341, 121, 10, 10, 301, 88, 89, 379, 970,
140221
+ /* 1070 */ 971, 972, 989, 90, 369, 468, 467, 244, 205, 839,
140222
+ /* 1080 */ 1306, 245, 1135, 245, 250, 1168, 1114, 253, 456, 839,
140223
+ /* 1090 */ 839, 841, 842, 19, 1125, 237, 122, 451, 1174, 733,
140224
+ /* 1100 */ 324, 324, 323, 222, 321, 466, 1046, 695, 182, 225,
140225
+ /* 1110 */ 839, 839, 841, 842, 19, 103, 103, 103, 103, 96,
140226
+ /* 1120 */ 185, 466, 259, 1039, 1028, 170, 10, 10, 1027, 421,
140227
+ /* 1130 */ 258, 1029, 1300, 708, 792, 466, 408, 734, 8, 347,
140228
+ /* 1140 */ 444, 174, 12, 12, 290, 101, 101, 101, 101, 100,
140229
+ /* 1150 */ 100, 99, 99, 99, 98, 368, 32, 32, 466, 187,
140230
+ /* 1160 */ 466, 1111, 103, 103, 103, 103, 188, 466, 325, 138,
140231
+ /* 1170 */ 186, 708, 303, 305, 307, 358, 970, 270, 393, 43,
140232
+ /* 1180 */ 43, 44, 44, 1157, 333, 178, 418, 294, 45, 45,
140233
+ /* 1190 */ 1232, 318, 101, 101, 101, 101, 100, 100, 99, 99,
140234
+ /* 1200 */ 99, 98, 368, 381, 343, 366, 365, 466, 263, 253,
140235
+ /* 1210 */ 456, 466, 1062, 970, 971, 972, 1231, 997, 309, 466,
140236
+ /* 1220 */ 455, 466, 427, 466, 995, 173, 996, 1303, 46, 46,
140237
+ /* 1230 */ 145, 376, 37, 37, 1006, 1277, 466, 214, 1275, 64,
140238
+ /* 1240 */ 47, 47, 33, 33, 34, 34, 1003, 67, 466, 998,
140239
+ /* 1250 */ 350, 998, 466, 155, 233, 233, 466, 36, 36, 24,
140240
+ /* 1260 */ 140, 77, 1154, 466, 383, 466, 463, 428, 466, 48,
140241
+ /* 1270 */ 48, 466, 147, 49, 49, 466, 150, 50, 50, 466,
140242
+ /* 1280 */ 151, 152, 466, 384, 11, 11, 51, 51, 466, 110,
140243
+ /* 1290 */ 110, 153, 52, 52, 411, 466, 38, 38, 466, 191,
140244
+ /* 1300 */ 53, 53, 466, 54, 54, 466, 400, 466, 330, 39,
140245
+ /* 1310 */ 39, 466, 1164, 466, 25, 466, 56, 56, 466, 131,
140246
+ /* 1320 */ 131, 72, 466, 132, 132, 159, 133, 133, 61, 61,
140247
+ /* 1330 */ 1226, 195, 40, 40, 111, 111, 58, 58, 406, 112,
140248
+ /* 1340 */ 112, 466, 277, 113, 113, 466, 226, 466, 1246, 466,
140249
+ /* 1350 */ 197, 466, 164, 466, 409, 466, 198, 466, 199, 466,
140250
+ /* 1360 */ 335, 281, 109, 109, 466, 1030, 130, 130, 129, 129,
140251
+ /* 1370 */ 117, 117, 116, 116, 114, 114, 115, 115, 60, 60,
140252
+ /* 1380 */ 62, 62, 466, 359, 466, 59, 59, 424, 1082, 1081,
140253
+ /* 1390 */ 1080, 724, 1073, 1054, 336, 293, 1053, 1052, 1315, 431,
140254
+ /* 1400 */ 361, 76, 248, 31, 31, 35, 35, 1072, 249, 440,
140255
+ /* 1410 */ 302, 434, 213, 1122, 6, 311, 1212, 107, 83, 251,
140256
+ /* 1420 */ 78, 1123, 445, 220, 443, 1036, 304, 23, 1121, 469,
140257
+ /* 1430 */ 965, 221, 223, 1104, 314, 224, 344, 317, 315, 316,
140258
+ /* 1440 */ 470, 306, 1025, 1120, 308, 1262, 1020, 134, 120, 246,
140259
+ /* 1450 */ 682, 370, 171, 255, 1263, 135, 184, 1261, 1260, 374,
140260
+ /* 1460 */ 118, 906, 904, 827, 1050, 146, 136, 137, 148, 1049,
140261
+ /* 1470 */ 63, 1047, 756, 190, 269, 920, 154, 156, 68, 69,
140262
+ /* 1480 */ 70, 71, 139, 923, 192, 193, 144, 919, 345, 128,
140263
+ /* 1490 */ 14, 194, 276, 211, 1000, 405, 196, 161, 912, 160,
140264
+ /* 1500 */ 26, 697, 410, 295, 200, 289, 414, 162, 419, 73,
140265
+ /* 1510 */ 15, 16, 141, 74, 28, 247, 846, 845, 735, 874,
140266
+ /* 1520 */ 954, 75, 430, 955, 29, 433, 179, 229, 231, 800,
140267
+ /* 1530 */ 165, 795, 87, 210, 889, 79, 875, 17, 873, 877,
140268
+ /* 1540 */ 929, 18, 928, 216, 215, 878, 20, 30, 462, 844,
140269
+ /* 1550 */ 707, 92, 766, 770, 7, 322, 217, 218, 319, 1308,
140270
+ /* 1560 */ 960, 1016, 1016, 1016, 1016, 1307,
140207140271
};
140208140272
static const YYCODETYPE yy_lookahead[] = {
140209
- /* 0 */ 144, 145, 146, 147, 172, 222, 223, 224, 222, 223,
140210
- /* 10 */ 224, 152, 180, 152, 148, 149, 152, 173, 176, 19,
140211
- /* 20 */ 154, 173, 156, 152, 163, 242, 152, 163, 176, 163,
140212
- /* 30 */ 26, 31, 173, 174, 173, 174, 173, 173, 174, 39,
140213
- /* 40 */ 1, 2, 152, 43, 44, 45, 46, 47, 48, 49,
140214
- /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 197, 169,
140215
- /* 60 */ 170, 197, 188, 197, 222, 223, 224, 208, 209, 208,
140216
- /* 70 */ 209, 19, 208, 152, 222, 223, 224, 22, 26, 24,
140273
+ /* 0 */ 152, 144, 145, 146, 147, 152, 152, 172, 152, 180,
140274
+ /* 10 */ 181, 152, 223, 224, 225, 180, 152, 164, 189, 19,
140275
+ /* 20 */ 223, 224, 225, 168, 169, 170, 163, 173, 174, 173,
140276
+ /* 30 */ 174, 31, 173, 174, 168, 169, 170, 173, 174, 39,
140277
+ /* 40 */ 243, 191, 192, 43, 44, 45, 46, 47, 48, 49,
140278
+ /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 195, 196,
140279
+ /* 60 */ 22, 23, 208, 209, 208, 209, 218, 208, 209, 176,
140280
+ /* 70 */ 207, 19, 208, 209, 23, 212, 213, 26, 26, 152,
140217140281
/* 80 */ 46, 47, 48, 49, 84, 85, 86, 87, 88, 89,
140218140282
/* 90 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140219140283
/* 100 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140220
- /* 110 */ 106, 245, 157, 88, 89, 90, 91, 92, 93, 94,
140221
- /* 120 */ 68, 231, 251, 19, 84, 85, 86, 87, 88, 89,
140284
+ /* 110 */ 90, 91, 92, 93, 94, 188, 223, 224, 225, 171,
140285
+ /* 120 */ 68, 83, 152, 19, 84, 85, 86, 87, 88, 89,
140222140286
/* 130 */ 90, 91, 92, 93, 94, 101, 84, 85, 86, 87,
140223140287
/* 140 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
140224140288
/* 150 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
140225
- /* 160 */ 56, 57, 90, 91, 92, 93, 94, 82, 79, 99,
140226
- /* 170 */ 66, 200, 102, 103, 104, 19, 168, 169, 170, 152,
140227
- /* 180 */ 24, 210, 97, 113, 229, 59, 101, 232, 84, 85,
140289
+ /* 160 */ 56, 57, 99, 94, 194, 102, 103, 104, 109, 110,
140290
+ /* 170 */ 66, 223, 224, 225, 152, 19, 113, 22, 23, 152,
140291
+ /* 180 */ 24, 26, 160, 1, 2, 59, 164, 173, 84, 85,
140228140292
/* 190 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
140229140293
/* 200 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
140230
- /* 210 */ 54, 55, 56, 57, 152, 188, 152, 132, 133, 134,
140231
- /* 220 */ 93, 94, 96, 97, 98, 99, 152, 19, 102, 103,
140232
- /* 230 */ 104, 23, 94, 72, 79, 173, 174, 173, 174, 113,
140294
+ /* 210 */ 54, 55, 56, 57, 244, 88, 89, 90, 91, 92,
140295
+ /* 220 */ 93, 94, 96, 97, 98, 99, 196, 19, 102, 103,
140296
+ /* 230 */ 104, 23, 88, 89, 173, 59, 163, 207, 83, 113,
140233140297
/* 240 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
140234140298
/* 250 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140235
- /* 260 */ 52, 53, 54, 55, 56, 57, 152, 171, 152, 108,
140236
- /* 270 */ 109, 110, 208, 209, 119, 120, 152, 180, 181, 19,
140237
- /* 280 */ 119, 120, 152, 23, 152, 152, 189, 173, 174, 173,
140238
- /* 290 */ 174, 59, 84, 85, 86, 87, 88, 89, 90, 91,
140299
+ /* 260 */ 52, 53, 54, 55, 56, 57, 90, 240, 195, 196,
140300
+ /* 270 */ 171, 82, 96, 97, 98, 152, 132, 176, 134, 19,
140301
+ /* 280 */ 207, 200, 72, 23, 93, 94, 97, 152, 173, 79,
140302
+ /* 290 */ 101, 210, 84, 85, 86, 87, 88, 89, 90, 91,
140239140303
/* 300 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
140240
- /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 222, 223,
140241
- /* 320 */ 224, 186, 208, 209, 208, 209, 194, 194, 96, 97,
140242
- /* 330 */ 98, 19, 168, 169, 170, 23, 88, 89, 163, 59,
140243
- /* 340 */ 0, 1, 2, 219, 84, 85, 86, 87, 88, 89,
140304
+ /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 108, 152,
140305
+ /* 320 */ 152, 132, 133, 134, 223, 224, 225, 152, 186, 119,
140306
+ /* 330 */ 120, 19, 197, 234, 31, 23, 26, 152, 239, 59,
140307
+ /* 340 */ 173, 174, 39, 220, 84, 85, 86, 87, 88, 89,
140244140308
/* 350 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140245140309
/* 360 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140246
- /* 370 */ 90, 152, 197, 195, 196, 243, 96, 97, 98, 196,
140247
- /* 380 */ 132, 11, 134, 19, 182, 207, 115, 23, 117, 118,
140248
- /* 390 */ 207, 163, 173, 174, 152, 220, 84, 85, 86, 87,
140310
+ /* 370 */ 152, 22, 152, 16, 152, 208, 96, 97, 98, 194,
140311
+ /* 380 */ 22, 23, 11, 19, 26, 79, 72, 23, 0, 1,
140312
+ /* 390 */ 2, 173, 174, 173, 174, 220, 84, 85, 86, 87,
140249140313
/* 400 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
140250140314
/* 410 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
140251
- /* 420 */ 56, 57, 152, 16, 152, 197, 171, 208, 22, 23,
140252
- /* 430 */ 22, 23, 26, 16, 26, 19, 7, 8, 9, 23,
140253
- /* 440 */ 212, 213, 152, 173, 174, 173, 174, 19, 84, 85,
140315
+ /* 420 */ 56, 57, 108, 109, 110, 119, 120, 152, 208, 119,
140316
+ /* 430 */ 120, 137, 75, 139, 77, 19, 152, 88, 89, 23,
140317
+ /* 440 */ 115, 83, 117, 118, 163, 227, 163, 152, 84, 85,
140254140318
/* 450 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
140255140319
/* 460 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
140256
- /* 470 */ 54, 55, 56, 57, 46, 152, 109, 110, 208, 109,
140257
- /* 480 */ 110, 152, 75, 152, 77, 22, 23, 19, 233, 83,
140258
- /* 490 */ 152, 83, 75, 238, 77, 164, 173, 174, 226, 59,
140320
+ /* 470 */ 54, 55, 56, 57, 195, 196, 195, 196, 195, 196,
140321
+ /* 480 */ 109, 110, 195, 196, 22, 23, 207, 19, 207, 152,
140322
+ /* 490 */ 207, 108, 109, 110, 207, 163, 22, 140, 24, 59,
140259140323
/* 500 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
140260140324
/* 510 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140261
- /* 520 */ 52, 53, 54, 55, 56, 57, 108, 109, 110, 152,
140262
- /* 530 */ 152, 152, 22, 22, 23, 107, 96, 97, 98, 160,
140263
- /* 540 */ 112, 251, 19, 164, 22, 152, 83, 140, 219, 152,
140325
+ /* 520 */ 52, 53, 54, 55, 56, 57, 152, 195, 196, 152,
140326
+ /* 530 */ 16, 7, 8, 9, 197, 240, 96, 97, 98, 207,
140327
+ /* 540 */ 249, 250, 19, 152, 22, 83, 26, 173, 174, 152,
140264140328
/* 550 */ 173, 174, 84, 85, 86, 87, 88, 89, 90, 91,
140265140329
/* 560 */ 92, 93, 94, 59, 124, 152, 43, 44, 45, 46,
140266140330
/* 570 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140267
- /* 580 */ 57, 59, 169, 170, 119, 120, 82, 108, 109, 110,
140268
- /* 590 */ 191, 192, 191, 192, 83, 248, 249, 19, 88, 89,
140331
+ /* 580 */ 57, 59, 169, 170, 157, 194, 82, 191, 192, 75,
140332
+ /* 590 */ 152, 77, 108, 109, 110, 26, 152, 19, 152, 152,
140269140333
/* 600 */ 96, 97, 24, 152, 152, 101, 138, 84, 85, 86,
140270140334
/* 610 */ 87, 88, 89, 90, 91, 92, 93, 94, 96, 97,
140271140335
/* 620 */ 98, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140272
- /* 630 */ 52, 53, 54, 55, 56, 57, 132, 133, 134, 152,
140273
- /* 640 */ 152, 46, 152, 26, 231, 194, 194, 146, 147, 19,
140274
- /* 650 */ 152, 116, 152, 72, 152, 152, 121, 152, 152, 152,
140275
- /* 660 */ 79, 138, 84, 85, 86, 87, 88, 89, 90, 91,
140336
+ /* 630 */ 52, 53, 54, 55, 56, 57, 132, 133, 134, 188,
140337
+ /* 640 */ 194, 197, 152, 123, 197, 232, 194, 152, 182, 19,
140338
+ /* 650 */ 119, 120, 152, 152, 152, 152, 218, 230, 152, 163,
140339
+ /* 660 */ 233, 138, 84, 85, 86, 87, 88, 89, 90, 91,
140276140340
/* 670 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
140277
- /* 680 */ 50, 51, 52, 53, 54, 55, 56, 57, 152, 108,
140278
- /* 690 */ 23, 152, 194, 26, 194, 152, 194, 194, 137, 152,
140279
- /* 700 */ 139, 19, 107, 166, 167, 218, 218, 29, 218, 173,
140280
- /* 710 */ 174, 33, 173, 174, 84, 85, 86, 87, 88, 89,
140341
+ /* 680 */ 50, 51, 52, 53, 54, 55, 56, 57, 152, 152,
140342
+ /* 690 */ 23, 195, 196, 26, 194, 194, 194, 146, 147, 130,
140343
+ /* 700 */ 194, 19, 46, 207, 59, 29, 166, 167, 218, 33,
140344
+ /* 710 */ 173, 174, 26, 218, 84, 85, 86, 87, 88, 89,
140281140345
/* 720 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140282140346
/* 730 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140283
- /* 740 */ 152, 194, 64, 171, 239, 239, 239, 130, 166, 167,
140284
- /* 750 */ 212, 213, 19, 23, 246, 247, 26, 59, 26, 152,
140285
- /* 760 */ 163, 218, 163, 163, 163, 98, 84, 85, 86, 87,
140347
+ /* 740 */ 64, 171, 97, 240, 116, 166, 167, 212, 213, 121,
140348
+ /* 750 */ 23, 152, 19, 26, 218, 247, 248, 23, 23, 152,
140349
+ /* 760 */ 26, 26, 22, 107, 163, 98, 84, 85, 86, 87,
140286140350
/* 770 */ 88, 89, 90, 91, 92, 93, 94, 44, 45, 46,
140287140351
/* 780 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140288
- /* 790 */ 57, 124, 26, 79, 197, 97, 197, 197, 197, 31,
140289
- /* 800 */ 152, 23, 19, 19, 26, 19, 218, 39, 23, 21,
140290
- /* 810 */ 238, 26, 163, 163, 100, 59, 163, 84, 85, 86,
140352
+ /* 790 */ 57, 124, 106, 53, 100, 101, 195, 196, 152, 152,
140353
+ /* 800 */ 23, 23, 19, 26, 26, 19, 152, 23, 207, 239,
140354
+ /* 810 */ 26, 23, 152, 163, 26, 169, 170, 84, 85, 86,
140291140355
/* 820 */ 87, 88, 89, 90, 91, 92, 93, 94, 45, 46,
140292140356
/* 830 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140293
- /* 840 */ 57, 19, 20, 152, 22, 23, 197, 197, 23, 19,
140294
- /* 850 */ 197, 26, 152, 97, 23, 123, 23, 26, 36, 26,
140295
- /* 860 */ 152, 152, 19, 20, 98, 22, 78, 84, 85, 86,
140296
- /* 870 */ 87, 88, 89, 90, 91, 92, 93, 94, 94, 36,
140297
- /* 880 */ 152, 59, 96, 99, 100, 101, 102, 103, 104, 105,
140298
- /* 890 */ 124, 103, 70, 100, 101, 23, 112, 12, 26, 12,
140299
- /* 900 */ 23, 79, 59, 26, 82, 101, 22, 7, 8, 152,
140300
- /* 910 */ 88, 89, 27, 70, 27, 152, 112, 95, 96, 97,
140301
- /* 920 */ 98, 152, 79, 101, 22, 82, 96, 42, 140, 42,
140302
- /* 930 */ 182, 88, 89, 19, 20, 132, 22, 134, 95, 96,
140303
- /* 940 */ 97, 98, 23, 59, 101, 26, 22, 62, 152, 62,
140304
- /* 950 */ 36, 22, 59, 24, 132, 133, 134, 135, 136, 72,
140305
- /* 960 */ 5, 59, 152, 22, 71, 10, 11, 12, 13, 14,
140306
- /* 970 */ 152, 152, 17, 59, 182, 132, 133, 134, 135, 136,
140307
- /* 980 */ 96, 97, 98, 59, 70, 30, 152, 32, 59, 96,
140308
- /* 990 */ 97, 98, 173, 174, 53, 40, 82, 152, 96, 97,
140309
- /* 1000 */ 98, 90, 88, 89, 90, 24, 187, 173, 174, 95,
140310
- /* 1010 */ 96, 97, 98, 152, 152, 101, 19, 20, 152, 22,
140311
- /* 1020 */ 96, 97, 98, 152, 69, 59, 97, 116, 59, 214,
140312
- /* 1030 */ 152, 76, 121, 36, 79, 80, 19, 20, 152, 22,
140313
- /* 1040 */ 59, 132, 59, 134, 173, 174, 132, 133, 134, 135,
140314
- /* 1050 */ 136, 173, 174, 36, 234, 152, 59, 152, 187, 173,
140315
- /* 1060 */ 174, 211, 96, 97, 98, 187, 97, 70, 23, 114,
140316
- /* 1070 */ 152, 26, 23, 187, 23, 26, 59, 26, 97, 82,
140317
- /* 1080 */ 97, 22, 164, 152, 152, 88, 89, 70, 192, 152,
140318
- /* 1090 */ 124, 152, 95, 96, 97, 98, 141, 152, 101, 82,
140319
- /* 1100 */ 152, 152, 184, 152, 186, 88, 89, 199, 54, 55,
140320
- /* 1110 */ 56, 57, 95, 96, 97, 98, 152, 152, 101, 152,
140321
- /* 1120 */ 152, 173, 174, 235, 54, 55, 56, 57, 58, 132,
140322
- /* 1130 */ 133, 134, 135, 136, 211, 150, 59, 211, 84, 85,
140323
- /* 1140 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 132,
140324
- /* 1150 */ 133, 134, 135, 136, 84, 85, 86, 87, 88, 89,
140325
- /* 1160 */ 90, 91, 92, 93, 94, 88, 89, 195, 196, 35,
140326
- /* 1170 */ 211, 211, 152, 96, 97, 98, 152, 100, 198, 207,
140327
- /* 1180 */ 171, 122, 240, 152, 107, 215, 109, 240, 202, 215,
140328
- /* 1190 */ 202, 152, 220, 173, 174, 177, 185, 173, 174, 65,
140329
- /* 1200 */ 152, 176, 152, 181, 173, 174, 215, 73, 176, 132,
140330
- /* 1210 */ 228, 134, 173, 174, 176, 152, 201, 152, 199, 155,
140331
- /* 1220 */ 152, 173, 174, 173, 174, 60, 152, 122, 244, 38,
140332
- /* 1230 */ 159, 159, 152, 241, 241, 152, 173, 174, 173, 174,
140333
- /* 1240 */ 152, 173, 174, 152, 159, 111, 152, 173, 174, 152,
140334
- /* 1250 */ 22, 152, 43, 173, 174, 152, 173, 174, 152, 190,
140335
- /* 1260 */ 130, 173, 174, 152, 173, 174, 152, 173, 174, 202,
140336
- /* 1270 */ 173, 174, 173, 174, 152, 18, 173, 174, 152, 173,
140337
- /* 1280 */ 174, 152, 221, 152, 173, 174, 193, 173, 174, 152,
140338
- /* 1290 */ 158, 152, 159, 152, 22, 173, 174, 152, 18, 173,
140339
- /* 1300 */ 174, 152, 173, 174, 173, 174, 152, 221, 152, 193,
140340
- /* 1310 */ 173, 174, 173, 174, 173, 174, 152, 193, 173, 174,
140341
- /* 1320 */ 152, 193, 173, 174, 158, 152, 190, 173, 174, 173,
140342
- /* 1330 */ 174, 59, 152, 190, 159, 137, 152, 173, 174, 152,
140343
- /* 1340 */ 202, 173, 174, 61, 152, 237, 173, 174, 202, 236,
140344
- /* 1350 */ 22, 107, 159, 173, 174, 159, 178, 173, 174, 158,
140345
- /* 1360 */ 173, 174, 159, 158, 158, 173, 174, 159, 178, 97,
140346
- /* 1370 */ 175, 63, 175, 106, 175, 125, 217, 183, 178, 175,
140347
- /* 1380 */ 107, 159, 22, 216, 177, 175, 217, 175, 175, 217,
140348
- /* 1390 */ 216, 159, 216, 216, 183, 225, 217, 137, 227, 178,
140349
- /* 1400 */ 94, 178, 126, 129, 25, 128, 127, 162, 206, 26,
140350
- /* 1410 */ 161, 230, 230, 13, 153, 153, 6, 151, 203, 205,
140351
- /* 1420 */ 204, 202, 151, 165, 171, 171, 151, 171, 165, 165,
140352
- /* 1430 */ 171, 179, 4, 250, 179, 250, 247, 3, 22, 171,
140353
- /* 1440 */ 171, 171, 142, 81, 15, 23, 16, 23, 131, 171,
140354
- /* 1450 */ 120, 111, 123, 20, 16, 1, 125, 123, 131, 53,
140355
- /* 1460 */ 53, 53, 53, 111, 96, 34, 122, 1, 5, 22,
140356
- /* 1470 */ 107, 67, 140, 74, 26, 24, 41, 107, 67, 20,
140357
- /* 1480 */ 19, 112, 105, 66, 22, 66, 22, 22, 28, 66,
140358
- /* 1490 */ 23, 22, 22, 37, 23, 23, 23, 116, 22, 22,
140359
- /* 1500 */ 26, 23, 122, 23, 23, 26, 22, 11, 96, 34,
140360
- /* 1510 */ 124, 26, 26, 23, 23, 23, 34, 34, 23, 26,
140361
- /* 1520 */ 23, 22, 24, 23, 22, 122, 23, 26, 22, 24,
140362
- /* 1530 */ 23, 22, 15, 23, 23, 22, 122, 122, 23, 1,
140363
- /* 1540 */ 122, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140364
- /* 1550 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140365
- /* 1560 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140357
+ /* 840 */ 57, 19, 20, 101, 22, 195, 196, 22, 19, 24,
140358
+ /* 850 */ 163, 19, 7, 8, 112, 59, 23, 207, 36, 26,
140359
+ /* 860 */ 23, 152, 59, 26, 21, 59, 152, 84, 85, 86,
140360
+ /* 870 */ 87, 88, 89, 90, 91, 92, 93, 94, 232, 221,
140361
+ /* 880 */ 94, 59, 195, 196, 59, 99, 100, 101, 102, 103,
140362
+ /* 890 */ 104, 105, 70, 97, 207, 59, 19, 20, 112, 22,
140363
+ /* 900 */ 97, 79, 152, 97, 82, 152, 152, 71, 221, 90,
140364
+ /* 910 */ 88, 89, 23, 36, 12, 26, 163, 95, 96, 97,
140365
+ /* 920 */ 98, 78, 97, 101, 152, 96, 173, 174, 96, 27,
140366
+ /* 930 */ 182, 22, 96, 97, 98, 116, 59, 148, 149, 152,
140367
+ /* 940 */ 121, 119, 120, 154, 42, 156, 103, 70, 195, 196,
140368
+ /* 950 */ 22, 59, 163, 152, 132, 133, 134, 135, 136, 82,
140369
+ /* 960 */ 207, 208, 209, 71, 62, 88, 89, 90, 59, 152,
140370
+ /* 970 */ 152, 12, 95, 96, 97, 98, 19, 20, 101, 22,
140371
+ /* 980 */ 22, 182, 152, 140, 195, 196, 27, 59, 96, 97,
140372
+ /* 990 */ 98, 59, 132, 36, 134, 22, 207, 19, 20, 24,
140373
+ /* 1000 */ 22, 42, 152, 173, 174, 96, 97, 98, 219, 132,
140374
+ /* 1010 */ 133, 134, 135, 136, 36, 152, 59, 187, 132, 152,
140375
+ /* 1020 */ 134, 62, 152, 152, 96, 97, 98, 70, 96, 97,
140376
+ /* 1030 */ 98, 72, 59, 152, 59, 246, 26, 59, 214, 82,
140377
+ /* 1040 */ 152, 192, 152, 173, 174, 88, 89, 79, 70, 152,
140378
+ /* 1050 */ 152, 19, 95, 96, 97, 98, 124, 187, 101, 23,
140379
+ /* 1060 */ 82, 164, 26, 173, 174, 152, 88, 89, 100, 96,
140380
+ /* 1070 */ 97, 98, 97, 95, 96, 97, 98, 187, 46, 101,
140381
+ /* 1080 */ 122, 184, 152, 186, 211, 152, 152, 119, 120, 132,
140382
+ /* 1090 */ 133, 134, 135, 136, 152, 5, 22, 152, 152, 35,
140383
+ /* 1100 */ 10, 11, 12, 13, 14, 152, 152, 17, 98, 235,
140384
+ /* 1110 */ 132, 133, 134, 135, 136, 54, 55, 56, 57, 58,
140385
+ /* 1120 */ 30, 152, 32, 152, 152, 198, 173, 174, 152, 65,
140386
+ /* 1130 */ 40, 152, 152, 59, 124, 152, 236, 73, 199, 107,
140387
+ /* 1140 */ 187, 171, 173, 174, 112, 84, 85, 86, 87, 88,
140388
+ /* 1150 */ 89, 90, 91, 92, 93, 94, 173, 174, 152, 69,
140389
+ /* 1160 */ 152, 211, 54, 55, 56, 57, 76, 152, 150, 79,
140390
+ /* 1170 */ 80, 97, 211, 211, 211, 111, 59, 241, 241, 173,
140391
+ /* 1180 */ 174, 173, 174, 202, 202, 185, 177, 176, 173, 174,
140392
+ /* 1190 */ 176, 201, 84, 85, 86, 87, 88, 89, 90, 91,
140393
+ /* 1200 */ 92, 93, 94, 215, 114, 88, 89, 152, 215, 119,
140394
+ /* 1210 */ 120, 152, 181, 96, 97, 98, 176, 100, 215, 152,
140395
+ /* 1220 */ 229, 152, 163, 152, 107, 199, 109, 155, 173, 174,
140396
+ /* 1230 */ 245, 141, 173, 174, 60, 159, 152, 122, 159, 242,
140397
+ /* 1240 */ 173, 174, 173, 174, 173, 174, 38, 242, 152, 132,
140398
+ /* 1250 */ 159, 134, 152, 22, 195, 196, 152, 173, 174, 222,
140399
+ /* 1260 */ 43, 130, 202, 152, 18, 152, 207, 208, 152, 173,
140400
+ /* 1270 */ 174, 152, 190, 173, 174, 152, 193, 173, 174, 152,
140401
+ /* 1280 */ 193, 193, 152, 159, 173, 174, 173, 174, 152, 173,
140402
+ /* 1290 */ 174, 193, 173, 174, 18, 152, 173, 174, 152, 158,
140403
+ /* 1300 */ 173, 174, 152, 173, 174, 152, 159, 152, 202, 173,
140404
+ /* 1310 */ 174, 152, 190, 152, 222, 152, 173, 174, 152, 173,
140405
+ /* 1320 */ 174, 137, 152, 173, 174, 190, 173, 174, 173, 174,
140406
+ /* 1330 */ 202, 158, 173, 174, 173, 174, 173, 174, 61, 173,
140407
+ /* 1340 */ 174, 152, 237, 173, 174, 152, 159, 152, 238, 152,
140408
+ /* 1350 */ 158, 152, 22, 152, 178, 152, 158, 152, 158, 152,
140409
+ /* 1360 */ 178, 159, 173, 174, 152, 159, 173, 174, 173, 174,
140410
+ /* 1370 */ 173, 174, 173, 174, 173, 174, 173, 174, 173, 174,
140411
+ /* 1380 */ 173, 174, 152, 63, 152, 173, 174, 107, 175, 175,
140412
+ /* 1390 */ 175, 106, 183, 175, 178, 175, 177, 175, 175, 178,
140413
+ /* 1400 */ 94, 107, 231, 173, 174, 173, 174, 183, 231, 125,
140414
+ /* 1410 */ 216, 178, 159, 217, 22, 159, 226, 129, 137, 228,
140415
+ /* 1420 */ 128, 217, 126, 25, 127, 162, 216, 26, 217, 161,
140416
+ /* 1430 */ 13, 153, 153, 206, 205, 6, 251, 202, 204, 203,
140417
+ /* 1440 */ 151, 216, 151, 217, 216, 171, 151, 165, 179, 179,
140418
+ /* 1450 */ 4, 3, 22, 142, 171, 165, 15, 171, 171, 81,
140419
+ /* 1460 */ 16, 23, 23, 120, 171, 131, 165, 111, 123, 171,
140420
+ /* 1470 */ 171, 171, 20, 125, 16, 1, 123, 131, 53, 53,
140421
+ /* 1480 */ 53, 53, 111, 96, 34, 122, 248, 1, 251, 5,
140422
+ /* 1490 */ 22, 107, 140, 26, 74, 41, 122, 107, 67, 67,
140423
+ /* 1500 */ 24, 20, 19, 112, 105, 23, 66, 22, 66, 22,
140424
+ /* 1510 */ 22, 22, 37, 22, 22, 66, 23, 23, 28, 23,
140425
+ /* 1520 */ 23, 26, 24, 23, 22, 24, 122, 23, 23, 96,
140426
+ /* 1530 */ 22, 124, 26, 34, 23, 26, 23, 34, 23, 23,
140427
+ /* 1540 */ 23, 34, 23, 22, 26, 11, 22, 22, 26, 23,
140428
+ /* 1550 */ 23, 22, 116, 23, 22, 15, 122, 122, 23, 122,
140429
+ /* 1560 */ 1, 252, 252, 252, 252, 122, 252, 252, 252, 252,
140366140430
/* 1570 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140367140431
/* 1580 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140368140432
/* 1590 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140369140433
/* 1600 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140370140434
/* 1610 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
@@ -140372,151 +140436,156 @@
140372140436
/* 1630 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140373140437
/* 1640 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140374140438
/* 1650 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140375140439
/* 1660 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140376140440
/* 1670 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140377
- /* 1680 */ 252, 252, 252, 252,
140441
+ /* 1680 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140442
+ /* 1690 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140443
+ /* 1700 */ 252, 252, 252, 252, 252, 252, 252, 252, 252,
140378140444
};
140379
-#define YY_SHIFT_COUNT (465)
140445
+#define YY_SHIFT_COUNT (471)
140380140446
#define YY_SHIFT_MIN (0)
140381
-#define YY_SHIFT_MAX (1538)
140447
+#define YY_SHIFT_MAX (1559)
140382140448
static const unsigned short int yy_shift_ofst[] = {
140383
- /* 0 */ 39, 822, 955, 843, 997, 997, 997, 997, 0, 0,
140384
- /* 10 */ 104, 630, 997, 997, 997, 997, 997, 997, 997, 1077,
140385
- /* 20 */ 1077, 126, 161, 155, 52, 156, 208, 260, 312, 364,
140386
- /* 30 */ 416, 468, 523, 578, 630, 630, 630, 630, 630, 630,
140387
- /* 40 */ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
140388
- /* 50 */ 630, 682, 630, 733, 783, 783, 914, 997, 997, 997,
140389
- /* 60 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
140390
- /* 70 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
140391
- /* 80 */ 997, 997, 997, 997, 997, 997, 997, 997, 1017, 997,
140392
- /* 90 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
140393
- /* 100 */ 997, 997, 1070, 1054, 1054, 1054, 1054, 1054, 40, 25,
140394
- /* 110 */ 72, 232, 788, 428, 248, 248, 232, 581, 367, 127,
140395
- /* 120 */ 465, 138, 1541, 1541, 1541, 784, 784, 784, 522, 522,
140396
- /* 130 */ 887, 887, 893, 406, 408, 232, 232, 232, 232, 232,
140397
- /* 140 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
140398
- /* 150 */ 232, 232, 232, 232, 232, 370, 340, 714, 698, 698,
140399
- /* 160 */ 465, 89, 89, 89, 89, 89, 89, 1541, 1541, 1541,
140400
- /* 170 */ 504, 85, 85, 884, 70, 280, 902, 440, 966, 924,
140401
- /* 180 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
140402
- /* 190 */ 232, 232, 232, 232, 232, 232, 1134, 1134, 1134, 232,
140403
- /* 200 */ 232, 667, 232, 232, 232, 929, 232, 232, 885, 232,
140404
- /* 210 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 418,
140405
- /* 220 */ 678, 981, 981, 981, 981, 766, 271, 911, 510, 429,
140406
- /* 230 */ 617, 786, 786, 830, 617, 830, 4, 730, 595, 768,
140407
- /* 240 */ 786, 561, 768, 768, 732, 535, 55, 1165, 1105, 1105,
140408
- /* 250 */ 1191, 1191, 1105, 1228, 1209, 1130, 1257, 1257, 1257, 1257,
140409
- /* 260 */ 1105, 1280, 1130, 1228, 1209, 1209, 1130, 1105, 1280, 1198,
140410
- /* 270 */ 1282, 1105, 1105, 1280, 1328, 1105, 1280, 1105, 1280, 1328,
140411
- /* 280 */ 1244, 1244, 1244, 1308, 1328, 1244, 1267, 1244, 1308, 1244,
140412
- /* 290 */ 1244, 1250, 1273, 1250, 1273, 1250, 1273, 1250, 1273, 1105,
140413
- /* 300 */ 1360, 1105, 1260, 1328, 1306, 1306, 1328, 1274, 1276, 1277,
140414
- /* 310 */ 1279, 1130, 1379, 1383, 1400, 1400, 1410, 1410, 1410, 1541,
140415
- /* 320 */ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
140416
- /* 330 */ 1541, 1541, 1541, 1541, 1541, 34, 407, 463, 511, 417,
140417
- /* 340 */ 479, 1272, 778, 941, 785, 825, 831, 833, 872, 877,
140418
- /* 350 */ 756, 793, 900, 804, 919, 1045, 969, 1049, 803, 909,
140419
- /* 360 */ 1051, 983, 1059, 1428, 1434, 1416, 1300, 1429, 1362, 1430,
140420
- /* 370 */ 1422, 1424, 1330, 1317, 1340, 1329, 1433, 1331, 1438, 1454,
140421
- /* 380 */ 1334, 1327, 1406, 1407, 1408, 1409, 1352, 1368, 1431, 1344,
140422
- /* 390 */ 1466, 1463, 1447, 1363, 1332, 1404, 1448, 1411, 1399, 1435,
140423
- /* 400 */ 1370, 1451, 1459, 1461, 1369, 1377, 1462, 1417, 1464, 1465,
140424
- /* 410 */ 1467, 1469, 1419, 1460, 1470, 1423, 1456, 1471, 1472, 1473,
140425
- /* 420 */ 1474, 1381, 1476, 1478, 1477, 1479, 1380, 1480, 1481, 1412,
140426
- /* 430 */ 1475, 1484, 1386, 1485, 1482, 1486, 1483, 1490, 1485, 1491,
140427
- /* 440 */ 1492, 1495, 1493, 1497, 1499, 1496, 1500, 1502, 1498, 1501,
140428
- /* 450 */ 1503, 1506, 1505, 1501, 1507, 1509, 1510, 1511, 1513, 1403,
140429
- /* 460 */ 1414, 1415, 1418, 1515, 1517, 1538,
140430
-};
140431
-#define YY_REDUCE_COUNT (334)
140432
-#define YY_REDUCE_MIN (-217)
140433
-#define YY_REDUCE_MAX (1278)
140449
+ /* 0 */ 182, 1090, 822, 822, 306, 957, 957, 957, 957, 210,
140450
+ /* 10 */ 0, 0, 104, 630, 957, 957, 957, 957, 957, 957,
140451
+ /* 20 */ 957, 1117, 1117, 126, 968, 306, 306, 306, 306, 306,
140452
+ /* 30 */ 306, 52, 156, 208, 260, 312, 364, 416, 468, 523,
140453
+ /* 40 */ 578, 630, 630, 630, 630, 630, 630, 630, 630, 630,
140454
+ /* 50 */ 630, 630, 630, 630, 630, 630, 630, 630, 682, 630,
140455
+ /* 60 */ 733, 783, 783, 877, 957, 957, 957, 957, 957, 957,
140456
+ /* 70 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
140457
+ /* 80 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
140458
+ /* 90 */ 957, 957, 957, 957, 957, 978, 957, 957, 957, 957,
140459
+ /* 100 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 1061,
140460
+ /* 110 */ 1108, 1108, 1108, 1108, 1108, 40, 127, 20, 280, 843,
140461
+ /* 120 */ 1032, 144, 144, 280, 310, 310, 310, 310, 59, 191,
140462
+ /* 130 */ 69, 1566, 1566, 1566, 786, 786, 786, 522, 836, 522,
140463
+ /* 140 */ 959, 959, 892, 155, 358, 280, 280, 280, 280, 280,
140464
+ /* 150 */ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
140465
+ /* 160 */ 280, 280, 280, 280, 280, 280, 371, 388, 645, 645,
140466
+ /* 170 */ 531, 1566, 1566, 1566, 504, 189, 189, 909, 63, 176,
140467
+ /* 180 */ 928, 440, 932, 973, 280, 280, 280, 280, 280, 314,
140468
+ /* 190 */ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
140469
+ /* 200 */ 280, 280, 1064, 1064, 1064, 280, 280, 280, 280, 667,
140470
+ /* 210 */ 280, 280, 280, 825, 280, 280, 902, 280, 280, 280,
140471
+ /* 220 */ 280, 280, 280, 280, 280, 383, 676, 325, 975, 975,
140472
+ /* 230 */ 975, 975, 1010, 325, 325, 819, 349, 524, 569, 829,
140473
+ /* 240 */ 829, 832, 569, 832, 686, 51, 656, 303, 303, 303,
140474
+ /* 250 */ 829, 294, 520, 628, 474, 1174, 1115, 1115, 1208, 1208,
140475
+ /* 260 */ 1115, 1231, 1217, 1131, 1246, 1246, 1246, 1246, 1115, 1276,
140476
+ /* 270 */ 1131, 1231, 1217, 1217, 1131, 1115, 1276, 1184, 1277, 1115,
140477
+ /* 280 */ 1276, 1330, 1115, 1276, 1115, 1276, 1330, 1280, 1280, 1280,
140478
+ /* 290 */ 1320, 1330, 1280, 1285, 1280, 1320, 1280, 1280, 1330, 1306,
140479
+ /* 300 */ 1306, 1330, 1284, 1294, 1284, 1294, 1284, 1294, 1284, 1294,
140480
+ /* 310 */ 1115, 1392, 1115, 1281, 1288, 1296, 1292, 1297, 1131, 1398,
140481
+ /* 320 */ 1401, 1417, 1417, 1429, 1429, 1429, 1566, 1566, 1566, 1566,
140482
+ /* 330 */ 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
140483
+ /* 340 */ 1566, 1566, 34, 357, 38, 462, 514, 484, 1074, 727,
140484
+ /* 350 */ 740, 734, 735, 777, 778, 784, 788, 803, 694, 845,
140485
+ /* 360 */ 742, 796, 833, 837, 889, 860, 886, 1036, 806, 958,
140486
+ /* 370 */ 1446, 1448, 1430, 1311, 1441, 1378, 1444, 1438, 1439, 1343,
140487
+ /* 380 */ 1334, 1356, 1345, 1452, 1348, 1458, 1474, 1353, 1346, 1425,
140488
+ /* 390 */ 1426, 1427, 1428, 1371, 1387, 1450, 1363, 1486, 1484, 1468,
140489
+ /* 400 */ 1384, 1352, 1431, 1467, 1432, 1420, 1454, 1374, 1390, 1476,
140490
+ /* 410 */ 1481, 1483, 1391, 1399, 1485, 1440, 1487, 1488, 1482, 1489,
140491
+ /* 420 */ 1442, 1490, 1491, 1449, 1475, 1493, 1494, 1496, 1495, 1497,
140492
+ /* 430 */ 1492, 1498, 1500, 1502, 1501, 1404, 1504, 1505, 1433, 1499,
140493
+ /* 440 */ 1508, 1407, 1506, 1503, 1509, 1507, 1511, 1513, 1515, 1506,
140494
+ /* 450 */ 1516, 1517, 1518, 1519, 1521, 1534, 1524, 1525, 1526, 1527,
140495
+ /* 460 */ 1529, 1530, 1532, 1522, 1436, 1434, 1435, 1437, 1443, 1535,
140496
+ /* 470 */ 1540, 1559,
140497
+};
140498
+#define YY_REDUCE_COUNT (341)
140499
+#define YY_REDUCE_MIN (-211)
140500
+#define YY_REDUCE_MAX (1301)
140434140501
static const short yy_reduce_ofst[] = {
140435
- /* 0 */ -144, -139, -134, -136, -141, 64, 114, 116, -158, -148,
140436
- /* 10 */ -217, 96, 819, 871, 878, 219, 270, 886, 272, -110,
140437
- /* 20 */ 413, 918, 972, 228, -214, -214, -214, -214, -214, -214,
140438
- /* 30 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
140439
- /* 40 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
140440
- /* 50 */ -214, -214, -214, -214, -214, -214, 62, 323, 377, 536,
140441
- /* 60 */ 539, 834, 948, 1020, 1024, 1031, 1039, 1048, 1050, 1063,
140442
- /* 70 */ 1065, 1068, 1074, 1080, 1083, 1088, 1091, 1094, 1097, 1099,
140443
- /* 80 */ 1103, 1106, 1111, 1114, 1122, 1126, 1129, 1131, 1137, 1139,
140444
- /* 90 */ 1141, 1145, 1149, 1154, 1156, 1164, 1168, 1173, 1180, 1184,
140445
- /* 100 */ 1187, 1192, -214, -214, -214, -214, -214, -214, -214, -214,
140446
- /* 110 */ -214, 132, -45, 97, 8, 164, 379, 175, 255, -214,
140447
- /* 120 */ 178, -214, -214, -214, -214, -168, -168, -168, 124, 329,
140448
- /* 130 */ 399, 401, -129, 347, 347, 331, 133, 451, 452, 498,
140449
- /* 140 */ 500, 502, 503, 505, 487, 506, 488, 490, 507, 543,
140450
- /* 150 */ 547, -126, 588, 290, 27, 572, 501, 597, 537, 582,
140451
- /* 160 */ 183, 599, 600, 601, 649, 650, 653, 508, 538, -29,
140452
- /* 170 */ -156, -152, -137, -79, 135, 74, 130, 242, 338, 378,
140453
- /* 180 */ 393, 397, 607, 648, 691, 700, 708, 709, 728, 757,
140454
- /* 190 */ 763, 769, 796, 810, 818, 845, 202, 748, 792, 861,
140455
- /* 200 */ 862, 815, 866, 903, 905, 850, 931, 932, 896, 937,
140456
- /* 210 */ 939, 945, 74, 949, 951, 964, 965, 967, 968, 888,
140457
- /* 220 */ 820, 923, 926, 959, 960, 815, 980, 908, 1009, 985,
140458
- /* 230 */ 986, 970, 974, 942, 988, 947, 1018, 1011, 1022, 1025,
140459
- /* 240 */ 991, 982, 1032, 1038, 1015, 1019, 1064, 984, 1071, 1072,
140460
- /* 250 */ 992, 993, 1085, 1061, 1069, 1067, 1093, 1116, 1124, 1128,
140461
- /* 260 */ 1133, 1132, 1138, 1086, 1136, 1143, 1146, 1175, 1166, 1108,
140462
- /* 270 */ 1113, 1193, 1196, 1201, 1178, 1203, 1205, 1208, 1206, 1190,
140463
- /* 280 */ 1195, 1197, 1199, 1194, 1200, 1204, 1207, 1210, 1211, 1212,
140464
- /* 290 */ 1213, 1159, 1167, 1169, 1174, 1172, 1176, 1179, 1177, 1222,
140465
- /* 300 */ 1170, 1232, 1171, 1221, 1181, 1182, 1223, 1202, 1214, 1216,
140466
- /* 310 */ 1215, 1219, 1245, 1249, 1261, 1262, 1266, 1271, 1275, 1183,
140467
- /* 320 */ 1185, 1189, 1258, 1253, 1254, 1256, 1259, 1263, 1252, 1255,
140468
- /* 330 */ 1268, 1269, 1270, 1278, 1264,
140502
+ /* 0 */ -143, 789, 753, 1059, -137, -146, -144, -141, -136, 687,
140503
+ /* 10 */ -107, 101, -203, -52, 830, 870, 890, 167, 953, 218,
140504
+ /* 20 */ 220, 413, 646, 897, 73, 281, 283, 332, 496, 601,
140505
+ /* 30 */ 650, -211, -211, -211, -211, -211, -211, -211, -211, -211,
140506
+ /* 40 */ -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
140507
+ /* 50 */ -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
140508
+ /* 60 */ -211, -211, -211, 374, 377, 537, 969, 983, 1006, 1008,
140509
+ /* 70 */ 1015, 1055, 1067, 1069, 1071, 1084, 1096, 1100, 1104, 1111,
140510
+ /* 80 */ 1113, 1116, 1119, 1123, 1127, 1130, 1136, 1143, 1146, 1150,
140511
+ /* 90 */ 1153, 1155, 1159, 1161, 1163, 1166, 1170, 1189, 1193, 1195,
140512
+ /* 100 */ 1197, 1199, 1201, 1203, 1205, 1207, 1212, 1230, 1232, -211,
140513
+ /* 110 */ -211, -211, -211, -211, -211, -211, -211, -211, -30, 427,
140514
+ /* 120 */ -171, -145, -134, 22, 279, 287, 279, 287, 99, -211,
140515
+ /* 130 */ -211, -211, -211, -211, -165, -165, -165, 123, 135, 175,
140516
+ /* 140 */ -150, 396, 337, 291, 291, -147, 185, 391, 446, 444,
140517
+ /* 150 */ 452, 500, 501, 502, 27, -152, 295, 438, 490, 503,
140518
+ /* 160 */ 495, 506, -73, 447, 451, 536, 570, 551, 540, 579,
140519
+ /* 170 */ 30, 508, 535, 81, 14, 61, 115, 168, 142, 222,
140520
+ /* 180 */ 275, 284, 397, 599, 607, 647, 654, 660, 709, 658,
140521
+ /* 190 */ 714, 750, 754, 772, 787, 801, 817, 818, 850, 863,
140522
+ /* 200 */ 867, 871, 466, 748, 799, 881, 888, 898, 913, 824,
140523
+ /* 210 */ 930, 933, 934, 873, 942, 945, 849, 946, 222, 954,
140524
+ /* 220 */ 971, 972, 976, 979, 980, 900, 874, 927, 950, 961,
140525
+ /* 230 */ 962, 963, 824, 927, 927, 939, 970, 1018, 981, 988,
140526
+ /* 240 */ 993, 936, 982, 937, 1009, 1000, 1031, 1011, 1014, 1040,
140527
+ /* 250 */ 1003, 991, 990, 1026, 1072, 985, 1076, 1079, 997, 1005,
140528
+ /* 260 */ 1091, 1037, 1082, 1060, 1083, 1087, 1088, 1098, 1124, 1141,
140529
+ /* 270 */ 1106, 1092, 1122, 1135, 1128, 1147, 1173, 1110, 1105, 1187,
140530
+ /* 280 */ 1192, 1176, 1202, 1198, 1206, 1200, 1182, 1213, 1214, 1215,
140531
+ /* 290 */ 1209, 1216, 1218, 1219, 1220, 1224, 1222, 1223, 1221, 1171,
140532
+ /* 300 */ 1177, 1233, 1196, 1194, 1204, 1210, 1211, 1225, 1226, 1228,
140533
+ /* 310 */ 1253, 1190, 1256, 1191, 1227, 1229, 1234, 1236, 1235, 1263,
140534
+ /* 320 */ 1268, 1278, 1279, 1289, 1291, 1295, 1185, 1237, 1238, 1282,
140535
+ /* 330 */ 1274, 1283, 1286, 1287, 1290, 1269, 1270, 1293, 1298, 1299,
140536
+ /* 340 */ 1300, 1301,
140469140537
};
140470140538
static const YYACTIONTYPE yy_default[] = {
140471
- /* 0 */ 1286, 1276, 1276, 1276, 1209, 1209, 1209, 1209, 1133, 1133,
140472
- /* 10 */ 1260, 1036, 1005, 1005, 1005, 1005, 1005, 1005, 1208, 1005,
140473
- /* 20 */ 1005, 1005, 1005, 1108, 1139, 1005, 1005, 1005, 1005, 1210,
140474
- /* 30 */ 1211, 1005, 1005, 1005, 1259, 1261, 1149, 1148, 1147, 1146,
140475
- /* 40 */ 1242, 1120, 1144, 1137, 1141, 1210, 1204, 1205, 1203, 1207,
140476
- /* 50 */ 1211, 1005, 1140, 1174, 1188, 1173, 1005, 1005, 1005, 1005,
140477
- /* 60 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140478
- /* 70 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140479
- /* 80 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140480
- /* 90 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140481
- /* 100 */ 1005, 1005, 1182, 1187, 1194, 1186, 1183, 1176, 1175, 1177,
140482
- /* 110 */ 1178, 1005, 1026, 1075, 1005, 1005, 1005, 1276, 1036, 1179,
140483
- /* 120 */ 1005, 1180, 1191, 1190, 1189, 1267, 1294, 1293, 1005, 1005,
140484
- /* 130 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140485
- /* 140 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140486
- /* 150 */ 1005, 1005, 1005, 1005, 1005, 1036, 1286, 1276, 1032, 1032,
140487
- /* 160 */ 1005, 1276, 1276, 1276, 1276, 1276, 1276, 1272, 1108, 1099,
140488
- /* 170 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140489
- /* 180 */ 1005, 1264, 1262, 1005, 1224, 1005, 1005, 1005, 1005, 1005,
140490
- /* 190 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140491
- /* 200 */ 1005, 1005, 1005, 1005, 1005, 1104, 1005, 1005, 1005, 1005,
140492
- /* 210 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1288, 1005,
140493
- /* 220 */ 1237, 1104, 1104, 1104, 1104, 1106, 1088, 1098, 1036, 1012,
140494
- /* 230 */ 1143, 1122, 1122, 1327, 1143, 1327, 1050, 1308, 1047, 1133,
140495
- /* 240 */ 1122, 1206, 1133, 1133, 1105, 1098, 1005, 1330, 1113, 1113,
140496
- /* 250 */ 1329, 1329, 1113, 1154, 1078, 1143, 1084, 1084, 1084, 1084,
140497
- /* 260 */ 1113, 1023, 1143, 1154, 1078, 1078, 1143, 1113, 1023, 1241,
140498
- /* 270 */ 1324, 1113, 1113, 1023, 1217, 1113, 1023, 1113, 1023, 1217,
140499
- /* 280 */ 1076, 1076, 1076, 1065, 1217, 1076, 1050, 1076, 1065, 1076,
140500
- /* 290 */ 1076, 1126, 1121, 1126, 1121, 1126, 1121, 1126, 1121, 1113,
140501
- /* 300 */ 1212, 1113, 1005, 1217, 1221, 1221, 1217, 1138, 1127, 1136,
140502
- /* 310 */ 1134, 1143, 1029, 1068, 1291, 1291, 1287, 1287, 1287, 1335,
140503
- /* 320 */ 1335, 1272, 1303, 1036, 1036, 1036, 1036, 1303, 1052, 1052,
140504
- /* 330 */ 1036, 1036, 1036, 1036, 1303, 1005, 1005, 1005, 1005, 1005,
140505
- /* 340 */ 1005, 1298, 1005, 1226, 1005, 1005, 1005, 1005, 1005, 1005,
140506
- /* 350 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140507
- /* 360 */ 1005, 1005, 1159, 1005, 1008, 1269, 1005, 1005, 1268, 1005,
140508
- /* 370 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140509
- /* 380 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1326,
140510
- /* 390 */ 1005, 1005, 1005, 1005, 1005, 1005, 1240, 1239, 1005, 1005,
140511
- /* 400 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140512
- /* 410 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140513
- /* 420 */ 1005, 1090, 1005, 1005, 1005, 1312, 1005, 1005, 1005, 1005,
140514
- /* 430 */ 1005, 1005, 1005, 1135, 1005, 1128, 1005, 1005, 1317, 1005,
140515
- /* 440 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1278,
140516
- /* 450 */ 1005, 1005, 1005, 1277, 1005, 1005, 1005, 1005, 1005, 1161,
140517
- /* 460 */ 1005, 1160, 1164, 1005, 1017, 1005,
140539
+ /* 0 */ 1297, 1349, 1221, 1014, 1119, 1221, 1221, 1221, 1221, 1014,
140540
+ /* 10 */ 1145, 1145, 1272, 1045, 1014, 1014, 1014, 1014, 1014, 1220,
140541
+ /* 20 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140542
+ /* 30 */ 1014, 1151, 1014, 1014, 1014, 1014, 1222, 1223, 1014, 1014,
140543
+ /* 40 */ 1014, 1271, 1273, 1161, 1160, 1159, 1158, 1254, 1132, 1156,
140544
+ /* 50 */ 1149, 1153, 1216, 1217, 1215, 1219, 1222, 1223, 1014, 1152,
140545
+ /* 60 */ 1186, 1200, 1185, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140546
+ /* 70 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140547
+ /* 80 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140548
+ /* 90 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140549
+ /* 100 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1194,
140550
+ /* 110 */ 1199, 1206, 1198, 1195, 1188, 1187, 1189, 1190, 1014, 1035,
140551
+ /* 120 */ 1084, 1014, 1014, 1014, 1289, 1288, 1014, 1014, 1045, 1191,
140552
+ /* 130 */ 1192, 1203, 1202, 1201, 1279, 1305, 1304, 1014, 1014, 1014,
140553
+ /* 140 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140554
+ /* 150 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140555
+ /* 160 */ 1014, 1014, 1014, 1014, 1014, 1014, 1045, 1297, 1041, 1041,
140556
+ /* 170 */ 1014, 1284, 1119, 1110, 1014, 1014, 1014, 1014, 1014, 1014,
140557
+ /* 180 */ 1014, 1014, 1014, 1014, 1014, 1276, 1274, 1014, 1236, 1014,
140558
+ /* 190 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140559
+ /* 200 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140560
+ /* 210 */ 1014, 1014, 1014, 1115, 1014, 1014, 1014, 1014, 1014, 1014,
140561
+ /* 220 */ 1014, 1014, 1014, 1014, 1299, 1014, 1249, 1098, 1115, 1115,
140562
+ /* 230 */ 1115, 1115, 1117, 1099, 1097, 1109, 1045, 1021, 1155, 1134,
140563
+ /* 240 */ 1134, 1338, 1155, 1338, 1059, 1319, 1056, 1145, 1145, 1145,
140564
+ /* 250 */ 1134, 1218, 1116, 1109, 1014, 1341, 1124, 1124, 1340, 1340,
140565
+ /* 260 */ 1124, 1166, 1087, 1155, 1093, 1093, 1093, 1093, 1124, 1032,
140566
+ /* 270 */ 1155, 1166, 1087, 1087, 1155, 1124, 1032, 1253, 1335, 1124,
140567
+ /* 280 */ 1032, 1229, 1124, 1032, 1124, 1032, 1229, 1085, 1085, 1085,
140568
+ /* 290 */ 1074, 1229, 1085, 1059, 1085, 1074, 1085, 1085, 1229, 1233,
140569
+ /* 300 */ 1233, 1229, 1138, 1133, 1138, 1133, 1138, 1133, 1138, 1133,
140570
+ /* 310 */ 1124, 1224, 1124, 1014, 1150, 1139, 1148, 1146, 1155, 1038,
140571
+ /* 320 */ 1077, 1302, 1302, 1298, 1298, 1298, 1346, 1346, 1284, 1314,
140572
+ /* 330 */ 1045, 1045, 1045, 1045, 1314, 1061, 1061, 1045, 1045, 1045,
140573
+ /* 340 */ 1045, 1314, 1014, 1014, 1014, 1014, 1014, 1014, 1309, 1014,
140574
+ /* 350 */ 1238, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140575
+ /* 360 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1171,
140576
+ /* 370 */ 1014, 1017, 1281, 1014, 1014, 1280, 1014, 1014, 1014, 1014,
140577
+ /* 380 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140578
+ /* 390 */ 1014, 1014, 1014, 1014, 1014, 1014, 1337, 1014, 1014, 1014,
140579
+ /* 400 */ 1014, 1014, 1014, 1252, 1251, 1014, 1014, 1126, 1014, 1014,
140580
+ /* 410 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140581
+ /* 420 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140582
+ /* 430 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140583
+ /* 440 */ 1014, 1014, 1147, 1014, 1140, 1014, 1014, 1014, 1014, 1328,
140584
+ /* 450 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140585
+ /* 460 */ 1014, 1014, 1014, 1323, 1101, 1173, 1014, 1172, 1176, 1014,
140586
+ /* 470 */ 1026, 1014,
140518140587
};
140519140588
/********** End of lemon-generated parsing tables *****************************/
140520140589
140521140590
/* The next table maps tokens (terminal symbols) into fallback tokens.
140522140591
** If a construct like the following:
@@ -140898,11 +140967,11 @@
140898140967
/* 192 */ "raisetype",
140899140968
/* 193 */ "ifexists",
140900140969
/* 194 */ "fullname",
140901140970
/* 195 */ "selectnowith",
140902140971
/* 196 */ "oneselect",
140903
- /* 197 */ "with",
140972
+ /* 197 */ "wqlist",
140904140973
/* 198 */ "multiselect_op",
140905140974
/* 199 */ "distinct",
140906140975
/* 200 */ "selcollist",
140907140976
/* 201 */ "from",
140908140977
/* 202 */ "where_opt",
@@ -140920,43 +140989,43 @@
140920140989
/* 214 */ "joinop",
140921140990
/* 215 */ "indexed_opt",
140922140991
/* 216 */ "on_opt",
140923140992
/* 217 */ "using_opt",
140924140993
/* 218 */ "idlist",
140925
- /* 219 */ "setlist",
140926
- /* 220 */ "insert_cmd",
140927
- /* 221 */ "idlist_opt",
140928
- /* 222 */ "likeop",
140929
- /* 223 */ "between_op",
140930
- /* 224 */ "in_op",
140931
- /* 225 */ "paren_exprlist",
140932
- /* 226 */ "case_operand",
140933
- /* 227 */ "case_exprlist",
140934
- /* 228 */ "case_else",
140935
- /* 229 */ "uniqueflag",
140936
- /* 230 */ "collate",
140937
- /* 231 */ "nmnum",
140938
- /* 232 */ "trigger_decl",
140939
- /* 233 */ "trigger_cmd_list",
140940
- /* 234 */ "trigger_time",
140941
- /* 235 */ "trigger_event",
140942
- /* 236 */ "foreach_clause",
140943
- /* 237 */ "when_clause",
140944
- /* 238 */ "trigger_cmd",
140945
- /* 239 */ "trnm",
140946
- /* 240 */ "tridxby",
140947
- /* 241 */ "database_kw_opt",
140948
- /* 242 */ "key_opt",
140949
- /* 243 */ "add_column_fullname",
140950
- /* 244 */ "kwcolumn_opt",
140951
- /* 245 */ "create_vtab",
140952
- /* 246 */ "vtabarglist",
140953
- /* 247 */ "vtabarg",
140954
- /* 248 */ "vtabargtoken",
140955
- /* 249 */ "lp",
140956
- /* 250 */ "anylist",
140957
- /* 251 */ "wqlist",
140994
+ /* 219 */ "with",
140995
+ /* 220 */ "setlist",
140996
+ /* 221 */ "insert_cmd",
140997
+ /* 222 */ "idlist_opt",
140998
+ /* 223 */ "likeop",
140999
+ /* 224 */ "between_op",
141000
+ /* 225 */ "in_op",
141001
+ /* 226 */ "paren_exprlist",
141002
+ /* 227 */ "case_operand",
141003
+ /* 228 */ "case_exprlist",
141004
+ /* 229 */ "case_else",
141005
+ /* 230 */ "uniqueflag",
141006
+ /* 231 */ "collate",
141007
+ /* 232 */ "nmnum",
141008
+ /* 233 */ "trigger_decl",
141009
+ /* 234 */ "trigger_cmd_list",
141010
+ /* 235 */ "trigger_time",
141011
+ /* 236 */ "trigger_event",
141012
+ /* 237 */ "foreach_clause",
141013
+ /* 238 */ "when_clause",
141014
+ /* 239 */ "trigger_cmd",
141015
+ /* 240 */ "trnm",
141016
+ /* 241 */ "tridxby",
141017
+ /* 242 */ "database_kw_opt",
141018
+ /* 243 */ "key_opt",
141019
+ /* 244 */ "add_column_fullname",
141020
+ /* 245 */ "kwcolumn_opt",
141021
+ /* 246 */ "create_vtab",
141022
+ /* 247 */ "vtabarglist",
141023
+ /* 248 */ "vtabarg",
141024
+ /* 249 */ "vtabargtoken",
141025
+ /* 250 */ "lp",
141026
+ /* 251 */ "anylist",
140958141027
};
140959141028
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
140960141029
140961141030
#ifndef NDEBUG
140962141031
/* For tracing reduce actions, the names of all rules are required.
@@ -141040,260 +141109,263 @@
141040141109
/* 75 */ "ifexists ::= IF EXISTS",
141041141110
/* 76 */ "ifexists ::=",
141042141111
/* 77 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select",
141043141112
/* 78 */ "cmd ::= DROP VIEW ifexists fullname",
141044141113
/* 79 */ "cmd ::= select",
141045
- /* 80 */ "select ::= with selectnowith",
141046
- /* 81 */ "selectnowith ::= selectnowith multiselect_op oneselect",
141047
- /* 82 */ "multiselect_op ::= UNION",
141048
- /* 83 */ "multiselect_op ::= UNION ALL",
141049
- /* 84 */ "multiselect_op ::= EXCEPT|INTERSECT",
141050
- /* 85 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
141051
- /* 86 */ "values ::= VALUES LP nexprlist RP",
141052
- /* 87 */ "values ::= values COMMA LP exprlist RP",
141053
- /* 88 */ "distinct ::= DISTINCT",
141054
- /* 89 */ "distinct ::= ALL",
141055
- /* 90 */ "distinct ::=",
141056
- /* 91 */ "sclp ::=",
141057
- /* 92 */ "selcollist ::= sclp scanpt expr scanpt as",
141058
- /* 93 */ "selcollist ::= sclp scanpt STAR",
141059
- /* 94 */ "selcollist ::= sclp scanpt nm DOT STAR",
141060
- /* 95 */ "as ::= AS nm",
141061
- /* 96 */ "as ::=",
141062
- /* 97 */ "from ::=",
141063
- /* 98 */ "from ::= FROM seltablist",
141064
- /* 99 */ "stl_prefix ::= seltablist joinop",
141065
- /* 100 */ "stl_prefix ::=",
141066
- /* 101 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
141067
- /* 102 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
141068
- /* 103 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
141069
- /* 104 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
141070
- /* 105 */ "dbnm ::=",
141071
- /* 106 */ "dbnm ::= DOT nm",
141072
- /* 107 */ "fullname ::= nm dbnm",
141073
- /* 108 */ "joinop ::= COMMA|JOIN",
141074
- /* 109 */ "joinop ::= JOIN_KW JOIN",
141075
- /* 110 */ "joinop ::= JOIN_KW nm JOIN",
141076
- /* 111 */ "joinop ::= JOIN_KW nm nm JOIN",
141077
- /* 112 */ "on_opt ::= ON expr",
141078
- /* 113 */ "on_opt ::=",
141079
- /* 114 */ "indexed_opt ::=",
141080
- /* 115 */ "indexed_opt ::= INDEXED BY nm",
141081
- /* 116 */ "indexed_opt ::= NOT INDEXED",
141082
- /* 117 */ "using_opt ::= USING LP idlist RP",
141083
- /* 118 */ "using_opt ::=",
141084
- /* 119 */ "orderby_opt ::=",
141085
- /* 120 */ "orderby_opt ::= ORDER BY sortlist",
141086
- /* 121 */ "sortlist ::= sortlist COMMA expr sortorder",
141087
- /* 122 */ "sortlist ::= expr sortorder",
141088
- /* 123 */ "sortorder ::= ASC",
141089
- /* 124 */ "sortorder ::= DESC",
141090
- /* 125 */ "sortorder ::=",
141091
- /* 126 */ "groupby_opt ::=",
141092
- /* 127 */ "groupby_opt ::= GROUP BY nexprlist",
141093
- /* 128 */ "having_opt ::=",
141094
- /* 129 */ "having_opt ::= HAVING expr",
141095
- /* 130 */ "limit_opt ::=",
141096
- /* 131 */ "limit_opt ::= LIMIT expr",
141097
- /* 132 */ "limit_opt ::= LIMIT expr OFFSET expr",
141098
- /* 133 */ "limit_opt ::= LIMIT expr COMMA expr",
141099
- /* 134 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
141100
- /* 135 */ "where_opt ::=",
141101
- /* 136 */ "where_opt ::= WHERE expr",
141102
- /* 137 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
141103
- /* 138 */ "setlist ::= setlist COMMA nm EQ expr",
141104
- /* 139 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
141105
- /* 140 */ "setlist ::= nm EQ expr",
141106
- /* 141 */ "setlist ::= LP idlist RP EQ expr",
141107
- /* 142 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
141108
- /* 143 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
141109
- /* 144 */ "insert_cmd ::= INSERT orconf",
141110
- /* 145 */ "insert_cmd ::= REPLACE",
141111
- /* 146 */ "idlist_opt ::=",
141112
- /* 147 */ "idlist_opt ::= LP idlist RP",
141113
- /* 148 */ "idlist ::= idlist COMMA nm",
141114
- /* 149 */ "idlist ::= nm",
141115
- /* 150 */ "expr ::= LP expr RP",
141116
- /* 151 */ "expr ::= ID|INDEXED",
141117
- /* 152 */ "expr ::= JOIN_KW",
141118
- /* 153 */ "expr ::= nm DOT nm",
141119
- /* 154 */ "expr ::= nm DOT nm DOT nm",
141120
- /* 155 */ "term ::= NULL|FLOAT|BLOB",
141121
- /* 156 */ "term ::= STRING",
141122
- /* 157 */ "term ::= INTEGER",
141123
- /* 158 */ "expr ::= VARIABLE",
141124
- /* 159 */ "expr ::= expr COLLATE ID|STRING",
141125
- /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
141126
- /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
141127
- /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
141128
- /* 163 */ "term ::= CTIME_KW",
141129
- /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
141130
- /* 165 */ "expr ::= expr AND expr",
141131
- /* 166 */ "expr ::= expr OR expr",
141132
- /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
141133
- /* 168 */ "expr ::= expr EQ|NE expr",
141134
- /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
141135
- /* 170 */ "expr ::= expr PLUS|MINUS expr",
141136
- /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
141137
- /* 172 */ "expr ::= expr CONCAT expr",
141138
- /* 173 */ "likeop ::= NOT LIKE_KW|MATCH",
141139
- /* 174 */ "expr ::= expr likeop expr",
141140
- /* 175 */ "expr ::= expr likeop expr ESCAPE expr",
141141
- /* 176 */ "expr ::= expr ISNULL|NOTNULL",
141142
- /* 177 */ "expr ::= expr NOT NULL",
141143
- /* 178 */ "expr ::= expr IS expr",
141144
- /* 179 */ "expr ::= expr IS NOT expr",
141145
- /* 180 */ "expr ::= NOT expr",
141146
- /* 181 */ "expr ::= BITNOT expr",
141147
- /* 182 */ "expr ::= MINUS expr",
141148
- /* 183 */ "expr ::= PLUS expr",
141149
- /* 184 */ "between_op ::= BETWEEN",
141150
- /* 185 */ "between_op ::= NOT BETWEEN",
141151
- /* 186 */ "expr ::= expr between_op expr AND expr",
141152
- /* 187 */ "in_op ::= IN",
141153
- /* 188 */ "in_op ::= NOT IN",
141154
- /* 189 */ "expr ::= expr in_op LP exprlist RP",
141155
- /* 190 */ "expr ::= LP select RP",
141156
- /* 191 */ "expr ::= expr in_op LP select RP",
141157
- /* 192 */ "expr ::= expr in_op nm dbnm paren_exprlist",
141158
- /* 193 */ "expr ::= EXISTS LP select RP",
141159
- /* 194 */ "expr ::= CASE case_operand case_exprlist case_else END",
141160
- /* 195 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
141161
- /* 196 */ "case_exprlist ::= WHEN expr THEN expr",
141162
- /* 197 */ "case_else ::= ELSE expr",
141163
- /* 198 */ "case_else ::=",
141164
- /* 199 */ "case_operand ::= expr",
141165
- /* 200 */ "case_operand ::=",
141166
- /* 201 */ "exprlist ::=",
141167
- /* 202 */ "nexprlist ::= nexprlist COMMA expr",
141168
- /* 203 */ "nexprlist ::= expr",
141169
- /* 204 */ "paren_exprlist ::=",
141170
- /* 205 */ "paren_exprlist ::= LP exprlist RP",
141171
- /* 206 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
141172
- /* 207 */ "uniqueflag ::= UNIQUE",
141173
- /* 208 */ "uniqueflag ::=",
141174
- /* 209 */ "eidlist_opt ::=",
141175
- /* 210 */ "eidlist_opt ::= LP eidlist RP",
141176
- /* 211 */ "eidlist ::= eidlist COMMA nm collate sortorder",
141177
- /* 212 */ "eidlist ::= nm collate sortorder",
141178
- /* 213 */ "collate ::=",
141179
- /* 214 */ "collate ::= COLLATE ID|STRING",
141180
- /* 215 */ "cmd ::= DROP INDEX ifexists fullname",
141181
- /* 216 */ "cmd ::= VACUUM",
141182
- /* 217 */ "cmd ::= VACUUM nm",
141183
- /* 218 */ "cmd ::= PRAGMA nm dbnm",
141184
- /* 219 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
141185
- /* 220 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
141186
- /* 221 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
141187
- /* 222 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
141188
- /* 223 */ "plus_num ::= PLUS INTEGER|FLOAT",
141189
- /* 224 */ "minus_num ::= MINUS INTEGER|FLOAT",
141190
- /* 225 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
141191
- /* 226 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
141192
- /* 227 */ "trigger_time ::= BEFORE|AFTER",
141193
- /* 228 */ "trigger_time ::= INSTEAD OF",
141194
- /* 229 */ "trigger_time ::=",
141195
- /* 230 */ "trigger_event ::= DELETE|INSERT",
141196
- /* 231 */ "trigger_event ::= UPDATE",
141197
- /* 232 */ "trigger_event ::= UPDATE OF idlist",
141198
- /* 233 */ "when_clause ::=",
141199
- /* 234 */ "when_clause ::= WHEN expr",
141200
- /* 235 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
141201
- /* 236 */ "trigger_cmd_list ::= trigger_cmd SEMI",
141202
- /* 237 */ "trnm ::= nm DOT nm",
141203
- /* 238 */ "tridxby ::= INDEXED BY nm",
141204
- /* 239 */ "tridxby ::= NOT INDEXED",
141205
- /* 240 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
141206
- /* 241 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
141207
- /* 242 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
141208
- /* 243 */ "trigger_cmd ::= scanpt select scanpt",
141209
- /* 244 */ "expr ::= RAISE LP IGNORE RP",
141210
- /* 245 */ "expr ::= RAISE LP raisetype COMMA nm RP",
141211
- /* 246 */ "raisetype ::= ROLLBACK",
141212
- /* 247 */ "raisetype ::= ABORT",
141213
- /* 248 */ "raisetype ::= FAIL",
141214
- /* 249 */ "cmd ::= DROP TRIGGER ifexists fullname",
141215
- /* 250 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
141216
- /* 251 */ "cmd ::= DETACH database_kw_opt expr",
141217
- /* 252 */ "key_opt ::=",
141218
- /* 253 */ "key_opt ::= KEY expr",
141219
- /* 254 */ "cmd ::= REINDEX",
141220
- /* 255 */ "cmd ::= REINDEX nm dbnm",
141221
- /* 256 */ "cmd ::= ANALYZE",
141222
- /* 257 */ "cmd ::= ANALYZE nm dbnm",
141223
- /* 258 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
141224
- /* 259 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
141225
- /* 260 */ "add_column_fullname ::= fullname",
141226
- /* 261 */ "cmd ::= create_vtab",
141227
- /* 262 */ "cmd ::= create_vtab LP vtabarglist RP",
141228
- /* 263 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
141229
- /* 264 */ "vtabarg ::=",
141230
- /* 265 */ "vtabargtoken ::= ANY",
141231
- /* 266 */ "vtabargtoken ::= lp anylist RP",
141232
- /* 267 */ "lp ::= LP",
141233
- /* 268 */ "with ::=",
141234
- /* 269 */ "with ::= WITH wqlist",
141235
- /* 270 */ "with ::= WITH RECURSIVE wqlist",
141236
- /* 271 */ "wqlist ::= nm eidlist_opt AS LP select RP",
141237
- /* 272 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
141238
- /* 273 */ "input ::= cmdlist",
141239
- /* 274 */ "cmdlist ::= cmdlist ecmd",
141240
- /* 275 */ "cmdlist ::= ecmd",
141241
- /* 276 */ "ecmd ::= SEMI",
141242
- /* 277 */ "ecmd ::= explain cmdx SEMI",
141243
- /* 278 */ "explain ::=",
141244
- /* 279 */ "trans_opt ::=",
141245
- /* 280 */ "trans_opt ::= TRANSACTION",
141246
- /* 281 */ "trans_opt ::= TRANSACTION nm",
141247
- /* 282 */ "savepoint_opt ::= SAVEPOINT",
141248
- /* 283 */ "savepoint_opt ::=",
141249
- /* 284 */ "cmd ::= create_table create_table_args",
141250
- /* 285 */ "columnlist ::= columnlist COMMA columnname carglist",
141251
- /* 286 */ "columnlist ::= columnname carglist",
141252
- /* 287 */ "nm ::= ID|INDEXED",
141253
- /* 288 */ "nm ::= STRING",
141254
- /* 289 */ "nm ::= JOIN_KW",
141255
- /* 290 */ "typetoken ::= typename",
141256
- /* 291 */ "typename ::= ID|STRING",
141257
- /* 292 */ "signed ::= plus_num",
141258
- /* 293 */ "signed ::= minus_num",
141259
- /* 294 */ "carglist ::= carglist ccons",
141260
- /* 295 */ "carglist ::=",
141261
- /* 296 */ "ccons ::= NULL onconf",
141262
- /* 297 */ "conslist_opt ::= COMMA conslist",
141263
- /* 298 */ "conslist ::= conslist tconscomma tcons",
141264
- /* 299 */ "conslist ::= tcons",
141265
- /* 300 */ "tconscomma ::=",
141266
- /* 301 */ "defer_subclause_opt ::= defer_subclause",
141267
- /* 302 */ "resolvetype ::= raisetype",
141268
- /* 303 */ "selectnowith ::= oneselect",
141269
- /* 304 */ "oneselect ::= values",
141270
- /* 305 */ "sclp ::= selcollist COMMA",
141271
- /* 306 */ "as ::= ID|STRING",
141272
- /* 307 */ "expr ::= term",
141273
- /* 308 */ "likeop ::= LIKE_KW|MATCH",
141274
- /* 309 */ "exprlist ::= nexprlist",
141275
- /* 310 */ "nmnum ::= plus_num",
141276
- /* 311 */ "nmnum ::= nm",
141277
- /* 312 */ "nmnum ::= ON",
141278
- /* 313 */ "nmnum ::= DELETE",
141279
- /* 314 */ "nmnum ::= DEFAULT",
141280
- /* 315 */ "plus_num ::= INTEGER|FLOAT",
141281
- /* 316 */ "foreach_clause ::=",
141282
- /* 317 */ "foreach_clause ::= FOR EACH ROW",
141283
- /* 318 */ "trnm ::= nm",
141284
- /* 319 */ "tridxby ::=",
141285
- /* 320 */ "database_kw_opt ::= DATABASE",
141286
- /* 321 */ "database_kw_opt ::=",
141287
- /* 322 */ "kwcolumn_opt ::=",
141288
- /* 323 */ "kwcolumn_opt ::= COLUMNKW",
141289
- /* 324 */ "vtabarglist ::= vtabarg",
141290
- /* 325 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
141291
- /* 326 */ "vtabarg ::= vtabarg vtabargtoken",
141292
- /* 327 */ "anylist ::=",
141293
- /* 328 */ "anylist ::= anylist LP anylist RP",
141294
- /* 329 */ "anylist ::= anylist ANY",
141114
+ /* 80 */ "select ::= WITH wqlist selectnowith",
141115
+ /* 81 */ "select ::= WITH RECURSIVE wqlist selectnowith",
141116
+ /* 82 */ "select ::= selectnowith",
141117
+ /* 83 */ "selectnowith ::= selectnowith multiselect_op oneselect",
141118
+ /* 84 */ "multiselect_op ::= UNION",
141119
+ /* 85 */ "multiselect_op ::= UNION ALL",
141120
+ /* 86 */ "multiselect_op ::= EXCEPT|INTERSECT",
141121
+ /* 87 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
141122
+ /* 88 */ "values ::= VALUES LP nexprlist RP",
141123
+ /* 89 */ "values ::= values COMMA LP exprlist RP",
141124
+ /* 90 */ "distinct ::= DISTINCT",
141125
+ /* 91 */ "distinct ::= ALL",
141126
+ /* 92 */ "distinct ::=",
141127
+ /* 93 */ "sclp ::=",
141128
+ /* 94 */ "selcollist ::= sclp scanpt expr scanpt as",
141129
+ /* 95 */ "selcollist ::= sclp scanpt STAR",
141130
+ /* 96 */ "selcollist ::= sclp scanpt nm DOT STAR",
141131
+ /* 97 */ "as ::= AS nm",
141132
+ /* 98 */ "as ::=",
141133
+ /* 99 */ "from ::=",
141134
+ /* 100 */ "from ::= FROM seltablist",
141135
+ /* 101 */ "stl_prefix ::= seltablist joinop",
141136
+ /* 102 */ "stl_prefix ::=",
141137
+ /* 103 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
141138
+ /* 104 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
141139
+ /* 105 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
141140
+ /* 106 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
141141
+ /* 107 */ "dbnm ::=",
141142
+ /* 108 */ "dbnm ::= DOT nm",
141143
+ /* 109 */ "fullname ::= nm",
141144
+ /* 110 */ "fullname ::= nm DOT nm",
141145
+ /* 111 */ "joinop ::= COMMA|JOIN",
141146
+ /* 112 */ "joinop ::= JOIN_KW JOIN",
141147
+ /* 113 */ "joinop ::= JOIN_KW nm JOIN",
141148
+ /* 114 */ "joinop ::= JOIN_KW nm nm JOIN",
141149
+ /* 115 */ "on_opt ::= ON expr",
141150
+ /* 116 */ "on_opt ::=",
141151
+ /* 117 */ "indexed_opt ::=",
141152
+ /* 118 */ "indexed_opt ::= INDEXED BY nm",
141153
+ /* 119 */ "indexed_opt ::= NOT INDEXED",
141154
+ /* 120 */ "using_opt ::= USING LP idlist RP",
141155
+ /* 121 */ "using_opt ::=",
141156
+ /* 122 */ "orderby_opt ::=",
141157
+ /* 123 */ "orderby_opt ::= ORDER BY sortlist",
141158
+ /* 124 */ "sortlist ::= sortlist COMMA expr sortorder",
141159
+ /* 125 */ "sortlist ::= expr sortorder",
141160
+ /* 126 */ "sortorder ::= ASC",
141161
+ /* 127 */ "sortorder ::= DESC",
141162
+ /* 128 */ "sortorder ::=",
141163
+ /* 129 */ "groupby_opt ::=",
141164
+ /* 130 */ "groupby_opt ::= GROUP BY nexprlist",
141165
+ /* 131 */ "having_opt ::=",
141166
+ /* 132 */ "having_opt ::= HAVING expr",
141167
+ /* 133 */ "limit_opt ::=",
141168
+ /* 134 */ "limit_opt ::= LIMIT expr",
141169
+ /* 135 */ "limit_opt ::= LIMIT expr OFFSET expr",
141170
+ /* 136 */ "limit_opt ::= LIMIT expr COMMA expr",
141171
+ /* 137 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
141172
+ /* 138 */ "where_opt ::=",
141173
+ /* 139 */ "where_opt ::= WHERE expr",
141174
+ /* 140 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
141175
+ /* 141 */ "setlist ::= setlist COMMA nm EQ expr",
141176
+ /* 142 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
141177
+ /* 143 */ "setlist ::= nm EQ expr",
141178
+ /* 144 */ "setlist ::= LP idlist RP EQ expr",
141179
+ /* 145 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
141180
+ /* 146 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
141181
+ /* 147 */ "insert_cmd ::= INSERT orconf",
141182
+ /* 148 */ "insert_cmd ::= REPLACE",
141183
+ /* 149 */ "idlist_opt ::=",
141184
+ /* 150 */ "idlist_opt ::= LP idlist RP",
141185
+ /* 151 */ "idlist ::= idlist COMMA nm",
141186
+ /* 152 */ "idlist ::= nm",
141187
+ /* 153 */ "expr ::= LP expr RP",
141188
+ /* 154 */ "expr ::= ID|INDEXED",
141189
+ /* 155 */ "expr ::= JOIN_KW",
141190
+ /* 156 */ "expr ::= nm DOT nm",
141191
+ /* 157 */ "expr ::= nm DOT nm DOT nm",
141192
+ /* 158 */ "term ::= NULL|FLOAT|BLOB",
141193
+ /* 159 */ "term ::= STRING",
141194
+ /* 160 */ "term ::= INTEGER",
141195
+ /* 161 */ "expr ::= VARIABLE",
141196
+ /* 162 */ "expr ::= expr COLLATE ID|STRING",
141197
+ /* 163 */ "expr ::= CAST LP expr AS typetoken RP",
141198
+ /* 164 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
141199
+ /* 165 */ "expr ::= ID|INDEXED LP STAR RP",
141200
+ /* 166 */ "term ::= CTIME_KW",
141201
+ /* 167 */ "expr ::= LP nexprlist COMMA expr RP",
141202
+ /* 168 */ "expr ::= expr AND expr",
141203
+ /* 169 */ "expr ::= expr OR expr",
141204
+ /* 170 */ "expr ::= expr LT|GT|GE|LE expr",
141205
+ /* 171 */ "expr ::= expr EQ|NE expr",
141206
+ /* 172 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
141207
+ /* 173 */ "expr ::= expr PLUS|MINUS expr",
141208
+ /* 174 */ "expr ::= expr STAR|SLASH|REM expr",
141209
+ /* 175 */ "expr ::= expr CONCAT expr",
141210
+ /* 176 */ "likeop ::= NOT LIKE_KW|MATCH",
141211
+ /* 177 */ "expr ::= expr likeop expr",
141212
+ /* 178 */ "expr ::= expr likeop expr ESCAPE expr",
141213
+ /* 179 */ "expr ::= expr ISNULL|NOTNULL",
141214
+ /* 180 */ "expr ::= expr NOT NULL",
141215
+ /* 181 */ "expr ::= expr IS expr",
141216
+ /* 182 */ "expr ::= expr IS NOT expr",
141217
+ /* 183 */ "expr ::= NOT expr",
141218
+ /* 184 */ "expr ::= BITNOT expr",
141219
+ /* 185 */ "expr ::= MINUS expr",
141220
+ /* 186 */ "expr ::= PLUS expr",
141221
+ /* 187 */ "between_op ::= BETWEEN",
141222
+ /* 188 */ "between_op ::= NOT BETWEEN",
141223
+ /* 189 */ "expr ::= expr between_op expr AND expr",
141224
+ /* 190 */ "in_op ::= IN",
141225
+ /* 191 */ "in_op ::= NOT IN",
141226
+ /* 192 */ "expr ::= expr in_op LP exprlist RP",
141227
+ /* 193 */ "expr ::= LP select RP",
141228
+ /* 194 */ "expr ::= expr in_op LP select RP",
141229
+ /* 195 */ "expr ::= expr in_op nm dbnm paren_exprlist",
141230
+ /* 196 */ "expr ::= EXISTS LP select RP",
141231
+ /* 197 */ "expr ::= CASE case_operand case_exprlist case_else END",
141232
+ /* 198 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
141233
+ /* 199 */ "case_exprlist ::= WHEN expr THEN expr",
141234
+ /* 200 */ "case_else ::= ELSE expr",
141235
+ /* 201 */ "case_else ::=",
141236
+ /* 202 */ "case_operand ::= expr",
141237
+ /* 203 */ "case_operand ::=",
141238
+ /* 204 */ "exprlist ::=",
141239
+ /* 205 */ "nexprlist ::= nexprlist COMMA expr",
141240
+ /* 206 */ "nexprlist ::= expr",
141241
+ /* 207 */ "paren_exprlist ::=",
141242
+ /* 208 */ "paren_exprlist ::= LP exprlist RP",
141243
+ /* 209 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
141244
+ /* 210 */ "uniqueflag ::= UNIQUE",
141245
+ /* 211 */ "uniqueflag ::=",
141246
+ /* 212 */ "eidlist_opt ::=",
141247
+ /* 213 */ "eidlist_opt ::= LP eidlist RP",
141248
+ /* 214 */ "eidlist ::= eidlist COMMA nm collate sortorder",
141249
+ /* 215 */ "eidlist ::= nm collate sortorder",
141250
+ /* 216 */ "collate ::=",
141251
+ /* 217 */ "collate ::= COLLATE ID|STRING",
141252
+ /* 218 */ "cmd ::= DROP INDEX ifexists fullname",
141253
+ /* 219 */ "cmd ::= VACUUM",
141254
+ /* 220 */ "cmd ::= VACUUM nm",
141255
+ /* 221 */ "cmd ::= PRAGMA nm dbnm",
141256
+ /* 222 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
141257
+ /* 223 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
141258
+ /* 224 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
141259
+ /* 225 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
141260
+ /* 226 */ "plus_num ::= PLUS INTEGER|FLOAT",
141261
+ /* 227 */ "minus_num ::= MINUS INTEGER|FLOAT",
141262
+ /* 228 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
141263
+ /* 229 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
141264
+ /* 230 */ "trigger_time ::= BEFORE|AFTER",
141265
+ /* 231 */ "trigger_time ::= INSTEAD OF",
141266
+ /* 232 */ "trigger_time ::=",
141267
+ /* 233 */ "trigger_event ::= DELETE|INSERT",
141268
+ /* 234 */ "trigger_event ::= UPDATE",
141269
+ /* 235 */ "trigger_event ::= UPDATE OF idlist",
141270
+ /* 236 */ "when_clause ::=",
141271
+ /* 237 */ "when_clause ::= WHEN expr",
141272
+ /* 238 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
141273
+ /* 239 */ "trigger_cmd_list ::= trigger_cmd SEMI",
141274
+ /* 240 */ "trnm ::= nm DOT nm",
141275
+ /* 241 */ "tridxby ::= INDEXED BY nm",
141276
+ /* 242 */ "tridxby ::= NOT INDEXED",
141277
+ /* 243 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
141278
+ /* 244 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
141279
+ /* 245 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
141280
+ /* 246 */ "trigger_cmd ::= scanpt select scanpt",
141281
+ /* 247 */ "expr ::= RAISE LP IGNORE RP",
141282
+ /* 248 */ "expr ::= RAISE LP raisetype COMMA nm RP",
141283
+ /* 249 */ "raisetype ::= ROLLBACK",
141284
+ /* 250 */ "raisetype ::= ABORT",
141285
+ /* 251 */ "raisetype ::= FAIL",
141286
+ /* 252 */ "cmd ::= DROP TRIGGER ifexists fullname",
141287
+ /* 253 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
141288
+ /* 254 */ "cmd ::= DETACH database_kw_opt expr",
141289
+ /* 255 */ "key_opt ::=",
141290
+ /* 256 */ "key_opt ::= KEY expr",
141291
+ /* 257 */ "cmd ::= REINDEX",
141292
+ /* 258 */ "cmd ::= REINDEX nm dbnm",
141293
+ /* 259 */ "cmd ::= ANALYZE",
141294
+ /* 260 */ "cmd ::= ANALYZE nm dbnm",
141295
+ /* 261 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
141296
+ /* 262 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
141297
+ /* 263 */ "add_column_fullname ::= fullname",
141298
+ /* 264 */ "cmd ::= create_vtab",
141299
+ /* 265 */ "cmd ::= create_vtab LP vtabarglist RP",
141300
+ /* 266 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
141301
+ /* 267 */ "vtabarg ::=",
141302
+ /* 268 */ "vtabargtoken ::= ANY",
141303
+ /* 269 */ "vtabargtoken ::= lp anylist RP",
141304
+ /* 270 */ "lp ::= LP",
141305
+ /* 271 */ "with ::= WITH wqlist",
141306
+ /* 272 */ "with ::= WITH RECURSIVE wqlist",
141307
+ /* 273 */ "wqlist ::= nm eidlist_opt AS LP select RP",
141308
+ /* 274 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
141309
+ /* 275 */ "input ::= cmdlist",
141310
+ /* 276 */ "cmdlist ::= cmdlist ecmd",
141311
+ /* 277 */ "cmdlist ::= ecmd",
141312
+ /* 278 */ "ecmd ::= SEMI",
141313
+ /* 279 */ "ecmd ::= explain cmdx SEMI",
141314
+ /* 280 */ "explain ::=",
141315
+ /* 281 */ "trans_opt ::=",
141316
+ /* 282 */ "trans_opt ::= TRANSACTION",
141317
+ /* 283 */ "trans_opt ::= TRANSACTION nm",
141318
+ /* 284 */ "savepoint_opt ::= SAVEPOINT",
141319
+ /* 285 */ "savepoint_opt ::=",
141320
+ /* 286 */ "cmd ::= create_table create_table_args",
141321
+ /* 287 */ "columnlist ::= columnlist COMMA columnname carglist",
141322
+ /* 288 */ "columnlist ::= columnname carglist",
141323
+ /* 289 */ "nm ::= ID|INDEXED",
141324
+ /* 290 */ "nm ::= STRING",
141325
+ /* 291 */ "nm ::= JOIN_KW",
141326
+ /* 292 */ "typetoken ::= typename",
141327
+ /* 293 */ "typename ::= ID|STRING",
141328
+ /* 294 */ "signed ::= plus_num",
141329
+ /* 295 */ "signed ::= minus_num",
141330
+ /* 296 */ "carglist ::= carglist ccons",
141331
+ /* 297 */ "carglist ::=",
141332
+ /* 298 */ "ccons ::= NULL onconf",
141333
+ /* 299 */ "conslist_opt ::= COMMA conslist",
141334
+ /* 300 */ "conslist ::= conslist tconscomma tcons",
141335
+ /* 301 */ "conslist ::= tcons",
141336
+ /* 302 */ "tconscomma ::=",
141337
+ /* 303 */ "defer_subclause_opt ::= defer_subclause",
141338
+ /* 304 */ "resolvetype ::= raisetype",
141339
+ /* 305 */ "selectnowith ::= oneselect",
141340
+ /* 306 */ "oneselect ::= values",
141341
+ /* 307 */ "sclp ::= selcollist COMMA",
141342
+ /* 308 */ "as ::= ID|STRING",
141343
+ /* 309 */ "expr ::= term",
141344
+ /* 310 */ "likeop ::= LIKE_KW|MATCH",
141345
+ /* 311 */ "exprlist ::= nexprlist",
141346
+ /* 312 */ "nmnum ::= plus_num",
141347
+ /* 313 */ "nmnum ::= nm",
141348
+ /* 314 */ "nmnum ::= ON",
141349
+ /* 315 */ "nmnum ::= DELETE",
141350
+ /* 316 */ "nmnum ::= DEFAULT",
141351
+ /* 317 */ "plus_num ::= INTEGER|FLOAT",
141352
+ /* 318 */ "foreach_clause ::=",
141353
+ /* 319 */ "foreach_clause ::= FOR EACH ROW",
141354
+ /* 320 */ "trnm ::= nm",
141355
+ /* 321 */ "tridxby ::=",
141356
+ /* 322 */ "database_kw_opt ::= DATABASE",
141357
+ /* 323 */ "database_kw_opt ::=",
141358
+ /* 324 */ "kwcolumn_opt ::=",
141359
+ /* 325 */ "kwcolumn_opt ::= COLUMNKW",
141360
+ /* 326 */ "vtabarglist ::= vtabarg",
141361
+ /* 327 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
141362
+ /* 328 */ "vtabarg ::= vtabarg vtabargtoken",
141363
+ /* 329 */ "anylist ::=",
141364
+ /* 330 */ "anylist ::= anylist LP anylist RP",
141365
+ /* 331 */ "anylist ::= anylist ANY",
141366
+ /* 332 */ "with ::=",
141295141367
};
141296141368
#endif /* NDEBUG */
141297141369
141298141370
141299141371
#if YYSTACKDEPTH<=0
@@ -141423,14 +141495,14 @@
141423141495
case 173: /* term */
141424141496
case 174: /* expr */
141425141497
case 202: /* where_opt */
141426141498
case 204: /* having_opt */
141427141499
case 216: /* on_opt */
141428
- case 226: /* case_operand */
141429
- case 228: /* case_else */
141430
- case 237: /* when_clause */
141431
- case 242: /* key_opt */
141500
+ case 227: /* case_operand */
141501
+ case 229: /* case_else */
141502
+ case 238: /* when_clause */
141503
+ case 243: /* key_opt */
141432141504
{
141433141505
sqlite3ExprDelete(pParse->db, (yypminor->yy314));
141434141506
}
141435141507
break;
141436141508
case 178: /* eidlist_opt */
@@ -141440,13 +141512,13 @@
141440141512
case 203: /* groupby_opt */
141441141513
case 205: /* orderby_opt */
141442141514
case 208: /* nexprlist */
141443141515
case 209: /* exprlist */
141444141516
case 210: /* sclp */
141445
- case 219: /* setlist */
141446
- case 225: /* paren_exprlist */
141447
- case 227: /* case_exprlist */
141517
+ case 220: /* setlist */
141518
+ case 226: /* paren_exprlist */
141519
+ case 228: /* case_exprlist */
141448141520
{
141449141521
sqlite3ExprListDelete(pParse->db, (yypminor->yy322));
141450141522
}
141451141523
break;
141452141524
case 194: /* fullname */
@@ -141455,30 +141527,29 @@
141455141527
case 213: /* stl_prefix */
141456141528
{
141457141529
sqlite3SrcListDelete(pParse->db, (yypminor->yy259));
141458141530
}
141459141531
break;
141460
- case 197: /* with */
141461
- case 251: /* wqlist */
141532
+ case 197: /* wqlist */
141462141533
{
141463141534
sqlite3WithDelete(pParse->db, (yypminor->yy451));
141464141535
}
141465141536
break;
141466141537
case 217: /* using_opt */
141467141538
case 218: /* idlist */
141468
- case 221: /* idlist_opt */
141539
+ case 222: /* idlist_opt */
141469141540
{
141470141541
sqlite3IdListDelete(pParse->db, (yypminor->yy384));
141471141542
}
141472141543
break;
141473
- case 233: /* trigger_cmd_list */
141474
- case 238: /* trigger_cmd */
141544
+ case 234: /* trigger_cmd_list */
141545
+ case 239: /* trigger_cmd */
141475141546
{
141476141547
sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203));
141477141548
}
141478141549
break;
141479
- case 235: /* trigger_event */
141550
+ case 236: /* trigger_event */
141480141551
{
141481141552
sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
141482141553
}
141483141554
break;
141484141555
/********* End destructor definitions *****************************************/
@@ -141853,260 +141924,263 @@
141853141924
{ 193, -2 }, /* (75) ifexists ::= IF EXISTS */
141854141925
{ 193, 0 }, /* (76) ifexists ::= */
141855141926
{ 149, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
141856141927
{ 149, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */
141857141928
{ 149, -1 }, /* (79) cmd ::= select */
141858
- { 163, -2 }, /* (80) select ::= with selectnowith */
141859
- { 195, -3 }, /* (81) selectnowith ::= selectnowith multiselect_op oneselect */
141860
- { 198, -1 }, /* (82) multiselect_op ::= UNION */
141861
- { 198, -2 }, /* (83) multiselect_op ::= UNION ALL */
141862
- { 198, -1 }, /* (84) multiselect_op ::= EXCEPT|INTERSECT */
141863
- { 196, -9 }, /* (85) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
141864
- { 207, -4 }, /* (86) values ::= VALUES LP nexprlist RP */
141865
- { 207, -5 }, /* (87) values ::= values COMMA LP exprlist RP */
141866
- { 199, -1 }, /* (88) distinct ::= DISTINCT */
141867
- { 199, -1 }, /* (89) distinct ::= ALL */
141868
- { 199, 0 }, /* (90) distinct ::= */
141869
- { 210, 0 }, /* (91) sclp ::= */
141870
- { 200, -5 }, /* (92) selcollist ::= sclp scanpt expr scanpt as */
141871
- { 200, -3 }, /* (93) selcollist ::= sclp scanpt STAR */
141872
- { 200, -5 }, /* (94) selcollist ::= sclp scanpt nm DOT STAR */
141873
- { 211, -2 }, /* (95) as ::= AS nm */
141874
- { 211, 0 }, /* (96) as ::= */
141875
- { 201, 0 }, /* (97) from ::= */
141876
- { 201, -2 }, /* (98) from ::= FROM seltablist */
141877
- { 213, -2 }, /* (99) stl_prefix ::= seltablist joinop */
141878
- { 213, 0 }, /* (100) stl_prefix ::= */
141879
- { 212, -7 }, /* (101) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
141880
- { 212, -9 }, /* (102) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
141881
- { 212, -7 }, /* (103) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
141882
- { 212, -7 }, /* (104) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
141883
- { 159, 0 }, /* (105) dbnm ::= */
141884
- { 159, -2 }, /* (106) dbnm ::= DOT nm */
141885
- { 194, -2 }, /* (107) fullname ::= nm dbnm */
141886
- { 214, -1 }, /* (108) joinop ::= COMMA|JOIN */
141887
- { 214, -2 }, /* (109) joinop ::= JOIN_KW JOIN */
141888
- { 214, -3 }, /* (110) joinop ::= JOIN_KW nm JOIN */
141889
- { 214, -4 }, /* (111) joinop ::= JOIN_KW nm nm JOIN */
141890
- { 216, -2 }, /* (112) on_opt ::= ON expr */
141891
- { 216, 0 }, /* (113) on_opt ::= */
141892
- { 215, 0 }, /* (114) indexed_opt ::= */
141893
- { 215, -3 }, /* (115) indexed_opt ::= INDEXED BY nm */
141894
- { 215, -2 }, /* (116) indexed_opt ::= NOT INDEXED */
141895
- { 217, -4 }, /* (117) using_opt ::= USING LP idlist RP */
141896
- { 217, 0 }, /* (118) using_opt ::= */
141897
- { 205, 0 }, /* (119) orderby_opt ::= */
141898
- { 205, -3 }, /* (120) orderby_opt ::= ORDER BY sortlist */
141899
- { 187, -4 }, /* (121) sortlist ::= sortlist COMMA expr sortorder */
141900
- { 187, -2 }, /* (122) sortlist ::= expr sortorder */
141901
- { 176, -1 }, /* (123) sortorder ::= ASC */
141902
- { 176, -1 }, /* (124) sortorder ::= DESC */
141903
- { 176, 0 }, /* (125) sortorder ::= */
141904
- { 203, 0 }, /* (126) groupby_opt ::= */
141905
- { 203, -3 }, /* (127) groupby_opt ::= GROUP BY nexprlist */
141906
- { 204, 0 }, /* (128) having_opt ::= */
141907
- { 204, -2 }, /* (129) having_opt ::= HAVING expr */
141908
- { 206, 0 }, /* (130) limit_opt ::= */
141909
- { 206, -2 }, /* (131) limit_opt ::= LIMIT expr */
141910
- { 206, -4 }, /* (132) limit_opt ::= LIMIT expr OFFSET expr */
141911
- { 206, -4 }, /* (133) limit_opt ::= LIMIT expr COMMA expr */
141912
- { 149, -6 }, /* (134) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
141913
- { 202, 0 }, /* (135) where_opt ::= */
141914
- { 202, -2 }, /* (136) where_opt ::= WHERE expr */
141915
- { 149, -8 }, /* (137) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
141916
- { 219, -5 }, /* (138) setlist ::= setlist COMMA nm EQ expr */
141917
- { 219, -7 }, /* (139) setlist ::= setlist COMMA LP idlist RP EQ expr */
141918
- { 219, -3 }, /* (140) setlist ::= nm EQ expr */
141919
- { 219, -5 }, /* (141) setlist ::= LP idlist RP EQ expr */
141920
- { 149, -6 }, /* (142) cmd ::= with insert_cmd INTO fullname idlist_opt select */
141921
- { 149, -7 }, /* (143) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
141922
- { 220, -2 }, /* (144) insert_cmd ::= INSERT orconf */
141923
- { 220, -1 }, /* (145) insert_cmd ::= REPLACE */
141924
- { 221, 0 }, /* (146) idlist_opt ::= */
141925
- { 221, -3 }, /* (147) idlist_opt ::= LP idlist RP */
141926
- { 218, -3 }, /* (148) idlist ::= idlist COMMA nm */
141927
- { 218, -1 }, /* (149) idlist ::= nm */
141928
- { 174, -3 }, /* (150) expr ::= LP expr RP */
141929
- { 174, -1 }, /* (151) expr ::= ID|INDEXED */
141930
- { 174, -1 }, /* (152) expr ::= JOIN_KW */
141931
- { 174, -3 }, /* (153) expr ::= nm DOT nm */
141932
- { 174, -5 }, /* (154) expr ::= nm DOT nm DOT nm */
141933
- { 173, -1 }, /* (155) term ::= NULL|FLOAT|BLOB */
141934
- { 173, -1 }, /* (156) term ::= STRING */
141935
- { 173, -1 }, /* (157) term ::= INTEGER */
141936
- { 174, -1 }, /* (158) expr ::= VARIABLE */
141937
- { 174, -3 }, /* (159) expr ::= expr COLLATE ID|STRING */
141938
- { 174, -6 }, /* (160) expr ::= CAST LP expr AS typetoken RP */
141939
- { 174, -5 }, /* (161) expr ::= ID|INDEXED LP distinct exprlist RP */
141940
- { 174, -4 }, /* (162) expr ::= ID|INDEXED LP STAR RP */
141941
- { 173, -1 }, /* (163) term ::= CTIME_KW */
141942
- { 174, -5 }, /* (164) expr ::= LP nexprlist COMMA expr RP */
141943
- { 174, -3 }, /* (165) expr ::= expr AND expr */
141944
- { 174, -3 }, /* (166) expr ::= expr OR expr */
141945
- { 174, -3 }, /* (167) expr ::= expr LT|GT|GE|LE expr */
141946
- { 174, -3 }, /* (168) expr ::= expr EQ|NE expr */
141947
- { 174, -3 }, /* (169) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
141948
- { 174, -3 }, /* (170) expr ::= expr PLUS|MINUS expr */
141949
- { 174, -3 }, /* (171) expr ::= expr STAR|SLASH|REM expr */
141950
- { 174, -3 }, /* (172) expr ::= expr CONCAT expr */
141951
- { 222, -2 }, /* (173) likeop ::= NOT LIKE_KW|MATCH */
141952
- { 174, -3 }, /* (174) expr ::= expr likeop expr */
141953
- { 174, -5 }, /* (175) expr ::= expr likeop expr ESCAPE expr */
141954
- { 174, -2 }, /* (176) expr ::= expr ISNULL|NOTNULL */
141955
- { 174, -3 }, /* (177) expr ::= expr NOT NULL */
141956
- { 174, -3 }, /* (178) expr ::= expr IS expr */
141957
- { 174, -4 }, /* (179) expr ::= expr IS NOT expr */
141958
- { 174, -2 }, /* (180) expr ::= NOT expr */
141959
- { 174, -2 }, /* (181) expr ::= BITNOT expr */
141960
- { 174, -2 }, /* (182) expr ::= MINUS expr */
141961
- { 174, -2 }, /* (183) expr ::= PLUS expr */
141962
- { 223, -1 }, /* (184) between_op ::= BETWEEN */
141963
- { 223, -2 }, /* (185) between_op ::= NOT BETWEEN */
141964
- { 174, -5 }, /* (186) expr ::= expr between_op expr AND expr */
141965
- { 224, -1 }, /* (187) in_op ::= IN */
141966
- { 224, -2 }, /* (188) in_op ::= NOT IN */
141967
- { 174, -5 }, /* (189) expr ::= expr in_op LP exprlist RP */
141968
- { 174, -3 }, /* (190) expr ::= LP select RP */
141969
- { 174, -5 }, /* (191) expr ::= expr in_op LP select RP */
141970
- { 174, -5 }, /* (192) expr ::= expr in_op nm dbnm paren_exprlist */
141971
- { 174, -4 }, /* (193) expr ::= EXISTS LP select RP */
141972
- { 174, -5 }, /* (194) expr ::= CASE case_operand case_exprlist case_else END */
141973
- { 227, -5 }, /* (195) case_exprlist ::= case_exprlist WHEN expr THEN expr */
141974
- { 227, -4 }, /* (196) case_exprlist ::= WHEN expr THEN expr */
141975
- { 228, -2 }, /* (197) case_else ::= ELSE expr */
141976
- { 228, 0 }, /* (198) case_else ::= */
141977
- { 226, -1 }, /* (199) case_operand ::= expr */
141978
- { 226, 0 }, /* (200) case_operand ::= */
141979
- { 209, 0 }, /* (201) exprlist ::= */
141980
- { 208, -3 }, /* (202) nexprlist ::= nexprlist COMMA expr */
141981
- { 208, -1 }, /* (203) nexprlist ::= expr */
141982
- { 225, 0 }, /* (204) paren_exprlist ::= */
141983
- { 225, -3 }, /* (205) paren_exprlist ::= LP exprlist RP */
141984
- { 149, -12 }, /* (206) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
141985
- { 229, -1 }, /* (207) uniqueflag ::= UNIQUE */
141986
- { 229, 0 }, /* (208) uniqueflag ::= */
141987
- { 178, 0 }, /* (209) eidlist_opt ::= */
141988
- { 178, -3 }, /* (210) eidlist_opt ::= LP eidlist RP */
141989
- { 188, -5 }, /* (211) eidlist ::= eidlist COMMA nm collate sortorder */
141990
- { 188, -3 }, /* (212) eidlist ::= nm collate sortorder */
141991
- { 230, 0 }, /* (213) collate ::= */
141992
- { 230, -2 }, /* (214) collate ::= COLLATE ID|STRING */
141993
- { 149, -4 }, /* (215) cmd ::= DROP INDEX ifexists fullname */
141994
- { 149, -1 }, /* (216) cmd ::= VACUUM */
141995
- { 149, -2 }, /* (217) cmd ::= VACUUM nm */
141996
- { 149, -3 }, /* (218) cmd ::= PRAGMA nm dbnm */
141997
- { 149, -5 }, /* (219) cmd ::= PRAGMA nm dbnm EQ nmnum */
141998
- { 149, -6 }, /* (220) cmd ::= PRAGMA nm dbnm LP nmnum RP */
141999
- { 149, -5 }, /* (221) cmd ::= PRAGMA nm dbnm EQ minus_num */
142000
- { 149, -6 }, /* (222) cmd ::= PRAGMA nm dbnm LP minus_num RP */
142001
- { 169, -2 }, /* (223) plus_num ::= PLUS INTEGER|FLOAT */
142002
- { 170, -2 }, /* (224) minus_num ::= MINUS INTEGER|FLOAT */
142003
- { 149, -5 }, /* (225) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
142004
- { 232, -11 }, /* (226) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
142005
- { 234, -1 }, /* (227) trigger_time ::= BEFORE|AFTER */
142006
- { 234, -2 }, /* (228) trigger_time ::= INSTEAD OF */
142007
- { 234, 0 }, /* (229) trigger_time ::= */
142008
- { 235, -1 }, /* (230) trigger_event ::= DELETE|INSERT */
142009
- { 235, -1 }, /* (231) trigger_event ::= UPDATE */
142010
- { 235, -3 }, /* (232) trigger_event ::= UPDATE OF idlist */
142011
- { 237, 0 }, /* (233) when_clause ::= */
142012
- { 237, -2 }, /* (234) when_clause ::= WHEN expr */
142013
- { 233, -3 }, /* (235) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
142014
- { 233, -2 }, /* (236) trigger_cmd_list ::= trigger_cmd SEMI */
142015
- { 239, -3 }, /* (237) trnm ::= nm DOT nm */
142016
- { 240, -3 }, /* (238) tridxby ::= INDEXED BY nm */
142017
- { 240, -2 }, /* (239) tridxby ::= NOT INDEXED */
142018
- { 238, -8 }, /* (240) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
142019
- { 238, -7 }, /* (241) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
142020
- { 238, -6 }, /* (242) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
142021
- { 238, -3 }, /* (243) trigger_cmd ::= scanpt select scanpt */
142022
- { 174, -4 }, /* (244) expr ::= RAISE LP IGNORE RP */
142023
- { 174, -6 }, /* (245) expr ::= RAISE LP raisetype COMMA nm RP */
142024
- { 192, -1 }, /* (246) raisetype ::= ROLLBACK */
142025
- { 192, -1 }, /* (247) raisetype ::= ABORT */
142026
- { 192, -1 }, /* (248) raisetype ::= FAIL */
142027
- { 149, -4 }, /* (249) cmd ::= DROP TRIGGER ifexists fullname */
142028
- { 149, -6 }, /* (250) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
142029
- { 149, -3 }, /* (251) cmd ::= DETACH database_kw_opt expr */
142030
- { 242, 0 }, /* (252) key_opt ::= */
142031
- { 242, -2 }, /* (253) key_opt ::= KEY expr */
142032
- { 149, -1 }, /* (254) cmd ::= REINDEX */
142033
- { 149, -3 }, /* (255) cmd ::= REINDEX nm dbnm */
142034
- { 149, -1 }, /* (256) cmd ::= ANALYZE */
142035
- { 149, -3 }, /* (257) cmd ::= ANALYZE nm dbnm */
142036
- { 149, -6 }, /* (258) cmd ::= ALTER TABLE fullname RENAME TO nm */
142037
- { 149, -7 }, /* (259) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
142038
- { 243, -1 }, /* (260) add_column_fullname ::= fullname */
142039
- { 149, -1 }, /* (261) cmd ::= create_vtab */
142040
- { 149, -4 }, /* (262) cmd ::= create_vtab LP vtabarglist RP */
142041
- { 245, -8 }, /* (263) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
142042
- { 247, 0 }, /* (264) vtabarg ::= */
142043
- { 248, -1 }, /* (265) vtabargtoken ::= ANY */
142044
- { 248, -3 }, /* (266) vtabargtoken ::= lp anylist RP */
142045
- { 249, -1 }, /* (267) lp ::= LP */
142046
- { 197, 0 }, /* (268) with ::= */
142047
- { 197, -2 }, /* (269) with ::= WITH wqlist */
142048
- { 197, -3 }, /* (270) with ::= WITH RECURSIVE wqlist */
142049
- { 251, -6 }, /* (271) wqlist ::= nm eidlist_opt AS LP select RP */
142050
- { 251, -8 }, /* (272) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
142051
- { 144, -1 }, /* (273) input ::= cmdlist */
142052
- { 145, -2 }, /* (274) cmdlist ::= cmdlist ecmd */
142053
- { 145, -1 }, /* (275) cmdlist ::= ecmd */
142054
- { 146, -1 }, /* (276) ecmd ::= SEMI */
142055
- { 146, -3 }, /* (277) ecmd ::= explain cmdx SEMI */
142056
- { 147, 0 }, /* (278) explain ::= */
142057
- { 151, 0 }, /* (279) trans_opt ::= */
142058
- { 151, -1 }, /* (280) trans_opt ::= TRANSACTION */
142059
- { 151, -2 }, /* (281) trans_opt ::= TRANSACTION nm */
142060
- { 153, -1 }, /* (282) savepoint_opt ::= SAVEPOINT */
142061
- { 153, 0 }, /* (283) savepoint_opt ::= */
142062
- { 149, -2 }, /* (284) cmd ::= create_table create_table_args */
142063
- { 160, -4 }, /* (285) columnlist ::= columnlist COMMA columnname carglist */
142064
- { 160, -2 }, /* (286) columnlist ::= columnname carglist */
142065
- { 152, -1 }, /* (287) nm ::= ID|INDEXED */
142066
- { 152, -1 }, /* (288) nm ::= STRING */
142067
- { 152, -1 }, /* (289) nm ::= JOIN_KW */
142068
- { 166, -1 }, /* (290) typetoken ::= typename */
142069
- { 167, -1 }, /* (291) typename ::= ID|STRING */
142070
- { 168, -1 }, /* (292) signed ::= plus_num */
142071
- { 168, -1 }, /* (293) signed ::= minus_num */
142072
- { 165, -2 }, /* (294) carglist ::= carglist ccons */
142073
- { 165, 0 }, /* (295) carglist ::= */
142074
- { 172, -2 }, /* (296) ccons ::= NULL onconf */
142075
- { 161, -2 }, /* (297) conslist_opt ::= COMMA conslist */
142076
- { 184, -3 }, /* (298) conslist ::= conslist tconscomma tcons */
142077
- { 184, -1 }, /* (299) conslist ::= tcons */
142078
- { 185, 0 }, /* (300) tconscomma ::= */
142079
- { 189, -1 }, /* (301) defer_subclause_opt ::= defer_subclause */
142080
- { 191, -1 }, /* (302) resolvetype ::= raisetype */
142081
- { 195, -1 }, /* (303) selectnowith ::= oneselect */
142082
- { 196, -1 }, /* (304) oneselect ::= values */
142083
- { 210, -2 }, /* (305) sclp ::= selcollist COMMA */
142084
- { 211, -1 }, /* (306) as ::= ID|STRING */
142085
- { 174, -1 }, /* (307) expr ::= term */
142086
- { 222, -1 }, /* (308) likeop ::= LIKE_KW|MATCH */
142087
- { 209, -1 }, /* (309) exprlist ::= nexprlist */
142088
- { 231, -1 }, /* (310) nmnum ::= plus_num */
142089
- { 231, -1 }, /* (311) nmnum ::= nm */
142090
- { 231, -1 }, /* (312) nmnum ::= ON */
142091
- { 231, -1 }, /* (313) nmnum ::= DELETE */
142092
- { 231, -1 }, /* (314) nmnum ::= DEFAULT */
142093
- { 169, -1 }, /* (315) plus_num ::= INTEGER|FLOAT */
142094
- { 236, 0 }, /* (316) foreach_clause ::= */
142095
- { 236, -3 }, /* (317) foreach_clause ::= FOR EACH ROW */
142096
- { 239, -1 }, /* (318) trnm ::= nm */
142097
- { 240, 0 }, /* (319) tridxby ::= */
142098
- { 241, -1 }, /* (320) database_kw_opt ::= DATABASE */
142099
- { 241, 0 }, /* (321) database_kw_opt ::= */
142100
- { 244, 0 }, /* (322) kwcolumn_opt ::= */
142101
- { 244, -1 }, /* (323) kwcolumn_opt ::= COLUMNKW */
142102
- { 246, -1 }, /* (324) vtabarglist ::= vtabarg */
142103
- { 246, -3 }, /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */
142104
- { 247, -2 }, /* (326) vtabarg ::= vtabarg vtabargtoken */
142105
- { 250, 0 }, /* (327) anylist ::= */
142106
- { 250, -4 }, /* (328) anylist ::= anylist LP anylist RP */
142107
- { 250, -2 }, /* (329) anylist ::= anylist ANY */
141929
+ { 163, -3 }, /* (80) select ::= WITH wqlist selectnowith */
141930
+ { 163, -4 }, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
141931
+ { 163, -1 }, /* (82) select ::= selectnowith */
141932
+ { 195, -3 }, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
141933
+ { 198, -1 }, /* (84) multiselect_op ::= UNION */
141934
+ { 198, -2 }, /* (85) multiselect_op ::= UNION ALL */
141935
+ { 198, -1 }, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
141936
+ { 196, -9 }, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
141937
+ { 207, -4 }, /* (88) values ::= VALUES LP nexprlist RP */
141938
+ { 207, -5 }, /* (89) values ::= values COMMA LP exprlist RP */
141939
+ { 199, -1 }, /* (90) distinct ::= DISTINCT */
141940
+ { 199, -1 }, /* (91) distinct ::= ALL */
141941
+ { 199, 0 }, /* (92) distinct ::= */
141942
+ { 210, 0 }, /* (93) sclp ::= */
141943
+ { 200, -5 }, /* (94) selcollist ::= sclp scanpt expr scanpt as */
141944
+ { 200, -3 }, /* (95) selcollist ::= sclp scanpt STAR */
141945
+ { 200, -5 }, /* (96) selcollist ::= sclp scanpt nm DOT STAR */
141946
+ { 211, -2 }, /* (97) as ::= AS nm */
141947
+ { 211, 0 }, /* (98) as ::= */
141948
+ { 201, 0 }, /* (99) from ::= */
141949
+ { 201, -2 }, /* (100) from ::= FROM seltablist */
141950
+ { 213, -2 }, /* (101) stl_prefix ::= seltablist joinop */
141951
+ { 213, 0 }, /* (102) stl_prefix ::= */
141952
+ { 212, -7 }, /* (103) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
141953
+ { 212, -9 }, /* (104) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
141954
+ { 212, -7 }, /* (105) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
141955
+ { 212, -7 }, /* (106) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
141956
+ { 159, 0 }, /* (107) dbnm ::= */
141957
+ { 159, -2 }, /* (108) dbnm ::= DOT nm */
141958
+ { 194, -1 }, /* (109) fullname ::= nm */
141959
+ { 194, -3 }, /* (110) fullname ::= nm DOT nm */
141960
+ { 214, -1 }, /* (111) joinop ::= COMMA|JOIN */
141961
+ { 214, -2 }, /* (112) joinop ::= JOIN_KW JOIN */
141962
+ { 214, -3 }, /* (113) joinop ::= JOIN_KW nm JOIN */
141963
+ { 214, -4 }, /* (114) joinop ::= JOIN_KW nm nm JOIN */
141964
+ { 216, -2 }, /* (115) on_opt ::= ON expr */
141965
+ { 216, 0 }, /* (116) on_opt ::= */
141966
+ { 215, 0 }, /* (117) indexed_opt ::= */
141967
+ { 215, -3 }, /* (118) indexed_opt ::= INDEXED BY nm */
141968
+ { 215, -2 }, /* (119) indexed_opt ::= NOT INDEXED */
141969
+ { 217, -4 }, /* (120) using_opt ::= USING LP idlist RP */
141970
+ { 217, 0 }, /* (121) using_opt ::= */
141971
+ { 205, 0 }, /* (122) orderby_opt ::= */
141972
+ { 205, -3 }, /* (123) orderby_opt ::= ORDER BY sortlist */
141973
+ { 187, -4 }, /* (124) sortlist ::= sortlist COMMA expr sortorder */
141974
+ { 187, -2 }, /* (125) sortlist ::= expr sortorder */
141975
+ { 176, -1 }, /* (126) sortorder ::= ASC */
141976
+ { 176, -1 }, /* (127) sortorder ::= DESC */
141977
+ { 176, 0 }, /* (128) sortorder ::= */
141978
+ { 203, 0 }, /* (129) groupby_opt ::= */
141979
+ { 203, -3 }, /* (130) groupby_opt ::= GROUP BY nexprlist */
141980
+ { 204, 0 }, /* (131) having_opt ::= */
141981
+ { 204, -2 }, /* (132) having_opt ::= HAVING expr */
141982
+ { 206, 0 }, /* (133) limit_opt ::= */
141983
+ { 206, -2 }, /* (134) limit_opt ::= LIMIT expr */
141984
+ { 206, -4 }, /* (135) limit_opt ::= LIMIT expr OFFSET expr */
141985
+ { 206, -4 }, /* (136) limit_opt ::= LIMIT expr COMMA expr */
141986
+ { 149, -6 }, /* (137) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
141987
+ { 202, 0 }, /* (138) where_opt ::= */
141988
+ { 202, -2 }, /* (139) where_opt ::= WHERE expr */
141989
+ { 149, -8 }, /* (140) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
141990
+ { 220, -5 }, /* (141) setlist ::= setlist COMMA nm EQ expr */
141991
+ { 220, -7 }, /* (142) setlist ::= setlist COMMA LP idlist RP EQ expr */
141992
+ { 220, -3 }, /* (143) setlist ::= nm EQ expr */
141993
+ { 220, -5 }, /* (144) setlist ::= LP idlist RP EQ expr */
141994
+ { 149, -6 }, /* (145) cmd ::= with insert_cmd INTO fullname idlist_opt select */
141995
+ { 149, -7 }, /* (146) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
141996
+ { 221, -2 }, /* (147) insert_cmd ::= INSERT orconf */
141997
+ { 221, -1 }, /* (148) insert_cmd ::= REPLACE */
141998
+ { 222, 0 }, /* (149) idlist_opt ::= */
141999
+ { 222, -3 }, /* (150) idlist_opt ::= LP idlist RP */
142000
+ { 218, -3 }, /* (151) idlist ::= idlist COMMA nm */
142001
+ { 218, -1 }, /* (152) idlist ::= nm */
142002
+ { 174, -3 }, /* (153) expr ::= LP expr RP */
142003
+ { 174, -1 }, /* (154) expr ::= ID|INDEXED */
142004
+ { 174, -1 }, /* (155) expr ::= JOIN_KW */
142005
+ { 174, -3 }, /* (156) expr ::= nm DOT nm */
142006
+ { 174, -5 }, /* (157) expr ::= nm DOT nm DOT nm */
142007
+ { 173, -1 }, /* (158) term ::= NULL|FLOAT|BLOB */
142008
+ { 173, -1 }, /* (159) term ::= STRING */
142009
+ { 173, -1 }, /* (160) term ::= INTEGER */
142010
+ { 174, -1 }, /* (161) expr ::= VARIABLE */
142011
+ { 174, -3 }, /* (162) expr ::= expr COLLATE ID|STRING */
142012
+ { 174, -6 }, /* (163) expr ::= CAST LP expr AS typetoken RP */
142013
+ { 174, -5 }, /* (164) expr ::= ID|INDEXED LP distinct exprlist RP */
142014
+ { 174, -4 }, /* (165) expr ::= ID|INDEXED LP STAR RP */
142015
+ { 173, -1 }, /* (166) term ::= CTIME_KW */
142016
+ { 174, -5 }, /* (167) expr ::= LP nexprlist COMMA expr RP */
142017
+ { 174, -3 }, /* (168) expr ::= expr AND expr */
142018
+ { 174, -3 }, /* (169) expr ::= expr OR expr */
142019
+ { 174, -3 }, /* (170) expr ::= expr LT|GT|GE|LE expr */
142020
+ { 174, -3 }, /* (171) expr ::= expr EQ|NE expr */
142021
+ { 174, -3 }, /* (172) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
142022
+ { 174, -3 }, /* (173) expr ::= expr PLUS|MINUS expr */
142023
+ { 174, -3 }, /* (174) expr ::= expr STAR|SLASH|REM expr */
142024
+ { 174, -3 }, /* (175) expr ::= expr CONCAT expr */
142025
+ { 223, -2 }, /* (176) likeop ::= NOT LIKE_KW|MATCH */
142026
+ { 174, -3 }, /* (177) expr ::= expr likeop expr */
142027
+ { 174, -5 }, /* (178) expr ::= expr likeop expr ESCAPE expr */
142028
+ { 174, -2 }, /* (179) expr ::= expr ISNULL|NOTNULL */
142029
+ { 174, -3 }, /* (180) expr ::= expr NOT NULL */
142030
+ { 174, -3 }, /* (181) expr ::= expr IS expr */
142031
+ { 174, -4 }, /* (182) expr ::= expr IS NOT expr */
142032
+ { 174, -2 }, /* (183) expr ::= NOT expr */
142033
+ { 174, -2 }, /* (184) expr ::= BITNOT expr */
142034
+ { 174, -2 }, /* (185) expr ::= MINUS expr */
142035
+ { 174, -2 }, /* (186) expr ::= PLUS expr */
142036
+ { 224, -1 }, /* (187) between_op ::= BETWEEN */
142037
+ { 224, -2 }, /* (188) between_op ::= NOT BETWEEN */
142038
+ { 174, -5 }, /* (189) expr ::= expr between_op expr AND expr */
142039
+ { 225, -1 }, /* (190) in_op ::= IN */
142040
+ { 225, -2 }, /* (191) in_op ::= NOT IN */
142041
+ { 174, -5 }, /* (192) expr ::= expr in_op LP exprlist RP */
142042
+ { 174, -3 }, /* (193) expr ::= LP select RP */
142043
+ { 174, -5 }, /* (194) expr ::= expr in_op LP select RP */
142044
+ { 174, -5 }, /* (195) expr ::= expr in_op nm dbnm paren_exprlist */
142045
+ { 174, -4 }, /* (196) expr ::= EXISTS LP select RP */
142046
+ { 174, -5 }, /* (197) expr ::= CASE case_operand case_exprlist case_else END */
142047
+ { 228, -5 }, /* (198) case_exprlist ::= case_exprlist WHEN expr THEN expr */
142048
+ { 228, -4 }, /* (199) case_exprlist ::= WHEN expr THEN expr */
142049
+ { 229, -2 }, /* (200) case_else ::= ELSE expr */
142050
+ { 229, 0 }, /* (201) case_else ::= */
142051
+ { 227, -1 }, /* (202) case_operand ::= expr */
142052
+ { 227, 0 }, /* (203) case_operand ::= */
142053
+ { 209, 0 }, /* (204) exprlist ::= */
142054
+ { 208, -3 }, /* (205) nexprlist ::= nexprlist COMMA expr */
142055
+ { 208, -1 }, /* (206) nexprlist ::= expr */
142056
+ { 226, 0 }, /* (207) paren_exprlist ::= */
142057
+ { 226, -3 }, /* (208) paren_exprlist ::= LP exprlist RP */
142058
+ { 149, -12 }, /* (209) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
142059
+ { 230, -1 }, /* (210) uniqueflag ::= UNIQUE */
142060
+ { 230, 0 }, /* (211) uniqueflag ::= */
142061
+ { 178, 0 }, /* (212) eidlist_opt ::= */
142062
+ { 178, -3 }, /* (213) eidlist_opt ::= LP eidlist RP */
142063
+ { 188, -5 }, /* (214) eidlist ::= eidlist COMMA nm collate sortorder */
142064
+ { 188, -3 }, /* (215) eidlist ::= nm collate sortorder */
142065
+ { 231, 0 }, /* (216) collate ::= */
142066
+ { 231, -2 }, /* (217) collate ::= COLLATE ID|STRING */
142067
+ { 149, -4 }, /* (218) cmd ::= DROP INDEX ifexists fullname */
142068
+ { 149, -1 }, /* (219) cmd ::= VACUUM */
142069
+ { 149, -2 }, /* (220) cmd ::= VACUUM nm */
142070
+ { 149, -3 }, /* (221) cmd ::= PRAGMA nm dbnm */
142071
+ { 149, -5 }, /* (222) cmd ::= PRAGMA nm dbnm EQ nmnum */
142072
+ { 149, -6 }, /* (223) cmd ::= PRAGMA nm dbnm LP nmnum RP */
142073
+ { 149, -5 }, /* (224) cmd ::= PRAGMA nm dbnm EQ minus_num */
142074
+ { 149, -6 }, /* (225) cmd ::= PRAGMA nm dbnm LP minus_num RP */
142075
+ { 169, -2 }, /* (226) plus_num ::= PLUS INTEGER|FLOAT */
142076
+ { 170, -2 }, /* (227) minus_num ::= MINUS INTEGER|FLOAT */
142077
+ { 149, -5 }, /* (228) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
142078
+ { 233, -11 }, /* (229) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
142079
+ { 235, -1 }, /* (230) trigger_time ::= BEFORE|AFTER */
142080
+ { 235, -2 }, /* (231) trigger_time ::= INSTEAD OF */
142081
+ { 235, 0 }, /* (232) trigger_time ::= */
142082
+ { 236, -1 }, /* (233) trigger_event ::= DELETE|INSERT */
142083
+ { 236, -1 }, /* (234) trigger_event ::= UPDATE */
142084
+ { 236, -3 }, /* (235) trigger_event ::= UPDATE OF idlist */
142085
+ { 238, 0 }, /* (236) when_clause ::= */
142086
+ { 238, -2 }, /* (237) when_clause ::= WHEN expr */
142087
+ { 234, -3 }, /* (238) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
142088
+ { 234, -2 }, /* (239) trigger_cmd_list ::= trigger_cmd SEMI */
142089
+ { 240, -3 }, /* (240) trnm ::= nm DOT nm */
142090
+ { 241, -3 }, /* (241) tridxby ::= INDEXED BY nm */
142091
+ { 241, -2 }, /* (242) tridxby ::= NOT INDEXED */
142092
+ { 239, -8 }, /* (243) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
142093
+ { 239, -7 }, /* (244) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
142094
+ { 239, -6 }, /* (245) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
142095
+ { 239, -3 }, /* (246) trigger_cmd ::= scanpt select scanpt */
142096
+ { 174, -4 }, /* (247) expr ::= RAISE LP IGNORE RP */
142097
+ { 174, -6 }, /* (248) expr ::= RAISE LP raisetype COMMA nm RP */
142098
+ { 192, -1 }, /* (249) raisetype ::= ROLLBACK */
142099
+ { 192, -1 }, /* (250) raisetype ::= ABORT */
142100
+ { 192, -1 }, /* (251) raisetype ::= FAIL */
142101
+ { 149, -4 }, /* (252) cmd ::= DROP TRIGGER ifexists fullname */
142102
+ { 149, -6 }, /* (253) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
142103
+ { 149, -3 }, /* (254) cmd ::= DETACH database_kw_opt expr */
142104
+ { 243, 0 }, /* (255) key_opt ::= */
142105
+ { 243, -2 }, /* (256) key_opt ::= KEY expr */
142106
+ { 149, -1 }, /* (257) cmd ::= REINDEX */
142107
+ { 149, -3 }, /* (258) cmd ::= REINDEX nm dbnm */
142108
+ { 149, -1 }, /* (259) cmd ::= ANALYZE */
142109
+ { 149, -3 }, /* (260) cmd ::= ANALYZE nm dbnm */
142110
+ { 149, -6 }, /* (261) cmd ::= ALTER TABLE fullname RENAME TO nm */
142111
+ { 149, -7 }, /* (262) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
142112
+ { 244, -1 }, /* (263) add_column_fullname ::= fullname */
142113
+ { 149, -1 }, /* (264) cmd ::= create_vtab */
142114
+ { 149, -4 }, /* (265) cmd ::= create_vtab LP vtabarglist RP */
142115
+ { 246, -8 }, /* (266) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
142116
+ { 248, 0 }, /* (267) vtabarg ::= */
142117
+ { 249, -1 }, /* (268) vtabargtoken ::= ANY */
142118
+ { 249, -3 }, /* (269) vtabargtoken ::= lp anylist RP */
142119
+ { 250, -1 }, /* (270) lp ::= LP */
142120
+ { 219, -2 }, /* (271) with ::= WITH wqlist */
142121
+ { 219, -3 }, /* (272) with ::= WITH RECURSIVE wqlist */
142122
+ { 197, -6 }, /* (273) wqlist ::= nm eidlist_opt AS LP select RP */
142123
+ { 197, -8 }, /* (274) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
142124
+ { 144, -1 }, /* (275) input ::= cmdlist */
142125
+ { 145, -2 }, /* (276) cmdlist ::= cmdlist ecmd */
142126
+ { 145, -1 }, /* (277) cmdlist ::= ecmd */
142127
+ { 146, -1 }, /* (278) ecmd ::= SEMI */
142128
+ { 146, -3 }, /* (279) ecmd ::= explain cmdx SEMI */
142129
+ { 147, 0 }, /* (280) explain ::= */
142130
+ { 151, 0 }, /* (281) trans_opt ::= */
142131
+ { 151, -1 }, /* (282) trans_opt ::= TRANSACTION */
142132
+ { 151, -2 }, /* (283) trans_opt ::= TRANSACTION nm */
142133
+ { 153, -1 }, /* (284) savepoint_opt ::= SAVEPOINT */
142134
+ { 153, 0 }, /* (285) savepoint_opt ::= */
142135
+ { 149, -2 }, /* (286) cmd ::= create_table create_table_args */
142136
+ { 160, -4 }, /* (287) columnlist ::= columnlist COMMA columnname carglist */
142137
+ { 160, -2 }, /* (288) columnlist ::= columnname carglist */
142138
+ { 152, -1 }, /* (289) nm ::= ID|INDEXED */
142139
+ { 152, -1 }, /* (290) nm ::= STRING */
142140
+ { 152, -1 }, /* (291) nm ::= JOIN_KW */
142141
+ { 166, -1 }, /* (292) typetoken ::= typename */
142142
+ { 167, -1 }, /* (293) typename ::= ID|STRING */
142143
+ { 168, -1 }, /* (294) signed ::= plus_num */
142144
+ { 168, -1 }, /* (295) signed ::= minus_num */
142145
+ { 165, -2 }, /* (296) carglist ::= carglist ccons */
142146
+ { 165, 0 }, /* (297) carglist ::= */
142147
+ { 172, -2 }, /* (298) ccons ::= NULL onconf */
142148
+ { 161, -2 }, /* (299) conslist_opt ::= COMMA conslist */
142149
+ { 184, -3 }, /* (300) conslist ::= conslist tconscomma tcons */
142150
+ { 184, -1 }, /* (301) conslist ::= tcons */
142151
+ { 185, 0 }, /* (302) tconscomma ::= */
142152
+ { 189, -1 }, /* (303) defer_subclause_opt ::= defer_subclause */
142153
+ { 191, -1 }, /* (304) resolvetype ::= raisetype */
142154
+ { 195, -1 }, /* (305) selectnowith ::= oneselect */
142155
+ { 196, -1 }, /* (306) oneselect ::= values */
142156
+ { 210, -2 }, /* (307) sclp ::= selcollist COMMA */
142157
+ { 211, -1 }, /* (308) as ::= ID|STRING */
142158
+ { 174, -1 }, /* (309) expr ::= term */
142159
+ { 223, -1 }, /* (310) likeop ::= LIKE_KW|MATCH */
142160
+ { 209, -1 }, /* (311) exprlist ::= nexprlist */
142161
+ { 232, -1 }, /* (312) nmnum ::= plus_num */
142162
+ { 232, -1 }, /* (313) nmnum ::= nm */
142163
+ { 232, -1 }, /* (314) nmnum ::= ON */
142164
+ { 232, -1 }, /* (315) nmnum ::= DELETE */
142165
+ { 232, -1 }, /* (316) nmnum ::= DEFAULT */
142166
+ { 169, -1 }, /* (317) plus_num ::= INTEGER|FLOAT */
142167
+ { 237, 0 }, /* (318) foreach_clause ::= */
142168
+ { 237, -3 }, /* (319) foreach_clause ::= FOR EACH ROW */
142169
+ { 240, -1 }, /* (320) trnm ::= nm */
142170
+ { 241, 0 }, /* (321) tridxby ::= */
142171
+ { 242, -1 }, /* (322) database_kw_opt ::= DATABASE */
142172
+ { 242, 0 }, /* (323) database_kw_opt ::= */
142173
+ { 245, 0 }, /* (324) kwcolumn_opt ::= */
142174
+ { 245, -1 }, /* (325) kwcolumn_opt ::= COLUMNKW */
142175
+ { 247, -1 }, /* (326) vtabarglist ::= vtabarg */
142176
+ { 247, -3 }, /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */
142177
+ { 248, -2 }, /* (328) vtabarg ::= vtabarg vtabargtoken */
142178
+ { 251, 0 }, /* (329) anylist ::= */
142179
+ { 251, -4 }, /* (330) anylist ::= anylist LP anylist RP */
142180
+ { 251, -2 }, /* (331) anylist ::= anylist ANY */
142181
+ { 219, 0 }, /* (332) with ::= */
142108142182
};
142109142183
142110142184
static void yy_accept(yyParser*); /* Forward Declaration */
142111142185
142112142186
/*
@@ -142236,12 +142310,12 @@
142236142310
case 21: /* table_options ::= */ yytestcase(yyruleno==21);
142237142311
case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
142238142312
case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
142239142313
case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
142240142314
case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
142241
- case 90: /* distinct ::= */ yytestcase(yyruleno==90);
142242
- case 213: /* collate ::= */ yytestcase(yyruleno==213);
142315
+ case 92: /* distinct ::= */ yytestcase(yyruleno==92);
142316
+ case 216: /* collate ::= */ yytestcase(yyruleno==216);
142243142317
{yymsp[1].minor.yy4 = 0;}
142244142318
break;
142245142319
case 16: /* ifnotexists ::= IF NOT EXISTS */
142246142320
{yymsp[-2].minor.yy4 = 1;}
142247142321
break;
@@ -142273,11 +142347,11 @@
142273142347
case 23: /* columnname ::= nm typetoken */
142274142348
{sqlite3AddColumn(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
142275142349
break;
142276142350
case 24: /* typetoken ::= */
142277142351
case 60: /* conslist_opt ::= */ yytestcase(yyruleno==60);
142278
- case 96: /* as ::= */ yytestcase(yyruleno==96);
142352
+ case 98: /* as ::= */ yytestcase(yyruleno==98);
142279142353
{yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;}
142280142354
break;
142281142355
case 25: /* typetoken ::= typename LP signed RP */
142282142356
{
142283142357
yymsp[-3].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z);
@@ -142384,18 +142458,18 @@
142384142458
case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
142385142459
{yymsp[-2].minor.yy4 = 0;}
142386142460
break;
142387142461
case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
142388142462
case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
142389
- case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144);
142463
+ case 147: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==147);
142390142464
{yymsp[-1].minor.yy4 = yymsp[0].minor.yy4;}
142391142465
break;
142392142466
case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
142393142467
case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
142394
- case 185: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==185);
142395
- case 188: /* in_op ::= NOT IN */ yytestcase(yyruleno==188);
142396
- case 214: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==214);
142468
+ case 188: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==188);
142469
+ case 191: /* in_op ::= NOT IN */ yytestcase(yyruleno==191);
142470
+ case 217: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==217);
142397142471
{yymsp[-1].minor.yy4 = 1;}
142398142472
break;
142399142473
case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
142400142474
{yymsp[-1].minor.yy4 = 0;}
142401142475
break;
@@ -142427,11 +142501,11 @@
142427142501
break;
142428142502
case 72: /* resolvetype ::= IGNORE */
142429142503
{yymsp[0].minor.yy4 = OE_Ignore;}
142430142504
break;
142431142505
case 73: /* resolvetype ::= REPLACE */
142432
- case 145: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==145);
142506
+ case 148: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==148);
142433142507
{yymsp[0].minor.yy4 = OE_Replace;}
142434142508
break;
142435142509
case 74: /* cmd ::= DROP TABLE ifexists fullname */
142436142510
{
142437142511
sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0, yymsp[-1].minor.yy4);
@@ -142452,23 +142526,44 @@
142452142526
SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
142453142527
sqlite3Select(pParse, yymsp[0].minor.yy387, &dest);
142454142528
sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
142455142529
}
142456142530
break;
142457
- case 80: /* select ::= with selectnowith */
142531
+ case 80: /* select ::= WITH wqlist selectnowith */
142532
+{
142533
+ Select *p = yymsp[0].minor.yy387;
142534
+ if( p ){
142535
+ p->pWith = yymsp[-1].minor.yy451;
142536
+ parserDoubleLinkSelect(pParse, p);
142537
+ }else{
142538
+ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
142539
+ }
142540
+ yymsp[-2].minor.yy387 = p;
142541
+}
142542
+ break;
142543
+ case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
142458142544
{
142459142545
Select *p = yymsp[0].minor.yy387;
142460142546
if( p ){
142461142547
p->pWith = yymsp[-1].minor.yy451;
142462142548
parserDoubleLinkSelect(pParse, p);
142463142549
}else{
142464142550
sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
142465142551
}
142466
- yymsp[-1].minor.yy387 = p; /*A-overwrites-W*/
142552
+ yymsp[-3].minor.yy387 = p;
142467142553
}
142468142554
break;
142469
- case 81: /* selectnowith ::= selectnowith multiselect_op oneselect */
142555
+ case 82: /* select ::= selectnowith */
142556
+{
142557
+ Select *p = yymsp[0].minor.yy387;
142558
+ if( p ){
142559
+ parserDoubleLinkSelect(pParse, p);
142560
+ }
142561
+ yymsp[0].minor.yy387 = p; /*A-overwrites-X*/
142562
+}
142563
+ break;
142564
+ case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
142470142565
{
142471142566
Select *pRhs = yymsp[0].minor.yy387;
142472142567
Select *pLhs = yymsp[-2].minor.yy387;
142473142568
if( pRhs && pRhs->pPrior ){
142474142569
SrcList *pFrom;
@@ -142488,18 +142583,18 @@
142488142583
sqlite3SelectDelete(pParse->db, pLhs);
142489142584
}
142490142585
yymsp[-2].minor.yy387 = pRhs;
142491142586
}
142492142587
break;
142493
- case 82: /* multiselect_op ::= UNION */
142494
- case 84: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==84);
142588
+ case 84: /* multiselect_op ::= UNION */
142589
+ case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
142495142590
{yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-OP*/}
142496142591
break;
142497
- case 83: /* multiselect_op ::= UNION ALL */
142592
+ case 85: /* multiselect_op ::= UNION ALL */
142498142593
{yymsp[-1].minor.yy4 = TK_ALL;}
142499142594
break;
142500
- case 85: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
142595
+ case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
142501142596
{
142502142597
#if SELECTTRACE_ENABLED
142503142598
Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/
142504142599
#endif
142505142600
yymsp[-8].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy259,yymsp[-4].minor.yy314,yymsp[-3].minor.yy322,yymsp[-2].minor.yy314,yymsp[-1].minor.yy322,yymsp[-7].minor.yy4,yymsp[0].minor.yy314);
@@ -142526,16 +142621,16 @@
142526142621
}
142527142622
}
142528142623
#endif /* SELECTRACE_ENABLED */
142529142624
}
142530142625
break;
142531
- case 86: /* values ::= VALUES LP nexprlist RP */
142626
+ case 88: /* values ::= VALUES LP nexprlist RP */
142532142627
{
142533142628
yymsp[-3].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0);
142534142629
}
142535142630
break;
142536
- case 87: /* values ::= values COMMA LP exprlist RP */
142631
+ case 89: /* values ::= values COMMA LP exprlist RP */
142537142632
{
142538142633
Select *pRight, *pLeft = yymsp[-4].minor.yy387;
142539142634
pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0);
142540142635
if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
142541142636
if( pRight ){
@@ -142545,86 +142640,86 @@
142545142640
}else{
142546142641
yymsp[-4].minor.yy387 = pLeft;
142547142642
}
142548142643
}
142549142644
break;
142550
- case 88: /* distinct ::= DISTINCT */
142645
+ case 90: /* distinct ::= DISTINCT */
142551142646
{yymsp[0].minor.yy4 = SF_Distinct;}
142552142647
break;
142553
- case 89: /* distinct ::= ALL */
142648
+ case 91: /* distinct ::= ALL */
142554142649
{yymsp[0].minor.yy4 = SF_All;}
142555142650
break;
142556
- case 91: /* sclp ::= */
142557
- case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119);
142558
- case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126);
142559
- case 201: /* exprlist ::= */ yytestcase(yyruleno==201);
142560
- case 204: /* paren_exprlist ::= */ yytestcase(yyruleno==204);
142561
- case 209: /* eidlist_opt ::= */ yytestcase(yyruleno==209);
142651
+ case 93: /* sclp ::= */
142652
+ case 122: /* orderby_opt ::= */ yytestcase(yyruleno==122);
142653
+ case 129: /* groupby_opt ::= */ yytestcase(yyruleno==129);
142654
+ case 204: /* exprlist ::= */ yytestcase(yyruleno==204);
142655
+ case 207: /* paren_exprlist ::= */ yytestcase(yyruleno==207);
142656
+ case 212: /* eidlist_opt ::= */ yytestcase(yyruleno==212);
142562142657
{yymsp[1].minor.yy322 = 0;}
142563142658
break;
142564
- case 92: /* selcollist ::= sclp scanpt expr scanpt as */
142659
+ case 94: /* selcollist ::= sclp scanpt expr scanpt as */
142565142660
{
142566142661
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
142567142662
if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1);
142568142663
sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy336,yymsp[-1].minor.yy336);
142569142664
}
142570142665
break;
142571
- case 93: /* selcollist ::= sclp scanpt STAR */
142666
+ case 95: /* selcollist ::= sclp scanpt STAR */
142572142667
{
142573142668
Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
142574142669
yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p);
142575142670
}
142576142671
break;
142577
- case 94: /* selcollist ::= sclp scanpt nm DOT STAR */
142672
+ case 96: /* selcollist ::= sclp scanpt nm DOT STAR */
142578142673
{
142579142674
Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
142580142675
Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142581142676
Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
142582142677
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot);
142583142678
}
142584142679
break;
142585
- case 95: /* as ::= AS nm */
142586
- case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106);
142587
- case 223: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
142588
- case 224: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
142680
+ case 97: /* as ::= AS nm */
142681
+ case 108: /* dbnm ::= DOT nm */ yytestcase(yyruleno==108);
142682
+ case 226: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==226);
142683
+ case 227: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==227);
142589142684
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
142590142685
break;
142591
- case 97: /* from ::= */
142686
+ case 99: /* from ::= */
142592142687
{yymsp[1].minor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy259));}
142593142688
break;
142594
- case 98: /* from ::= FROM seltablist */
142689
+ case 100: /* from ::= FROM seltablist */
142595142690
{
142596142691
yymsp[-1].minor.yy259 = yymsp[0].minor.yy259;
142597142692
sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy259);
142598142693
}
142599142694
break;
142600
- case 99: /* stl_prefix ::= seltablist joinop */
142695
+ case 101: /* stl_prefix ::= seltablist joinop */
142601142696
{
142602142697
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;
142603142698
}
142604142699
break;
142605
- case 100: /* stl_prefix ::= */
142700
+ case 102: /* stl_prefix ::= */
142606142701
{yymsp[1].minor.yy259 = 0;}
142607142702
break;
142608
- case 101: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
142703
+ case 103: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
142609142704
{
142610142705
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);
142611142706
sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy259, &yymsp[-2].minor.yy0);
142612142707
}
142613142708
break;
142614
- case 102: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
142709
+ case 104: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
142615142710
{
142616142711
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);
142617142712
sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy259, yymsp[-4].minor.yy322);
142618142713
}
142619142714
break;
142620
- case 103: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
142715
+ case 105: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
142621142716
{
142622142717
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);
142623142718
}
142624142719
break;
142625
- case 104: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
142720
+ case 106: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
142626142721
{
142627142722
if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy314==0 && yymsp[0].minor.yy384==0 ){
142628142723
yymsp[-6].minor.yy259 = yymsp[-4].minor.yy259;
142629142724
}else if( yymsp[-4].minor.yy259->nSrc==1 ){
142630142725
yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
@@ -142644,185 +142739,184 @@
142644142739
pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy259,0,0,0,0,SF_NestedFrom,0);
142645142740
yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142646142741
}
142647142742
}
142648142743
break;
142649
- case 105: /* dbnm ::= */
142650
- case 114: /* indexed_opt ::= */ yytestcase(yyruleno==114);
142744
+ case 107: /* dbnm ::= */
142745
+ case 117: /* indexed_opt ::= */ yytestcase(yyruleno==117);
142651142746
{yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
142652142747
break;
142653
- case 107: /* fullname ::= nm dbnm */
142654
-{yymsp[-1].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
142748
+ case 109: /* fullname ::= nm */
142749
+{yymsp[0].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
142655142750
break;
142656
- case 108: /* joinop ::= COMMA|JOIN */
142751
+ case 110: /* fullname ::= nm DOT nm */
142752
+{yymsp[-2].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
142753
+ break;
142754
+ case 111: /* joinop ::= COMMA|JOIN */
142657142755
{ yymsp[0].minor.yy4 = JT_INNER; }
142658142756
break;
142659
- case 109: /* joinop ::= JOIN_KW JOIN */
142757
+ case 112: /* joinop ::= JOIN_KW JOIN */
142660142758
{yymsp[-1].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
142661142759
break;
142662
- case 110: /* joinop ::= JOIN_KW nm JOIN */
142760
+ case 113: /* joinop ::= JOIN_KW nm JOIN */
142663142761
{yymsp[-2].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
142664142762
break;
142665
- case 111: /* joinop ::= JOIN_KW nm nm JOIN */
142763
+ case 114: /* joinop ::= JOIN_KW nm nm JOIN */
142666142764
{yymsp[-3].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
142667142765
break;
142668
- case 112: /* on_opt ::= ON expr */
142669
- case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129);
142670
- case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136);
142671
- case 197: /* case_else ::= ELSE expr */ yytestcase(yyruleno==197);
142766
+ case 115: /* on_opt ::= ON expr */
142767
+ case 132: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==132);
142768
+ case 139: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==139);
142769
+ case 200: /* case_else ::= ELSE expr */ yytestcase(yyruleno==200);
142672142770
{yymsp[-1].minor.yy314 = yymsp[0].minor.yy314;}
142673142771
break;
142674
- case 113: /* on_opt ::= */
142675
- case 128: /* having_opt ::= */ yytestcase(yyruleno==128);
142676
- case 130: /* limit_opt ::= */ yytestcase(yyruleno==130);
142677
- case 135: /* where_opt ::= */ yytestcase(yyruleno==135);
142678
- case 198: /* case_else ::= */ yytestcase(yyruleno==198);
142679
- case 200: /* case_operand ::= */ yytestcase(yyruleno==200);
142772
+ case 116: /* on_opt ::= */
142773
+ case 131: /* having_opt ::= */ yytestcase(yyruleno==131);
142774
+ case 133: /* limit_opt ::= */ yytestcase(yyruleno==133);
142775
+ case 138: /* where_opt ::= */ yytestcase(yyruleno==138);
142776
+ case 201: /* case_else ::= */ yytestcase(yyruleno==201);
142777
+ case 203: /* case_operand ::= */ yytestcase(yyruleno==203);
142680142778
{yymsp[1].minor.yy314 = 0;}
142681142779
break;
142682
- case 115: /* indexed_opt ::= INDEXED BY nm */
142780
+ case 118: /* indexed_opt ::= INDEXED BY nm */
142683142781
{yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
142684142782
break;
142685
- case 116: /* indexed_opt ::= NOT INDEXED */
142783
+ case 119: /* indexed_opt ::= NOT INDEXED */
142686142784
{yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
142687142785
break;
142688
- case 117: /* using_opt ::= USING LP idlist RP */
142786
+ case 120: /* using_opt ::= USING LP idlist RP */
142689142787
{yymsp[-3].minor.yy384 = yymsp[-1].minor.yy384;}
142690142788
break;
142691
- case 118: /* using_opt ::= */
142692
- case 146: /* idlist_opt ::= */ yytestcase(yyruleno==146);
142789
+ case 121: /* using_opt ::= */
142790
+ case 149: /* idlist_opt ::= */ yytestcase(yyruleno==149);
142693142791
{yymsp[1].minor.yy384 = 0;}
142694142792
break;
142695
- case 120: /* orderby_opt ::= ORDER BY sortlist */
142696
- case 127: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==127);
142793
+ case 123: /* orderby_opt ::= ORDER BY sortlist */
142794
+ case 130: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==130);
142697142795
{yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;}
142698142796
break;
142699
- case 121: /* sortlist ::= sortlist COMMA expr sortorder */
142797
+ case 124: /* sortlist ::= sortlist COMMA expr sortorder */
142700142798
{
142701142799
yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[-1].minor.yy314);
142702142800
sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy322,yymsp[0].minor.yy4);
142703142801
}
142704142802
break;
142705
- case 122: /* sortlist ::= expr sortorder */
142803
+ case 125: /* sortlist ::= expr sortorder */
142706142804
{
142707142805
yymsp[-1].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314); /*A-overwrites-Y*/
142708142806
sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy322,yymsp[0].minor.yy4);
142709142807
}
142710142808
break;
142711
- case 123: /* sortorder ::= ASC */
142809
+ case 126: /* sortorder ::= ASC */
142712142810
{yymsp[0].minor.yy4 = SQLITE_SO_ASC;}
142713142811
break;
142714
- case 124: /* sortorder ::= DESC */
142812
+ case 127: /* sortorder ::= DESC */
142715142813
{yymsp[0].minor.yy4 = SQLITE_SO_DESC;}
142716142814
break;
142717
- case 125: /* sortorder ::= */
142815
+ case 128: /* sortorder ::= */
142718142816
{yymsp[1].minor.yy4 = SQLITE_SO_UNDEFINED;}
142719142817
break;
142720
- case 131: /* limit_opt ::= LIMIT expr */
142818
+ case 134: /* limit_opt ::= LIMIT expr */
142721142819
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,0);}
142722142820
break;
142723
- case 132: /* limit_opt ::= LIMIT expr OFFSET expr */
142821
+ case 135: /* limit_opt ::= LIMIT expr OFFSET expr */
142724142822
{yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142725142823
break;
142726
- case 133: /* limit_opt ::= LIMIT expr COMMA expr */
142824
+ case 136: /* limit_opt ::= LIMIT expr COMMA expr */
142727142825
{yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,yymsp[-2].minor.yy314);}
142728142826
break;
142729
- case 134: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
142827
+ case 137: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
142730142828
{
142731
- sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
142732142829
sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0);
142733142830
sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314,0,0);
142734142831
}
142735142832
break;
142736
- case 137: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
142833
+ case 140: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
142737142834
{
142738
- sqlite3WithPush(pParse, yymsp[-7].minor.yy451, 1);
142739142835
sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0);
142740142836
sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list");
142741142837
sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].minor.yy314,yymsp[-5].minor.yy4,0,0);
142742142838
}
142743142839
break;
142744
- case 138: /* setlist ::= setlist COMMA nm EQ expr */
142840
+ case 141: /* setlist ::= setlist COMMA nm EQ expr */
142745142841
{
142746142842
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
142747142843
sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1);
142748142844
}
142749142845
break;
142750
- case 139: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
142846
+ case 142: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
142751142847
{
142752142848
yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142753142849
}
142754142850
break;
142755
- case 140: /* setlist ::= nm EQ expr */
142851
+ case 143: /* setlist ::= nm EQ expr */
142756142852
{
142757142853
yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy314);
142758142854
sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1);
142759142855
}
142760142856
yymsp[-2].minor.yy322 = yylhsminor.yy322;
142761142857
break;
142762
- case 141: /* setlist ::= LP idlist RP EQ expr */
142858
+ case 144: /* setlist ::= LP idlist RP EQ expr */
142763142859
{
142764142860
yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142765142861
}
142766142862
break;
142767
- case 142: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
142863
+ case 145: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
142768142864
{
142769
- sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
142770142865
sqlite3Insert(pParse, yymsp[-2].minor.yy259, yymsp[0].minor.yy387, yymsp[-1].minor.yy384, yymsp[-4].minor.yy4);
142771142866
}
142772142867
break;
142773
- case 143: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
142868
+ case 146: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
142774142869
{
142775
- sqlite3WithPush(pParse, yymsp[-6].minor.yy451, 1);
142776142870
sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, yymsp[-2].minor.yy384, yymsp[-5].minor.yy4);
142777142871
}
142778142872
break;
142779
- case 147: /* idlist_opt ::= LP idlist RP */
142873
+ case 150: /* idlist_opt ::= LP idlist RP */
142780142874
{yymsp[-2].minor.yy384 = yymsp[-1].minor.yy384;}
142781142875
break;
142782
- case 148: /* idlist ::= idlist COMMA nm */
142876
+ case 151: /* idlist ::= idlist COMMA nm */
142783142877
{yymsp[-2].minor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp[0].minor.yy0);}
142784142878
break;
142785
- case 149: /* idlist ::= nm */
142879
+ case 152: /* idlist ::= nm */
142786142880
{yymsp[0].minor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
142787142881
break;
142788
- case 150: /* expr ::= LP expr RP */
142882
+ case 153: /* expr ::= LP expr RP */
142789142883
{yymsp[-2].minor.yy314 = yymsp[-1].minor.yy314;}
142790142884
break;
142791
- case 151: /* expr ::= ID|INDEXED */
142792
- case 152: /* expr ::= JOIN_KW */ yytestcase(yyruleno==152);
142885
+ case 154: /* expr ::= ID|INDEXED */
142886
+ case 155: /* expr ::= JOIN_KW */ yytestcase(yyruleno==155);
142793142887
{yymsp[0].minor.yy314=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142794142888
break;
142795
- case 153: /* expr ::= nm DOT nm */
142889
+ case 156: /* expr ::= nm DOT nm */
142796142890
{
142797142891
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142798142892
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142799142893
yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
142800142894
}
142801142895
yymsp[-2].minor.yy314 = yylhsminor.yy314;
142802142896
break;
142803
- case 154: /* expr ::= nm DOT nm DOT nm */
142897
+ case 157: /* expr ::= nm DOT nm DOT nm */
142804142898
{
142805142899
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
142806142900
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142807142901
Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142808142902
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
142809142903
yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
142810142904
}
142811142905
yymsp[-4].minor.yy314 = yylhsminor.yy314;
142812142906
break;
142813
- case 155: /* term ::= NULL|FLOAT|BLOB */
142814
- case 156: /* term ::= STRING */ yytestcase(yyruleno==156);
142907
+ case 158: /* term ::= NULL|FLOAT|BLOB */
142908
+ case 159: /* term ::= STRING */ yytestcase(yyruleno==159);
142815142909
{yymsp[0].minor.yy314=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142816142910
break;
142817
- case 157: /* term ::= INTEGER */
142911
+ case 160: /* term ::= INTEGER */
142818142912
{
142819142913
yylhsminor.yy314 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
142820142914
}
142821142915
yymsp[0].minor.yy314 = yylhsminor.yy314;
142822142916
break;
142823
- case 158: /* expr ::= VARIABLE */
142917
+ case 161: /* expr ::= VARIABLE */
142824142918
{
142825142919
if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
142826142920
u32 n = yymsp[0].minor.yy0.n;
142827142921
yymsp[0].minor.yy314 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
142828142922
sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy314, n);
@@ -142840,22 +142934,22 @@
142840142934
if( yymsp[0].minor.yy314 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy314->iTable);
142841142935
}
142842142936
}
142843142937
}
142844142938
break;
142845
- case 159: /* expr ::= expr COLLATE ID|STRING */
142939
+ case 162: /* expr ::= expr COLLATE ID|STRING */
142846142940
{
142847142941
yymsp[-2].minor.yy314 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy314, &yymsp[0].minor.yy0, 1);
142848142942
}
142849142943
break;
142850
- case 160: /* expr ::= CAST LP expr AS typetoken RP */
142944
+ case 163: /* expr ::= CAST LP expr AS typetoken RP */
142851142945
{
142852142946
yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
142853142947
sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy314, yymsp[-3].minor.yy314, 0);
142854142948
}
142855142949
break;
142856
- case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
142950
+ case 164: /* expr ::= ID|INDEXED LP distinct exprlist RP */
142857142951
{
142858142952
if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
142859142953
sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
142860142954
}
142861142955
yylhsminor.yy314 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0);
@@ -142863,23 +142957,23 @@
142863142957
yylhsminor.yy314->flags |= EP_Distinct;
142864142958
}
142865142959
}
142866142960
yymsp[-4].minor.yy314 = yylhsminor.yy314;
142867142961
break;
142868
- case 162: /* expr ::= ID|INDEXED LP STAR RP */
142962
+ case 165: /* expr ::= ID|INDEXED LP STAR RP */
142869142963
{
142870142964
yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
142871142965
}
142872142966
yymsp[-3].minor.yy314 = yylhsminor.yy314;
142873142967
break;
142874
- case 163: /* term ::= CTIME_KW */
142968
+ case 166: /* term ::= CTIME_KW */
142875142969
{
142876142970
yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
142877142971
}
142878142972
yymsp[0].minor.yy314 = yylhsminor.yy314;
142879142973
break;
142880
- case 164: /* expr ::= LP nexprlist COMMA expr RP */
142974
+ case 167: /* expr ::= LP nexprlist COMMA expr RP */
142881142975
{
142882142976
ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy314);
142883142977
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
142884142978
if( yymsp[-4].minor.yy314 ){
142885142979
yymsp[-4].minor.yy314->x.pList = pList;
@@ -142886,24 +142980,24 @@
142886142980
}else{
142887142981
sqlite3ExprListDelete(pParse->db, pList);
142888142982
}
142889142983
}
142890142984
break;
142891
- case 165: /* expr ::= expr AND expr */
142892
- case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
142893
- case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
142894
- case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
142895
- case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
142896
- case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
142897
- case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
142898
- case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
142985
+ case 168: /* expr ::= expr AND expr */
142986
+ case 169: /* expr ::= expr OR expr */ yytestcase(yyruleno==169);
142987
+ case 170: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==170);
142988
+ case 171: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==171);
142989
+ case 172: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==172);
142990
+ case 173: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==173);
142991
+ case 174: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==174);
142992
+ case 175: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==175);
142899142993
{yymsp[-2].minor.yy314=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142900142994
break;
142901
- case 173: /* likeop ::= NOT LIKE_KW|MATCH */
142995
+ case 176: /* likeop ::= NOT LIKE_KW|MATCH */
142902142996
{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
142903142997
break;
142904
- case 174: /* expr ::= expr likeop expr */
142998
+ case 177: /* expr ::= expr likeop expr */
142905142999
{
142906143000
ExprList *pList;
142907143001
int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
142908143002
yymsp[-1].minor.yy0.n &= 0x7fffffff;
142909143003
pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy314);
@@ -142911,11 +143005,11 @@
142911143005
yymsp[-2].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
142912143006
if( bNot ) yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy314, 0);
142913143007
if( yymsp[-2].minor.yy314 ) yymsp[-2].minor.yy314->flags |= EP_InfixFunc;
142914143008
}
142915143009
break;
142916
- case 175: /* expr ::= expr likeop expr ESCAPE expr */
143010
+ case 178: /* expr ::= expr likeop expr ESCAPE expr */
142917143011
{
142918143012
ExprList *pList;
142919143013
int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
142920143014
yymsp[-3].minor.yy0.n &= 0x7fffffff;
142921143015
pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
@@ -142924,43 +143018,43 @@
142924143018
yymsp[-4].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
142925143019
if( bNot ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
142926143020
if( yymsp[-4].minor.yy314 ) yymsp[-4].minor.yy314->flags |= EP_InfixFunc;
142927143021
}
142928143022
break;
142929
- case 176: /* expr ::= expr ISNULL|NOTNULL */
143023
+ case 179: /* expr ::= expr ISNULL|NOTNULL */
142930143024
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy314,0);}
142931143025
break;
142932
- case 177: /* expr ::= expr NOT NULL */
143026
+ case 180: /* expr ::= expr NOT NULL */
142933143027
{yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy314,0);}
142934143028
break;
142935
- case 178: /* expr ::= expr IS expr */
143029
+ case 181: /* expr ::= expr IS expr */
142936143030
{
142937143031
yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);
142938143032
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-2].minor.yy314, TK_ISNULL);
142939143033
}
142940143034
break;
142941
- case 179: /* expr ::= expr IS NOT expr */
143035
+ case 182: /* expr ::= expr IS NOT expr */
142942143036
{
142943143037
yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy314,yymsp[0].minor.yy314);
142944143038
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-3].minor.yy314, TK_NOTNULL);
142945143039
}
142946143040
break;
142947
- case 180: /* expr ::= NOT expr */
142948
- case 181: /* expr ::= BITNOT expr */ yytestcase(yyruleno==181);
143041
+ case 183: /* expr ::= NOT expr */
143042
+ case 184: /* expr ::= BITNOT expr */ yytestcase(yyruleno==184);
142949143043
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy314, 0);/*A-overwrites-B*/}
142950143044
break;
142951
- case 182: /* expr ::= MINUS expr */
143045
+ case 185: /* expr ::= MINUS expr */
142952143046
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy314, 0);}
142953143047
break;
142954
- case 183: /* expr ::= PLUS expr */
143048
+ case 186: /* expr ::= PLUS expr */
142955143049
{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy314, 0);}
142956143050
break;
142957
- case 184: /* between_op ::= BETWEEN */
142958
- case 187: /* in_op ::= IN */ yytestcase(yyruleno==187);
143051
+ case 187: /* between_op ::= BETWEEN */
143052
+ case 190: /* in_op ::= IN */ yytestcase(yyruleno==190);
142959143053
{yymsp[0].minor.yy4 = 0;}
142960143054
break;
142961
- case 186: /* expr ::= expr between_op expr AND expr */
143055
+ case 189: /* expr ::= expr between_op expr AND expr */
142962143056
{
142963143057
ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
142964143058
pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314);
142965143059
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy314, 0);
142966143060
if( yymsp[-4].minor.yy314 ){
@@ -142969,11 +143063,11 @@
142969143063
sqlite3ExprListDelete(pParse->db, pList);
142970143064
}
142971143065
if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
142972143066
}
142973143067
break;
142974
- case 189: /* expr ::= expr in_op LP exprlist RP */
143068
+ case 192: /* expr ::= expr in_op LP exprlist RP */
142975143069
{
142976143070
if( yymsp[-1].minor.yy322==0 ){
142977143071
/* Expressions of the form
142978143072
**
142979143073
** expr1 IN ()
@@ -143021,41 +143115,41 @@
143021143115
}
143022143116
if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143023143117
}
143024143118
}
143025143119
break;
143026
- case 190: /* expr ::= LP select RP */
143120
+ case 193: /* expr ::= LP select RP */
143027143121
{
143028143122
yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
143029143123
sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy314, yymsp[-1].minor.yy387);
143030143124
}
143031143125
break;
143032
- case 191: /* expr ::= expr in_op LP select RP */
143126
+ case 194: /* expr ::= expr in_op LP select RP */
143033143127
{
143034143128
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143035143129
sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, yymsp[-1].minor.yy387);
143036143130
if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143037143131
}
143038143132
break;
143039
- case 192: /* expr ::= expr in_op nm dbnm paren_exprlist */
143133
+ case 195: /* expr ::= expr in_op nm dbnm paren_exprlist */
143040143134
{
143041143135
SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
143042143136
Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
143043143137
if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322);
143044143138
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143045143139
sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, pSelect);
143046143140
if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143047143141
}
143048143142
break;
143049
- case 193: /* expr ::= EXISTS LP select RP */
143143
+ case 196: /* expr ::= EXISTS LP select RP */
143050143144
{
143051143145
Expr *p;
143052143146
p = yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
143053143147
sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy387);
143054143148
}
143055143149
break;
143056
- case 194: /* expr ::= CASE case_operand case_exprlist case_else END */
143150
+ case 197: /* expr ::= CASE case_operand case_exprlist case_else END */
143057143151
{
143058143152
yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, 0);
143059143153
if( yymsp[-4].minor.yy314 ){
143060143154
yymsp[-4].minor.yy314->x.pList = yymsp[-1].minor.yy314 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy314) : yymsp[-2].minor.yy322;
143061143155
sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy314);
@@ -143063,334 +143157,330 @@
143063143157
sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322);
143064143158
sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy314);
143065143159
}
143066143160
}
143067143161
break;
143068
- case 195: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
143162
+ case 198: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
143069143163
{
143070143164
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
143071143165
yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
143072143166
}
143073143167
break;
143074
- case 196: /* case_exprlist ::= WHEN expr THEN expr */
143168
+ case 199: /* case_exprlist ::= WHEN expr THEN expr */
143075143169
{
143076143170
yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
143077143171
yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy314);
143078143172
}
143079143173
break;
143080
- case 199: /* case_operand ::= expr */
143174
+ case 202: /* case_operand ::= expr */
143081143175
{yymsp[0].minor.yy314 = yymsp[0].minor.yy314; /*A-overwrites-X*/}
143082143176
break;
143083
- case 202: /* nexprlist ::= nexprlist COMMA expr */
143177
+ case 205: /* nexprlist ::= nexprlist COMMA expr */
143084143178
{yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy314);}
143085143179
break;
143086
- case 203: /* nexprlist ::= expr */
143180
+ case 206: /* nexprlist ::= expr */
143087143181
{yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy314); /*A-overwrites-Y*/}
143088143182
break;
143089
- case 205: /* paren_exprlist ::= LP exprlist RP */
143090
- case 210: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==210);
143183
+ case 208: /* paren_exprlist ::= LP exprlist RP */
143184
+ case 213: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==213);
143091143185
{yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;}
143092143186
break;
143093
- case 206: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
143187
+ case 209: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
143094143188
{
143095143189
sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
143096143190
sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy4,
143097143191
&yymsp[-11].minor.yy0, yymsp[0].minor.yy314, SQLITE_SO_ASC, yymsp[-8].minor.yy4, SQLITE_IDXTYPE_APPDEF);
143098143192
}
143099143193
break;
143100
- case 207: /* uniqueflag ::= UNIQUE */
143101
- case 247: /* raisetype ::= ABORT */ yytestcase(yyruleno==247);
143194
+ case 210: /* uniqueflag ::= UNIQUE */
143195
+ case 250: /* raisetype ::= ABORT */ yytestcase(yyruleno==250);
143102143196
{yymsp[0].minor.yy4 = OE_Abort;}
143103143197
break;
143104
- case 208: /* uniqueflag ::= */
143198
+ case 211: /* uniqueflag ::= */
143105143199
{yymsp[1].minor.yy4 = OE_None;}
143106143200
break;
143107
- case 211: /* eidlist ::= eidlist COMMA nm collate sortorder */
143201
+ case 214: /* eidlist ::= eidlist COMMA nm collate sortorder */
143108143202
{
143109143203
yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4);
143110143204
}
143111143205
break;
143112
- case 212: /* eidlist ::= nm collate sortorder */
143206
+ case 215: /* eidlist ::= nm collate sortorder */
143113143207
{
143114143208
yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4); /*A-overwrites-Y*/
143115143209
}
143116143210
break;
143117
- case 215: /* cmd ::= DROP INDEX ifexists fullname */
143211
+ case 218: /* cmd ::= DROP INDEX ifexists fullname */
143118143212
{sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);}
143119143213
break;
143120
- case 216: /* cmd ::= VACUUM */
143214
+ case 219: /* cmd ::= VACUUM */
143121143215
{sqlite3Vacuum(pParse,0);}
143122143216
break;
143123
- case 217: /* cmd ::= VACUUM nm */
143217
+ case 220: /* cmd ::= VACUUM nm */
143124143218
{sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
143125143219
break;
143126
- case 218: /* cmd ::= PRAGMA nm dbnm */
143220
+ case 221: /* cmd ::= PRAGMA nm dbnm */
143127143221
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
143128143222
break;
143129
- case 219: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
143223
+ case 222: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
143130143224
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
143131143225
break;
143132
- case 220: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
143226
+ case 223: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
143133143227
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
143134143228
break;
143135
- case 221: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
143229
+ case 224: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
143136143230
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
143137143231
break;
143138
- case 222: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
143232
+ case 225: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
143139143233
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
143140143234
break;
143141
- case 225: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
143235
+ case 228: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
143142143236
{
143143143237
Token all;
143144143238
all.z = yymsp[-3].minor.yy0.z;
143145143239
all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
143146143240
sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all);
143147143241
}
143148143242
break;
143149
- case 226: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
143243
+ case 229: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
143150143244
{
143151143245
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);
143152143246
yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
143153143247
}
143154143248
break;
143155
- case 227: /* trigger_time ::= BEFORE|AFTER */
143249
+ case 230: /* trigger_time ::= BEFORE|AFTER */
143156143250
{ yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-X*/ }
143157143251
break;
143158
- case 228: /* trigger_time ::= INSTEAD OF */
143252
+ case 231: /* trigger_time ::= INSTEAD OF */
143159143253
{ yymsp[-1].minor.yy4 = TK_INSTEAD;}
143160143254
break;
143161
- case 229: /* trigger_time ::= */
143255
+ case 232: /* trigger_time ::= */
143162143256
{ yymsp[1].minor.yy4 = TK_BEFORE; }
143163143257
break;
143164
- case 230: /* trigger_event ::= DELETE|INSERT */
143165
- case 231: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==231);
143258
+ case 233: /* trigger_event ::= DELETE|INSERT */
143259
+ case 234: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==234);
143166143260
{yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;}
143167143261
break;
143168
- case 232: /* trigger_event ::= UPDATE OF idlist */
143262
+ case 235: /* trigger_event ::= UPDATE OF idlist */
143169143263
{yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy384;}
143170143264
break;
143171
- case 233: /* when_clause ::= */
143172
- case 252: /* key_opt ::= */ yytestcase(yyruleno==252);
143265
+ case 236: /* when_clause ::= */
143266
+ case 255: /* key_opt ::= */ yytestcase(yyruleno==255);
143173143267
{ yymsp[1].minor.yy314 = 0; }
143174143268
break;
143175
- case 234: /* when_clause ::= WHEN expr */
143176
- case 253: /* key_opt ::= KEY expr */ yytestcase(yyruleno==253);
143269
+ case 237: /* when_clause ::= WHEN expr */
143270
+ case 256: /* key_opt ::= KEY expr */ yytestcase(yyruleno==256);
143177143271
{ yymsp[-1].minor.yy314 = yymsp[0].minor.yy314; }
143178143272
break;
143179
- case 235: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
143273
+ case 238: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
143180143274
{
143181143275
assert( yymsp[-2].minor.yy203!=0 );
143182143276
yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203;
143183143277
yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203;
143184143278
}
143185143279
break;
143186
- case 236: /* trigger_cmd_list ::= trigger_cmd SEMI */
143280
+ case 239: /* trigger_cmd_list ::= trigger_cmd SEMI */
143187143281
{
143188143282
assert( yymsp[-1].minor.yy203!=0 );
143189143283
yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203;
143190143284
}
143191143285
break;
143192
- case 237: /* trnm ::= nm DOT nm */
143286
+ case 240: /* trnm ::= nm DOT nm */
143193143287
{
143194143288
yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
143195143289
sqlite3ErrorMsg(pParse,
143196143290
"qualified table names are not allowed on INSERT, UPDATE, and DELETE "
143197143291
"statements within triggers");
143198143292
}
143199143293
break;
143200
- case 238: /* tridxby ::= INDEXED BY nm */
143294
+ case 241: /* tridxby ::= INDEXED BY nm */
143201143295
{
143202143296
sqlite3ErrorMsg(pParse,
143203143297
"the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
143204143298
"within triggers");
143205143299
}
143206143300
break;
143207
- case 239: /* tridxby ::= NOT INDEXED */
143301
+ case 242: /* tridxby ::= NOT INDEXED */
143208143302
{
143209143303
sqlite3ErrorMsg(pParse,
143210143304
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
143211143305
"within triggers");
143212143306
}
143213143307
break;
143214
- case 240: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
143308
+ case 243: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
143215143309
{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);}
143216143310
yymsp[-7].minor.yy203 = yylhsminor.yy203;
143217143311
break;
143218
- case 241: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
143312
+ case 244: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
143219143313
{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*/}
143220143314
yymsp[-6].minor.yy203 = yylhsminor.yy203;
143221143315
break;
143222
- case 242: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
143316
+ case 245: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
143223143317
{yylhsminor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy314, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy336);}
143224143318
yymsp[-5].minor.yy203 = yylhsminor.yy203;
143225143319
break;
143226
- case 243: /* trigger_cmd ::= scanpt select scanpt */
143320
+ case 246: /* trigger_cmd ::= scanpt select scanpt */
143227143321
{yylhsminor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy387, yymsp[-2].minor.yy336, yymsp[0].minor.yy336); /*yylhsminor.yy203-overwrites-yymsp[-1].minor.yy387*/}
143228143322
yymsp[-2].minor.yy203 = yylhsminor.yy203;
143229143323
break;
143230
- case 244: /* expr ::= RAISE LP IGNORE RP */
143324
+ case 247: /* expr ::= RAISE LP IGNORE RP */
143231143325
{
143232143326
yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
143233143327
if( yymsp[-3].minor.yy314 ){
143234143328
yymsp[-3].minor.yy314->affinity = OE_Ignore;
143235143329
}
143236143330
}
143237143331
break;
143238
- case 245: /* expr ::= RAISE LP raisetype COMMA nm RP */
143332
+ case 248: /* expr ::= RAISE LP raisetype COMMA nm RP */
143239143333
{
143240143334
yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
143241143335
if( yymsp[-5].minor.yy314 ) {
143242143336
yymsp[-5].minor.yy314->affinity = (char)yymsp[-3].minor.yy4;
143243143337
}
143244143338
}
143245143339
break;
143246
- case 246: /* raisetype ::= ROLLBACK */
143340
+ case 249: /* raisetype ::= ROLLBACK */
143247143341
{yymsp[0].minor.yy4 = OE_Rollback;}
143248143342
break;
143249
- case 248: /* raisetype ::= FAIL */
143343
+ case 251: /* raisetype ::= FAIL */
143250143344
{yymsp[0].minor.yy4 = OE_Fail;}
143251143345
break;
143252
- case 249: /* cmd ::= DROP TRIGGER ifexists fullname */
143346
+ case 252: /* cmd ::= DROP TRIGGER ifexists fullname */
143253143347
{
143254143348
sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4);
143255143349
}
143256143350
break;
143257
- case 250: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
143351
+ case 253: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
143258143352
{
143259143353
sqlite3Attach(pParse, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, yymsp[0].minor.yy314);
143260143354
}
143261143355
break;
143262
- case 251: /* cmd ::= DETACH database_kw_opt expr */
143356
+ case 254: /* cmd ::= DETACH database_kw_opt expr */
143263143357
{
143264143358
sqlite3Detach(pParse, yymsp[0].minor.yy314);
143265143359
}
143266143360
break;
143267
- case 254: /* cmd ::= REINDEX */
143361
+ case 257: /* cmd ::= REINDEX */
143268143362
{sqlite3Reindex(pParse, 0, 0);}
143269143363
break;
143270
- case 255: /* cmd ::= REINDEX nm dbnm */
143364
+ case 258: /* cmd ::= REINDEX nm dbnm */
143271143365
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143272143366
break;
143273
- case 256: /* cmd ::= ANALYZE */
143367
+ case 259: /* cmd ::= ANALYZE */
143274143368
{sqlite3Analyze(pParse, 0, 0);}
143275143369
break;
143276
- case 257: /* cmd ::= ANALYZE nm dbnm */
143370
+ case 260: /* cmd ::= ANALYZE nm dbnm */
143277143371
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143278143372
break;
143279
- case 258: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
143373
+ case 261: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
143280143374
{
143281143375
sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0);
143282143376
}
143283143377
break;
143284
- case 259: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
143378
+ case 262: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
143285143379
{
143286143380
yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
143287143381
sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
143288143382
}
143289143383
break;
143290
- case 260: /* add_column_fullname ::= fullname */
143384
+ case 263: /* add_column_fullname ::= fullname */
143291143385
{
143292143386
disableLookaside(pParse);
143293143387
sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259);
143294143388
}
143295143389
break;
143296
- case 261: /* cmd ::= create_vtab */
143390
+ case 264: /* cmd ::= create_vtab */
143297143391
{sqlite3VtabFinishParse(pParse,0);}
143298143392
break;
143299
- case 262: /* cmd ::= create_vtab LP vtabarglist RP */
143393
+ case 265: /* cmd ::= create_vtab LP vtabarglist RP */
143300143394
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
143301143395
break;
143302
- case 263: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
143396
+ case 266: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
143303143397
{
143304143398
sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy4);
143305143399
}
143306143400
break;
143307
- case 264: /* vtabarg ::= */
143401
+ case 267: /* vtabarg ::= */
143308143402
{sqlite3VtabArgInit(pParse);}
143309143403
break;
143310
- case 265: /* vtabargtoken ::= ANY */
143311
- case 266: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==266);
143312
- case 267: /* lp ::= LP */ yytestcase(yyruleno==267);
143404
+ case 268: /* vtabargtoken ::= ANY */
143405
+ case 269: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==269);
143406
+ case 270: /* lp ::= LP */ yytestcase(yyruleno==270);
143313143407
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
143314143408
break;
143315
- case 268: /* with ::= */
143316
-{yymsp[1].minor.yy451 = 0;}
143317
- break;
143318
- case 269: /* with ::= WITH wqlist */
143319
-{ yymsp[-1].minor.yy451 = yymsp[0].minor.yy451; }
143320
- break;
143321
- case 270: /* with ::= WITH RECURSIVE wqlist */
143322
-{ yymsp[-2].minor.yy451 = yymsp[0].minor.yy451; }
143323
- break;
143324
- case 271: /* wqlist ::= nm eidlist_opt AS LP select RP */
143409
+ case 271: /* with ::= WITH wqlist */
143410
+ case 272: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==272);
143411
+{ sqlite3WithPush(pParse, yymsp[0].minor.yy451, 1); }
143412
+ break;
143413
+ case 273: /* wqlist ::= nm eidlist_opt AS LP select RP */
143325143414
{
143326143415
yymsp[-5].minor.yy451 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387); /*A-overwrites-X*/
143327143416
}
143328143417
break;
143329
- case 272: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
143418
+ case 274: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
143330143419
{
143331143420
yymsp[-7].minor.yy451 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy451, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387);
143332143421
}
143333143422
break;
143334143423
default:
143335
- /* (273) input ::= cmdlist */ yytestcase(yyruleno==273);
143336
- /* (274) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==274);
143337
- /* (275) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=275);
143338
- /* (276) ecmd ::= SEMI */ yytestcase(yyruleno==276);
143339
- /* (277) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==277);
143340
- /* (278) explain ::= */ yytestcase(yyruleno==278);
143341
- /* (279) trans_opt ::= */ yytestcase(yyruleno==279);
143342
- /* (280) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==280);
143343
- /* (281) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==281);
143344
- /* (282) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==282);
143345
- /* (283) savepoint_opt ::= */ yytestcase(yyruleno==283);
143346
- /* (284) cmd ::= create_table create_table_args */ yytestcase(yyruleno==284);
143347
- /* (285) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==285);
143348
- /* (286) columnlist ::= columnname carglist */ yytestcase(yyruleno==286);
143349
- /* (287) nm ::= ID|INDEXED */ yytestcase(yyruleno==287);
143350
- /* (288) nm ::= STRING */ yytestcase(yyruleno==288);
143351
- /* (289) nm ::= JOIN_KW */ yytestcase(yyruleno==289);
143352
- /* (290) typetoken ::= typename */ yytestcase(yyruleno==290);
143353
- /* (291) typename ::= ID|STRING */ yytestcase(yyruleno==291);
143354
- /* (292) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
143355
- /* (293) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=293);
143356
- /* (294) carglist ::= carglist ccons */ yytestcase(yyruleno==294);
143357
- /* (295) carglist ::= */ yytestcase(yyruleno==295);
143358
- /* (296) ccons ::= NULL onconf */ yytestcase(yyruleno==296);
143359
- /* (297) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==297);
143360
- /* (298) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==298);
143361
- /* (299) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=299);
143362
- /* (300) tconscomma ::= */ yytestcase(yyruleno==300);
143363
- /* (301) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=301);
143364
- /* (302) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=302);
143365
- /* (303) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=303);
143366
- /* (304) oneselect ::= values */ yytestcase(yyruleno==304);
143367
- /* (305) sclp ::= selcollist COMMA */ yytestcase(yyruleno==305);
143368
- /* (306) as ::= ID|STRING */ yytestcase(yyruleno==306);
143369
- /* (307) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=307);
143370
- /* (308) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==308);
143371
- /* (309) exprlist ::= nexprlist */ yytestcase(yyruleno==309);
143372
- /* (310) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=310);
143373
- /* (311) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=311);
143374
- /* (312) nmnum ::= ON */ yytestcase(yyruleno==312);
143375
- /* (313) nmnum ::= DELETE */ yytestcase(yyruleno==313);
143376
- /* (314) nmnum ::= DEFAULT */ yytestcase(yyruleno==314);
143377
- /* (315) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==315);
143378
- /* (316) foreach_clause ::= */ yytestcase(yyruleno==316);
143379
- /* (317) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==317);
143380
- /* (318) trnm ::= nm */ yytestcase(yyruleno==318);
143381
- /* (319) tridxby ::= */ yytestcase(yyruleno==319);
143382
- /* (320) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==320);
143383
- /* (321) database_kw_opt ::= */ yytestcase(yyruleno==321);
143384
- /* (322) kwcolumn_opt ::= */ yytestcase(yyruleno==322);
143385
- /* (323) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==323);
143386
- /* (324) vtabarglist ::= vtabarg */ yytestcase(yyruleno==324);
143387
- /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==325);
143388
- /* (326) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==326);
143389
- /* (327) anylist ::= */ yytestcase(yyruleno==327);
143390
- /* (328) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==328);
143391
- /* (329) anylist ::= anylist ANY */ yytestcase(yyruleno==329);
143424
+ /* (275) input ::= cmdlist */ yytestcase(yyruleno==275);
143425
+ /* (276) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==276);
143426
+ /* (277) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=277);
143427
+ /* (278) ecmd ::= SEMI */ yytestcase(yyruleno==278);
143428
+ /* (279) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==279);
143429
+ /* (280) explain ::= */ yytestcase(yyruleno==280);
143430
+ /* (281) trans_opt ::= */ yytestcase(yyruleno==281);
143431
+ /* (282) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==282);
143432
+ /* (283) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==283);
143433
+ /* (284) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==284);
143434
+ /* (285) savepoint_opt ::= */ yytestcase(yyruleno==285);
143435
+ /* (286) cmd ::= create_table create_table_args */ yytestcase(yyruleno==286);
143436
+ /* (287) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==287);
143437
+ /* (288) columnlist ::= columnname carglist */ yytestcase(yyruleno==288);
143438
+ /* (289) nm ::= ID|INDEXED */ yytestcase(yyruleno==289);
143439
+ /* (290) nm ::= STRING */ yytestcase(yyruleno==290);
143440
+ /* (291) nm ::= JOIN_KW */ yytestcase(yyruleno==291);
143441
+ /* (292) typetoken ::= typename */ yytestcase(yyruleno==292);
143442
+ /* (293) typename ::= ID|STRING */ yytestcase(yyruleno==293);
143443
+ /* (294) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=294);
143444
+ /* (295) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
143445
+ /* (296) carglist ::= carglist ccons */ yytestcase(yyruleno==296);
143446
+ /* (297) carglist ::= */ yytestcase(yyruleno==297);
143447
+ /* (298) ccons ::= NULL onconf */ yytestcase(yyruleno==298);
143448
+ /* (299) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==299);
143449
+ /* (300) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==300);
143450
+ /* (301) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=301);
143451
+ /* (302) tconscomma ::= */ yytestcase(yyruleno==302);
143452
+ /* (303) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=303);
143453
+ /* (304) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=304);
143454
+ /* (305) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=305);
143455
+ /* (306) oneselect ::= values */ yytestcase(yyruleno==306);
143456
+ /* (307) sclp ::= selcollist COMMA */ yytestcase(yyruleno==307);
143457
+ /* (308) as ::= ID|STRING */ yytestcase(yyruleno==308);
143458
+ /* (309) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=309);
143459
+ /* (310) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==310);
143460
+ /* (311) exprlist ::= nexprlist */ yytestcase(yyruleno==311);
143461
+ /* (312) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=312);
143462
+ /* (313) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=313);
143463
+ /* (314) nmnum ::= ON */ yytestcase(yyruleno==314);
143464
+ /* (315) nmnum ::= DELETE */ yytestcase(yyruleno==315);
143465
+ /* (316) nmnum ::= DEFAULT */ yytestcase(yyruleno==316);
143466
+ /* (317) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==317);
143467
+ /* (318) foreach_clause ::= */ yytestcase(yyruleno==318);
143468
+ /* (319) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==319);
143469
+ /* (320) trnm ::= nm */ yytestcase(yyruleno==320);
143470
+ /* (321) tridxby ::= */ yytestcase(yyruleno==321);
143471
+ /* (322) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==322);
143472
+ /* (323) database_kw_opt ::= */ yytestcase(yyruleno==323);
143473
+ /* (324) kwcolumn_opt ::= */ yytestcase(yyruleno==324);
143474
+ /* (325) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==325);
143475
+ /* (326) vtabarglist ::= vtabarg */ yytestcase(yyruleno==326);
143476
+ /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==327);
143477
+ /* (328) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==328);
143478
+ /* (329) anylist ::= */ yytestcase(yyruleno==329);
143479
+ /* (330) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==330);
143480
+ /* (331) anylist ::= anylist ANY */ yytestcase(yyruleno==331);
143481
+ /* (332) with ::= */ yytestcase(yyruleno==332);
143392143482
break;
143393143483
/********** End reduce actions ************************************************/
143394143484
};
143395143485
assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
143396143486
yygoto = yyRuleInfo[yyruleno].lhs;
@@ -180440,11 +180530,11 @@
180440180530
** input data. Input data may be supplied either as a single large buffer
180441180531
** (e.g. sqlite3changeset_start()) or using a stream function (e.g.
180442180532
** sqlite3changeset_start_strm()).
180443180533
*/
180444180534
struct SessionInput {
180445
- int bNoDiscard; /* If true, discard no data */
180535
+ int bNoDiscard; /* If true, do not discard in InputBuffer() */
180446180536
int iCurrent; /* Offset in aData[] of current change */
180447180537
int iNext; /* Offset in aData[] of next change */
180448180538
u8 *aData; /* Pointer to buffer containing changeset */
180449180539
int nData; /* Number of bytes in aData */
180450180540
@@ -182965,11 +183055,11 @@
182965183055
/*
182966183056
** If the SessionInput object passed as the only argument is a streaming
182967183057
** object and the buffer is full, discard some data to free up space.
182968183058
*/
182969183059
static void sessionDiscardData(SessionInput *pIn){
182970
- if( pIn->bEof && pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
183060
+ if( pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
182971183061
int nMove = pIn->buf.nBuf - pIn->iNext;
182972183062
assert( nMove>=0 );
182973183063
if( nMove>0 ){
182974183064
memmove(pIn->buf.aBuf, &pIn->buf.aBuf[pIn->iNext], nMove);
182975183065
}
@@ -184606,14 +184696,15 @@
184606184696
void *pCtx, /* Copy of fifth arg to _apply() */
184607184697
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184608184698
sqlite3_changeset_iter *p /* Handle describing change and conflict */
184609184699
),
184610184700
void *pCtx, /* First argument passed to xConflict */
184611
- void **ppRebase, int *pnRebase /* OUT: Rebase information */
184701
+ void **ppRebase, int *pnRebase, /* OUT: Rebase information */
184702
+ int flags /* SESSION_APPLY_XXX flags */
184612184703
){
184613184704
int schemaMismatch = 0;
184614
- int rc; /* Return code */
184705
+ int rc = SQLITE_OK; /* Return code */
184615184706
const char *zTab = 0; /* Name of current table */
184616184707
int nTab = 0; /* Result of sqlite3Strlen30(zTab) */
184617184708
SessionApplyCtx sApply; /* changeset_apply() context object */
184618184709
int bPatchset;
184619184710
@@ -184620,11 +184711,13 @@
184620184711
assert( xConflict!=0 );
184621184712
184622184713
pIter->in.bNoDiscard = 1;
184623184714
memset(&sApply, 0, sizeof(sApply));
184624184715
sqlite3_mutex_enter(sqlite3_db_mutex(db));
184625
- rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
184716
+ if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
184717
+ rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
184718
+ }
184626184719
if( rc==SQLITE_OK ){
184627184720
rc = sqlite3_exec(db, "PRAGMA defer_foreign_keys = 1", 0, 0, 0);
184628184721
}
184629184722
while( rc==SQLITE_OK && SQLITE_ROW==sqlite3changeset_next(pIter) ){
184630184723
int nCol;
@@ -184758,15 +184851,17 @@
184758184851
}
184759184852
}
184760184853
}
184761184854
sqlite3_exec(db, "PRAGMA defer_foreign_keys = 0", 0, 0, 0);
184762184855
184763
- if( rc==SQLITE_OK ){
184764
- rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184765
- }else{
184766
- sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
184767
- sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184856
+ if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
184857
+ if( rc==SQLITE_OK ){
184858
+ rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184859
+ }else{
184860
+ sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
184861
+ sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184862
+ }
184768184863
}
184769184864
184770184865
if( rc==SQLITE_OK && bPatchset==0 && ppRebase && pnRebase ){
184771184866
*ppRebase = (void*)sApply.rebase.aBuf;
184772184867
*pnRebase = sApply.rebase.nBuf;
@@ -184799,17 +184894,18 @@
184799184894
void *pCtx, /* Copy of sixth arg to _apply() */
184800184895
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184801184896
sqlite3_changeset_iter *p /* Handle describing change and conflict */
184802184897
),
184803184898
void *pCtx, /* First argument passed to xConflict */
184804
- void **ppRebase, int *pnRebase
184899
+ void **ppRebase, int *pnRebase,
184900
+ int flags
184805184901
){
184806184902
sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
184807184903
int rc = sqlite3changeset_start(&pIter, nChangeset, pChangeset);
184808184904
if( rc==SQLITE_OK ){
184809184905
rc = sessionChangesetApply(
184810
- db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
184906
+ db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
184811184907
);
184812184908
}
184813184909
return rc;
184814184910
}
184815184911
@@ -184832,11 +184928,11 @@
184832184928
sqlite3_changeset_iter *p /* Handle describing change and conflict */
184833184929
),
184834184930
void *pCtx /* First argument passed to xConflict */
184835184931
){
184836184932
return sqlite3changeset_apply_v2(
184837
- db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0
184933
+ db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0, 0
184838184934
);
184839184935
}
184840184936
184841184937
/*
184842184938
** Apply the changeset passed via xInput/pIn to the main database
@@ -184855,17 +184951,18 @@
184855184951
void *pCtx, /* Copy of sixth arg to _apply() */
184856184952
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184857184953
sqlite3_changeset_iter *p /* Handle describing change and conflict */
184858184954
),
184859184955
void *pCtx, /* First argument passed to xConflict */
184860
- void **ppRebase, int *pnRebase
184956
+ void **ppRebase, int *pnRebase,
184957
+ int flags
184861184958
){
184862184959
sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
184863184960
int rc = sqlite3changeset_start_strm(&pIter, xInput, pIn);
184864184961
if( rc==SQLITE_OK ){
184865184962
rc = sessionChangesetApply(
184866
- db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
184963
+ db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
184867184964
);
184868184965
}
184869184966
return rc;
184870184967
}
184871184968
SQLITE_API int sqlite3changeset_apply_strm(
@@ -184882,11 +184979,11 @@
184882184979
sqlite3_changeset_iter *p /* Handle describing change and conflict */
184883184980
),
184884184981
void *pCtx /* First argument passed to xConflict */
184885184982
){
184886184983
return sqlite3changeset_apply_v2_strm(
184887
- db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0
184984
+ db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0, 0
184888184985
);
184889184986
}
184890184987
184891184988
/*
184892184989
** sqlite3_changegroup handle.
@@ -203462,10 +203559,16 @@
203462203559
203463203560
int aColMap[3];
203464203561
aColMap[0] = -1;
203465203562
aColMap[1] = nCol;
203466203563
aColMap[2] = nCol+1;
203564
+
203565
+ assert( SQLITE_INDEX_CONSTRAINT_EQ<SQLITE_INDEX_CONSTRAINT_MATCH );
203566
+ assert( SQLITE_INDEX_CONSTRAINT_GT<SQLITE_INDEX_CONSTRAINT_MATCH );
203567
+ assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
203568
+ assert( SQLITE_INDEX_CONSTRAINT_GE<SQLITE_INDEX_CONSTRAINT_MATCH );
203569
+ assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
203467203570
203468203571
/* Set idxFlags flags for all WHERE clause terms that will be used. */
203469203572
for(i=0; i<pInfo->nConstraint; i++){
203470203573
struct sqlite3_index_constraint *p = &pInfo->aConstraint[i];
203471203574
int iCol = p->iColumn;
@@ -203481,15 +203584,15 @@
203481203584
/* As there exists an unusable MATCH constraint this is an
203482203585
** unusable plan. Set a prohibitively high cost. */
203483203586
pInfo->estimatedCost = 1e50;
203484203587
return SQLITE_OK;
203485203588
}
203486
- }else{
203589
+ }else if( p->op<=SQLITE_INDEX_CONSTRAINT_MATCH ){
203487203590
int j;
203488203591
for(j=1; j<ArraySize(aConstraint); j++){
203489203592
struct Constraint *pC = &aConstraint[j];
203490
- if( iCol==aColMap[pC->iCol] && p->op & pC->op && p->usable ){
203593
+ if( iCol==aColMap[pC->iCol] && (p->op & pC->op) && p->usable ){
203491203594
pC->iConsIndex = i;
203492203595
idxFlags |= pC->fts5op;
203493203596
}
203494203597
}
203495203598
}
@@ -205557,11 +205660,11 @@
205557205660
int nArg, /* Number of args */
205558205661
sqlite3_value **apUnused /* Function arguments */
205559205662
){
205560205663
assert( nArg==0 );
205561205664
UNUSED_PARAM2(nArg, apUnused);
205562
- sqlite3_result_text(pCtx, "fts5: 2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2", -1, SQLITE_TRANSIENT);
205665
+ sqlite3_result_text(pCtx, "fts5: 2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b", -1, SQLITE_TRANSIENT);
205563205666
}
205564205667
205565205668
static int fts5Init(sqlite3 *db){
205566205669
static const sqlite3_module fts5Mod = {
205567205670
/* iVersion */ 2,
@@ -209827,12 +209930,12 @@
209827209930
}
209828209931
#endif /* SQLITE_CORE */
209829209932
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
209830209933
209831209934
/************** End of stmt.c ************************************************/
209832
-#if __LINE__!=209832
209935
+#if __LINE__!=209935
209833209936
#undef SQLITE_SOURCE_ID
209834
-#define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98falt2"
209937
+#define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd14alt2"
209835209938
#endif
209836209939
/* Return the source-id for this library */
209837209940
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
209838209941
/************************** End of sqlite3.c ******************************/
209839209942
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.23.0. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -1145,13 +1145,13 @@
1145 **
1146 ** See also: [sqlite3_libversion()],
1147 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1148 ** [sqlite_version()] and [sqlite_source_id()].
1149 */
1150 #define SQLITE_VERSION "3.23.0"
1151 #define SQLITE_VERSION_NUMBER 3023000
1152 #define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
1153
1154 /*
1155 ** CAPI3REF: Run-Time Library Version Numbers
1156 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1157 **
@@ -11128,10 +11128,17 @@
11128 ** is set to the size of the buffer in bytes. It is the responsibility of the
11129 ** caller to eventually free any such buffer using sqlite3_free(). The buffer
11130 ** is only allocated and populated if one or more conflicts were encountered
11131 ** while applying the patchset. See comments surrounding the sqlite3_rebaser
11132 ** APIs for further details.
 
 
 
 
 
 
 
11133 */
11134 SQLITE_API int sqlite3changeset_apply(
11135 sqlite3 *db, /* Apply change to "main" db of this handle */
11136 int nChangeset, /* Size of changeset in bytes */
11137 void *pChangeset, /* Changeset blob */
@@ -11158,13 +11165,32 @@
11158 void *pCtx, /* Copy of sixth arg to _apply() */
11159 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
11160 sqlite3_changeset_iter *p /* Handle describing change and conflict */
11161 ),
11162 void *pCtx, /* First argument passed to xConflict */
11163 void **ppRebase, int *pnRebase
 
11164 );
11165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11166 /*
11167 ** CAPI3REF: Constants Passed To The Conflict Handler
11168 **
11169 ** Values that may be passed as the second argument to a conflict-handler.
11170 **
@@ -11421,10 +11447,11 @@
11421 ** corresponding non-streaming API functions:
11422 **
11423 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
11424 ** <tr><th>Streaming function<th>Non-streaming equivalent</th>
11425 ** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
 
11426 ** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
11427 ** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
11428 ** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
11429 ** <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset]
11430 ** <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset]
@@ -11530,11 +11557,12 @@
11530 void *pCtx, /* Copy of sixth arg to _apply() */
11531 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
11532 sqlite3_changeset_iter *p /* Handle describing change and conflict */
11533 ),
11534 void *pCtx, /* First argument passed to xConflict */
11535 void **ppRebase, int *pnRebase
 
11536 );
11537 SQLITE_API int sqlite3changeset_concat_strm(
11538 int (*xInputA)(void *pIn, void *pData, int *pnData),
11539 void *pInA,
11540 int (*xInputB)(void *pIn, void *pData, int *pnData),
@@ -21285,10 +21313,11 @@
21285 ** really care if the VFS receives and understands the information since it
21286 ** is only a hint and can be safely ignored. The sqlite3OsFileControlHint()
21287 ** routine has no return value since the return value would be meaningless.
21288 */
21289 SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){
 
21290 #ifdef SQLITE_TEST
21291 if( op!=SQLITE_FCNTL_COMMIT_PHASETWO
21292 && op!=SQLITE_FCNTL_LOCK_TIMEOUT
21293 ){
21294 /* Faults are not injected into COMMIT_PHASETWO because, assuming SQLite
@@ -21302,11 +21331,10 @@
21302 ** means the commit really has failed and an error should be returned
21303 ** to the user. */
21304 DO_OS_MALLOC_TEST(id);
21305 }
21306 #endif
21307 if( id->pMethods==0 ) return SQLITE_NOTFOUND;
21308 return id->pMethods->xFileControl(id, op, pArg);
21309 }
21310 SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file *id, int op, void *pArg){
21311 if( id->pMethods ) (void)id->pMethods->xFileControl(id, op, pArg);
21312 }
@@ -98998,16 +99026,20 @@
98998 assert( pExpr->op!=TK_AGG_COLUMN );
98999 testcase( pExpr->op==TK_AGG_FUNCTION );
99000
99001 if( ExprHasProperty(pExpr, EP_FromJoin) ) return WRC_Prune;
99002 switch( pExpr->op ){
 
 
99003 case TK_ISNULL:
99004 case TK_IS:
99005 case TK_OR:
99006 case TK_CASE:
99007 case TK_IN:
99008 case TK_FUNCTION:
 
 
99009 testcase( pExpr->op==TK_ISNULL );
99010 testcase( pExpr->op==TK_IS );
99011 testcase( pExpr->op==TK_OR );
99012 testcase( pExpr->op==TK_CASE );
99013 testcase( pExpr->op==TK_IN );
@@ -99017,10 +99049,31 @@
99017 if( pWalker->u.iCur==pExpr->iTable ){
99018 pWalker->eCode = 1;
99019 return WRC_Abort;
99020 }
99021 return WRC_Prune;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99022 default:
99023 return WRC_Continue;
99024 }
99025 }
99026
@@ -104604,11 +104657,11 @@
104604 SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
104605 sqlite3 *db = pParse->db;
104606 Vdbe *v = pParse->pVdbe;
104607 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
104608 sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_SCHEMA_VERSION,
104609 db->aDb[iDb].pSchema->schema_cookie+1);
104610 }
104611
104612 /*
104613 ** Measure the number of characters needed to output the given
104614 ** identifier. The number returned includes any quotes used
@@ -124593,13 +124646,11 @@
124593 if( (selFlags & SF_Expanded)!=0 ){
124594 return WRC_Prune;
124595 }
124596 pTabList = p->pSrc;
124597 pEList = p->pEList;
124598 if( OK_IF_ALWAYS_TRUE(p->pWith) ){
124599 sqlite3WithPush(pParse, p->pWith, 0);
124600 }
124601
124602 /* Make sure cursor numbers have been assigned to all entries in
124603 ** the FROM clause of the SELECT statement.
124604 */
124605 sqlite3SrcListAssignCursors(pParse, pTabList);
@@ -128058,11 +128109,11 @@
128058 iPk = pParse->nMem+1;
128059 pParse->nMem += nPk;
128060 regKey = ++pParse->nMem;
128061 iEph = pParse->nTab++;
128062
128063 sqlite3VdbeAddOp2(v, OP_Null, 0, iPk);
128064 addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk);
128065 sqlite3VdbeSetP4KeyInfo(pParse, pPk);
128066 }
128067
128068 /* Begin the database scan.
@@ -130230,11 +130281,11 @@
130230
130231 /*
130232 ** Trace output macros
130233 */
130234 #if defined(SQLITE_TEST) || defined(SQLITE_DEBUG)
130235 /***/ int sqlite3WhereTrace;
130236 #endif
130237 #if defined(SQLITE_DEBUG) \
130238 && (defined(SQLITE_TEST) || defined(SQLITE_ENABLE_WHERETRACE))
130239 # define WHERETRACE(K,X) if(sqlite3WhereTrace&(K)) sqlite3DebugPrintf X
130240 # define WHERETRACE_ENABLED 1
@@ -136883,12 +136934,12 @@
136883 LogEst rLogSize; /* Logarithm of table size */
136884 WhereTerm *pTop = 0, *pBtm = 0; /* Top and bottom range constraints */
136885
136886 pNew = pBuilder->pNew;
136887 if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;
136888 WHERETRACE(0x800, ("BEGIN addBtreeIdx(%s), nEq=%d\n",
136889 pProbe->zName, pNew->u.btree.nEq));
136890
136891 assert( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 );
136892 assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 );
136893 if( pNew->wsFlags & WHERE_BTM_LIMIT ){
136894 opMask = WO_LT|WO_LE;
@@ -137170,12 +137221,12 @@
137170 pNew->u.btree.nEq = saved_nEq;
137171 pNew->nSkip = saved_nSkip;
137172 pNew->wsFlags = saved_wsFlags;
137173 }
137174
137175 WHERETRACE(0x800, ("END addBtreeIdx(%s), nEq=%d, rc=%d\n",
137176 pProbe->zName, saved_nEq, rc));
137177 return rc;
137178 }
137179
137180 /*
137181 ** Return True if it is possible that pIndex might be useful in
@@ -137609,13 +137660,13 @@
137609 || j<0
137610 || j>=pWC->nTerm
137611 || pNew->aLTerm[iTerm]!=0
137612 || pIdxCons->usable==0
137613 ){
137614 rc = SQLITE_ERROR;
137615 sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
137616 return rc;
 
137617 }
137618 testcase( iTerm==nConstraint-1 );
137619 testcase( j==0 );
137620 testcase( j==pWC->nTerm-1 );
137621 pTerm = &pWC->a[j];
@@ -137639,10 +137690,19 @@
137639 }
137640 }
137641 pNew->u.vtab.omitMask &= ~mNoOmit;
137642
137643 pNew->nLTerm = mxTerm+1;
 
 
 
 
 
 
 
 
 
137644 assert( pNew->nLTerm<=pNew->nLSlot );
137645 pNew->u.vtab.idxNum = pIdxInfo->idxNum;
137646 pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr;
137647 pIdxInfo->needToFreeIdxStr = 0;
137648 pNew->u.vtab.idxStr = pIdxInfo->idxStr;
@@ -137754,10 +137814,11 @@
137754 sqlite3DbFree(pParse->db, p);
137755 return SQLITE_NOMEM_BKPT;
137756 }
137757
137758 /* First call xBestIndex() with all constraints usable. */
 
137759 WHERETRACE(0x40, (" VirtualOne: all usable\n"));
137760 rc = whereLoopAddVirtualOne(pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn);
137761
137762 /* If the call to xBestIndex() with all terms enabled produced a plan
137763 ** that does not require any source tables (IOW: a plan with mBest==0),
@@ -137829,10 +137890,11 @@
137829 }
137830 }
137831
137832 if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr);
137833 sqlite3DbFreeNN(pParse->db, p);
 
137834 return rc;
137835 }
137836 #endif /* SQLITE_OMIT_VIRTUALTABLE */
137837
137838 /*
@@ -139969,21 +140031,21 @@
139969 #define sqlite3ParserARG_SDECL Parse *pParse;
139970 #define sqlite3ParserARG_PDECL ,Parse *pParse
139971 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
139972 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
139973 #define YYFALLBACK 1
139974 #define YYNSTATE 466
139975 #define YYNRULE 330
139976 #define YYNTOKEN 143
139977 #define YY_MAX_SHIFT 465
139978 #define YY_MIN_SHIFTREDUCE 675
139979 #define YY_MAX_SHIFTREDUCE 1004
139980 #define YY_ERROR_ACTION 1005
139981 #define YY_ACCEPT_ACTION 1006
139982 #define YY_NO_ACTION 1007
139983 #define YY_MIN_REDUCE 1008
139984 #define YY_MAX_REDUCE 1337
139985 /************* End control #defines *******************************************/
139986
139987 /* Define the yytestcase() macro to be a no-op if is not already defined
139988 ** otherwise.
139989 **
@@ -140045,326 +140107,328 @@
140045 ** yy_reduce_ofst[] For each state, the offset into yy_action for
140046 ** shifting non-terminals after a reduce.
140047 ** yy_default[] Default action for each state.
140048 **
140049 *********** Begin parsing tables **********************************************/
140050 #define YY_ACTTAB_COUNT (1541)
140051 static const YYACTIONTYPE yy_action[] = {
140052 /* 0 */ 1006, 156, 156, 2, 1302, 90, 87, 179, 90, 87,
140053 /* 10 */ 179, 460, 1048, 460, 465, 1010, 460, 333, 1130, 335,
140054 /* 20 */ 246, 330, 112, 303, 439, 1258, 304, 419, 1129, 1087,
140055 /* 30 */ 72, 798, 50, 50, 50, 50, 331, 30, 30, 799,
140056 /* 40 */ 951, 364, 371, 97, 98, 88, 983, 983, 859, 862,
140057 /* 50 */ 851, 851, 95, 95, 96, 96, 96, 96, 120, 371,
140058 /* 60 */ 370, 120, 348, 22, 90, 87, 179, 438, 423, 438,
140059 /* 70 */ 440, 335, 420, 385, 90, 87, 179, 116, 73, 163,
140060 /* 80 */ 848, 848, 860, 863, 94, 94, 94, 94, 93, 93,
140061 /* 90 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983,
140062 /* 100 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
140063 /* 110 */ 718, 365, 339, 93, 93, 92, 92, 92, 91, 361,
140064 /* 120 */ 99, 371, 453, 335, 94, 94, 94, 94, 93, 93,
140065 /* 130 */ 92, 92, 92, 91, 361, 852, 94, 94, 94, 94,
140066 /* 140 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88,
140067 /* 150 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96,
140068 /* 160 */ 96, 96, 92, 92, 92, 91, 361, 838, 132, 195,
140069 /* 170 */ 58, 244, 412, 409, 408, 335, 457, 457, 457, 304,
140070 /* 180 */ 59, 332, 831, 407, 394, 962, 830, 391, 94, 94,
140071 /* 190 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97,
140072 /* 200 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95,
140073 /* 210 */ 96, 96, 96, 96, 426, 357, 460, 830, 830, 832,
140074 /* 220 */ 91, 361, 962, 963, 964, 195, 459, 335, 412, 409,
140075 /* 230 */ 408, 280, 361, 820, 132, 11, 11, 50, 50, 407,
140076 /* 240 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91,
140077 /* 250 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851,
140078 /* 260 */ 95, 95, 96, 96, 96, 96, 460, 221, 460, 264,
140079 /* 270 */ 375, 254, 438, 428, 1276, 1276, 383, 1074, 1053, 335,
140080 /* 280 */ 245, 422, 299, 713, 271, 271, 1074, 50, 50, 50,
140081 /* 290 */ 50, 962, 94, 94, 94, 94, 93, 93, 92, 92,
140082 /* 300 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862,
140083 /* 310 */ 851, 851, 95, 95, 96, 96, 96, 96, 90, 87,
140084 /* 320 */ 179, 1306, 438, 437, 438, 418, 368, 253, 962, 963,
140085 /* 330 */ 964, 335, 360, 360, 360, 706, 359, 358, 324, 962,
140086 /* 340 */ 1281, 951, 364, 230, 94, 94, 94, 94, 93, 93,
140087 /* 350 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983,
140088 /* 360 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
140089 /* 370 */ 769, 460, 120, 226, 226, 366, 962, 963, 964, 1089,
140090 /* 380 */ 990, 900, 990, 335, 1057, 425, 421, 839, 759, 759,
140091 /* 390 */ 425, 427, 50, 50, 432, 381, 94, 94, 94, 94,
140092 /* 400 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88,
140093 /* 410 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96,
140094 /* 420 */ 96, 96, 460, 259, 460, 120, 117, 354, 942, 1332,
140095 /* 430 */ 942, 1333, 1332, 278, 1333, 335, 680, 681, 682, 825,
140096 /* 440 */ 201, 176, 303, 50, 50, 49, 49, 404, 94, 94,
140097 /* 450 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97,
140098 /* 460 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95,
140099 /* 470 */ 96, 96, 96, 96, 199, 460, 380, 265, 433, 380,
140100 /* 480 */ 265, 383, 256, 158, 258, 319, 1003, 335, 155, 940,
140101 /* 490 */ 177, 940, 273, 379, 276, 322, 34, 34, 302, 962,
140102 /* 500 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91,
140103 /* 510 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851,
140104 /* 520 */ 95, 95, 96, 96, 96, 96, 905, 905, 397, 460,
140105 /* 530 */ 301, 158, 101, 319, 941, 340, 962, 963, 964, 313,
140106 /* 540 */ 283, 449, 335, 327, 146, 1266, 1004, 257, 234, 248,
140107 /* 550 */ 35, 35, 94, 94, 94, 94, 93, 93, 92, 92,
140108 /* 560 */ 92, 91, 361, 709, 785, 1227, 97, 98, 88, 983,
140109 /* 570 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
140110 /* 580 */ 96, 962, 1227, 1229, 245, 422, 838, 198, 197, 196,
140111 /* 590 */ 1079, 1079, 1077, 1077, 1004, 1334, 320, 335, 172, 171,
140112 /* 600 */ 709, 831, 159, 271, 271, 830, 76, 94, 94, 94,
140113 /* 610 */ 94, 93, 93, 92, 92, 92, 91, 361, 962, 963,
140114 /* 620 */ 964, 97, 98, 88, 983, 983, 859, 862, 851, 851,
140115 /* 630 */ 95, 95, 96, 96, 96, 96, 830, 830, 832, 1157,
140116 /* 640 */ 1157, 199, 1157, 173, 1227, 231, 232, 1282, 2, 335,
140117 /* 650 */ 271, 764, 271, 820, 271, 271, 763, 389, 389, 389,
140118 /* 660 */ 132, 79, 94, 94, 94, 94, 93, 93, 92, 92,
140119 /* 670 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862,
140120 /* 680 */ 851, 851, 95, 95, 96, 96, 96, 96, 460, 264,
140121 /* 690 */ 223, 460, 1257, 783, 1223, 1157, 1086, 1082, 80, 271,
140122 /* 700 */ 78, 335, 340, 1031, 341, 344, 345, 902, 346, 10,
140123 /* 710 */ 10, 902, 25, 25, 94, 94, 94, 94, 93, 93,
140124 /* 720 */ 92, 92, 92, 91, 361, 97, 86, 88, 983, 983,
140125 /* 730 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96,
140126 /* 740 */ 1157, 270, 395, 117, 233, 263, 235, 70, 456, 341,
140127 /* 750 */ 225, 176, 335, 1305, 342, 133, 736, 966, 980, 249,
140128 /* 760 */ 1150, 396, 325, 1085, 1028, 178, 94, 94, 94, 94,
140129 /* 770 */ 93, 93, 92, 92, 92, 91, 361, 98, 88, 983,
140130 /* 780 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
140131 /* 790 */ 96, 783, 783, 132, 120, 966, 120, 120, 120, 798,
140132 /* 800 */ 252, 937, 335, 353, 321, 429, 355, 799, 822, 692,
140133 /* 810 */ 390, 203, 446, 450, 372, 716, 454, 94, 94, 94,
140134 /* 820 */ 94, 93, 93, 92, 92, 92, 91, 361, 88, 983,
140135 /* 830 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96,
140136 /* 840 */ 96, 84, 455, 1225, 3, 1209, 120, 120, 382, 387,
140137 /* 850 */ 120, 203, 1271, 716, 384, 168, 266, 203, 458, 72,
140138 /* 860 */ 260, 1246, 84, 455, 178, 3, 378, 94, 94, 94,
140139 /* 870 */ 94, 93, 93, 92, 92, 92, 91, 361, 350, 458,
140140 /* 880 */ 1245, 362, 430, 213, 228, 290, 415, 285, 414, 200,
140141 /* 890 */ 783, 882, 444, 726, 725, 405, 283, 921, 209, 921,
140142 /* 900 */ 281, 132, 362, 72, 838, 289, 147, 733, 734, 392,
140143 /* 910 */ 81, 82, 922, 444, 922, 267, 288, 83, 362, 462,
140144 /* 920 */ 461, 272, 132, 830, 23, 838, 388, 923, 1216, 923,
140145 /* 930 */ 1056, 81, 82, 84, 455, 899, 3, 899, 83, 362,
140146 /* 940 */ 462, 461, 761, 962, 830, 75, 1, 443, 275, 747,
140147 /* 950 */ 458, 5, 962, 204, 830, 830, 832, 833, 18, 748,
140148 /* 960 */ 229, 962, 277, 19, 153, 317, 317, 316, 216, 314,
140149 /* 970 */ 279, 460, 689, 362, 1055, 830, 830, 832, 833, 18,
140150 /* 980 */ 962, 963, 964, 962, 444, 181, 460, 251, 981, 962,
140151 /* 990 */ 963, 964, 8, 8, 20, 250, 838, 1070, 962, 963,
140152 /* 1000 */ 964, 417, 81, 82, 768, 204, 347, 36, 36, 83,
140153 /* 1010 */ 362, 462, 461, 1054, 284, 830, 84, 455, 1123, 3,
140154 /* 1020 */ 962, 963, 964, 460, 183, 962, 981, 764, 889, 1107,
140155 /* 1030 */ 460, 184, 763, 458, 132, 182, 74, 455, 460, 3,
140156 /* 1040 */ 981, 898, 834, 898, 8, 8, 830, 830, 832, 833,
140157 /* 1050 */ 18, 8, 8, 458, 219, 1156, 362, 1103, 349, 8,
140158 /* 1060 */ 8, 240, 962, 963, 964, 236, 889, 444, 792, 336,
140159 /* 1070 */ 158, 203, 885, 435, 700, 209, 362, 114, 981, 838,
140160 /* 1080 */ 834, 227, 334, 1114, 441, 81, 82, 444, 442, 305,
140161 /* 1090 */ 784, 306, 83, 362, 462, 461, 369, 1162, 830, 838,
140162 /* 1100 */ 460, 1037, 237, 1030, 237, 81, 82, 7, 96, 96,
140163 /* 1110 */ 96, 96, 83, 362, 462, 461, 1019, 1018, 830, 1020,
140164 /* 1120 */ 1289, 37, 37, 400, 96, 96, 96, 96, 89, 830,
140165 /* 1130 */ 830, 832, 833, 18, 1100, 318, 962, 292, 94, 94,
140166 /* 1140 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 830,
140167 /* 1150 */ 830, 832, 833, 18, 94, 94, 94, 94, 93, 93,
140168 /* 1160 */ 92, 92, 92, 91, 361, 359, 358, 226, 226, 727,
140169 /* 1170 */ 294, 296, 460, 962, 963, 964, 460, 989, 160, 425,
140170 /* 1180 */ 170, 1295, 262, 460, 987, 374, 988, 386, 1145, 255,
140171 /* 1190 */ 326, 460, 373, 38, 38, 410, 174, 39, 39, 413,
140172 /* 1200 */ 460, 287, 460, 1053, 40, 40, 298, 728, 1220, 990,
140173 /* 1210 */ 445, 990, 26, 26, 1219, 460, 311, 460, 169, 1292,
140174 /* 1220 */ 460, 27, 27, 29, 29, 998, 460, 206, 135, 995,
140175 /* 1230 */ 1265, 1263, 460, 57, 60, 460, 41, 41, 42, 42,
140176 /* 1240 */ 460, 43, 43, 460, 343, 351, 460, 9, 9, 460,
140177 /* 1250 */ 144, 460, 130, 44, 44, 460, 103, 103, 460, 137,
140178 /* 1260 */ 70, 45, 45, 460, 46, 46, 460, 31, 31, 1142,
140179 /* 1270 */ 47, 47, 48, 48, 460, 376, 32, 32, 460, 122,
140180 /* 1280 */ 122, 460, 157, 460, 123, 123, 139, 124, 124, 460,
140181 /* 1290 */ 186, 460, 377, 460, 115, 54, 54, 460, 403, 33,
140182 /* 1300 */ 33, 460, 104, 104, 51, 51, 460, 161, 460, 140,
140183 /* 1310 */ 105, 105, 106, 106, 102, 102, 460, 141, 121, 121,
140184 /* 1320 */ 460, 142, 119, 119, 190, 460, 1152, 110, 110, 109,
140185 /* 1330 */ 109, 702, 460, 148, 393, 65, 460, 107, 107, 460,
140186 /* 1340 */ 323, 108, 108, 399, 460, 1234, 53, 53, 1214, 269,
140187 /* 1350 */ 154, 416, 1115, 55, 55, 220, 401, 52, 52, 191,
140188 /* 1360 */ 24, 24, 274, 192, 193, 28, 28, 1021, 328, 702,
140189 /* 1370 */ 1073, 352, 1072, 718, 1071, 431, 1111, 1064, 329, 1045,
140190 /* 1380 */ 69, 205, 6, 291, 1044, 286, 1112, 1043, 1304, 1110,
140191 /* 1390 */ 293, 300, 295, 297, 1063, 1200, 1109, 77, 241, 448,
140192 /* 1400 */ 356, 452, 436, 100, 214, 71, 434, 1027, 1093, 21,
140193 /* 1410 */ 463, 242, 243, 957, 215, 217, 218, 464, 309, 307,
140194 /* 1420 */ 308, 310, 1016, 125, 1250, 1251, 1011, 1249, 126, 127,
140195 /* 1430 */ 1248, 113, 676, 337, 238, 338, 134, 363, 167, 1041,
140196 /* 1440 */ 1040, 56, 247, 367, 180, 897, 111, 895, 136, 1038,
140197 /* 1450 */ 818, 128, 138, 750, 261, 911, 185, 143, 145, 61,
140198 /* 1460 */ 62, 63, 64, 129, 914, 187, 188, 910, 118, 12,
140199 /* 1470 */ 189, 903, 268, 992, 203, 162, 398, 150, 149, 691,
140200 /* 1480 */ 402, 288, 194, 406, 151, 411, 66, 13, 729, 239,
140201 /* 1490 */ 282, 14, 67, 131, 837, 836, 865, 758, 15, 4,
140202 /* 1500 */ 68, 762, 175, 222, 224, 424, 152, 869, 791, 202,
140203 /* 1510 */ 786, 75, 72, 880, 866, 864, 16, 17, 920, 207,
140204 /* 1520 */ 919, 208, 447, 946, 164, 211, 947, 210, 165, 451,
140205 /* 1530 */ 868, 166, 315, 835, 701, 85, 212, 1297, 312, 952,
140206 /* 1540 */ 1296,
 
 
140207 };
140208 static const YYCODETYPE yy_lookahead[] = {
140209 /* 0 */ 144, 145, 146, 147, 172, 222, 223, 224, 222, 223,
140210 /* 10 */ 224, 152, 180, 152, 148, 149, 152, 173, 176, 19,
140211 /* 20 */ 154, 173, 156, 152, 163, 242, 152, 163, 176, 163,
140212 /* 30 */ 26, 31, 173, 174, 173, 174, 173, 173, 174, 39,
140213 /* 40 */ 1, 2, 152, 43, 44, 45, 46, 47, 48, 49,
140214 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 197, 169,
140215 /* 60 */ 170, 197, 188, 197, 222, 223, 224, 208, 209, 208,
140216 /* 70 */ 209, 19, 208, 152, 222, 223, 224, 22, 26, 24,
140217 /* 80 */ 46, 47, 48, 49, 84, 85, 86, 87, 88, 89,
140218 /* 90 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140219 /* 100 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140220 /* 110 */ 106, 245, 157, 88, 89, 90, 91, 92, 93, 94,
140221 /* 120 */ 68, 231, 251, 19, 84, 85, 86, 87, 88, 89,
140222 /* 130 */ 90, 91, 92, 93, 94, 101, 84, 85, 86, 87,
140223 /* 140 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
140224 /* 150 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
140225 /* 160 */ 56, 57, 90, 91, 92, 93, 94, 82, 79, 99,
140226 /* 170 */ 66, 200, 102, 103, 104, 19, 168, 169, 170, 152,
140227 /* 180 */ 24, 210, 97, 113, 229, 59, 101, 232, 84, 85,
140228 /* 190 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
140229 /* 200 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
140230 /* 210 */ 54, 55, 56, 57, 152, 188, 152, 132, 133, 134,
140231 /* 220 */ 93, 94, 96, 97, 98, 99, 152, 19, 102, 103,
140232 /* 230 */ 104, 23, 94, 72, 79, 173, 174, 173, 174, 113,
140233 /* 240 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
140234 /* 250 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140235 /* 260 */ 52, 53, 54, 55, 56, 57, 152, 171, 152, 108,
140236 /* 270 */ 109, 110, 208, 209, 119, 120, 152, 180, 181, 19,
140237 /* 280 */ 119, 120, 152, 23, 152, 152, 189, 173, 174, 173,
140238 /* 290 */ 174, 59, 84, 85, 86, 87, 88, 89, 90, 91,
140239 /* 300 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
140240 /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 222, 223,
140241 /* 320 */ 224, 186, 208, 209, 208, 209, 194, 194, 96, 97,
140242 /* 330 */ 98, 19, 168, 169, 170, 23, 88, 89, 163, 59,
140243 /* 340 */ 0, 1, 2, 219, 84, 85, 86, 87, 88, 89,
140244 /* 350 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140245 /* 360 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140246 /* 370 */ 90, 152, 197, 195, 196, 243, 96, 97, 98, 196,
140247 /* 380 */ 132, 11, 134, 19, 182, 207, 115, 23, 117, 118,
140248 /* 390 */ 207, 163, 173, 174, 152, 220, 84, 85, 86, 87,
140249 /* 400 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
140250 /* 410 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
140251 /* 420 */ 56, 57, 152, 16, 152, 197, 171, 208, 22, 23,
140252 /* 430 */ 22, 23, 26, 16, 26, 19, 7, 8, 9, 23,
140253 /* 440 */ 212, 213, 152, 173, 174, 173, 174, 19, 84, 85,
140254 /* 450 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
140255 /* 460 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
140256 /* 470 */ 54, 55, 56, 57, 46, 152, 109, 110, 208, 109,
140257 /* 480 */ 110, 152, 75, 152, 77, 22, 23, 19, 233, 83,
140258 /* 490 */ 152, 83, 75, 238, 77, 164, 173, 174, 226, 59,
140259 /* 500 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
140260 /* 510 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140261 /* 520 */ 52, 53, 54, 55, 56, 57, 108, 109, 110, 152,
140262 /* 530 */ 152, 152, 22, 22, 23, 107, 96, 97, 98, 160,
140263 /* 540 */ 112, 251, 19, 164, 22, 152, 83, 140, 219, 152,
140264 /* 550 */ 173, 174, 84, 85, 86, 87, 88, 89, 90, 91,
140265 /* 560 */ 92, 93, 94, 59, 124, 152, 43, 44, 45, 46,
140266 /* 570 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140267 /* 580 */ 57, 59, 169, 170, 119, 120, 82, 108, 109, 110,
140268 /* 590 */ 191, 192, 191, 192, 83, 248, 249, 19, 88, 89,
140269 /* 600 */ 96, 97, 24, 152, 152, 101, 138, 84, 85, 86,
140270 /* 610 */ 87, 88, 89, 90, 91, 92, 93, 94, 96, 97,
140271 /* 620 */ 98, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140272 /* 630 */ 52, 53, 54, 55, 56, 57, 132, 133, 134, 152,
140273 /* 640 */ 152, 46, 152, 26, 231, 194, 194, 146, 147, 19,
140274 /* 650 */ 152, 116, 152, 72, 152, 152, 121, 152, 152, 152,
140275 /* 660 */ 79, 138, 84, 85, 86, 87, 88, 89, 90, 91,
140276 /* 670 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
140277 /* 680 */ 50, 51, 52, 53, 54, 55, 56, 57, 152, 108,
140278 /* 690 */ 23, 152, 194, 26, 194, 152, 194, 194, 137, 152,
140279 /* 700 */ 139, 19, 107, 166, 167, 218, 218, 29, 218, 173,
140280 /* 710 */ 174, 33, 173, 174, 84, 85, 86, 87, 88, 89,
140281 /* 720 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140282 /* 730 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140283 /* 740 */ 152, 194, 64, 171, 239, 239, 239, 130, 166, 167,
140284 /* 750 */ 212, 213, 19, 23, 246, 247, 26, 59, 26, 152,
140285 /* 760 */ 163, 218, 163, 163, 163, 98, 84, 85, 86, 87,
140286 /* 770 */ 88, 89, 90, 91, 92, 93, 94, 44, 45, 46,
140287 /* 780 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140288 /* 790 */ 57, 124, 26, 79, 197, 97, 197, 197, 197, 31,
140289 /* 800 */ 152, 23, 19, 19, 26, 19, 218, 39, 23, 21,
140290 /* 810 */ 238, 26, 163, 163, 100, 59, 163, 84, 85, 86,
140291 /* 820 */ 87, 88, 89, 90, 91, 92, 93, 94, 45, 46,
140292 /* 830 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140293 /* 840 */ 57, 19, 20, 152, 22, 23, 197, 197, 23, 19,
140294 /* 850 */ 197, 26, 152, 97, 23, 123, 23, 26, 36, 26,
140295 /* 860 */ 152, 152, 19, 20, 98, 22, 78, 84, 85, 86,
140296 /* 870 */ 87, 88, 89, 90, 91, 92, 93, 94, 94, 36,
140297 /* 880 */ 152, 59, 96, 99, 100, 101, 102, 103, 104, 105,
140298 /* 890 */ 124, 103, 70, 100, 101, 23, 112, 12, 26, 12,
140299 /* 900 */ 23, 79, 59, 26, 82, 101, 22, 7, 8, 152,
140300 /* 910 */ 88, 89, 27, 70, 27, 152, 112, 95, 96, 97,
140301 /* 920 */ 98, 152, 79, 101, 22, 82, 96, 42, 140, 42,
140302 /* 930 */ 182, 88, 89, 19, 20, 132, 22, 134, 95, 96,
140303 /* 940 */ 97, 98, 23, 59, 101, 26, 22, 62, 152, 62,
140304 /* 950 */ 36, 22, 59, 24, 132, 133, 134, 135, 136, 72,
140305 /* 960 */ 5, 59, 152, 22, 71, 10, 11, 12, 13, 14,
140306 /* 970 */ 152, 152, 17, 59, 182, 132, 133, 134, 135, 136,
140307 /* 980 */ 96, 97, 98, 59, 70, 30, 152, 32, 59, 96,
140308 /* 990 */ 97, 98, 173, 174, 53, 40, 82, 152, 96, 97,
140309 /* 1000 */ 98, 90, 88, 89, 90, 24, 187, 173, 174, 95,
140310 /* 1010 */ 96, 97, 98, 152, 152, 101, 19, 20, 152, 22,
140311 /* 1020 */ 96, 97, 98, 152, 69, 59, 97, 116, 59, 214,
140312 /* 1030 */ 152, 76, 121, 36, 79, 80, 19, 20, 152, 22,
140313 /* 1040 */ 59, 132, 59, 134, 173, 174, 132, 133, 134, 135,
140314 /* 1050 */ 136, 173, 174, 36, 234, 152, 59, 152, 187, 173,
140315 /* 1060 */ 174, 211, 96, 97, 98, 187, 97, 70, 23, 114,
140316 /* 1070 */ 152, 26, 23, 187, 23, 26, 59, 26, 97, 82,
140317 /* 1080 */ 97, 22, 164, 152, 152, 88, 89, 70, 192, 152,
140318 /* 1090 */ 124, 152, 95, 96, 97, 98, 141, 152, 101, 82,
140319 /* 1100 */ 152, 152, 184, 152, 186, 88, 89, 199, 54, 55,
140320 /* 1110 */ 56, 57, 95, 96, 97, 98, 152, 152, 101, 152,
140321 /* 1120 */ 152, 173, 174, 235, 54, 55, 56, 57, 58, 132,
140322 /* 1130 */ 133, 134, 135, 136, 211, 150, 59, 211, 84, 85,
140323 /* 1140 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 132,
140324 /* 1150 */ 133, 134, 135, 136, 84, 85, 86, 87, 88, 89,
140325 /* 1160 */ 90, 91, 92, 93, 94, 88, 89, 195, 196, 35,
140326 /* 1170 */ 211, 211, 152, 96, 97, 98, 152, 100, 198, 207,
140327 /* 1180 */ 171, 122, 240, 152, 107, 215, 109, 240, 202, 215,
140328 /* 1190 */ 202, 152, 220, 173, 174, 177, 185, 173, 174, 65,
140329 /* 1200 */ 152, 176, 152, 181, 173, 174, 215, 73, 176, 132,
140330 /* 1210 */ 228, 134, 173, 174, 176, 152, 201, 152, 199, 155,
140331 /* 1220 */ 152, 173, 174, 173, 174, 60, 152, 122, 244, 38,
140332 /* 1230 */ 159, 159, 152, 241, 241, 152, 173, 174, 173, 174,
140333 /* 1240 */ 152, 173, 174, 152, 159, 111, 152, 173, 174, 152,
140334 /* 1250 */ 22, 152, 43, 173, 174, 152, 173, 174, 152, 190,
140335 /* 1260 */ 130, 173, 174, 152, 173, 174, 152, 173, 174, 202,
140336 /* 1270 */ 173, 174, 173, 174, 152, 18, 173, 174, 152, 173,
140337 /* 1280 */ 174, 152, 221, 152, 173, 174, 193, 173, 174, 152,
140338 /* 1290 */ 158, 152, 159, 152, 22, 173, 174, 152, 18, 173,
140339 /* 1300 */ 174, 152, 173, 174, 173, 174, 152, 221, 152, 193,
140340 /* 1310 */ 173, 174, 173, 174, 173, 174, 152, 193, 173, 174,
140341 /* 1320 */ 152, 193, 173, 174, 158, 152, 190, 173, 174, 173,
140342 /* 1330 */ 174, 59, 152, 190, 159, 137, 152, 173, 174, 152,
140343 /* 1340 */ 202, 173, 174, 61, 152, 237, 173, 174, 202, 236,
140344 /* 1350 */ 22, 107, 159, 173, 174, 159, 178, 173, 174, 158,
140345 /* 1360 */ 173, 174, 159, 158, 158, 173, 174, 159, 178, 97,
140346 /* 1370 */ 175, 63, 175, 106, 175, 125, 217, 183, 178, 175,
140347 /* 1380 */ 107, 159, 22, 216, 177, 175, 217, 175, 175, 217,
140348 /* 1390 */ 216, 159, 216, 216, 183, 225, 217, 137, 227, 178,
140349 /* 1400 */ 94, 178, 126, 129, 25, 128, 127, 162, 206, 26,
140350 /* 1410 */ 161, 230, 230, 13, 153, 153, 6, 151, 203, 205,
140351 /* 1420 */ 204, 202, 151, 165, 171, 171, 151, 171, 165, 165,
140352 /* 1430 */ 171, 179, 4, 250, 179, 250, 247, 3, 22, 171,
140353 /* 1440 */ 171, 171, 142, 81, 15, 23, 16, 23, 131, 171,
140354 /* 1450 */ 120, 111, 123, 20, 16, 1, 125, 123, 131, 53,
140355 /* 1460 */ 53, 53, 53, 111, 96, 34, 122, 1, 5, 22,
140356 /* 1470 */ 107, 67, 140, 74, 26, 24, 41, 107, 67, 20,
140357 /* 1480 */ 19, 112, 105, 66, 22, 66, 22, 22, 28, 66,
140358 /* 1490 */ 23, 22, 22, 37, 23, 23, 23, 116, 22, 22,
140359 /* 1500 */ 26, 23, 122, 23, 23, 26, 22, 11, 96, 34,
140360 /* 1510 */ 124, 26, 26, 23, 23, 23, 34, 34, 23, 26,
140361 /* 1520 */ 23, 22, 24, 23, 22, 122, 23, 26, 22, 24,
140362 /* 1530 */ 23, 22, 15, 23, 23, 22, 122, 122, 23, 1,
140363 /* 1540 */ 122, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140364 /* 1550 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140365 /* 1560 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140366 /* 1570 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140367 /* 1580 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140368 /* 1590 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140369 /* 1600 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140370 /* 1610 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
@@ -140372,151 +140436,156 @@
140372 /* 1630 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140373 /* 1640 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140374 /* 1650 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140375 /* 1660 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140376 /* 1670 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140377 /* 1680 */ 252, 252, 252, 252,
 
 
140378 };
140379 #define YY_SHIFT_COUNT (465)
140380 #define YY_SHIFT_MIN (0)
140381 #define YY_SHIFT_MAX (1538)
140382 static const unsigned short int yy_shift_ofst[] = {
140383 /* 0 */ 39, 822, 955, 843, 997, 997, 997, 997, 0, 0,
140384 /* 10 */ 104, 630, 997, 997, 997, 997, 997, 997, 997, 1077,
140385 /* 20 */ 1077, 126, 161, 155, 52, 156, 208, 260, 312, 364,
140386 /* 30 */ 416, 468, 523, 578, 630, 630, 630, 630, 630, 630,
140387 /* 40 */ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
140388 /* 50 */ 630, 682, 630, 733, 783, 783, 914, 997, 997, 997,
140389 /* 60 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
140390 /* 70 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
140391 /* 80 */ 997, 997, 997, 997, 997, 997, 997, 997, 1017, 997,
140392 /* 90 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997,
140393 /* 100 */ 997, 997, 1070, 1054, 1054, 1054, 1054, 1054, 40, 25,
140394 /* 110 */ 72, 232, 788, 428, 248, 248, 232, 581, 367, 127,
140395 /* 120 */ 465, 138, 1541, 1541, 1541, 784, 784, 784, 522, 522,
140396 /* 130 */ 887, 887, 893, 406, 408, 232, 232, 232, 232, 232,
140397 /* 140 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
140398 /* 150 */ 232, 232, 232, 232, 232, 370, 340, 714, 698, 698,
140399 /* 160 */ 465, 89, 89, 89, 89, 89, 89, 1541, 1541, 1541,
140400 /* 170 */ 504, 85, 85, 884, 70, 280, 902, 440, 966, 924,
140401 /* 180 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
140402 /* 190 */ 232, 232, 232, 232, 232, 232, 1134, 1134, 1134, 232,
140403 /* 200 */ 232, 667, 232, 232, 232, 929, 232, 232, 885, 232,
140404 /* 210 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 418,
140405 /* 220 */ 678, 981, 981, 981, 981, 766, 271, 911, 510, 429,
140406 /* 230 */ 617, 786, 786, 830, 617, 830, 4, 730, 595, 768,
140407 /* 240 */ 786, 561, 768, 768, 732, 535, 55, 1165, 1105, 1105,
140408 /* 250 */ 1191, 1191, 1105, 1228, 1209, 1130, 1257, 1257, 1257, 1257,
140409 /* 260 */ 1105, 1280, 1130, 1228, 1209, 1209, 1130, 1105, 1280, 1198,
140410 /* 270 */ 1282, 1105, 1105, 1280, 1328, 1105, 1280, 1105, 1280, 1328,
140411 /* 280 */ 1244, 1244, 1244, 1308, 1328, 1244, 1267, 1244, 1308, 1244,
140412 /* 290 */ 1244, 1250, 1273, 1250, 1273, 1250, 1273, 1250, 1273, 1105,
140413 /* 300 */ 1360, 1105, 1260, 1328, 1306, 1306, 1328, 1274, 1276, 1277,
140414 /* 310 */ 1279, 1130, 1379, 1383, 1400, 1400, 1410, 1410, 1410, 1541,
140415 /* 320 */ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
140416 /* 330 */ 1541, 1541, 1541, 1541, 1541, 34, 407, 463, 511, 417,
140417 /* 340 */ 479, 1272, 778, 941, 785, 825, 831, 833, 872, 877,
140418 /* 350 */ 756, 793, 900, 804, 919, 1045, 969, 1049, 803, 909,
140419 /* 360 */ 1051, 983, 1059, 1428, 1434, 1416, 1300, 1429, 1362, 1430,
140420 /* 370 */ 1422, 1424, 1330, 1317, 1340, 1329, 1433, 1331, 1438, 1454,
140421 /* 380 */ 1334, 1327, 1406, 1407, 1408, 1409, 1352, 1368, 1431, 1344,
140422 /* 390 */ 1466, 1463, 1447, 1363, 1332, 1404, 1448, 1411, 1399, 1435,
140423 /* 400 */ 1370, 1451, 1459, 1461, 1369, 1377, 1462, 1417, 1464, 1465,
140424 /* 410 */ 1467, 1469, 1419, 1460, 1470, 1423, 1456, 1471, 1472, 1473,
140425 /* 420 */ 1474, 1381, 1476, 1478, 1477, 1479, 1380, 1480, 1481, 1412,
140426 /* 430 */ 1475, 1484, 1386, 1485, 1482, 1486, 1483, 1490, 1485, 1491,
140427 /* 440 */ 1492, 1495, 1493, 1497, 1499, 1496, 1500, 1502, 1498, 1501,
140428 /* 450 */ 1503, 1506, 1505, 1501, 1507, 1509, 1510, 1511, 1513, 1403,
140429 /* 460 */ 1414, 1415, 1418, 1515, 1517, 1538,
140430 };
140431 #define YY_REDUCE_COUNT (334)
140432 #define YY_REDUCE_MIN (-217)
140433 #define YY_REDUCE_MAX (1278)
 
140434 static const short yy_reduce_ofst[] = {
140435 /* 0 */ -144, -139, -134, -136, -141, 64, 114, 116, -158, -148,
140436 /* 10 */ -217, 96, 819, 871, 878, 219, 270, 886, 272, -110,
140437 /* 20 */ 413, 918, 972, 228, -214, -214, -214, -214, -214, -214,
140438 /* 30 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
140439 /* 40 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
140440 /* 50 */ -214, -214, -214, -214, -214, -214, 62, 323, 377, 536,
140441 /* 60 */ 539, 834, 948, 1020, 1024, 1031, 1039, 1048, 1050, 1063,
140442 /* 70 */ 1065, 1068, 1074, 1080, 1083, 1088, 1091, 1094, 1097, 1099,
140443 /* 80 */ 1103, 1106, 1111, 1114, 1122, 1126, 1129, 1131, 1137, 1139,
140444 /* 90 */ 1141, 1145, 1149, 1154, 1156, 1164, 1168, 1173, 1180, 1184,
140445 /* 100 */ 1187, 1192, -214, -214, -214, -214, -214, -214, -214, -214,
140446 /* 110 */ -214, 132, -45, 97, 8, 164, 379, 175, 255, -214,
140447 /* 120 */ 178, -214, -214, -214, -214, -168, -168, -168, 124, 329,
140448 /* 130 */ 399, 401, -129, 347, 347, 331, 133, 451, 452, 498,
140449 /* 140 */ 500, 502, 503, 505, 487, 506, 488, 490, 507, 543,
140450 /* 150 */ 547, -126, 588, 290, 27, 572, 501, 597, 537, 582,
140451 /* 160 */ 183, 599, 600, 601, 649, 650, 653, 508, 538, -29,
140452 /* 170 */ -156, -152, -137, -79, 135, 74, 130, 242, 338, 378,
140453 /* 180 */ 393, 397, 607, 648, 691, 700, 708, 709, 728, 757,
140454 /* 190 */ 763, 769, 796, 810, 818, 845, 202, 748, 792, 861,
140455 /* 200 */ 862, 815, 866, 903, 905, 850, 931, 932, 896, 937,
140456 /* 210 */ 939, 945, 74, 949, 951, 964, 965, 967, 968, 888,
140457 /* 220 */ 820, 923, 926, 959, 960, 815, 980, 908, 1009, 985,
140458 /* 230 */ 986, 970, 974, 942, 988, 947, 1018, 1011, 1022, 1025,
140459 /* 240 */ 991, 982, 1032, 1038, 1015, 1019, 1064, 984, 1071, 1072,
140460 /* 250 */ 992, 993, 1085, 1061, 1069, 1067, 1093, 1116, 1124, 1128,
140461 /* 260 */ 1133, 1132, 1138, 1086, 1136, 1143, 1146, 1175, 1166, 1108,
140462 /* 270 */ 1113, 1193, 1196, 1201, 1178, 1203, 1205, 1208, 1206, 1190,
140463 /* 280 */ 1195, 1197, 1199, 1194, 1200, 1204, 1207, 1210, 1211, 1212,
140464 /* 290 */ 1213, 1159, 1167, 1169, 1174, 1172, 1176, 1179, 1177, 1222,
140465 /* 300 */ 1170, 1232, 1171, 1221, 1181, 1182, 1223, 1202, 1214, 1216,
140466 /* 310 */ 1215, 1219, 1245, 1249, 1261, 1262, 1266, 1271, 1275, 1183,
140467 /* 320 */ 1185, 1189, 1258, 1253, 1254, 1256, 1259, 1263, 1252, 1255,
140468 /* 330 */ 1268, 1269, 1270, 1278, 1264,
 
140469 };
140470 static const YYACTIONTYPE yy_default[] = {
140471 /* 0 */ 1286, 1276, 1276, 1276, 1209, 1209, 1209, 1209, 1133, 1133,
140472 /* 10 */ 1260, 1036, 1005, 1005, 1005, 1005, 1005, 1005, 1208, 1005,
140473 /* 20 */ 1005, 1005, 1005, 1108, 1139, 1005, 1005, 1005, 1005, 1210,
140474 /* 30 */ 1211, 1005, 1005, 1005, 1259, 1261, 1149, 1148, 1147, 1146,
140475 /* 40 */ 1242, 1120, 1144, 1137, 1141, 1210, 1204, 1205, 1203, 1207,
140476 /* 50 */ 1211, 1005, 1140, 1174, 1188, 1173, 1005, 1005, 1005, 1005,
140477 /* 60 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140478 /* 70 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140479 /* 80 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140480 /* 90 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140481 /* 100 */ 1005, 1005, 1182, 1187, 1194, 1186, 1183, 1176, 1175, 1177,
140482 /* 110 */ 1178, 1005, 1026, 1075, 1005, 1005, 1005, 1276, 1036, 1179,
140483 /* 120 */ 1005, 1180, 1191, 1190, 1189, 1267, 1294, 1293, 1005, 1005,
140484 /* 130 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140485 /* 140 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140486 /* 150 */ 1005, 1005, 1005, 1005, 1005, 1036, 1286, 1276, 1032, 1032,
140487 /* 160 */ 1005, 1276, 1276, 1276, 1276, 1276, 1276, 1272, 1108, 1099,
140488 /* 170 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140489 /* 180 */ 1005, 1264, 1262, 1005, 1224, 1005, 1005, 1005, 1005, 1005,
140490 /* 190 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140491 /* 200 */ 1005, 1005, 1005, 1005, 1005, 1104, 1005, 1005, 1005, 1005,
140492 /* 210 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1288, 1005,
140493 /* 220 */ 1237, 1104, 1104, 1104, 1104, 1106, 1088, 1098, 1036, 1012,
140494 /* 230 */ 1143, 1122, 1122, 1327, 1143, 1327, 1050, 1308, 1047, 1133,
140495 /* 240 */ 1122, 1206, 1133, 1133, 1105, 1098, 1005, 1330, 1113, 1113,
140496 /* 250 */ 1329, 1329, 1113, 1154, 1078, 1143, 1084, 1084, 1084, 1084,
140497 /* 260 */ 1113, 1023, 1143, 1154, 1078, 1078, 1143, 1113, 1023, 1241,
140498 /* 270 */ 1324, 1113, 1113, 1023, 1217, 1113, 1023, 1113, 1023, 1217,
140499 /* 280 */ 1076, 1076, 1076, 1065, 1217, 1076, 1050, 1076, 1065, 1076,
140500 /* 290 */ 1076, 1126, 1121, 1126, 1121, 1126, 1121, 1126, 1121, 1113,
140501 /* 300 */ 1212, 1113, 1005, 1217, 1221, 1221, 1217, 1138, 1127, 1136,
140502 /* 310 */ 1134, 1143, 1029, 1068, 1291, 1291, 1287, 1287, 1287, 1335,
140503 /* 320 */ 1335, 1272, 1303, 1036, 1036, 1036, 1036, 1303, 1052, 1052,
140504 /* 330 */ 1036, 1036, 1036, 1036, 1303, 1005, 1005, 1005, 1005, 1005,
140505 /* 340 */ 1005, 1298, 1005, 1226, 1005, 1005, 1005, 1005, 1005, 1005,
140506 /* 350 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140507 /* 360 */ 1005, 1005, 1159, 1005, 1008, 1269, 1005, 1005, 1268, 1005,
140508 /* 370 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140509 /* 380 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1326,
140510 /* 390 */ 1005, 1005, 1005, 1005, 1005, 1005, 1240, 1239, 1005, 1005,
140511 /* 400 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140512 /* 410 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
140513 /* 420 */ 1005, 1090, 1005, 1005, 1005, 1312, 1005, 1005, 1005, 1005,
140514 /* 430 */ 1005, 1005, 1005, 1135, 1005, 1128, 1005, 1005, 1317, 1005,
140515 /* 440 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1278,
140516 /* 450 */ 1005, 1005, 1005, 1277, 1005, 1005, 1005, 1005, 1005, 1161,
140517 /* 460 */ 1005, 1160, 1164, 1005, 1017, 1005,
 
140518 };
140519 /********** End of lemon-generated parsing tables *****************************/
140520
140521 /* The next table maps tokens (terminal symbols) into fallback tokens.
140522 ** If a construct like the following:
@@ -140898,11 +140967,11 @@
140898 /* 192 */ "raisetype",
140899 /* 193 */ "ifexists",
140900 /* 194 */ "fullname",
140901 /* 195 */ "selectnowith",
140902 /* 196 */ "oneselect",
140903 /* 197 */ "with",
140904 /* 198 */ "multiselect_op",
140905 /* 199 */ "distinct",
140906 /* 200 */ "selcollist",
140907 /* 201 */ "from",
140908 /* 202 */ "where_opt",
@@ -140920,43 +140989,43 @@
140920 /* 214 */ "joinop",
140921 /* 215 */ "indexed_opt",
140922 /* 216 */ "on_opt",
140923 /* 217 */ "using_opt",
140924 /* 218 */ "idlist",
140925 /* 219 */ "setlist",
140926 /* 220 */ "insert_cmd",
140927 /* 221 */ "idlist_opt",
140928 /* 222 */ "likeop",
140929 /* 223 */ "between_op",
140930 /* 224 */ "in_op",
140931 /* 225 */ "paren_exprlist",
140932 /* 226 */ "case_operand",
140933 /* 227 */ "case_exprlist",
140934 /* 228 */ "case_else",
140935 /* 229 */ "uniqueflag",
140936 /* 230 */ "collate",
140937 /* 231 */ "nmnum",
140938 /* 232 */ "trigger_decl",
140939 /* 233 */ "trigger_cmd_list",
140940 /* 234 */ "trigger_time",
140941 /* 235 */ "trigger_event",
140942 /* 236 */ "foreach_clause",
140943 /* 237 */ "when_clause",
140944 /* 238 */ "trigger_cmd",
140945 /* 239 */ "trnm",
140946 /* 240 */ "tridxby",
140947 /* 241 */ "database_kw_opt",
140948 /* 242 */ "key_opt",
140949 /* 243 */ "add_column_fullname",
140950 /* 244 */ "kwcolumn_opt",
140951 /* 245 */ "create_vtab",
140952 /* 246 */ "vtabarglist",
140953 /* 247 */ "vtabarg",
140954 /* 248 */ "vtabargtoken",
140955 /* 249 */ "lp",
140956 /* 250 */ "anylist",
140957 /* 251 */ "wqlist",
140958 };
140959 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
140960
140961 #ifndef NDEBUG
140962 /* For tracing reduce actions, the names of all rules are required.
@@ -141040,260 +141109,263 @@
141040 /* 75 */ "ifexists ::= IF EXISTS",
141041 /* 76 */ "ifexists ::=",
141042 /* 77 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select",
141043 /* 78 */ "cmd ::= DROP VIEW ifexists fullname",
141044 /* 79 */ "cmd ::= select",
141045 /* 80 */ "select ::= with selectnowith",
141046 /* 81 */ "selectnowith ::= selectnowith multiselect_op oneselect",
141047 /* 82 */ "multiselect_op ::= UNION",
141048 /* 83 */ "multiselect_op ::= UNION ALL",
141049 /* 84 */ "multiselect_op ::= EXCEPT|INTERSECT",
141050 /* 85 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
141051 /* 86 */ "values ::= VALUES LP nexprlist RP",
141052 /* 87 */ "values ::= values COMMA LP exprlist RP",
141053 /* 88 */ "distinct ::= DISTINCT",
141054 /* 89 */ "distinct ::= ALL",
141055 /* 90 */ "distinct ::=",
141056 /* 91 */ "sclp ::=",
141057 /* 92 */ "selcollist ::= sclp scanpt expr scanpt as",
141058 /* 93 */ "selcollist ::= sclp scanpt STAR",
141059 /* 94 */ "selcollist ::= sclp scanpt nm DOT STAR",
141060 /* 95 */ "as ::= AS nm",
141061 /* 96 */ "as ::=",
141062 /* 97 */ "from ::=",
141063 /* 98 */ "from ::= FROM seltablist",
141064 /* 99 */ "stl_prefix ::= seltablist joinop",
141065 /* 100 */ "stl_prefix ::=",
141066 /* 101 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
141067 /* 102 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
141068 /* 103 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
141069 /* 104 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
141070 /* 105 */ "dbnm ::=",
141071 /* 106 */ "dbnm ::= DOT nm",
141072 /* 107 */ "fullname ::= nm dbnm",
141073 /* 108 */ "joinop ::= COMMA|JOIN",
141074 /* 109 */ "joinop ::= JOIN_KW JOIN",
141075 /* 110 */ "joinop ::= JOIN_KW nm JOIN",
141076 /* 111 */ "joinop ::= JOIN_KW nm nm JOIN",
141077 /* 112 */ "on_opt ::= ON expr",
141078 /* 113 */ "on_opt ::=",
141079 /* 114 */ "indexed_opt ::=",
141080 /* 115 */ "indexed_opt ::= INDEXED BY nm",
141081 /* 116 */ "indexed_opt ::= NOT INDEXED",
141082 /* 117 */ "using_opt ::= USING LP idlist RP",
141083 /* 118 */ "using_opt ::=",
141084 /* 119 */ "orderby_opt ::=",
141085 /* 120 */ "orderby_opt ::= ORDER BY sortlist",
141086 /* 121 */ "sortlist ::= sortlist COMMA expr sortorder",
141087 /* 122 */ "sortlist ::= expr sortorder",
141088 /* 123 */ "sortorder ::= ASC",
141089 /* 124 */ "sortorder ::= DESC",
141090 /* 125 */ "sortorder ::=",
141091 /* 126 */ "groupby_opt ::=",
141092 /* 127 */ "groupby_opt ::= GROUP BY nexprlist",
141093 /* 128 */ "having_opt ::=",
141094 /* 129 */ "having_opt ::= HAVING expr",
141095 /* 130 */ "limit_opt ::=",
141096 /* 131 */ "limit_opt ::= LIMIT expr",
141097 /* 132 */ "limit_opt ::= LIMIT expr OFFSET expr",
141098 /* 133 */ "limit_opt ::= LIMIT expr COMMA expr",
141099 /* 134 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
141100 /* 135 */ "where_opt ::=",
141101 /* 136 */ "where_opt ::= WHERE expr",
141102 /* 137 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
141103 /* 138 */ "setlist ::= setlist COMMA nm EQ expr",
141104 /* 139 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
141105 /* 140 */ "setlist ::= nm EQ expr",
141106 /* 141 */ "setlist ::= LP idlist RP EQ expr",
141107 /* 142 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
141108 /* 143 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
141109 /* 144 */ "insert_cmd ::= INSERT orconf",
141110 /* 145 */ "insert_cmd ::= REPLACE",
141111 /* 146 */ "idlist_opt ::=",
141112 /* 147 */ "idlist_opt ::= LP idlist RP",
141113 /* 148 */ "idlist ::= idlist COMMA nm",
141114 /* 149 */ "idlist ::= nm",
141115 /* 150 */ "expr ::= LP expr RP",
141116 /* 151 */ "expr ::= ID|INDEXED",
141117 /* 152 */ "expr ::= JOIN_KW",
141118 /* 153 */ "expr ::= nm DOT nm",
141119 /* 154 */ "expr ::= nm DOT nm DOT nm",
141120 /* 155 */ "term ::= NULL|FLOAT|BLOB",
141121 /* 156 */ "term ::= STRING",
141122 /* 157 */ "term ::= INTEGER",
141123 /* 158 */ "expr ::= VARIABLE",
141124 /* 159 */ "expr ::= expr COLLATE ID|STRING",
141125 /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
141126 /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
141127 /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
141128 /* 163 */ "term ::= CTIME_KW",
141129 /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
141130 /* 165 */ "expr ::= expr AND expr",
141131 /* 166 */ "expr ::= expr OR expr",
141132 /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
141133 /* 168 */ "expr ::= expr EQ|NE expr",
141134 /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
141135 /* 170 */ "expr ::= expr PLUS|MINUS expr",
141136 /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
141137 /* 172 */ "expr ::= expr CONCAT expr",
141138 /* 173 */ "likeop ::= NOT LIKE_KW|MATCH",
141139 /* 174 */ "expr ::= expr likeop expr",
141140 /* 175 */ "expr ::= expr likeop expr ESCAPE expr",
141141 /* 176 */ "expr ::= expr ISNULL|NOTNULL",
141142 /* 177 */ "expr ::= expr NOT NULL",
141143 /* 178 */ "expr ::= expr IS expr",
141144 /* 179 */ "expr ::= expr IS NOT expr",
141145 /* 180 */ "expr ::= NOT expr",
141146 /* 181 */ "expr ::= BITNOT expr",
141147 /* 182 */ "expr ::= MINUS expr",
141148 /* 183 */ "expr ::= PLUS expr",
141149 /* 184 */ "between_op ::= BETWEEN",
141150 /* 185 */ "between_op ::= NOT BETWEEN",
141151 /* 186 */ "expr ::= expr between_op expr AND expr",
141152 /* 187 */ "in_op ::= IN",
141153 /* 188 */ "in_op ::= NOT IN",
141154 /* 189 */ "expr ::= expr in_op LP exprlist RP",
141155 /* 190 */ "expr ::= LP select RP",
141156 /* 191 */ "expr ::= expr in_op LP select RP",
141157 /* 192 */ "expr ::= expr in_op nm dbnm paren_exprlist",
141158 /* 193 */ "expr ::= EXISTS LP select RP",
141159 /* 194 */ "expr ::= CASE case_operand case_exprlist case_else END",
141160 /* 195 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
141161 /* 196 */ "case_exprlist ::= WHEN expr THEN expr",
141162 /* 197 */ "case_else ::= ELSE expr",
141163 /* 198 */ "case_else ::=",
141164 /* 199 */ "case_operand ::= expr",
141165 /* 200 */ "case_operand ::=",
141166 /* 201 */ "exprlist ::=",
141167 /* 202 */ "nexprlist ::= nexprlist COMMA expr",
141168 /* 203 */ "nexprlist ::= expr",
141169 /* 204 */ "paren_exprlist ::=",
141170 /* 205 */ "paren_exprlist ::= LP exprlist RP",
141171 /* 206 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
141172 /* 207 */ "uniqueflag ::= UNIQUE",
141173 /* 208 */ "uniqueflag ::=",
141174 /* 209 */ "eidlist_opt ::=",
141175 /* 210 */ "eidlist_opt ::= LP eidlist RP",
141176 /* 211 */ "eidlist ::= eidlist COMMA nm collate sortorder",
141177 /* 212 */ "eidlist ::= nm collate sortorder",
141178 /* 213 */ "collate ::=",
141179 /* 214 */ "collate ::= COLLATE ID|STRING",
141180 /* 215 */ "cmd ::= DROP INDEX ifexists fullname",
141181 /* 216 */ "cmd ::= VACUUM",
141182 /* 217 */ "cmd ::= VACUUM nm",
141183 /* 218 */ "cmd ::= PRAGMA nm dbnm",
141184 /* 219 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
141185 /* 220 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
141186 /* 221 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
141187 /* 222 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
141188 /* 223 */ "plus_num ::= PLUS INTEGER|FLOAT",
141189 /* 224 */ "minus_num ::= MINUS INTEGER|FLOAT",
141190 /* 225 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
141191 /* 226 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
141192 /* 227 */ "trigger_time ::= BEFORE|AFTER",
141193 /* 228 */ "trigger_time ::= INSTEAD OF",
141194 /* 229 */ "trigger_time ::=",
141195 /* 230 */ "trigger_event ::= DELETE|INSERT",
141196 /* 231 */ "trigger_event ::= UPDATE",
141197 /* 232 */ "trigger_event ::= UPDATE OF idlist",
141198 /* 233 */ "when_clause ::=",
141199 /* 234 */ "when_clause ::= WHEN expr",
141200 /* 235 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
141201 /* 236 */ "trigger_cmd_list ::= trigger_cmd SEMI",
141202 /* 237 */ "trnm ::= nm DOT nm",
141203 /* 238 */ "tridxby ::= INDEXED BY nm",
141204 /* 239 */ "tridxby ::= NOT INDEXED",
141205 /* 240 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
141206 /* 241 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
141207 /* 242 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
141208 /* 243 */ "trigger_cmd ::= scanpt select scanpt",
141209 /* 244 */ "expr ::= RAISE LP IGNORE RP",
141210 /* 245 */ "expr ::= RAISE LP raisetype COMMA nm RP",
141211 /* 246 */ "raisetype ::= ROLLBACK",
141212 /* 247 */ "raisetype ::= ABORT",
141213 /* 248 */ "raisetype ::= FAIL",
141214 /* 249 */ "cmd ::= DROP TRIGGER ifexists fullname",
141215 /* 250 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
141216 /* 251 */ "cmd ::= DETACH database_kw_opt expr",
141217 /* 252 */ "key_opt ::=",
141218 /* 253 */ "key_opt ::= KEY expr",
141219 /* 254 */ "cmd ::= REINDEX",
141220 /* 255 */ "cmd ::= REINDEX nm dbnm",
141221 /* 256 */ "cmd ::= ANALYZE",
141222 /* 257 */ "cmd ::= ANALYZE nm dbnm",
141223 /* 258 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
141224 /* 259 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
141225 /* 260 */ "add_column_fullname ::= fullname",
141226 /* 261 */ "cmd ::= create_vtab",
141227 /* 262 */ "cmd ::= create_vtab LP vtabarglist RP",
141228 /* 263 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
141229 /* 264 */ "vtabarg ::=",
141230 /* 265 */ "vtabargtoken ::= ANY",
141231 /* 266 */ "vtabargtoken ::= lp anylist RP",
141232 /* 267 */ "lp ::= LP",
141233 /* 268 */ "with ::=",
141234 /* 269 */ "with ::= WITH wqlist",
141235 /* 270 */ "with ::= WITH RECURSIVE wqlist",
141236 /* 271 */ "wqlist ::= nm eidlist_opt AS LP select RP",
141237 /* 272 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
141238 /* 273 */ "input ::= cmdlist",
141239 /* 274 */ "cmdlist ::= cmdlist ecmd",
141240 /* 275 */ "cmdlist ::= ecmd",
141241 /* 276 */ "ecmd ::= SEMI",
141242 /* 277 */ "ecmd ::= explain cmdx SEMI",
141243 /* 278 */ "explain ::=",
141244 /* 279 */ "trans_opt ::=",
141245 /* 280 */ "trans_opt ::= TRANSACTION",
141246 /* 281 */ "trans_opt ::= TRANSACTION nm",
141247 /* 282 */ "savepoint_opt ::= SAVEPOINT",
141248 /* 283 */ "savepoint_opt ::=",
141249 /* 284 */ "cmd ::= create_table create_table_args",
141250 /* 285 */ "columnlist ::= columnlist COMMA columnname carglist",
141251 /* 286 */ "columnlist ::= columnname carglist",
141252 /* 287 */ "nm ::= ID|INDEXED",
141253 /* 288 */ "nm ::= STRING",
141254 /* 289 */ "nm ::= JOIN_KW",
141255 /* 290 */ "typetoken ::= typename",
141256 /* 291 */ "typename ::= ID|STRING",
141257 /* 292 */ "signed ::= plus_num",
141258 /* 293 */ "signed ::= minus_num",
141259 /* 294 */ "carglist ::= carglist ccons",
141260 /* 295 */ "carglist ::=",
141261 /* 296 */ "ccons ::= NULL onconf",
141262 /* 297 */ "conslist_opt ::= COMMA conslist",
141263 /* 298 */ "conslist ::= conslist tconscomma tcons",
141264 /* 299 */ "conslist ::= tcons",
141265 /* 300 */ "tconscomma ::=",
141266 /* 301 */ "defer_subclause_opt ::= defer_subclause",
141267 /* 302 */ "resolvetype ::= raisetype",
141268 /* 303 */ "selectnowith ::= oneselect",
141269 /* 304 */ "oneselect ::= values",
141270 /* 305 */ "sclp ::= selcollist COMMA",
141271 /* 306 */ "as ::= ID|STRING",
141272 /* 307 */ "expr ::= term",
141273 /* 308 */ "likeop ::= LIKE_KW|MATCH",
141274 /* 309 */ "exprlist ::= nexprlist",
141275 /* 310 */ "nmnum ::= plus_num",
141276 /* 311 */ "nmnum ::= nm",
141277 /* 312 */ "nmnum ::= ON",
141278 /* 313 */ "nmnum ::= DELETE",
141279 /* 314 */ "nmnum ::= DEFAULT",
141280 /* 315 */ "plus_num ::= INTEGER|FLOAT",
141281 /* 316 */ "foreach_clause ::=",
141282 /* 317 */ "foreach_clause ::= FOR EACH ROW",
141283 /* 318 */ "trnm ::= nm",
141284 /* 319 */ "tridxby ::=",
141285 /* 320 */ "database_kw_opt ::= DATABASE",
141286 /* 321 */ "database_kw_opt ::=",
141287 /* 322 */ "kwcolumn_opt ::=",
141288 /* 323 */ "kwcolumn_opt ::= COLUMNKW",
141289 /* 324 */ "vtabarglist ::= vtabarg",
141290 /* 325 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
141291 /* 326 */ "vtabarg ::= vtabarg vtabargtoken",
141292 /* 327 */ "anylist ::=",
141293 /* 328 */ "anylist ::= anylist LP anylist RP",
141294 /* 329 */ "anylist ::= anylist ANY",
 
 
 
141295 };
141296 #endif /* NDEBUG */
141297
141298
141299 #if YYSTACKDEPTH<=0
@@ -141423,14 +141495,14 @@
141423 case 173: /* term */
141424 case 174: /* expr */
141425 case 202: /* where_opt */
141426 case 204: /* having_opt */
141427 case 216: /* on_opt */
141428 case 226: /* case_operand */
141429 case 228: /* case_else */
141430 case 237: /* when_clause */
141431 case 242: /* key_opt */
141432 {
141433 sqlite3ExprDelete(pParse->db, (yypminor->yy314));
141434 }
141435 break;
141436 case 178: /* eidlist_opt */
@@ -141440,13 +141512,13 @@
141440 case 203: /* groupby_opt */
141441 case 205: /* orderby_opt */
141442 case 208: /* nexprlist */
141443 case 209: /* exprlist */
141444 case 210: /* sclp */
141445 case 219: /* setlist */
141446 case 225: /* paren_exprlist */
141447 case 227: /* case_exprlist */
141448 {
141449 sqlite3ExprListDelete(pParse->db, (yypminor->yy322));
141450 }
141451 break;
141452 case 194: /* fullname */
@@ -141455,30 +141527,29 @@
141455 case 213: /* stl_prefix */
141456 {
141457 sqlite3SrcListDelete(pParse->db, (yypminor->yy259));
141458 }
141459 break;
141460 case 197: /* with */
141461 case 251: /* wqlist */
141462 {
141463 sqlite3WithDelete(pParse->db, (yypminor->yy451));
141464 }
141465 break;
141466 case 217: /* using_opt */
141467 case 218: /* idlist */
141468 case 221: /* idlist_opt */
141469 {
141470 sqlite3IdListDelete(pParse->db, (yypminor->yy384));
141471 }
141472 break;
141473 case 233: /* trigger_cmd_list */
141474 case 238: /* trigger_cmd */
141475 {
141476 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203));
141477 }
141478 break;
141479 case 235: /* trigger_event */
141480 {
141481 sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
141482 }
141483 break;
141484 /********* End destructor definitions *****************************************/
@@ -141853,260 +141924,263 @@
141853 { 193, -2 }, /* (75) ifexists ::= IF EXISTS */
141854 { 193, 0 }, /* (76) ifexists ::= */
141855 { 149, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
141856 { 149, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */
141857 { 149, -1 }, /* (79) cmd ::= select */
141858 { 163, -2 }, /* (80) select ::= with selectnowith */
141859 { 195, -3 }, /* (81) selectnowith ::= selectnowith multiselect_op oneselect */
141860 { 198, -1 }, /* (82) multiselect_op ::= UNION */
141861 { 198, -2 }, /* (83) multiselect_op ::= UNION ALL */
141862 { 198, -1 }, /* (84) multiselect_op ::= EXCEPT|INTERSECT */
141863 { 196, -9 }, /* (85) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
141864 { 207, -4 }, /* (86) values ::= VALUES LP nexprlist RP */
141865 { 207, -5 }, /* (87) values ::= values COMMA LP exprlist RP */
141866 { 199, -1 }, /* (88) distinct ::= DISTINCT */
141867 { 199, -1 }, /* (89) distinct ::= ALL */
141868 { 199, 0 }, /* (90) distinct ::= */
141869 { 210, 0 }, /* (91) sclp ::= */
141870 { 200, -5 }, /* (92) selcollist ::= sclp scanpt expr scanpt as */
141871 { 200, -3 }, /* (93) selcollist ::= sclp scanpt STAR */
141872 { 200, -5 }, /* (94) selcollist ::= sclp scanpt nm DOT STAR */
141873 { 211, -2 }, /* (95) as ::= AS nm */
141874 { 211, 0 }, /* (96) as ::= */
141875 { 201, 0 }, /* (97) from ::= */
141876 { 201, -2 }, /* (98) from ::= FROM seltablist */
141877 { 213, -2 }, /* (99) stl_prefix ::= seltablist joinop */
141878 { 213, 0 }, /* (100) stl_prefix ::= */
141879 { 212, -7 }, /* (101) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
141880 { 212, -9 }, /* (102) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
141881 { 212, -7 }, /* (103) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
141882 { 212, -7 }, /* (104) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
141883 { 159, 0 }, /* (105) dbnm ::= */
141884 { 159, -2 }, /* (106) dbnm ::= DOT nm */
141885 { 194, -2 }, /* (107) fullname ::= nm dbnm */
141886 { 214, -1 }, /* (108) joinop ::= COMMA|JOIN */
141887 { 214, -2 }, /* (109) joinop ::= JOIN_KW JOIN */
141888 { 214, -3 }, /* (110) joinop ::= JOIN_KW nm JOIN */
141889 { 214, -4 }, /* (111) joinop ::= JOIN_KW nm nm JOIN */
141890 { 216, -2 }, /* (112) on_opt ::= ON expr */
141891 { 216, 0 }, /* (113) on_opt ::= */
141892 { 215, 0 }, /* (114) indexed_opt ::= */
141893 { 215, -3 }, /* (115) indexed_opt ::= INDEXED BY nm */
141894 { 215, -2 }, /* (116) indexed_opt ::= NOT INDEXED */
141895 { 217, -4 }, /* (117) using_opt ::= USING LP idlist RP */
141896 { 217, 0 }, /* (118) using_opt ::= */
141897 { 205, 0 }, /* (119) orderby_opt ::= */
141898 { 205, -3 }, /* (120) orderby_opt ::= ORDER BY sortlist */
141899 { 187, -4 }, /* (121) sortlist ::= sortlist COMMA expr sortorder */
141900 { 187, -2 }, /* (122) sortlist ::= expr sortorder */
141901 { 176, -1 }, /* (123) sortorder ::= ASC */
141902 { 176, -1 }, /* (124) sortorder ::= DESC */
141903 { 176, 0 }, /* (125) sortorder ::= */
141904 { 203, 0 }, /* (126) groupby_opt ::= */
141905 { 203, -3 }, /* (127) groupby_opt ::= GROUP BY nexprlist */
141906 { 204, 0 }, /* (128) having_opt ::= */
141907 { 204, -2 }, /* (129) having_opt ::= HAVING expr */
141908 { 206, 0 }, /* (130) limit_opt ::= */
141909 { 206, -2 }, /* (131) limit_opt ::= LIMIT expr */
141910 { 206, -4 }, /* (132) limit_opt ::= LIMIT expr OFFSET expr */
141911 { 206, -4 }, /* (133) limit_opt ::= LIMIT expr COMMA expr */
141912 { 149, -6 }, /* (134) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
141913 { 202, 0 }, /* (135) where_opt ::= */
141914 { 202, -2 }, /* (136) where_opt ::= WHERE expr */
141915 { 149, -8 }, /* (137) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
141916 { 219, -5 }, /* (138) setlist ::= setlist COMMA nm EQ expr */
141917 { 219, -7 }, /* (139) setlist ::= setlist COMMA LP idlist RP EQ expr */
141918 { 219, -3 }, /* (140) setlist ::= nm EQ expr */
141919 { 219, -5 }, /* (141) setlist ::= LP idlist RP EQ expr */
141920 { 149, -6 }, /* (142) cmd ::= with insert_cmd INTO fullname idlist_opt select */
141921 { 149, -7 }, /* (143) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
141922 { 220, -2 }, /* (144) insert_cmd ::= INSERT orconf */
141923 { 220, -1 }, /* (145) insert_cmd ::= REPLACE */
141924 { 221, 0 }, /* (146) idlist_opt ::= */
141925 { 221, -3 }, /* (147) idlist_opt ::= LP idlist RP */
141926 { 218, -3 }, /* (148) idlist ::= idlist COMMA nm */
141927 { 218, -1 }, /* (149) idlist ::= nm */
141928 { 174, -3 }, /* (150) expr ::= LP expr RP */
141929 { 174, -1 }, /* (151) expr ::= ID|INDEXED */
141930 { 174, -1 }, /* (152) expr ::= JOIN_KW */
141931 { 174, -3 }, /* (153) expr ::= nm DOT nm */
141932 { 174, -5 }, /* (154) expr ::= nm DOT nm DOT nm */
141933 { 173, -1 }, /* (155) term ::= NULL|FLOAT|BLOB */
141934 { 173, -1 }, /* (156) term ::= STRING */
141935 { 173, -1 }, /* (157) term ::= INTEGER */
141936 { 174, -1 }, /* (158) expr ::= VARIABLE */
141937 { 174, -3 }, /* (159) expr ::= expr COLLATE ID|STRING */
141938 { 174, -6 }, /* (160) expr ::= CAST LP expr AS typetoken RP */
141939 { 174, -5 }, /* (161) expr ::= ID|INDEXED LP distinct exprlist RP */
141940 { 174, -4 }, /* (162) expr ::= ID|INDEXED LP STAR RP */
141941 { 173, -1 }, /* (163) term ::= CTIME_KW */
141942 { 174, -5 }, /* (164) expr ::= LP nexprlist COMMA expr RP */
141943 { 174, -3 }, /* (165) expr ::= expr AND expr */
141944 { 174, -3 }, /* (166) expr ::= expr OR expr */
141945 { 174, -3 }, /* (167) expr ::= expr LT|GT|GE|LE expr */
141946 { 174, -3 }, /* (168) expr ::= expr EQ|NE expr */
141947 { 174, -3 }, /* (169) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
141948 { 174, -3 }, /* (170) expr ::= expr PLUS|MINUS expr */
141949 { 174, -3 }, /* (171) expr ::= expr STAR|SLASH|REM expr */
141950 { 174, -3 }, /* (172) expr ::= expr CONCAT expr */
141951 { 222, -2 }, /* (173) likeop ::= NOT LIKE_KW|MATCH */
141952 { 174, -3 }, /* (174) expr ::= expr likeop expr */
141953 { 174, -5 }, /* (175) expr ::= expr likeop expr ESCAPE expr */
141954 { 174, -2 }, /* (176) expr ::= expr ISNULL|NOTNULL */
141955 { 174, -3 }, /* (177) expr ::= expr NOT NULL */
141956 { 174, -3 }, /* (178) expr ::= expr IS expr */
141957 { 174, -4 }, /* (179) expr ::= expr IS NOT expr */
141958 { 174, -2 }, /* (180) expr ::= NOT expr */
141959 { 174, -2 }, /* (181) expr ::= BITNOT expr */
141960 { 174, -2 }, /* (182) expr ::= MINUS expr */
141961 { 174, -2 }, /* (183) expr ::= PLUS expr */
141962 { 223, -1 }, /* (184) between_op ::= BETWEEN */
141963 { 223, -2 }, /* (185) between_op ::= NOT BETWEEN */
141964 { 174, -5 }, /* (186) expr ::= expr between_op expr AND expr */
141965 { 224, -1 }, /* (187) in_op ::= IN */
141966 { 224, -2 }, /* (188) in_op ::= NOT IN */
141967 { 174, -5 }, /* (189) expr ::= expr in_op LP exprlist RP */
141968 { 174, -3 }, /* (190) expr ::= LP select RP */
141969 { 174, -5 }, /* (191) expr ::= expr in_op LP select RP */
141970 { 174, -5 }, /* (192) expr ::= expr in_op nm dbnm paren_exprlist */
141971 { 174, -4 }, /* (193) expr ::= EXISTS LP select RP */
141972 { 174, -5 }, /* (194) expr ::= CASE case_operand case_exprlist case_else END */
141973 { 227, -5 }, /* (195) case_exprlist ::= case_exprlist WHEN expr THEN expr */
141974 { 227, -4 }, /* (196) case_exprlist ::= WHEN expr THEN expr */
141975 { 228, -2 }, /* (197) case_else ::= ELSE expr */
141976 { 228, 0 }, /* (198) case_else ::= */
141977 { 226, -1 }, /* (199) case_operand ::= expr */
141978 { 226, 0 }, /* (200) case_operand ::= */
141979 { 209, 0 }, /* (201) exprlist ::= */
141980 { 208, -3 }, /* (202) nexprlist ::= nexprlist COMMA expr */
141981 { 208, -1 }, /* (203) nexprlist ::= expr */
141982 { 225, 0 }, /* (204) paren_exprlist ::= */
141983 { 225, -3 }, /* (205) paren_exprlist ::= LP exprlist RP */
141984 { 149, -12 }, /* (206) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
141985 { 229, -1 }, /* (207) uniqueflag ::= UNIQUE */
141986 { 229, 0 }, /* (208) uniqueflag ::= */
141987 { 178, 0 }, /* (209) eidlist_opt ::= */
141988 { 178, -3 }, /* (210) eidlist_opt ::= LP eidlist RP */
141989 { 188, -5 }, /* (211) eidlist ::= eidlist COMMA nm collate sortorder */
141990 { 188, -3 }, /* (212) eidlist ::= nm collate sortorder */
141991 { 230, 0 }, /* (213) collate ::= */
141992 { 230, -2 }, /* (214) collate ::= COLLATE ID|STRING */
141993 { 149, -4 }, /* (215) cmd ::= DROP INDEX ifexists fullname */
141994 { 149, -1 }, /* (216) cmd ::= VACUUM */
141995 { 149, -2 }, /* (217) cmd ::= VACUUM nm */
141996 { 149, -3 }, /* (218) cmd ::= PRAGMA nm dbnm */
141997 { 149, -5 }, /* (219) cmd ::= PRAGMA nm dbnm EQ nmnum */
141998 { 149, -6 }, /* (220) cmd ::= PRAGMA nm dbnm LP nmnum RP */
141999 { 149, -5 }, /* (221) cmd ::= PRAGMA nm dbnm EQ minus_num */
142000 { 149, -6 }, /* (222) cmd ::= PRAGMA nm dbnm LP minus_num RP */
142001 { 169, -2 }, /* (223) plus_num ::= PLUS INTEGER|FLOAT */
142002 { 170, -2 }, /* (224) minus_num ::= MINUS INTEGER|FLOAT */
142003 { 149, -5 }, /* (225) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
142004 { 232, -11 }, /* (226) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
142005 { 234, -1 }, /* (227) trigger_time ::= BEFORE|AFTER */
142006 { 234, -2 }, /* (228) trigger_time ::= INSTEAD OF */
142007 { 234, 0 }, /* (229) trigger_time ::= */
142008 { 235, -1 }, /* (230) trigger_event ::= DELETE|INSERT */
142009 { 235, -1 }, /* (231) trigger_event ::= UPDATE */
142010 { 235, -3 }, /* (232) trigger_event ::= UPDATE OF idlist */
142011 { 237, 0 }, /* (233) when_clause ::= */
142012 { 237, -2 }, /* (234) when_clause ::= WHEN expr */
142013 { 233, -3 }, /* (235) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
142014 { 233, -2 }, /* (236) trigger_cmd_list ::= trigger_cmd SEMI */
142015 { 239, -3 }, /* (237) trnm ::= nm DOT nm */
142016 { 240, -3 }, /* (238) tridxby ::= INDEXED BY nm */
142017 { 240, -2 }, /* (239) tridxby ::= NOT INDEXED */
142018 { 238, -8 }, /* (240) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
142019 { 238, -7 }, /* (241) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
142020 { 238, -6 }, /* (242) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
142021 { 238, -3 }, /* (243) trigger_cmd ::= scanpt select scanpt */
142022 { 174, -4 }, /* (244) expr ::= RAISE LP IGNORE RP */
142023 { 174, -6 }, /* (245) expr ::= RAISE LP raisetype COMMA nm RP */
142024 { 192, -1 }, /* (246) raisetype ::= ROLLBACK */
142025 { 192, -1 }, /* (247) raisetype ::= ABORT */
142026 { 192, -1 }, /* (248) raisetype ::= FAIL */
142027 { 149, -4 }, /* (249) cmd ::= DROP TRIGGER ifexists fullname */
142028 { 149, -6 }, /* (250) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
142029 { 149, -3 }, /* (251) cmd ::= DETACH database_kw_opt expr */
142030 { 242, 0 }, /* (252) key_opt ::= */
142031 { 242, -2 }, /* (253) key_opt ::= KEY expr */
142032 { 149, -1 }, /* (254) cmd ::= REINDEX */
142033 { 149, -3 }, /* (255) cmd ::= REINDEX nm dbnm */
142034 { 149, -1 }, /* (256) cmd ::= ANALYZE */
142035 { 149, -3 }, /* (257) cmd ::= ANALYZE nm dbnm */
142036 { 149, -6 }, /* (258) cmd ::= ALTER TABLE fullname RENAME TO nm */
142037 { 149, -7 }, /* (259) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
142038 { 243, -1 }, /* (260) add_column_fullname ::= fullname */
142039 { 149, -1 }, /* (261) cmd ::= create_vtab */
142040 { 149, -4 }, /* (262) cmd ::= create_vtab LP vtabarglist RP */
142041 { 245, -8 }, /* (263) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
142042 { 247, 0 }, /* (264) vtabarg ::= */
142043 { 248, -1 }, /* (265) vtabargtoken ::= ANY */
142044 { 248, -3 }, /* (266) vtabargtoken ::= lp anylist RP */
142045 { 249, -1 }, /* (267) lp ::= LP */
142046 { 197, 0 }, /* (268) with ::= */
142047 { 197, -2 }, /* (269) with ::= WITH wqlist */
142048 { 197, -3 }, /* (270) with ::= WITH RECURSIVE wqlist */
142049 { 251, -6 }, /* (271) wqlist ::= nm eidlist_opt AS LP select RP */
142050 { 251, -8 }, /* (272) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
142051 { 144, -1 }, /* (273) input ::= cmdlist */
142052 { 145, -2 }, /* (274) cmdlist ::= cmdlist ecmd */
142053 { 145, -1 }, /* (275) cmdlist ::= ecmd */
142054 { 146, -1 }, /* (276) ecmd ::= SEMI */
142055 { 146, -3 }, /* (277) ecmd ::= explain cmdx SEMI */
142056 { 147, 0 }, /* (278) explain ::= */
142057 { 151, 0 }, /* (279) trans_opt ::= */
142058 { 151, -1 }, /* (280) trans_opt ::= TRANSACTION */
142059 { 151, -2 }, /* (281) trans_opt ::= TRANSACTION nm */
142060 { 153, -1 }, /* (282) savepoint_opt ::= SAVEPOINT */
142061 { 153, 0 }, /* (283) savepoint_opt ::= */
142062 { 149, -2 }, /* (284) cmd ::= create_table create_table_args */
142063 { 160, -4 }, /* (285) columnlist ::= columnlist COMMA columnname carglist */
142064 { 160, -2 }, /* (286) columnlist ::= columnname carglist */
142065 { 152, -1 }, /* (287) nm ::= ID|INDEXED */
142066 { 152, -1 }, /* (288) nm ::= STRING */
142067 { 152, -1 }, /* (289) nm ::= JOIN_KW */
142068 { 166, -1 }, /* (290) typetoken ::= typename */
142069 { 167, -1 }, /* (291) typename ::= ID|STRING */
142070 { 168, -1 }, /* (292) signed ::= plus_num */
142071 { 168, -1 }, /* (293) signed ::= minus_num */
142072 { 165, -2 }, /* (294) carglist ::= carglist ccons */
142073 { 165, 0 }, /* (295) carglist ::= */
142074 { 172, -2 }, /* (296) ccons ::= NULL onconf */
142075 { 161, -2 }, /* (297) conslist_opt ::= COMMA conslist */
142076 { 184, -3 }, /* (298) conslist ::= conslist tconscomma tcons */
142077 { 184, -1 }, /* (299) conslist ::= tcons */
142078 { 185, 0 }, /* (300) tconscomma ::= */
142079 { 189, -1 }, /* (301) defer_subclause_opt ::= defer_subclause */
142080 { 191, -1 }, /* (302) resolvetype ::= raisetype */
142081 { 195, -1 }, /* (303) selectnowith ::= oneselect */
142082 { 196, -1 }, /* (304) oneselect ::= values */
142083 { 210, -2 }, /* (305) sclp ::= selcollist COMMA */
142084 { 211, -1 }, /* (306) as ::= ID|STRING */
142085 { 174, -1 }, /* (307) expr ::= term */
142086 { 222, -1 }, /* (308) likeop ::= LIKE_KW|MATCH */
142087 { 209, -1 }, /* (309) exprlist ::= nexprlist */
142088 { 231, -1 }, /* (310) nmnum ::= plus_num */
142089 { 231, -1 }, /* (311) nmnum ::= nm */
142090 { 231, -1 }, /* (312) nmnum ::= ON */
142091 { 231, -1 }, /* (313) nmnum ::= DELETE */
142092 { 231, -1 }, /* (314) nmnum ::= DEFAULT */
142093 { 169, -1 }, /* (315) plus_num ::= INTEGER|FLOAT */
142094 { 236, 0 }, /* (316) foreach_clause ::= */
142095 { 236, -3 }, /* (317) foreach_clause ::= FOR EACH ROW */
142096 { 239, -1 }, /* (318) trnm ::= nm */
142097 { 240, 0 }, /* (319) tridxby ::= */
142098 { 241, -1 }, /* (320) database_kw_opt ::= DATABASE */
142099 { 241, 0 }, /* (321) database_kw_opt ::= */
142100 { 244, 0 }, /* (322) kwcolumn_opt ::= */
142101 { 244, -1 }, /* (323) kwcolumn_opt ::= COLUMNKW */
142102 { 246, -1 }, /* (324) vtabarglist ::= vtabarg */
142103 { 246, -3 }, /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */
142104 { 247, -2 }, /* (326) vtabarg ::= vtabarg vtabargtoken */
142105 { 250, 0 }, /* (327) anylist ::= */
142106 { 250, -4 }, /* (328) anylist ::= anylist LP anylist RP */
142107 { 250, -2 }, /* (329) anylist ::= anylist ANY */
 
 
 
142108 };
142109
142110 static void yy_accept(yyParser*); /* Forward Declaration */
142111
142112 /*
@@ -142236,12 +142310,12 @@
142236 case 21: /* table_options ::= */ yytestcase(yyruleno==21);
142237 case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
142238 case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
142239 case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
142240 case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
142241 case 90: /* distinct ::= */ yytestcase(yyruleno==90);
142242 case 213: /* collate ::= */ yytestcase(yyruleno==213);
142243 {yymsp[1].minor.yy4 = 0;}
142244 break;
142245 case 16: /* ifnotexists ::= IF NOT EXISTS */
142246 {yymsp[-2].minor.yy4 = 1;}
142247 break;
@@ -142273,11 +142347,11 @@
142273 case 23: /* columnname ::= nm typetoken */
142274 {sqlite3AddColumn(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
142275 break;
142276 case 24: /* typetoken ::= */
142277 case 60: /* conslist_opt ::= */ yytestcase(yyruleno==60);
142278 case 96: /* as ::= */ yytestcase(yyruleno==96);
142279 {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;}
142280 break;
142281 case 25: /* typetoken ::= typename LP signed RP */
142282 {
142283 yymsp[-3].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z);
@@ -142384,18 +142458,18 @@
142384 case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
142385 {yymsp[-2].minor.yy4 = 0;}
142386 break;
142387 case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
142388 case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
142389 case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144);
142390 {yymsp[-1].minor.yy4 = yymsp[0].minor.yy4;}
142391 break;
142392 case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
142393 case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
142394 case 185: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==185);
142395 case 188: /* in_op ::= NOT IN */ yytestcase(yyruleno==188);
142396 case 214: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==214);
142397 {yymsp[-1].minor.yy4 = 1;}
142398 break;
142399 case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
142400 {yymsp[-1].minor.yy4 = 0;}
142401 break;
@@ -142427,11 +142501,11 @@
142427 break;
142428 case 72: /* resolvetype ::= IGNORE */
142429 {yymsp[0].minor.yy4 = OE_Ignore;}
142430 break;
142431 case 73: /* resolvetype ::= REPLACE */
142432 case 145: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==145);
142433 {yymsp[0].minor.yy4 = OE_Replace;}
142434 break;
142435 case 74: /* cmd ::= DROP TABLE ifexists fullname */
142436 {
142437 sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0, yymsp[-1].minor.yy4);
@@ -142452,23 +142526,44 @@
142452 SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
142453 sqlite3Select(pParse, yymsp[0].minor.yy387, &dest);
142454 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
142455 }
142456 break;
142457 case 80: /* select ::= with selectnowith */
 
 
 
 
 
 
 
 
 
 
 
 
142458 {
142459 Select *p = yymsp[0].minor.yy387;
142460 if( p ){
142461 p->pWith = yymsp[-1].minor.yy451;
142462 parserDoubleLinkSelect(pParse, p);
142463 }else{
142464 sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
142465 }
142466 yymsp[-1].minor.yy387 = p; /*A-overwrites-W*/
142467 }
142468 break;
142469 case 81: /* selectnowith ::= selectnowith multiselect_op oneselect */
 
 
 
 
 
 
 
 
 
142470 {
142471 Select *pRhs = yymsp[0].minor.yy387;
142472 Select *pLhs = yymsp[-2].minor.yy387;
142473 if( pRhs && pRhs->pPrior ){
142474 SrcList *pFrom;
@@ -142488,18 +142583,18 @@
142488 sqlite3SelectDelete(pParse->db, pLhs);
142489 }
142490 yymsp[-2].minor.yy387 = pRhs;
142491 }
142492 break;
142493 case 82: /* multiselect_op ::= UNION */
142494 case 84: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==84);
142495 {yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-OP*/}
142496 break;
142497 case 83: /* multiselect_op ::= UNION ALL */
142498 {yymsp[-1].minor.yy4 = TK_ALL;}
142499 break;
142500 case 85: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
142501 {
142502 #if SELECTTRACE_ENABLED
142503 Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/
142504 #endif
142505 yymsp[-8].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy259,yymsp[-4].minor.yy314,yymsp[-3].minor.yy322,yymsp[-2].minor.yy314,yymsp[-1].minor.yy322,yymsp[-7].minor.yy4,yymsp[0].minor.yy314);
@@ -142526,16 +142621,16 @@
142526 }
142527 }
142528 #endif /* SELECTRACE_ENABLED */
142529 }
142530 break;
142531 case 86: /* values ::= VALUES LP nexprlist RP */
142532 {
142533 yymsp[-3].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0);
142534 }
142535 break;
142536 case 87: /* values ::= values COMMA LP exprlist RP */
142537 {
142538 Select *pRight, *pLeft = yymsp[-4].minor.yy387;
142539 pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0);
142540 if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
142541 if( pRight ){
@@ -142545,86 +142640,86 @@
142545 }else{
142546 yymsp[-4].minor.yy387 = pLeft;
142547 }
142548 }
142549 break;
142550 case 88: /* distinct ::= DISTINCT */
142551 {yymsp[0].minor.yy4 = SF_Distinct;}
142552 break;
142553 case 89: /* distinct ::= ALL */
142554 {yymsp[0].minor.yy4 = SF_All;}
142555 break;
142556 case 91: /* sclp ::= */
142557 case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119);
142558 case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126);
142559 case 201: /* exprlist ::= */ yytestcase(yyruleno==201);
142560 case 204: /* paren_exprlist ::= */ yytestcase(yyruleno==204);
142561 case 209: /* eidlist_opt ::= */ yytestcase(yyruleno==209);
142562 {yymsp[1].minor.yy322 = 0;}
142563 break;
142564 case 92: /* selcollist ::= sclp scanpt expr scanpt as */
142565 {
142566 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
142567 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1);
142568 sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy336,yymsp[-1].minor.yy336);
142569 }
142570 break;
142571 case 93: /* selcollist ::= sclp scanpt STAR */
142572 {
142573 Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
142574 yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p);
142575 }
142576 break;
142577 case 94: /* selcollist ::= sclp scanpt nm DOT STAR */
142578 {
142579 Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
142580 Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142581 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
142582 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot);
142583 }
142584 break;
142585 case 95: /* as ::= AS nm */
142586 case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106);
142587 case 223: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
142588 case 224: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
142589 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
142590 break;
142591 case 97: /* from ::= */
142592 {yymsp[1].minor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy259));}
142593 break;
142594 case 98: /* from ::= FROM seltablist */
142595 {
142596 yymsp[-1].minor.yy259 = yymsp[0].minor.yy259;
142597 sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy259);
142598 }
142599 break;
142600 case 99: /* stl_prefix ::= seltablist joinop */
142601 {
142602 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;
142603 }
142604 break;
142605 case 100: /* stl_prefix ::= */
142606 {yymsp[1].minor.yy259 = 0;}
142607 break;
142608 case 101: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
142609 {
142610 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);
142611 sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy259, &yymsp[-2].minor.yy0);
142612 }
142613 break;
142614 case 102: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
142615 {
142616 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);
142617 sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy259, yymsp[-4].minor.yy322);
142618 }
142619 break;
142620 case 103: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
142621 {
142622 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);
142623 }
142624 break;
142625 case 104: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
142626 {
142627 if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy314==0 && yymsp[0].minor.yy384==0 ){
142628 yymsp[-6].minor.yy259 = yymsp[-4].minor.yy259;
142629 }else if( yymsp[-4].minor.yy259->nSrc==1 ){
142630 yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
@@ -142644,185 +142739,184 @@
142644 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy259,0,0,0,0,SF_NestedFrom,0);
142645 yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142646 }
142647 }
142648 break;
142649 case 105: /* dbnm ::= */
142650 case 114: /* indexed_opt ::= */ yytestcase(yyruleno==114);
142651 {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
142652 break;
142653 case 107: /* fullname ::= nm dbnm */
142654 {yymsp[-1].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
142655 break;
142656 case 108: /* joinop ::= COMMA|JOIN */
 
 
 
142657 { yymsp[0].minor.yy4 = JT_INNER; }
142658 break;
142659 case 109: /* joinop ::= JOIN_KW JOIN */
142660 {yymsp[-1].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
142661 break;
142662 case 110: /* joinop ::= JOIN_KW nm JOIN */
142663 {yymsp[-2].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
142664 break;
142665 case 111: /* joinop ::= JOIN_KW nm nm JOIN */
142666 {yymsp[-3].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
142667 break;
142668 case 112: /* on_opt ::= ON expr */
142669 case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129);
142670 case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136);
142671 case 197: /* case_else ::= ELSE expr */ yytestcase(yyruleno==197);
142672 {yymsp[-1].minor.yy314 = yymsp[0].minor.yy314;}
142673 break;
142674 case 113: /* on_opt ::= */
142675 case 128: /* having_opt ::= */ yytestcase(yyruleno==128);
142676 case 130: /* limit_opt ::= */ yytestcase(yyruleno==130);
142677 case 135: /* where_opt ::= */ yytestcase(yyruleno==135);
142678 case 198: /* case_else ::= */ yytestcase(yyruleno==198);
142679 case 200: /* case_operand ::= */ yytestcase(yyruleno==200);
142680 {yymsp[1].minor.yy314 = 0;}
142681 break;
142682 case 115: /* indexed_opt ::= INDEXED BY nm */
142683 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
142684 break;
142685 case 116: /* indexed_opt ::= NOT INDEXED */
142686 {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
142687 break;
142688 case 117: /* using_opt ::= USING LP idlist RP */
142689 {yymsp[-3].minor.yy384 = yymsp[-1].minor.yy384;}
142690 break;
142691 case 118: /* using_opt ::= */
142692 case 146: /* idlist_opt ::= */ yytestcase(yyruleno==146);
142693 {yymsp[1].minor.yy384 = 0;}
142694 break;
142695 case 120: /* orderby_opt ::= ORDER BY sortlist */
142696 case 127: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==127);
142697 {yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;}
142698 break;
142699 case 121: /* sortlist ::= sortlist COMMA expr sortorder */
142700 {
142701 yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[-1].minor.yy314);
142702 sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy322,yymsp[0].minor.yy4);
142703 }
142704 break;
142705 case 122: /* sortlist ::= expr sortorder */
142706 {
142707 yymsp[-1].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314); /*A-overwrites-Y*/
142708 sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy322,yymsp[0].minor.yy4);
142709 }
142710 break;
142711 case 123: /* sortorder ::= ASC */
142712 {yymsp[0].minor.yy4 = SQLITE_SO_ASC;}
142713 break;
142714 case 124: /* sortorder ::= DESC */
142715 {yymsp[0].minor.yy4 = SQLITE_SO_DESC;}
142716 break;
142717 case 125: /* sortorder ::= */
142718 {yymsp[1].minor.yy4 = SQLITE_SO_UNDEFINED;}
142719 break;
142720 case 131: /* limit_opt ::= LIMIT expr */
142721 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,0);}
142722 break;
142723 case 132: /* limit_opt ::= LIMIT expr OFFSET expr */
142724 {yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142725 break;
142726 case 133: /* limit_opt ::= LIMIT expr COMMA expr */
142727 {yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,yymsp[-2].minor.yy314);}
142728 break;
142729 case 134: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
142730 {
142731 sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
142732 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0);
142733 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314,0,0);
142734 }
142735 break;
142736 case 137: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
142737 {
142738 sqlite3WithPush(pParse, yymsp[-7].minor.yy451, 1);
142739 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0);
142740 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list");
142741 sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].minor.yy314,yymsp[-5].minor.yy4,0,0);
142742 }
142743 break;
142744 case 138: /* setlist ::= setlist COMMA nm EQ expr */
142745 {
142746 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
142747 sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1);
142748 }
142749 break;
142750 case 139: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
142751 {
142752 yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142753 }
142754 break;
142755 case 140: /* setlist ::= nm EQ expr */
142756 {
142757 yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy314);
142758 sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1);
142759 }
142760 yymsp[-2].minor.yy322 = yylhsminor.yy322;
142761 break;
142762 case 141: /* setlist ::= LP idlist RP EQ expr */
142763 {
142764 yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142765 }
142766 break;
142767 case 142: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
142768 {
142769 sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1);
142770 sqlite3Insert(pParse, yymsp[-2].minor.yy259, yymsp[0].minor.yy387, yymsp[-1].minor.yy384, yymsp[-4].minor.yy4);
142771 }
142772 break;
142773 case 143: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
142774 {
142775 sqlite3WithPush(pParse, yymsp[-6].minor.yy451, 1);
142776 sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, yymsp[-2].minor.yy384, yymsp[-5].minor.yy4);
142777 }
142778 break;
142779 case 147: /* idlist_opt ::= LP idlist RP */
142780 {yymsp[-2].minor.yy384 = yymsp[-1].minor.yy384;}
142781 break;
142782 case 148: /* idlist ::= idlist COMMA nm */
142783 {yymsp[-2].minor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp[0].minor.yy0);}
142784 break;
142785 case 149: /* idlist ::= nm */
142786 {yymsp[0].minor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
142787 break;
142788 case 150: /* expr ::= LP expr RP */
142789 {yymsp[-2].minor.yy314 = yymsp[-1].minor.yy314;}
142790 break;
142791 case 151: /* expr ::= ID|INDEXED */
142792 case 152: /* expr ::= JOIN_KW */ yytestcase(yyruleno==152);
142793 {yymsp[0].minor.yy314=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142794 break;
142795 case 153: /* expr ::= nm DOT nm */
142796 {
142797 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142798 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142799 yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
142800 }
142801 yymsp[-2].minor.yy314 = yylhsminor.yy314;
142802 break;
142803 case 154: /* expr ::= nm DOT nm DOT nm */
142804 {
142805 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
142806 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142807 Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142808 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
142809 yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
142810 }
142811 yymsp[-4].minor.yy314 = yylhsminor.yy314;
142812 break;
142813 case 155: /* term ::= NULL|FLOAT|BLOB */
142814 case 156: /* term ::= STRING */ yytestcase(yyruleno==156);
142815 {yymsp[0].minor.yy314=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142816 break;
142817 case 157: /* term ::= INTEGER */
142818 {
142819 yylhsminor.yy314 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
142820 }
142821 yymsp[0].minor.yy314 = yylhsminor.yy314;
142822 break;
142823 case 158: /* expr ::= VARIABLE */
142824 {
142825 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
142826 u32 n = yymsp[0].minor.yy0.n;
142827 yymsp[0].minor.yy314 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
142828 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy314, n);
@@ -142840,22 +142934,22 @@
142840 if( yymsp[0].minor.yy314 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy314->iTable);
142841 }
142842 }
142843 }
142844 break;
142845 case 159: /* expr ::= expr COLLATE ID|STRING */
142846 {
142847 yymsp[-2].minor.yy314 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy314, &yymsp[0].minor.yy0, 1);
142848 }
142849 break;
142850 case 160: /* expr ::= CAST LP expr AS typetoken RP */
142851 {
142852 yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
142853 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy314, yymsp[-3].minor.yy314, 0);
142854 }
142855 break;
142856 case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
142857 {
142858 if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
142859 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
142860 }
142861 yylhsminor.yy314 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0);
@@ -142863,23 +142957,23 @@
142863 yylhsminor.yy314->flags |= EP_Distinct;
142864 }
142865 }
142866 yymsp[-4].minor.yy314 = yylhsminor.yy314;
142867 break;
142868 case 162: /* expr ::= ID|INDEXED LP STAR RP */
142869 {
142870 yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
142871 }
142872 yymsp[-3].minor.yy314 = yylhsminor.yy314;
142873 break;
142874 case 163: /* term ::= CTIME_KW */
142875 {
142876 yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
142877 }
142878 yymsp[0].minor.yy314 = yylhsminor.yy314;
142879 break;
142880 case 164: /* expr ::= LP nexprlist COMMA expr RP */
142881 {
142882 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy314);
142883 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
142884 if( yymsp[-4].minor.yy314 ){
142885 yymsp[-4].minor.yy314->x.pList = pList;
@@ -142886,24 +142980,24 @@
142886 }else{
142887 sqlite3ExprListDelete(pParse->db, pList);
142888 }
142889 }
142890 break;
142891 case 165: /* expr ::= expr AND expr */
142892 case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
142893 case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
142894 case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
142895 case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
142896 case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
142897 case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
142898 case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
142899 {yymsp[-2].minor.yy314=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142900 break;
142901 case 173: /* likeop ::= NOT LIKE_KW|MATCH */
142902 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
142903 break;
142904 case 174: /* expr ::= expr likeop expr */
142905 {
142906 ExprList *pList;
142907 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
142908 yymsp[-1].minor.yy0.n &= 0x7fffffff;
142909 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy314);
@@ -142911,11 +143005,11 @@
142911 yymsp[-2].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
142912 if( bNot ) yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy314, 0);
142913 if( yymsp[-2].minor.yy314 ) yymsp[-2].minor.yy314->flags |= EP_InfixFunc;
142914 }
142915 break;
142916 case 175: /* expr ::= expr likeop expr ESCAPE expr */
142917 {
142918 ExprList *pList;
142919 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
142920 yymsp[-3].minor.yy0.n &= 0x7fffffff;
142921 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
@@ -142924,43 +143018,43 @@
142924 yymsp[-4].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
142925 if( bNot ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
142926 if( yymsp[-4].minor.yy314 ) yymsp[-4].minor.yy314->flags |= EP_InfixFunc;
142927 }
142928 break;
142929 case 176: /* expr ::= expr ISNULL|NOTNULL */
142930 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy314,0);}
142931 break;
142932 case 177: /* expr ::= expr NOT NULL */
142933 {yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy314,0);}
142934 break;
142935 case 178: /* expr ::= expr IS expr */
142936 {
142937 yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);
142938 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-2].minor.yy314, TK_ISNULL);
142939 }
142940 break;
142941 case 179: /* expr ::= expr IS NOT expr */
142942 {
142943 yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy314,yymsp[0].minor.yy314);
142944 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-3].minor.yy314, TK_NOTNULL);
142945 }
142946 break;
142947 case 180: /* expr ::= NOT expr */
142948 case 181: /* expr ::= BITNOT expr */ yytestcase(yyruleno==181);
142949 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy314, 0);/*A-overwrites-B*/}
142950 break;
142951 case 182: /* expr ::= MINUS expr */
142952 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy314, 0);}
142953 break;
142954 case 183: /* expr ::= PLUS expr */
142955 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy314, 0);}
142956 break;
142957 case 184: /* between_op ::= BETWEEN */
142958 case 187: /* in_op ::= IN */ yytestcase(yyruleno==187);
142959 {yymsp[0].minor.yy4 = 0;}
142960 break;
142961 case 186: /* expr ::= expr between_op expr AND expr */
142962 {
142963 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
142964 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314);
142965 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy314, 0);
142966 if( yymsp[-4].minor.yy314 ){
@@ -142969,11 +143063,11 @@
142969 sqlite3ExprListDelete(pParse->db, pList);
142970 }
142971 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
142972 }
142973 break;
142974 case 189: /* expr ::= expr in_op LP exprlist RP */
142975 {
142976 if( yymsp[-1].minor.yy322==0 ){
142977 /* Expressions of the form
142978 **
142979 ** expr1 IN ()
@@ -143021,41 +143115,41 @@
143021 }
143022 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143023 }
143024 }
143025 break;
143026 case 190: /* expr ::= LP select RP */
143027 {
143028 yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
143029 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy314, yymsp[-1].minor.yy387);
143030 }
143031 break;
143032 case 191: /* expr ::= expr in_op LP select RP */
143033 {
143034 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143035 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, yymsp[-1].minor.yy387);
143036 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143037 }
143038 break;
143039 case 192: /* expr ::= expr in_op nm dbnm paren_exprlist */
143040 {
143041 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
143042 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
143043 if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322);
143044 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143045 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, pSelect);
143046 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143047 }
143048 break;
143049 case 193: /* expr ::= EXISTS LP select RP */
143050 {
143051 Expr *p;
143052 p = yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
143053 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy387);
143054 }
143055 break;
143056 case 194: /* expr ::= CASE case_operand case_exprlist case_else END */
143057 {
143058 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, 0);
143059 if( yymsp[-4].minor.yy314 ){
143060 yymsp[-4].minor.yy314->x.pList = yymsp[-1].minor.yy314 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy314) : yymsp[-2].minor.yy322;
143061 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy314);
@@ -143063,334 +143157,330 @@
143063 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322);
143064 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy314);
143065 }
143066 }
143067 break;
143068 case 195: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
143069 {
143070 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
143071 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
143072 }
143073 break;
143074 case 196: /* case_exprlist ::= WHEN expr THEN expr */
143075 {
143076 yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
143077 yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy314);
143078 }
143079 break;
143080 case 199: /* case_operand ::= expr */
143081 {yymsp[0].minor.yy314 = yymsp[0].minor.yy314; /*A-overwrites-X*/}
143082 break;
143083 case 202: /* nexprlist ::= nexprlist COMMA expr */
143084 {yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy314);}
143085 break;
143086 case 203: /* nexprlist ::= expr */
143087 {yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy314); /*A-overwrites-Y*/}
143088 break;
143089 case 205: /* paren_exprlist ::= LP exprlist RP */
143090 case 210: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==210);
143091 {yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;}
143092 break;
143093 case 206: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
143094 {
143095 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
143096 sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy4,
143097 &yymsp[-11].minor.yy0, yymsp[0].minor.yy314, SQLITE_SO_ASC, yymsp[-8].minor.yy4, SQLITE_IDXTYPE_APPDEF);
143098 }
143099 break;
143100 case 207: /* uniqueflag ::= UNIQUE */
143101 case 247: /* raisetype ::= ABORT */ yytestcase(yyruleno==247);
143102 {yymsp[0].minor.yy4 = OE_Abort;}
143103 break;
143104 case 208: /* uniqueflag ::= */
143105 {yymsp[1].minor.yy4 = OE_None;}
143106 break;
143107 case 211: /* eidlist ::= eidlist COMMA nm collate sortorder */
143108 {
143109 yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4);
143110 }
143111 break;
143112 case 212: /* eidlist ::= nm collate sortorder */
143113 {
143114 yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4); /*A-overwrites-Y*/
143115 }
143116 break;
143117 case 215: /* cmd ::= DROP INDEX ifexists fullname */
143118 {sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);}
143119 break;
143120 case 216: /* cmd ::= VACUUM */
143121 {sqlite3Vacuum(pParse,0);}
143122 break;
143123 case 217: /* cmd ::= VACUUM nm */
143124 {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
143125 break;
143126 case 218: /* cmd ::= PRAGMA nm dbnm */
143127 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
143128 break;
143129 case 219: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
143130 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
143131 break;
143132 case 220: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
143133 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
143134 break;
143135 case 221: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
143136 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
143137 break;
143138 case 222: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
143139 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
143140 break;
143141 case 225: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
143142 {
143143 Token all;
143144 all.z = yymsp[-3].minor.yy0.z;
143145 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
143146 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all);
143147 }
143148 break;
143149 case 226: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
143150 {
143151 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);
143152 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
143153 }
143154 break;
143155 case 227: /* trigger_time ::= BEFORE|AFTER */
143156 { yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-X*/ }
143157 break;
143158 case 228: /* trigger_time ::= INSTEAD OF */
143159 { yymsp[-1].minor.yy4 = TK_INSTEAD;}
143160 break;
143161 case 229: /* trigger_time ::= */
143162 { yymsp[1].minor.yy4 = TK_BEFORE; }
143163 break;
143164 case 230: /* trigger_event ::= DELETE|INSERT */
143165 case 231: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==231);
143166 {yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;}
143167 break;
143168 case 232: /* trigger_event ::= UPDATE OF idlist */
143169 {yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy384;}
143170 break;
143171 case 233: /* when_clause ::= */
143172 case 252: /* key_opt ::= */ yytestcase(yyruleno==252);
143173 { yymsp[1].minor.yy314 = 0; }
143174 break;
143175 case 234: /* when_clause ::= WHEN expr */
143176 case 253: /* key_opt ::= KEY expr */ yytestcase(yyruleno==253);
143177 { yymsp[-1].minor.yy314 = yymsp[0].minor.yy314; }
143178 break;
143179 case 235: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
143180 {
143181 assert( yymsp[-2].minor.yy203!=0 );
143182 yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203;
143183 yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203;
143184 }
143185 break;
143186 case 236: /* trigger_cmd_list ::= trigger_cmd SEMI */
143187 {
143188 assert( yymsp[-1].minor.yy203!=0 );
143189 yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203;
143190 }
143191 break;
143192 case 237: /* trnm ::= nm DOT nm */
143193 {
143194 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
143195 sqlite3ErrorMsg(pParse,
143196 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
143197 "statements within triggers");
143198 }
143199 break;
143200 case 238: /* tridxby ::= INDEXED BY nm */
143201 {
143202 sqlite3ErrorMsg(pParse,
143203 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
143204 "within triggers");
143205 }
143206 break;
143207 case 239: /* tridxby ::= NOT INDEXED */
143208 {
143209 sqlite3ErrorMsg(pParse,
143210 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
143211 "within triggers");
143212 }
143213 break;
143214 case 240: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
143215 {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);}
143216 yymsp[-7].minor.yy203 = yylhsminor.yy203;
143217 break;
143218 case 241: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
143219 {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*/}
143220 yymsp[-6].minor.yy203 = yylhsminor.yy203;
143221 break;
143222 case 242: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
143223 {yylhsminor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy314, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy336);}
143224 yymsp[-5].minor.yy203 = yylhsminor.yy203;
143225 break;
143226 case 243: /* trigger_cmd ::= scanpt select scanpt */
143227 {yylhsminor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy387, yymsp[-2].minor.yy336, yymsp[0].minor.yy336); /*yylhsminor.yy203-overwrites-yymsp[-1].minor.yy387*/}
143228 yymsp[-2].minor.yy203 = yylhsminor.yy203;
143229 break;
143230 case 244: /* expr ::= RAISE LP IGNORE RP */
143231 {
143232 yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
143233 if( yymsp[-3].minor.yy314 ){
143234 yymsp[-3].minor.yy314->affinity = OE_Ignore;
143235 }
143236 }
143237 break;
143238 case 245: /* expr ::= RAISE LP raisetype COMMA nm RP */
143239 {
143240 yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
143241 if( yymsp[-5].minor.yy314 ) {
143242 yymsp[-5].minor.yy314->affinity = (char)yymsp[-3].minor.yy4;
143243 }
143244 }
143245 break;
143246 case 246: /* raisetype ::= ROLLBACK */
143247 {yymsp[0].minor.yy4 = OE_Rollback;}
143248 break;
143249 case 248: /* raisetype ::= FAIL */
143250 {yymsp[0].minor.yy4 = OE_Fail;}
143251 break;
143252 case 249: /* cmd ::= DROP TRIGGER ifexists fullname */
143253 {
143254 sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4);
143255 }
143256 break;
143257 case 250: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
143258 {
143259 sqlite3Attach(pParse, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, yymsp[0].minor.yy314);
143260 }
143261 break;
143262 case 251: /* cmd ::= DETACH database_kw_opt expr */
143263 {
143264 sqlite3Detach(pParse, yymsp[0].minor.yy314);
143265 }
143266 break;
143267 case 254: /* cmd ::= REINDEX */
143268 {sqlite3Reindex(pParse, 0, 0);}
143269 break;
143270 case 255: /* cmd ::= REINDEX nm dbnm */
143271 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143272 break;
143273 case 256: /* cmd ::= ANALYZE */
143274 {sqlite3Analyze(pParse, 0, 0);}
143275 break;
143276 case 257: /* cmd ::= ANALYZE nm dbnm */
143277 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143278 break;
143279 case 258: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
143280 {
143281 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0);
143282 }
143283 break;
143284 case 259: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
143285 {
143286 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
143287 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
143288 }
143289 break;
143290 case 260: /* add_column_fullname ::= fullname */
143291 {
143292 disableLookaside(pParse);
143293 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259);
143294 }
143295 break;
143296 case 261: /* cmd ::= create_vtab */
143297 {sqlite3VtabFinishParse(pParse,0);}
143298 break;
143299 case 262: /* cmd ::= create_vtab LP vtabarglist RP */
143300 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
143301 break;
143302 case 263: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
143303 {
143304 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy4);
143305 }
143306 break;
143307 case 264: /* vtabarg ::= */
143308 {sqlite3VtabArgInit(pParse);}
143309 break;
143310 case 265: /* vtabargtoken ::= ANY */
143311 case 266: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==266);
143312 case 267: /* lp ::= LP */ yytestcase(yyruleno==267);
143313 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
143314 break;
143315 case 268: /* with ::= */
143316 {yymsp[1].minor.yy451 = 0;}
143317 break;
143318 case 269: /* with ::= WITH wqlist */
143319 { yymsp[-1].minor.yy451 = yymsp[0].minor.yy451; }
143320 break;
143321 case 270: /* with ::= WITH RECURSIVE wqlist */
143322 { yymsp[-2].minor.yy451 = yymsp[0].minor.yy451; }
143323 break;
143324 case 271: /* wqlist ::= nm eidlist_opt AS LP select RP */
143325 {
143326 yymsp[-5].minor.yy451 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387); /*A-overwrites-X*/
143327 }
143328 break;
143329 case 272: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
143330 {
143331 yymsp[-7].minor.yy451 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy451, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387);
143332 }
143333 break;
143334 default:
143335 /* (273) input ::= cmdlist */ yytestcase(yyruleno==273);
143336 /* (274) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==274);
143337 /* (275) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=275);
143338 /* (276) ecmd ::= SEMI */ yytestcase(yyruleno==276);
143339 /* (277) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==277);
143340 /* (278) explain ::= */ yytestcase(yyruleno==278);
143341 /* (279) trans_opt ::= */ yytestcase(yyruleno==279);
143342 /* (280) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==280);
143343 /* (281) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==281);
143344 /* (282) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==282);
143345 /* (283) savepoint_opt ::= */ yytestcase(yyruleno==283);
143346 /* (284) cmd ::= create_table create_table_args */ yytestcase(yyruleno==284);
143347 /* (285) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==285);
143348 /* (286) columnlist ::= columnname carglist */ yytestcase(yyruleno==286);
143349 /* (287) nm ::= ID|INDEXED */ yytestcase(yyruleno==287);
143350 /* (288) nm ::= STRING */ yytestcase(yyruleno==288);
143351 /* (289) nm ::= JOIN_KW */ yytestcase(yyruleno==289);
143352 /* (290) typetoken ::= typename */ yytestcase(yyruleno==290);
143353 /* (291) typename ::= ID|STRING */ yytestcase(yyruleno==291);
143354 /* (292) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
143355 /* (293) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=293);
143356 /* (294) carglist ::= carglist ccons */ yytestcase(yyruleno==294);
143357 /* (295) carglist ::= */ yytestcase(yyruleno==295);
143358 /* (296) ccons ::= NULL onconf */ yytestcase(yyruleno==296);
143359 /* (297) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==297);
143360 /* (298) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==298);
143361 /* (299) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=299);
143362 /* (300) tconscomma ::= */ yytestcase(yyruleno==300);
143363 /* (301) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=301);
143364 /* (302) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=302);
143365 /* (303) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=303);
143366 /* (304) oneselect ::= values */ yytestcase(yyruleno==304);
143367 /* (305) sclp ::= selcollist COMMA */ yytestcase(yyruleno==305);
143368 /* (306) as ::= ID|STRING */ yytestcase(yyruleno==306);
143369 /* (307) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=307);
143370 /* (308) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==308);
143371 /* (309) exprlist ::= nexprlist */ yytestcase(yyruleno==309);
143372 /* (310) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=310);
143373 /* (311) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=311);
143374 /* (312) nmnum ::= ON */ yytestcase(yyruleno==312);
143375 /* (313) nmnum ::= DELETE */ yytestcase(yyruleno==313);
143376 /* (314) nmnum ::= DEFAULT */ yytestcase(yyruleno==314);
143377 /* (315) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==315);
143378 /* (316) foreach_clause ::= */ yytestcase(yyruleno==316);
143379 /* (317) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==317);
143380 /* (318) trnm ::= nm */ yytestcase(yyruleno==318);
143381 /* (319) tridxby ::= */ yytestcase(yyruleno==319);
143382 /* (320) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==320);
143383 /* (321) database_kw_opt ::= */ yytestcase(yyruleno==321);
143384 /* (322) kwcolumn_opt ::= */ yytestcase(yyruleno==322);
143385 /* (323) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==323);
143386 /* (324) vtabarglist ::= vtabarg */ yytestcase(yyruleno==324);
143387 /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==325);
143388 /* (326) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==326);
143389 /* (327) anylist ::= */ yytestcase(yyruleno==327);
143390 /* (328) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==328);
143391 /* (329) anylist ::= anylist ANY */ yytestcase(yyruleno==329);
 
143392 break;
143393 /********** End reduce actions ************************************************/
143394 };
143395 assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
143396 yygoto = yyRuleInfo[yyruleno].lhs;
@@ -180440,11 +180530,11 @@
180440 ** input data. Input data may be supplied either as a single large buffer
180441 ** (e.g. sqlite3changeset_start()) or using a stream function (e.g.
180442 ** sqlite3changeset_start_strm()).
180443 */
180444 struct SessionInput {
180445 int bNoDiscard; /* If true, discard no data */
180446 int iCurrent; /* Offset in aData[] of current change */
180447 int iNext; /* Offset in aData[] of next change */
180448 u8 *aData; /* Pointer to buffer containing changeset */
180449 int nData; /* Number of bytes in aData */
180450
@@ -182965,11 +183055,11 @@
182965 /*
182966 ** If the SessionInput object passed as the only argument is a streaming
182967 ** object and the buffer is full, discard some data to free up space.
182968 */
182969 static void sessionDiscardData(SessionInput *pIn){
182970 if( pIn->bEof && pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
182971 int nMove = pIn->buf.nBuf - pIn->iNext;
182972 assert( nMove>=0 );
182973 if( nMove>0 ){
182974 memmove(pIn->buf.aBuf, &pIn->buf.aBuf[pIn->iNext], nMove);
182975 }
@@ -184606,14 +184696,15 @@
184606 void *pCtx, /* Copy of fifth arg to _apply() */
184607 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184608 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184609 ),
184610 void *pCtx, /* First argument passed to xConflict */
184611 void **ppRebase, int *pnRebase /* OUT: Rebase information */
 
184612 ){
184613 int schemaMismatch = 0;
184614 int rc; /* Return code */
184615 const char *zTab = 0; /* Name of current table */
184616 int nTab = 0; /* Result of sqlite3Strlen30(zTab) */
184617 SessionApplyCtx sApply; /* changeset_apply() context object */
184618 int bPatchset;
184619
@@ -184620,11 +184711,13 @@
184620 assert( xConflict!=0 );
184621
184622 pIter->in.bNoDiscard = 1;
184623 memset(&sApply, 0, sizeof(sApply));
184624 sqlite3_mutex_enter(sqlite3_db_mutex(db));
184625 rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
 
 
184626 if( rc==SQLITE_OK ){
184627 rc = sqlite3_exec(db, "PRAGMA defer_foreign_keys = 1", 0, 0, 0);
184628 }
184629 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3changeset_next(pIter) ){
184630 int nCol;
@@ -184758,15 +184851,17 @@
184758 }
184759 }
184760 }
184761 sqlite3_exec(db, "PRAGMA defer_foreign_keys = 0", 0, 0, 0);
184762
184763 if( rc==SQLITE_OK ){
184764 rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184765 }else{
184766 sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
184767 sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
 
 
184768 }
184769
184770 if( rc==SQLITE_OK && bPatchset==0 && ppRebase && pnRebase ){
184771 *ppRebase = (void*)sApply.rebase.aBuf;
184772 *pnRebase = sApply.rebase.nBuf;
@@ -184799,17 +184894,18 @@
184799 void *pCtx, /* Copy of sixth arg to _apply() */
184800 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184801 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184802 ),
184803 void *pCtx, /* First argument passed to xConflict */
184804 void **ppRebase, int *pnRebase
 
184805 ){
184806 sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
184807 int rc = sqlite3changeset_start(&pIter, nChangeset, pChangeset);
184808 if( rc==SQLITE_OK ){
184809 rc = sessionChangesetApply(
184810 db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
184811 );
184812 }
184813 return rc;
184814 }
184815
@@ -184832,11 +184928,11 @@
184832 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184833 ),
184834 void *pCtx /* First argument passed to xConflict */
184835 ){
184836 return sqlite3changeset_apply_v2(
184837 db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0
184838 );
184839 }
184840
184841 /*
184842 ** Apply the changeset passed via xInput/pIn to the main database
@@ -184855,17 +184951,18 @@
184855 void *pCtx, /* Copy of sixth arg to _apply() */
184856 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184857 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184858 ),
184859 void *pCtx, /* First argument passed to xConflict */
184860 void **ppRebase, int *pnRebase
 
184861 ){
184862 sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
184863 int rc = sqlite3changeset_start_strm(&pIter, xInput, pIn);
184864 if( rc==SQLITE_OK ){
184865 rc = sessionChangesetApply(
184866 db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase
184867 );
184868 }
184869 return rc;
184870 }
184871 SQLITE_API int sqlite3changeset_apply_strm(
@@ -184882,11 +184979,11 @@
184882 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184883 ),
184884 void *pCtx /* First argument passed to xConflict */
184885 ){
184886 return sqlite3changeset_apply_v2_strm(
184887 db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0
184888 );
184889 }
184890
184891 /*
184892 ** sqlite3_changegroup handle.
@@ -203462,10 +203559,16 @@
203462
203463 int aColMap[3];
203464 aColMap[0] = -1;
203465 aColMap[1] = nCol;
203466 aColMap[2] = nCol+1;
 
 
 
 
 
 
203467
203468 /* Set idxFlags flags for all WHERE clause terms that will be used. */
203469 for(i=0; i<pInfo->nConstraint; i++){
203470 struct sqlite3_index_constraint *p = &pInfo->aConstraint[i];
203471 int iCol = p->iColumn;
@@ -203481,15 +203584,15 @@
203481 /* As there exists an unusable MATCH constraint this is an
203482 ** unusable plan. Set a prohibitively high cost. */
203483 pInfo->estimatedCost = 1e50;
203484 return SQLITE_OK;
203485 }
203486 }else{
203487 int j;
203488 for(j=1; j<ArraySize(aConstraint); j++){
203489 struct Constraint *pC = &aConstraint[j];
203490 if( iCol==aColMap[pC->iCol] && p->op & pC->op && p->usable ){
203491 pC->iConsIndex = i;
203492 idxFlags |= pC->fts5op;
203493 }
203494 }
203495 }
@@ -205557,11 +205660,11 @@
205557 int nArg, /* Number of args */
205558 sqlite3_value **apUnused /* Function arguments */
205559 ){
205560 assert( nArg==0 );
205561 UNUSED_PARAM2(nArg, apUnused);
205562 sqlite3_result_text(pCtx, "fts5: 2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2", -1, SQLITE_TRANSIENT);
205563 }
205564
205565 static int fts5Init(sqlite3 *db){
205566 static const sqlite3_module fts5Mod = {
205567 /* iVersion */ 2,
@@ -209827,12 +209930,12 @@
209827 }
209828 #endif /* SQLITE_CORE */
209829 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
209830
209831 /************** End of stmt.c ************************************************/
209832 #if __LINE__!=209832
209833 #undef SQLITE_SOURCE_ID
209834 #define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98falt2"
209835 #endif
209836 /* Return the source-id for this library */
209837 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
209838 /************************** End of sqlite3.c ******************************/
209839
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.23.1. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -1145,13 +1145,13 @@
1145 **
1146 ** See also: [sqlite3_libversion()],
1147 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1148 ** [sqlite_version()] and [sqlite_source_id()].
1149 */
1150 #define SQLITE_VERSION "3.23.1"
1151 #define SQLITE_VERSION_NUMBER 3023001
1152 #define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
1153
1154 /*
1155 ** CAPI3REF: Run-Time Library Version Numbers
1156 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1157 **
@@ -11128,10 +11128,17 @@
11128 ** is set to the size of the buffer in bytes. It is the responsibility of the
11129 ** caller to eventually free any such buffer using sqlite3_free(). The buffer
11130 ** is only allocated and populated if one or more conflicts were encountered
11131 ** while applying the patchset. See comments surrounding the sqlite3_rebaser
11132 ** APIs for further details.
11133 **
11134 ** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
11135 ** may be modified by passing a combination of
11136 ** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
11137 **
11138 ** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
11139 ** and therefore subject to change.
11140 */
11141 SQLITE_API int sqlite3changeset_apply(
11142 sqlite3 *db, /* Apply change to "main" db of this handle */
11143 int nChangeset, /* Size of changeset in bytes */
11144 void *pChangeset, /* Changeset blob */
@@ -11158,13 +11165,32 @@
11165 void *pCtx, /* Copy of sixth arg to _apply() */
11166 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
11167 sqlite3_changeset_iter *p /* Handle describing change and conflict */
11168 ),
11169 void *pCtx, /* First argument passed to xConflict */
11170 void **ppRebase, int *pnRebase, /* OUT: Rebase data */
11171 int flags /* Combination of SESSION_APPLY_* flags */
11172 );
11173
11174 /*
11175 ** CAPI3REF: Flags for sqlite3changeset_apply_v2
11176 **
11177 ** The following flags may passed via the 9th parameter to
11178 ** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
11179 **
11180 ** <dl>
11181 ** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
11182 ** Usually, the sessions module encloses all operations performed by
11183 ** a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
11184 ** SAVEPOINT is committed if the changeset or patchset is successfully
11185 ** applied, or rolled back if an error occurs. Specifying this flag
11186 ** causes the sessions module to omit this savepoint. In this case, if the
11187 ** caller has an open transaction or savepoint when apply_v2() is called,
11188 ** it may revert the partially applied changeset by rolling it back.
11189 */
11190 #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
11191
11192 /*
11193 ** CAPI3REF: Constants Passed To The Conflict Handler
11194 **
11195 ** Values that may be passed as the second argument to a conflict-handler.
11196 **
@@ -11421,10 +11447,11 @@
11447 ** corresponding non-streaming API functions:
11448 **
11449 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
11450 ** <tr><th>Streaming function<th>Non-streaming equivalent</th>
11451 ** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
11452 ** <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2]
11453 ** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
11454 ** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
11455 ** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
11456 ** <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset]
11457 ** <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset]
@@ -11530,11 +11557,12 @@
11557 void *pCtx, /* Copy of sixth arg to _apply() */
11558 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
11559 sqlite3_changeset_iter *p /* Handle describing change and conflict */
11560 ),
11561 void *pCtx, /* First argument passed to xConflict */
11562 void **ppRebase, int *pnRebase,
11563 int flags
11564 );
11565 SQLITE_API int sqlite3changeset_concat_strm(
11566 int (*xInputA)(void *pIn, void *pData, int *pnData),
11567 void *pInA,
11568 int (*xInputB)(void *pIn, void *pData, int *pnData),
@@ -21285,10 +21313,11 @@
21313 ** really care if the VFS receives and understands the information since it
21314 ** is only a hint and can be safely ignored. The sqlite3OsFileControlHint()
21315 ** routine has no return value since the return value would be meaningless.
21316 */
21317 SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){
21318 if( id->pMethods==0 ) return SQLITE_NOTFOUND;
21319 #ifdef SQLITE_TEST
21320 if( op!=SQLITE_FCNTL_COMMIT_PHASETWO
21321 && op!=SQLITE_FCNTL_LOCK_TIMEOUT
21322 ){
21323 /* Faults are not injected into COMMIT_PHASETWO because, assuming SQLite
@@ -21302,11 +21331,10 @@
21331 ** means the commit really has failed and an error should be returned
21332 ** to the user. */
21333 DO_OS_MALLOC_TEST(id);
21334 }
21335 #endif
 
21336 return id->pMethods->xFileControl(id, op, pArg);
21337 }
21338 SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file *id, int op, void *pArg){
21339 if( id->pMethods ) (void)id->pMethods->xFileControl(id, op, pArg);
21340 }
@@ -98998,16 +99026,20 @@
99026 assert( pExpr->op!=TK_AGG_COLUMN );
99027 testcase( pExpr->op==TK_AGG_FUNCTION );
99028
99029 if( ExprHasProperty(pExpr, EP_FromJoin) ) return WRC_Prune;
99030 switch( pExpr->op ){
99031 case TK_ISNOT:
99032 case TK_NOT:
99033 case TK_ISNULL:
99034 case TK_IS:
99035 case TK_OR:
99036 case TK_CASE:
99037 case TK_IN:
99038 case TK_FUNCTION:
99039 testcase( pExpr->op==TK_ISNOT );
99040 testcase( pExpr->op==TK_NOT );
99041 testcase( pExpr->op==TK_ISNULL );
99042 testcase( pExpr->op==TK_IS );
99043 testcase( pExpr->op==TK_OR );
99044 testcase( pExpr->op==TK_CASE );
99045 testcase( pExpr->op==TK_IN );
@@ -99017,10 +99049,31 @@
99049 if( pWalker->u.iCur==pExpr->iTable ){
99050 pWalker->eCode = 1;
99051 return WRC_Abort;
99052 }
99053 return WRC_Prune;
99054
99055 /* Virtual tables are allowed to use constraints like x=NULL. So
99056 ** a term of the form x=y does not prove that y is not null if x
99057 ** is the column of a virtual table */
99058 case TK_EQ:
99059 case TK_NE:
99060 case TK_LT:
99061 case TK_LE:
99062 case TK_GT:
99063 case TK_GE:
99064 testcase( pExpr->op==TK_EQ );
99065 testcase( pExpr->op==TK_NE );
99066 testcase( pExpr->op==TK_LT );
99067 testcase( pExpr->op==TK_LE );
99068 testcase( pExpr->op==TK_GT );
99069 testcase( pExpr->op==TK_GE );
99070 if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->pTab))
99071 || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->pTab))
99072 ){
99073 return WRC_Prune;
99074 }
99075 default:
99076 return WRC_Continue;
99077 }
99078 }
99079
@@ -104604,11 +104657,11 @@
104657 SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
104658 sqlite3 *db = pParse->db;
104659 Vdbe *v = pParse->pVdbe;
104660 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
104661 sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_SCHEMA_VERSION,
104662 (int)(1+(unsigned)db->aDb[iDb].pSchema->schema_cookie));
104663 }
104664
104665 /*
104666 ** Measure the number of characters needed to output the given
104667 ** identifier. The number returned includes any quotes used
@@ -124593,13 +124646,11 @@
124646 if( (selFlags & SF_Expanded)!=0 ){
124647 return WRC_Prune;
124648 }
124649 pTabList = p->pSrc;
124650 pEList = p->pEList;
124651 sqlite3WithPush(pParse, p->pWith, 0);
 
 
124652
124653 /* Make sure cursor numbers have been assigned to all entries in
124654 ** the FROM clause of the SELECT statement.
124655 */
124656 sqlite3SrcListAssignCursors(pParse, pTabList);
@@ -128058,11 +128109,11 @@
128109 iPk = pParse->nMem+1;
128110 pParse->nMem += nPk;
128111 regKey = ++pParse->nMem;
128112 iEph = pParse->nTab++;
128113
128114 sqlite3VdbeAddOp3(v, OP_Null, 0, iPk, iPk+nPk-1);
128115 addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk);
128116 sqlite3VdbeSetP4KeyInfo(pParse, pPk);
128117 }
128118
128119 /* Begin the database scan.
@@ -130230,11 +130281,11 @@
130281
130282 /*
130283 ** Trace output macros
130284 */
130285 #if defined(SQLITE_TEST) || defined(SQLITE_DEBUG)
130286 /***/ extern int sqlite3WhereTrace;
130287 #endif
130288 #if defined(SQLITE_DEBUG) \
130289 && (defined(SQLITE_TEST) || defined(SQLITE_ENABLE_WHERETRACE))
130290 # define WHERETRACE(K,X) if(sqlite3WhereTrace&(K)) sqlite3DebugPrintf X
130291 # define WHERETRACE_ENABLED 1
@@ -136883,12 +136934,12 @@
136934 LogEst rLogSize; /* Logarithm of table size */
136935 WhereTerm *pTop = 0, *pBtm = 0; /* Top and bottom range constraints */
136936
136937 pNew = pBuilder->pNew;
136938 if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;
136939 WHERETRACE(0x800, ("BEGIN %s.addBtreeIdx(%s), nEq=%d\n",
136940 pProbe->pTable->zName,pProbe->zName, pNew->u.btree.nEq));
136941
136942 assert( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 );
136943 assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 );
136944 if( pNew->wsFlags & WHERE_BTM_LIMIT ){
136945 opMask = WO_LT|WO_LE;
@@ -137170,12 +137221,12 @@
137221 pNew->u.btree.nEq = saved_nEq;
137222 pNew->nSkip = saved_nSkip;
137223 pNew->wsFlags = saved_wsFlags;
137224 }
137225
137226 WHERETRACE(0x800, ("END %s.addBtreeIdx(%s), nEq=%d, rc=%d\n",
137227 pProbe->pTable->zName, pProbe->zName, saved_nEq, rc));
137228 return rc;
137229 }
137230
137231 /*
137232 ** Return True if it is possible that pIndex might be useful in
@@ -137609,13 +137660,13 @@
137660 || j<0
137661 || j>=pWC->nTerm
137662 || pNew->aLTerm[iTerm]!=0
137663 || pIdxCons->usable==0
137664 ){
 
137665 sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
137666 testcase( pIdxInfo->needToFreeIdxStr );
137667 return SQLITE_ERROR;
137668 }
137669 testcase( iTerm==nConstraint-1 );
137670 testcase( j==0 );
137671 testcase( j==pWC->nTerm-1 );
137672 pTerm = &pWC->a[j];
@@ -137639,10 +137690,19 @@
137690 }
137691 }
137692 pNew->u.vtab.omitMask &= ~mNoOmit;
137693
137694 pNew->nLTerm = mxTerm+1;
137695 for(i=0; i<=mxTerm; i++){
137696 if( pNew->aLTerm[i]==0 ){
137697 /* The non-zero argvIdx values must be contiguous. Raise an
137698 ** error if they are not */
137699 sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName);
137700 testcase( pIdxInfo->needToFreeIdxStr );
137701 return SQLITE_ERROR;
137702 }
137703 }
137704 assert( pNew->nLTerm<=pNew->nLSlot );
137705 pNew->u.vtab.idxNum = pIdxInfo->idxNum;
137706 pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr;
137707 pIdxInfo->needToFreeIdxStr = 0;
137708 pNew->u.vtab.idxStr = pIdxInfo->idxStr;
@@ -137754,10 +137814,11 @@
137814 sqlite3DbFree(pParse->db, p);
137815 return SQLITE_NOMEM_BKPT;
137816 }
137817
137818 /* First call xBestIndex() with all constraints usable. */
137819 WHERETRACE(0x800, ("BEGIN %s.addVirtual()\n", pSrc->pTab->zName));
137820 WHERETRACE(0x40, (" VirtualOne: all usable\n"));
137821 rc = whereLoopAddVirtualOne(pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn);
137822
137823 /* If the call to xBestIndex() with all terms enabled produced a plan
137824 ** that does not require any source tables (IOW: a plan with mBest==0),
@@ -137829,10 +137890,11 @@
137890 }
137891 }
137892
137893 if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr);
137894 sqlite3DbFreeNN(pParse->db, p);
137895 WHERETRACE(0x800, ("END %s.addVirtual(), rc=%d\n", pSrc->pTab->zName, rc));
137896 return rc;
137897 }
137898 #endif /* SQLITE_OMIT_VIRTUALTABLE */
137899
137900 /*
@@ -139969,21 +140031,21 @@
140031 #define sqlite3ParserARG_SDECL Parse *pParse;
140032 #define sqlite3ParserARG_PDECL ,Parse *pParse
140033 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
140034 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
140035 #define YYFALLBACK 1
140036 #define YYNSTATE 472
140037 #define YYNRULE 333
140038 #define YYNTOKEN 143
140039 #define YY_MAX_SHIFT 471
140040 #define YY_MIN_SHIFTREDUCE 681
140041 #define YY_MAX_SHIFTREDUCE 1013
140042 #define YY_ERROR_ACTION 1014
140043 #define YY_ACCEPT_ACTION 1015
140044 #define YY_NO_ACTION 1016
140045 #define YY_MIN_REDUCE 1017
140046 #define YY_MAX_REDUCE 1349
140047 /************* End control #defines *******************************************/
140048
140049 /* Define the yytestcase() macro to be a no-op if is not already defined
140050 ** otherwise.
140051 **
@@ -140045,326 +140107,328 @@
140107 ** yy_reduce_ofst[] For each state, the offset into yy_action for
140108 ** shifting non-terminals after a reduce.
140109 ** yy_default[] Default action for each state.
140110 **
140111 *********** Begin parsing tables **********************************************/
140112 #define YY_ACTTAB_COUNT (1566)
140113 static const YYACTIONTYPE yy_action[] = {
140114 /* 0 */ 1169, 1015, 167, 167, 1, 168, 466, 1313, 466, 1083,
140115 /* 10 */ 1062, 466, 97, 94, 183, 1057, 466, 329, 1083, 342,
140116 /* 20 */ 97, 94, 183, 459, 459, 459, 436, 57, 57, 57,
140117 /* 30 */ 57, 807, 57, 57, 367, 367, 367, 57, 57, 808,
140118 /* 40 */ 1270, 1088, 1088, 104, 105, 95, 991, 991, 868, 871,
140119 /* 50 */ 860, 860, 102, 102, 103, 103, 103, 103, 233, 233,
140120 /* 60 */ 326, 1011, 449, 437, 449, 446, 351, 449, 461, 1142,
140121 /* 70 */ 463, 342, 449, 426, 1316, 209, 180, 742, 80, 299,
140122 /* 80 */ 857, 857, 869, 872, 101, 101, 101, 101, 100, 100,
140123 /* 90 */ 99, 99, 99, 98, 368, 104, 105, 95, 991, 991,
140124 /* 100 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
140125 /* 110 */ 99, 99, 99, 98, 368, 355, 97, 94, 183, 228,
140126 /* 120 */ 106, 1012, 407, 342, 101, 101, 101, 101, 100, 100,
140127 /* 130 */ 99, 99, 99, 98, 368, 861, 101, 101, 101, 101,
140128 /* 140 */ 100, 100, 99, 99, 99, 98, 368, 104, 105, 95,
140129 /* 150 */ 991, 991, 868, 871, 860, 860, 102, 102, 103, 103,
140130 /* 160 */ 103, 103, 201, 368, 375, 420, 417, 416, 387, 273,
140131 /* 170 */ 65, 97, 94, 183, 168, 342, 415, 951, 1343, 396,
140132 /* 180 */ 66, 1343, 320, 959, 371, 970, 334, 340, 101, 101,
140133 /* 190 */ 101, 101, 100, 100, 99, 99, 99, 98, 368, 104,
140134 /* 200 */ 105, 95, 991, 991, 868, 871, 860, 860, 102, 102,
140135 /* 210 */ 103, 103, 103, 103, 373, 100, 100, 99, 99, 99,
140136 /* 220 */ 98, 368, 970, 971, 972, 201, 1100, 342, 420, 417,
140137 /* 230 */ 416, 287, 366, 365, 337, 970, 1162, 463, 949, 415,
140138 /* 240 */ 101, 101, 101, 101, 100, 100, 99, 99, 99, 98,
140139 /* 250 */ 368, 104, 105, 95, 991, 991, 868, 871, 860, 860,
140140 /* 260 */ 102, 102, 103, 103, 103, 103, 777, 241, 233, 233,
140141 /* 270 */ 9, 847, 970, 971, 972, 390, 998, 1141, 998, 342,
140142 /* 280 */ 463, 252, 829, 719, 98, 368, 840, 298, 338, 142,
140143 /* 290 */ 839, 339, 101, 101, 101, 101, 100, 100, 99, 99,
140144 /* 300 */ 99, 98, 368, 104, 105, 95, 991, 991, 868, 871,
140145 /* 310 */ 860, 860, 102, 102, 103, 103, 103, 103, 272, 466,
140146 /* 320 */ 392, 839, 839, 841, 97, 94, 183, 390, 1317, 253,
140147 /* 330 */ 456, 342, 125, 166, 807, 712, 208, 407, 386, 970,
140148 /* 340 */ 57, 57, 808, 238, 101, 101, 101, 101, 100, 100,
140149 /* 350 */ 99, 99, 99, 98, 368, 104, 105, 95, 991, 991,
140150 /* 360 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
140151 /* 370 */ 466, 108, 466, 267, 465, 442, 970, 971, 972, 261,
140152 /* 380 */ 951, 1344, 909, 342, 1344, 142, 829, 848, 1292, 959,
140153 /* 390 */ 371, 55, 55, 57, 57, 242, 101, 101, 101, 101,
140154 /* 400 */ 100, 100, 99, 99, 99, 98, 368, 104, 105, 95,
140155 /* 410 */ 991, 991, 868, 871, 860, 860, 102, 102, 103, 103,
140156 /* 420 */ 103, 103, 272, 382, 262, 253, 456, 310, 364, 253,
140157 /* 430 */ 456, 86, 264, 84, 266, 342, 441, 176, 175, 834,
140158 /* 440 */ 464, 949, 767, 767, 332, 313, 1094, 396, 101, 101,
140159 /* 450 */ 101, 101, 100, 100, 99, 99, 99, 98, 368, 104,
140160 /* 460 */ 105, 95, 991, 991, 868, 871, 860, 860, 102, 102,
140161 /* 470 */ 103, 103, 103, 103, 227, 227, 233, 233, 233, 233,
140162 /* 480 */ 387, 273, 234, 234, 326, 950, 463, 342, 463, 298,
140163 /* 490 */ 463, 914, 914, 404, 463, 1037, 123, 265, 27, 970,
140164 /* 500 */ 101, 101, 101, 101, 100, 100, 99, 99, 99, 98,
140165 /* 510 */ 368, 104, 105, 95, 991, 991, 868, 871, 860, 860,
140166 /* 520 */ 102, 102, 103, 103, 103, 103, 435, 233, 233, 466,
140167 /* 530 */ 285, 686, 687, 688, 127, 271, 970, 971, 972, 463,
140168 /* 540 */ 1345, 327, 342, 407, 157, 1012, 988, 13, 13, 181,
140169 /* 550 */ 41, 41, 101, 101, 101, 101, 100, 100, 99, 99,
140170 /* 560 */ 99, 98, 368, 715, 794, 378, 104, 105, 95, 991,
140171 /* 570 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
140172 /* 580 */ 103, 970, 378, 377, 346, 239, 847, 1086, 1086, 280,
140173 /* 590 */ 1169, 283, 204, 203, 202, 177, 298, 342, 407, 298,
140174 /* 600 */ 715, 840, 169, 299, 407, 839, 82, 101, 101, 101,
140175 /* 610 */ 101, 100, 100, 99, 99, 99, 98, 368, 970, 971,
140176 /* 620 */ 972, 104, 105, 95, 991, 991, 868, 871, 860, 860,
140177 /* 630 */ 102, 102, 103, 103, 103, 103, 839, 839, 841, 362,
140178 /* 640 */ 240, 124, 1169, 172, 126, 378, 1269, 1169, 1066, 342,
140179 /* 650 */ 253, 456, 407, 407, 407, 396, 352, 401, 407, 429,
140180 /* 660 */ 398, 85, 101, 101, 101, 101, 100, 100, 99, 99,
140181 /* 670 */ 99, 98, 368, 104, 105, 95, 991, 991, 868, 871,
140182 /* 680 */ 860, 860, 102, 102, 103, 103, 103, 103, 1169, 466,
140183 /* 690 */ 230, 233, 233, 792, 1235, 1095, 1091, 1293, 1, 77,
140184 /* 700 */ 278, 342, 205, 463, 974, 911, 1040, 348, 353, 911,
140185 /* 710 */ 42, 42, 79, 403, 101, 101, 101, 101, 100, 100,
140186 /* 720 */ 99, 99, 99, 98, 368, 104, 93, 95, 991, 991,
140187 /* 730 */ 868, 871, 860, 860, 102, 102, 103, 103, 103, 103,
140188 /* 740 */ 402, 9, 974, 243, 772, 458, 348, 232, 180, 771,
140189 /* 750 */ 946, 312, 342, 328, 363, 349, 143, 831, 389, 1278,
140190 /* 760 */ 211, 211, 21, 347, 432, 182, 101, 101, 101, 101,
140191 /* 770 */ 100, 100, 99, 99, 99, 98, 368, 105, 95, 991,
140192 /* 780 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
140193 /* 790 */ 103, 792, 724, 22, 732, 731, 233, 233, 1239, 256,
140194 /* 800 */ 391, 274, 342, 211, 79, 360, 257, 413, 463, 397,
140195 /* 810 */ 207, 288, 260, 450, 79, 1239, 1241, 101, 101, 101,
140196 /* 820 */ 101, 100, 100, 99, 99, 99, 98, 368, 95, 991,
140197 /* 830 */ 991, 868, 871, 860, 860, 102, 102, 103, 103, 103,
140198 /* 840 */ 103, 91, 457, 296, 3, 233, 233, 5, 438, 212,
140199 /* 850 */ 331, 394, 739, 740, 295, 898, 894, 463, 460, 207,
140200 /* 860 */ 801, 1237, 722, 211, 698, 843, 1283, 101, 101, 101,
140201 /* 870 */ 101, 100, 100, 99, 99, 99, 98, 368, 1239, 380,
140202 /* 880 */ 357, 369, 233, 233, 989, 219, 236, 297, 423, 292,
140203 /* 890 */ 422, 206, 454, 898, 463, 970, 91, 457, 290, 3,
140204 /* 900 */ 722, 142, 268, 843, 847, 466, 1258, 149, 388, 425,
140205 /* 910 */ 88, 89, 769, 460, 930, 87, 447, 90, 369, 468,
140206 /* 920 */ 467, 385, 989, 839, 1257, 439, 57, 57, 395, 931,
140207 /* 930 */ 1065, 158, 970, 971, 972, 772, 369, 471, 1019, 399,
140208 /* 940 */ 771, 253, 456, 254, 932, 119, 891, 454, 233, 233,
140209 /* 950 */ 4, 970, 1096, 275, 839, 839, 841, 842, 19, 847,
140210 /* 960 */ 463, 449, 448, 163, 453, 88, 89, 776, 970, 1127,
140211 /* 970 */ 279, 930, 90, 369, 468, 467, 91, 457, 839, 3,
140212 /* 980 */ 235, 1064, 466, 1228, 233, 233, 931, 970, 970, 971,
140213 /* 990 */ 972, 970, 908, 460, 908, 2, 463, 81, 457, 212,
140214 /* 1000 */ 3, 932, 282, 10, 10, 970, 971, 972, 189, 839,
140215 /* 1010 */ 839, 841, 842, 19, 460, 284, 369, 354, 907, 286,
140216 /* 1020 */ 907, 753, 466, 1079, 970, 971, 972, 454, 970, 971,
140217 /* 1030 */ 972, 754, 970, 1063, 989, 372, 792, 369, 1118, 847,
140218 /* 1040 */ 291, 452, 466, 10, 10, 88, 89, 142, 454, 168,
140219 /* 1050 */ 300, 412, 90, 369, 468, 467, 793, 356, 839, 706,
140220 /* 1060 */ 847, 341, 121, 10, 10, 301, 88, 89, 379, 970,
140221 /* 1070 */ 971, 972, 989, 90, 369, 468, 467, 244, 205, 839,
140222 /* 1080 */ 1306, 245, 1135, 245, 250, 1168, 1114, 253, 456, 839,
140223 /* 1090 */ 839, 841, 842, 19, 1125, 237, 122, 451, 1174, 733,
140224 /* 1100 */ 324, 324, 323, 222, 321, 466, 1046, 695, 182, 225,
140225 /* 1110 */ 839, 839, 841, 842, 19, 103, 103, 103, 103, 96,
140226 /* 1120 */ 185, 466, 259, 1039, 1028, 170, 10, 10, 1027, 421,
140227 /* 1130 */ 258, 1029, 1300, 708, 792, 466, 408, 734, 8, 347,
140228 /* 1140 */ 444, 174, 12, 12, 290, 101, 101, 101, 101, 100,
140229 /* 1150 */ 100, 99, 99, 99, 98, 368, 32, 32, 466, 187,
140230 /* 1160 */ 466, 1111, 103, 103, 103, 103, 188, 466, 325, 138,
140231 /* 1170 */ 186, 708, 303, 305, 307, 358, 970, 270, 393, 43,
140232 /* 1180 */ 43, 44, 44, 1157, 333, 178, 418, 294, 45, 45,
140233 /* 1190 */ 1232, 318, 101, 101, 101, 101, 100, 100, 99, 99,
140234 /* 1200 */ 99, 98, 368, 381, 343, 366, 365, 466, 263, 253,
140235 /* 1210 */ 456, 466, 1062, 970, 971, 972, 1231, 997, 309, 466,
140236 /* 1220 */ 455, 466, 427, 466, 995, 173, 996, 1303, 46, 46,
140237 /* 1230 */ 145, 376, 37, 37, 1006, 1277, 466, 214, 1275, 64,
140238 /* 1240 */ 47, 47, 33, 33, 34, 34, 1003, 67, 466, 998,
140239 /* 1250 */ 350, 998, 466, 155, 233, 233, 466, 36, 36, 24,
140240 /* 1260 */ 140, 77, 1154, 466, 383, 466, 463, 428, 466, 48,
140241 /* 1270 */ 48, 466, 147, 49, 49, 466, 150, 50, 50, 466,
140242 /* 1280 */ 151, 152, 466, 384, 11, 11, 51, 51, 466, 110,
140243 /* 1290 */ 110, 153, 52, 52, 411, 466, 38, 38, 466, 191,
140244 /* 1300 */ 53, 53, 466, 54, 54, 466, 400, 466, 330, 39,
140245 /* 1310 */ 39, 466, 1164, 466, 25, 466, 56, 56, 466, 131,
140246 /* 1320 */ 131, 72, 466, 132, 132, 159, 133, 133, 61, 61,
140247 /* 1330 */ 1226, 195, 40, 40, 111, 111, 58, 58, 406, 112,
140248 /* 1340 */ 112, 466, 277, 113, 113, 466, 226, 466, 1246, 466,
140249 /* 1350 */ 197, 466, 164, 466, 409, 466, 198, 466, 199, 466,
140250 /* 1360 */ 335, 281, 109, 109, 466, 1030, 130, 130, 129, 129,
140251 /* 1370 */ 117, 117, 116, 116, 114, 114, 115, 115, 60, 60,
140252 /* 1380 */ 62, 62, 466, 359, 466, 59, 59, 424, 1082, 1081,
140253 /* 1390 */ 1080, 724, 1073, 1054, 336, 293, 1053, 1052, 1315, 431,
140254 /* 1400 */ 361, 76, 248, 31, 31, 35, 35, 1072, 249, 440,
140255 /* 1410 */ 302, 434, 213, 1122, 6, 311, 1212, 107, 83, 251,
140256 /* 1420 */ 78, 1123, 445, 220, 443, 1036, 304, 23, 1121, 469,
140257 /* 1430 */ 965, 221, 223, 1104, 314, 224, 344, 317, 315, 316,
140258 /* 1440 */ 470, 306, 1025, 1120, 308, 1262, 1020, 134, 120, 246,
140259 /* 1450 */ 682, 370, 171, 255, 1263, 135, 184, 1261, 1260, 374,
140260 /* 1460 */ 118, 906, 904, 827, 1050, 146, 136, 137, 148, 1049,
140261 /* 1470 */ 63, 1047, 756, 190, 269, 920, 154, 156, 68, 69,
140262 /* 1480 */ 70, 71, 139, 923, 192, 193, 144, 919, 345, 128,
140263 /* 1490 */ 14, 194, 276, 211, 1000, 405, 196, 161, 912, 160,
140264 /* 1500 */ 26, 697, 410, 295, 200, 289, 414, 162, 419, 73,
140265 /* 1510 */ 15, 16, 141, 74, 28, 247, 846, 845, 735, 874,
140266 /* 1520 */ 954, 75, 430, 955, 29, 433, 179, 229, 231, 800,
140267 /* 1530 */ 165, 795, 87, 210, 889, 79, 875, 17, 873, 877,
140268 /* 1540 */ 929, 18, 928, 216, 215, 878, 20, 30, 462, 844,
140269 /* 1550 */ 707, 92, 766, 770, 7, 322, 217, 218, 319, 1308,
140270 /* 1560 */ 960, 1016, 1016, 1016, 1016, 1307,
140271 };
140272 static const YYCODETYPE yy_lookahead[] = {
140273 /* 0 */ 152, 144, 145, 146, 147, 152, 152, 172, 152, 180,
140274 /* 10 */ 181, 152, 223, 224, 225, 180, 152, 164, 189, 19,
140275 /* 20 */ 223, 224, 225, 168, 169, 170, 163, 173, 174, 173,
140276 /* 30 */ 174, 31, 173, 174, 168, 169, 170, 173, 174, 39,
140277 /* 40 */ 243, 191, 192, 43, 44, 45, 46, 47, 48, 49,
140278 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 195, 196,
140279 /* 60 */ 22, 23, 208, 209, 208, 209, 218, 208, 209, 176,
140280 /* 70 */ 207, 19, 208, 209, 23, 212, 213, 26, 26, 152,
140281 /* 80 */ 46, 47, 48, 49, 84, 85, 86, 87, 88, 89,
140282 /* 90 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140283 /* 100 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140284 /* 110 */ 90, 91, 92, 93, 94, 188, 223, 224, 225, 171,
140285 /* 120 */ 68, 83, 152, 19, 84, 85, 86, 87, 88, 89,
140286 /* 130 */ 90, 91, 92, 93, 94, 101, 84, 85, 86, 87,
140287 /* 140 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
140288 /* 150 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
140289 /* 160 */ 56, 57, 99, 94, 194, 102, 103, 104, 109, 110,
140290 /* 170 */ 66, 223, 224, 225, 152, 19, 113, 22, 23, 152,
140291 /* 180 */ 24, 26, 160, 1, 2, 59, 164, 173, 84, 85,
140292 /* 190 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
140293 /* 200 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
140294 /* 210 */ 54, 55, 56, 57, 244, 88, 89, 90, 91, 92,
140295 /* 220 */ 93, 94, 96, 97, 98, 99, 196, 19, 102, 103,
140296 /* 230 */ 104, 23, 88, 89, 173, 59, 163, 207, 83, 113,
140297 /* 240 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
140298 /* 250 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140299 /* 260 */ 52, 53, 54, 55, 56, 57, 90, 240, 195, 196,
140300 /* 270 */ 171, 82, 96, 97, 98, 152, 132, 176, 134, 19,
140301 /* 280 */ 207, 200, 72, 23, 93, 94, 97, 152, 173, 79,
140302 /* 290 */ 101, 210, 84, 85, 86, 87, 88, 89, 90, 91,
140303 /* 300 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
140304 /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 108, 152,
140305 /* 320 */ 152, 132, 133, 134, 223, 224, 225, 152, 186, 119,
140306 /* 330 */ 120, 19, 197, 234, 31, 23, 26, 152, 239, 59,
140307 /* 340 */ 173, 174, 39, 220, 84, 85, 86, 87, 88, 89,
140308 /* 350 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140309 /* 360 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140310 /* 370 */ 152, 22, 152, 16, 152, 208, 96, 97, 98, 194,
140311 /* 380 */ 22, 23, 11, 19, 26, 79, 72, 23, 0, 1,
140312 /* 390 */ 2, 173, 174, 173, 174, 220, 84, 85, 86, 87,
140313 /* 400 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45,
140314 /* 410 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
140315 /* 420 */ 56, 57, 108, 109, 110, 119, 120, 152, 208, 119,
140316 /* 430 */ 120, 137, 75, 139, 77, 19, 152, 88, 89, 23,
140317 /* 440 */ 115, 83, 117, 118, 163, 227, 163, 152, 84, 85,
140318 /* 450 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43,
140319 /* 460 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
140320 /* 470 */ 54, 55, 56, 57, 195, 196, 195, 196, 195, 196,
140321 /* 480 */ 109, 110, 195, 196, 22, 23, 207, 19, 207, 152,
140322 /* 490 */ 207, 108, 109, 110, 207, 163, 22, 140, 24, 59,
140323 /* 500 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
140324 /* 510 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140325 /* 520 */ 52, 53, 54, 55, 56, 57, 152, 195, 196, 152,
140326 /* 530 */ 16, 7, 8, 9, 197, 240, 96, 97, 98, 207,
140327 /* 540 */ 249, 250, 19, 152, 22, 83, 26, 173, 174, 152,
140328 /* 550 */ 173, 174, 84, 85, 86, 87, 88, 89, 90, 91,
140329 /* 560 */ 92, 93, 94, 59, 124, 152, 43, 44, 45, 46,
140330 /* 570 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140331 /* 580 */ 57, 59, 169, 170, 157, 194, 82, 191, 192, 75,
140332 /* 590 */ 152, 77, 108, 109, 110, 26, 152, 19, 152, 152,
140333 /* 600 */ 96, 97, 24, 152, 152, 101, 138, 84, 85, 86,
140334 /* 610 */ 87, 88, 89, 90, 91, 92, 93, 94, 96, 97,
140335 /* 620 */ 98, 43, 44, 45, 46, 47, 48, 49, 50, 51,
140336 /* 630 */ 52, 53, 54, 55, 56, 57, 132, 133, 134, 188,
140337 /* 640 */ 194, 197, 152, 123, 197, 232, 194, 152, 182, 19,
140338 /* 650 */ 119, 120, 152, 152, 152, 152, 218, 230, 152, 163,
140339 /* 660 */ 233, 138, 84, 85, 86, 87, 88, 89, 90, 91,
140340 /* 670 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49,
140341 /* 680 */ 50, 51, 52, 53, 54, 55, 56, 57, 152, 152,
140342 /* 690 */ 23, 195, 196, 26, 194, 194, 194, 146, 147, 130,
140343 /* 700 */ 194, 19, 46, 207, 59, 29, 166, 167, 218, 33,
140344 /* 710 */ 173, 174, 26, 218, 84, 85, 86, 87, 88, 89,
140345 /* 720 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47,
140346 /* 730 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
140347 /* 740 */ 64, 171, 97, 240, 116, 166, 167, 212, 213, 121,
140348 /* 750 */ 23, 152, 19, 26, 218, 247, 248, 23, 23, 152,
140349 /* 760 */ 26, 26, 22, 107, 163, 98, 84, 85, 86, 87,
140350 /* 770 */ 88, 89, 90, 91, 92, 93, 94, 44, 45, 46,
140351 /* 780 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140352 /* 790 */ 57, 124, 106, 53, 100, 101, 195, 196, 152, 152,
140353 /* 800 */ 23, 23, 19, 26, 26, 19, 152, 23, 207, 239,
140354 /* 810 */ 26, 23, 152, 163, 26, 169, 170, 84, 85, 86,
140355 /* 820 */ 87, 88, 89, 90, 91, 92, 93, 94, 45, 46,
140356 /* 830 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
140357 /* 840 */ 57, 19, 20, 101, 22, 195, 196, 22, 19, 24,
140358 /* 850 */ 163, 19, 7, 8, 112, 59, 23, 207, 36, 26,
140359 /* 860 */ 23, 152, 59, 26, 21, 59, 152, 84, 85, 86,
140360 /* 870 */ 87, 88, 89, 90, 91, 92, 93, 94, 232, 221,
140361 /* 880 */ 94, 59, 195, 196, 59, 99, 100, 101, 102, 103,
140362 /* 890 */ 104, 105, 70, 97, 207, 59, 19, 20, 112, 22,
140363 /* 900 */ 97, 79, 152, 97, 82, 152, 152, 71, 221, 90,
140364 /* 910 */ 88, 89, 23, 36, 12, 26, 163, 95, 96, 97,
140365 /* 920 */ 98, 78, 97, 101, 152, 96, 173, 174, 96, 27,
140366 /* 930 */ 182, 22, 96, 97, 98, 116, 59, 148, 149, 152,
140367 /* 940 */ 121, 119, 120, 154, 42, 156, 103, 70, 195, 196,
140368 /* 950 */ 22, 59, 163, 152, 132, 133, 134, 135, 136, 82,
140369 /* 960 */ 207, 208, 209, 71, 62, 88, 89, 90, 59, 152,
140370 /* 970 */ 152, 12, 95, 96, 97, 98, 19, 20, 101, 22,
140371 /* 980 */ 22, 182, 152, 140, 195, 196, 27, 59, 96, 97,
140372 /* 990 */ 98, 59, 132, 36, 134, 22, 207, 19, 20, 24,
140373 /* 1000 */ 22, 42, 152, 173, 174, 96, 97, 98, 219, 132,
140374 /* 1010 */ 133, 134, 135, 136, 36, 152, 59, 187, 132, 152,
140375 /* 1020 */ 134, 62, 152, 152, 96, 97, 98, 70, 96, 97,
140376 /* 1030 */ 98, 72, 59, 152, 59, 246, 26, 59, 214, 82,
140377 /* 1040 */ 152, 192, 152, 173, 174, 88, 89, 79, 70, 152,
140378 /* 1050 */ 152, 19, 95, 96, 97, 98, 124, 187, 101, 23,
140379 /* 1060 */ 82, 164, 26, 173, 174, 152, 88, 89, 100, 96,
140380 /* 1070 */ 97, 98, 97, 95, 96, 97, 98, 187, 46, 101,
140381 /* 1080 */ 122, 184, 152, 186, 211, 152, 152, 119, 120, 132,
140382 /* 1090 */ 133, 134, 135, 136, 152, 5, 22, 152, 152, 35,
140383 /* 1100 */ 10, 11, 12, 13, 14, 152, 152, 17, 98, 235,
140384 /* 1110 */ 132, 133, 134, 135, 136, 54, 55, 56, 57, 58,
140385 /* 1120 */ 30, 152, 32, 152, 152, 198, 173, 174, 152, 65,
140386 /* 1130 */ 40, 152, 152, 59, 124, 152, 236, 73, 199, 107,
140387 /* 1140 */ 187, 171, 173, 174, 112, 84, 85, 86, 87, 88,
140388 /* 1150 */ 89, 90, 91, 92, 93, 94, 173, 174, 152, 69,
140389 /* 1160 */ 152, 211, 54, 55, 56, 57, 76, 152, 150, 79,
140390 /* 1170 */ 80, 97, 211, 211, 211, 111, 59, 241, 241, 173,
140391 /* 1180 */ 174, 173, 174, 202, 202, 185, 177, 176, 173, 174,
140392 /* 1190 */ 176, 201, 84, 85, 86, 87, 88, 89, 90, 91,
140393 /* 1200 */ 92, 93, 94, 215, 114, 88, 89, 152, 215, 119,
140394 /* 1210 */ 120, 152, 181, 96, 97, 98, 176, 100, 215, 152,
140395 /* 1220 */ 229, 152, 163, 152, 107, 199, 109, 155, 173, 174,
140396 /* 1230 */ 245, 141, 173, 174, 60, 159, 152, 122, 159, 242,
140397 /* 1240 */ 173, 174, 173, 174, 173, 174, 38, 242, 152, 132,
140398 /* 1250 */ 159, 134, 152, 22, 195, 196, 152, 173, 174, 222,
140399 /* 1260 */ 43, 130, 202, 152, 18, 152, 207, 208, 152, 173,
140400 /* 1270 */ 174, 152, 190, 173, 174, 152, 193, 173, 174, 152,
140401 /* 1280 */ 193, 193, 152, 159, 173, 174, 173, 174, 152, 173,
140402 /* 1290 */ 174, 193, 173, 174, 18, 152, 173, 174, 152, 158,
140403 /* 1300 */ 173, 174, 152, 173, 174, 152, 159, 152, 202, 173,
140404 /* 1310 */ 174, 152, 190, 152, 222, 152, 173, 174, 152, 173,
140405 /* 1320 */ 174, 137, 152, 173, 174, 190, 173, 174, 173, 174,
140406 /* 1330 */ 202, 158, 173, 174, 173, 174, 173, 174, 61, 173,
140407 /* 1340 */ 174, 152, 237, 173, 174, 152, 159, 152, 238, 152,
140408 /* 1350 */ 158, 152, 22, 152, 178, 152, 158, 152, 158, 152,
140409 /* 1360 */ 178, 159, 173, 174, 152, 159, 173, 174, 173, 174,
140410 /* 1370 */ 173, 174, 173, 174, 173, 174, 173, 174, 173, 174,
140411 /* 1380 */ 173, 174, 152, 63, 152, 173, 174, 107, 175, 175,
140412 /* 1390 */ 175, 106, 183, 175, 178, 175, 177, 175, 175, 178,
140413 /* 1400 */ 94, 107, 231, 173, 174, 173, 174, 183, 231, 125,
140414 /* 1410 */ 216, 178, 159, 217, 22, 159, 226, 129, 137, 228,
140415 /* 1420 */ 128, 217, 126, 25, 127, 162, 216, 26, 217, 161,
140416 /* 1430 */ 13, 153, 153, 206, 205, 6, 251, 202, 204, 203,
140417 /* 1440 */ 151, 216, 151, 217, 216, 171, 151, 165, 179, 179,
140418 /* 1450 */ 4, 3, 22, 142, 171, 165, 15, 171, 171, 81,
140419 /* 1460 */ 16, 23, 23, 120, 171, 131, 165, 111, 123, 171,
140420 /* 1470 */ 171, 171, 20, 125, 16, 1, 123, 131, 53, 53,
140421 /* 1480 */ 53, 53, 111, 96, 34, 122, 248, 1, 251, 5,
140422 /* 1490 */ 22, 107, 140, 26, 74, 41, 122, 107, 67, 67,
140423 /* 1500 */ 24, 20, 19, 112, 105, 23, 66, 22, 66, 22,
140424 /* 1510 */ 22, 22, 37, 22, 22, 66, 23, 23, 28, 23,
140425 /* 1520 */ 23, 26, 24, 23, 22, 24, 122, 23, 23, 96,
140426 /* 1530 */ 22, 124, 26, 34, 23, 26, 23, 34, 23, 23,
140427 /* 1540 */ 23, 34, 23, 22, 26, 11, 22, 22, 26, 23,
140428 /* 1550 */ 23, 22, 116, 23, 22, 15, 122, 122, 23, 122,
140429 /* 1560 */ 1, 252, 252, 252, 252, 122, 252, 252, 252, 252,
140430 /* 1570 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140431 /* 1580 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140432 /* 1590 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140433 /* 1600 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140434 /* 1610 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
@@ -140372,151 +140436,156 @@
140436 /* 1630 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140437 /* 1640 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140438 /* 1650 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140439 /* 1660 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140440 /* 1670 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140441 /* 1680 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140442 /* 1690 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
140443 /* 1700 */ 252, 252, 252, 252, 252, 252, 252, 252, 252,
140444 };
140445 #define YY_SHIFT_COUNT (471)
140446 #define YY_SHIFT_MIN (0)
140447 #define YY_SHIFT_MAX (1559)
140448 static const unsigned short int yy_shift_ofst[] = {
140449 /* 0 */ 182, 1090, 822, 822, 306, 957, 957, 957, 957, 210,
140450 /* 10 */ 0, 0, 104, 630, 957, 957, 957, 957, 957, 957,
140451 /* 20 */ 957, 1117, 1117, 126, 968, 306, 306, 306, 306, 306,
140452 /* 30 */ 306, 52, 156, 208, 260, 312, 364, 416, 468, 523,
140453 /* 40 */ 578, 630, 630, 630, 630, 630, 630, 630, 630, 630,
140454 /* 50 */ 630, 630, 630, 630, 630, 630, 630, 630, 682, 630,
140455 /* 60 */ 733, 783, 783, 877, 957, 957, 957, 957, 957, 957,
140456 /* 70 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
140457 /* 80 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957,
140458 /* 90 */ 957, 957, 957, 957, 957, 978, 957, 957, 957, 957,
140459 /* 100 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 1061,
140460 /* 110 */ 1108, 1108, 1108, 1108, 1108, 40, 127, 20, 280, 843,
140461 /* 120 */ 1032, 144, 144, 280, 310, 310, 310, 310, 59, 191,
140462 /* 130 */ 69, 1566, 1566, 1566, 786, 786, 786, 522, 836, 522,
140463 /* 140 */ 959, 959, 892, 155, 358, 280, 280, 280, 280, 280,
140464 /* 150 */ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
140465 /* 160 */ 280, 280, 280, 280, 280, 280, 371, 388, 645, 645,
140466 /* 170 */ 531, 1566, 1566, 1566, 504, 189, 189, 909, 63, 176,
140467 /* 180 */ 928, 440, 932, 973, 280, 280, 280, 280, 280, 314,
140468 /* 190 */ 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
140469 /* 200 */ 280, 280, 1064, 1064, 1064, 280, 280, 280, 280, 667,
140470 /* 210 */ 280, 280, 280, 825, 280, 280, 902, 280, 280, 280,
140471 /* 220 */ 280, 280, 280, 280, 280, 383, 676, 325, 975, 975,
140472 /* 230 */ 975, 975, 1010, 325, 325, 819, 349, 524, 569, 829,
140473 /* 240 */ 829, 832, 569, 832, 686, 51, 656, 303, 303, 303,
140474 /* 250 */ 829, 294, 520, 628, 474, 1174, 1115, 1115, 1208, 1208,
140475 /* 260 */ 1115, 1231, 1217, 1131, 1246, 1246, 1246, 1246, 1115, 1276,
140476 /* 270 */ 1131, 1231, 1217, 1217, 1131, 1115, 1276, 1184, 1277, 1115,
140477 /* 280 */ 1276, 1330, 1115, 1276, 1115, 1276, 1330, 1280, 1280, 1280,
140478 /* 290 */ 1320, 1330, 1280, 1285, 1280, 1320, 1280, 1280, 1330, 1306,
140479 /* 300 */ 1306, 1330, 1284, 1294, 1284, 1294, 1284, 1294, 1284, 1294,
140480 /* 310 */ 1115, 1392, 1115, 1281, 1288, 1296, 1292, 1297, 1131, 1398,
140481 /* 320 */ 1401, 1417, 1417, 1429, 1429, 1429, 1566, 1566, 1566, 1566,
140482 /* 330 */ 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
140483 /* 340 */ 1566, 1566, 34, 357, 38, 462, 514, 484, 1074, 727,
140484 /* 350 */ 740, 734, 735, 777, 778, 784, 788, 803, 694, 845,
140485 /* 360 */ 742, 796, 833, 837, 889, 860, 886, 1036, 806, 958,
140486 /* 370 */ 1446, 1448, 1430, 1311, 1441, 1378, 1444, 1438, 1439, 1343,
140487 /* 380 */ 1334, 1356, 1345, 1452, 1348, 1458, 1474, 1353, 1346, 1425,
140488 /* 390 */ 1426, 1427, 1428, 1371, 1387, 1450, 1363, 1486, 1484, 1468,
140489 /* 400 */ 1384, 1352, 1431, 1467, 1432, 1420, 1454, 1374, 1390, 1476,
140490 /* 410 */ 1481, 1483, 1391, 1399, 1485, 1440, 1487, 1488, 1482, 1489,
140491 /* 420 */ 1442, 1490, 1491, 1449, 1475, 1493, 1494, 1496, 1495, 1497,
140492 /* 430 */ 1492, 1498, 1500, 1502, 1501, 1404, 1504, 1505, 1433, 1499,
140493 /* 440 */ 1508, 1407, 1506, 1503, 1509, 1507, 1511, 1513, 1515, 1506,
140494 /* 450 */ 1516, 1517, 1518, 1519, 1521, 1534, 1524, 1525, 1526, 1527,
140495 /* 460 */ 1529, 1530, 1532, 1522, 1436, 1434, 1435, 1437, 1443, 1535,
140496 /* 470 */ 1540, 1559,
140497 };
140498 #define YY_REDUCE_COUNT (341)
140499 #define YY_REDUCE_MIN (-211)
140500 #define YY_REDUCE_MAX (1301)
140501 static const short yy_reduce_ofst[] = {
140502 /* 0 */ -143, 789, 753, 1059, -137, -146, -144, -141, -136, 687,
140503 /* 10 */ -107, 101, -203, -52, 830, 870, 890, 167, 953, 218,
140504 /* 20 */ 220, 413, 646, 897, 73, 281, 283, 332, 496, 601,
140505 /* 30 */ 650, -211, -211, -211, -211, -211, -211, -211, -211, -211,
140506 /* 40 */ -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
140507 /* 50 */ -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
140508 /* 60 */ -211, -211, -211, 374, 377, 537, 969, 983, 1006, 1008,
140509 /* 70 */ 1015, 1055, 1067, 1069, 1071, 1084, 1096, 1100, 1104, 1111,
140510 /* 80 */ 1113, 1116, 1119, 1123, 1127, 1130, 1136, 1143, 1146, 1150,
140511 /* 90 */ 1153, 1155, 1159, 1161, 1163, 1166, 1170, 1189, 1193, 1195,
140512 /* 100 */ 1197, 1199, 1201, 1203, 1205, 1207, 1212, 1230, 1232, -211,
140513 /* 110 */ -211, -211, -211, -211, -211, -211, -211, -211, -30, 427,
140514 /* 120 */ -171, -145, -134, 22, 279, 287, 279, 287, 99, -211,
140515 /* 130 */ -211, -211, -211, -211, -165, -165, -165, 123, 135, 175,
140516 /* 140 */ -150, 396, 337, 291, 291, -147, 185, 391, 446, 444,
140517 /* 150 */ 452, 500, 501, 502, 27, -152, 295, 438, 490, 503,
140518 /* 160 */ 495, 506, -73, 447, 451, 536, 570, 551, 540, 579,
140519 /* 170 */ 30, 508, 535, 81, 14, 61, 115, 168, 142, 222,
140520 /* 180 */ 275, 284, 397, 599, 607, 647, 654, 660, 709, 658,
140521 /* 190 */ 714, 750, 754, 772, 787, 801, 817, 818, 850, 863,
140522 /* 200 */ 867, 871, 466, 748, 799, 881, 888, 898, 913, 824,
140523 /* 210 */ 930, 933, 934, 873, 942, 945, 849, 946, 222, 954,
140524 /* 220 */ 971, 972, 976, 979, 980, 900, 874, 927, 950, 961,
140525 /* 230 */ 962, 963, 824, 927, 927, 939, 970, 1018, 981, 988,
140526 /* 240 */ 993, 936, 982, 937, 1009, 1000, 1031, 1011, 1014, 1040,
140527 /* 250 */ 1003, 991, 990, 1026, 1072, 985, 1076, 1079, 997, 1005,
140528 /* 260 */ 1091, 1037, 1082, 1060, 1083, 1087, 1088, 1098, 1124, 1141,
140529 /* 270 */ 1106, 1092, 1122, 1135, 1128, 1147, 1173, 1110, 1105, 1187,
140530 /* 280 */ 1192, 1176, 1202, 1198, 1206, 1200, 1182, 1213, 1214, 1215,
140531 /* 290 */ 1209, 1216, 1218, 1219, 1220, 1224, 1222, 1223, 1221, 1171,
140532 /* 300 */ 1177, 1233, 1196, 1194, 1204, 1210, 1211, 1225, 1226, 1228,
140533 /* 310 */ 1253, 1190, 1256, 1191, 1227, 1229, 1234, 1236, 1235, 1263,
140534 /* 320 */ 1268, 1278, 1279, 1289, 1291, 1295, 1185, 1237, 1238, 1282,
140535 /* 330 */ 1274, 1283, 1286, 1287, 1290, 1269, 1270, 1293, 1298, 1299,
140536 /* 340 */ 1300, 1301,
140537 };
140538 static const YYACTIONTYPE yy_default[] = {
140539 /* 0 */ 1297, 1349, 1221, 1014, 1119, 1221, 1221, 1221, 1221, 1014,
140540 /* 10 */ 1145, 1145, 1272, 1045, 1014, 1014, 1014, 1014, 1014, 1220,
140541 /* 20 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140542 /* 30 */ 1014, 1151, 1014, 1014, 1014, 1014, 1222, 1223, 1014, 1014,
140543 /* 40 */ 1014, 1271, 1273, 1161, 1160, 1159, 1158, 1254, 1132, 1156,
140544 /* 50 */ 1149, 1153, 1216, 1217, 1215, 1219, 1222, 1223, 1014, 1152,
140545 /* 60 */ 1186, 1200, 1185, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140546 /* 70 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140547 /* 80 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140548 /* 90 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140549 /* 100 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1194,
140550 /* 110 */ 1199, 1206, 1198, 1195, 1188, 1187, 1189, 1190, 1014, 1035,
140551 /* 120 */ 1084, 1014, 1014, 1014, 1289, 1288, 1014, 1014, 1045, 1191,
140552 /* 130 */ 1192, 1203, 1202, 1201, 1279, 1305, 1304, 1014, 1014, 1014,
140553 /* 140 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140554 /* 150 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140555 /* 160 */ 1014, 1014, 1014, 1014, 1014, 1014, 1045, 1297, 1041, 1041,
140556 /* 170 */ 1014, 1284, 1119, 1110, 1014, 1014, 1014, 1014, 1014, 1014,
140557 /* 180 */ 1014, 1014, 1014, 1014, 1014, 1276, 1274, 1014, 1236, 1014,
140558 /* 190 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140559 /* 200 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140560 /* 210 */ 1014, 1014, 1014, 1115, 1014, 1014, 1014, 1014, 1014, 1014,
140561 /* 220 */ 1014, 1014, 1014, 1014, 1299, 1014, 1249, 1098, 1115, 1115,
140562 /* 230 */ 1115, 1115, 1117, 1099, 1097, 1109, 1045, 1021, 1155, 1134,
140563 /* 240 */ 1134, 1338, 1155, 1338, 1059, 1319, 1056, 1145, 1145, 1145,
140564 /* 250 */ 1134, 1218, 1116, 1109, 1014, 1341, 1124, 1124, 1340, 1340,
140565 /* 260 */ 1124, 1166, 1087, 1155, 1093, 1093, 1093, 1093, 1124, 1032,
140566 /* 270 */ 1155, 1166, 1087, 1087, 1155, 1124, 1032, 1253, 1335, 1124,
140567 /* 280 */ 1032, 1229, 1124, 1032, 1124, 1032, 1229, 1085, 1085, 1085,
140568 /* 290 */ 1074, 1229, 1085, 1059, 1085, 1074, 1085, 1085, 1229, 1233,
140569 /* 300 */ 1233, 1229, 1138, 1133, 1138, 1133, 1138, 1133, 1138, 1133,
140570 /* 310 */ 1124, 1224, 1124, 1014, 1150, 1139, 1148, 1146, 1155, 1038,
140571 /* 320 */ 1077, 1302, 1302, 1298, 1298, 1298, 1346, 1346, 1284, 1314,
140572 /* 330 */ 1045, 1045, 1045, 1045, 1314, 1061, 1061, 1045, 1045, 1045,
140573 /* 340 */ 1045, 1314, 1014, 1014, 1014, 1014, 1014, 1014, 1309, 1014,
140574 /* 350 */ 1238, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140575 /* 360 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1171,
140576 /* 370 */ 1014, 1017, 1281, 1014, 1014, 1280, 1014, 1014, 1014, 1014,
140577 /* 380 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140578 /* 390 */ 1014, 1014, 1014, 1014, 1014, 1014, 1337, 1014, 1014, 1014,
140579 /* 400 */ 1014, 1014, 1014, 1252, 1251, 1014, 1014, 1126, 1014, 1014,
140580 /* 410 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140581 /* 420 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140582 /* 430 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140583 /* 440 */ 1014, 1014, 1147, 1014, 1140, 1014, 1014, 1014, 1014, 1328,
140584 /* 450 */ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
140585 /* 460 */ 1014, 1014, 1014, 1323, 1101, 1173, 1014, 1172, 1176, 1014,
140586 /* 470 */ 1026, 1014,
140587 };
140588 /********** End of lemon-generated parsing tables *****************************/
140589
140590 /* The next table maps tokens (terminal symbols) into fallback tokens.
140591 ** If a construct like the following:
@@ -140898,11 +140967,11 @@
140967 /* 192 */ "raisetype",
140968 /* 193 */ "ifexists",
140969 /* 194 */ "fullname",
140970 /* 195 */ "selectnowith",
140971 /* 196 */ "oneselect",
140972 /* 197 */ "wqlist",
140973 /* 198 */ "multiselect_op",
140974 /* 199 */ "distinct",
140975 /* 200 */ "selcollist",
140976 /* 201 */ "from",
140977 /* 202 */ "where_opt",
@@ -140920,43 +140989,43 @@
140989 /* 214 */ "joinop",
140990 /* 215 */ "indexed_opt",
140991 /* 216 */ "on_opt",
140992 /* 217 */ "using_opt",
140993 /* 218 */ "idlist",
140994 /* 219 */ "with",
140995 /* 220 */ "setlist",
140996 /* 221 */ "insert_cmd",
140997 /* 222 */ "idlist_opt",
140998 /* 223 */ "likeop",
140999 /* 224 */ "between_op",
141000 /* 225 */ "in_op",
141001 /* 226 */ "paren_exprlist",
141002 /* 227 */ "case_operand",
141003 /* 228 */ "case_exprlist",
141004 /* 229 */ "case_else",
141005 /* 230 */ "uniqueflag",
141006 /* 231 */ "collate",
141007 /* 232 */ "nmnum",
141008 /* 233 */ "trigger_decl",
141009 /* 234 */ "trigger_cmd_list",
141010 /* 235 */ "trigger_time",
141011 /* 236 */ "trigger_event",
141012 /* 237 */ "foreach_clause",
141013 /* 238 */ "when_clause",
141014 /* 239 */ "trigger_cmd",
141015 /* 240 */ "trnm",
141016 /* 241 */ "tridxby",
141017 /* 242 */ "database_kw_opt",
141018 /* 243 */ "key_opt",
141019 /* 244 */ "add_column_fullname",
141020 /* 245 */ "kwcolumn_opt",
141021 /* 246 */ "create_vtab",
141022 /* 247 */ "vtabarglist",
141023 /* 248 */ "vtabarg",
141024 /* 249 */ "vtabargtoken",
141025 /* 250 */ "lp",
141026 /* 251 */ "anylist",
141027 };
141028 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
141029
141030 #ifndef NDEBUG
141031 /* For tracing reduce actions, the names of all rules are required.
@@ -141040,260 +141109,263 @@
141109 /* 75 */ "ifexists ::= IF EXISTS",
141110 /* 76 */ "ifexists ::=",
141111 /* 77 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select",
141112 /* 78 */ "cmd ::= DROP VIEW ifexists fullname",
141113 /* 79 */ "cmd ::= select",
141114 /* 80 */ "select ::= WITH wqlist selectnowith",
141115 /* 81 */ "select ::= WITH RECURSIVE wqlist selectnowith",
141116 /* 82 */ "select ::= selectnowith",
141117 /* 83 */ "selectnowith ::= selectnowith multiselect_op oneselect",
141118 /* 84 */ "multiselect_op ::= UNION",
141119 /* 85 */ "multiselect_op ::= UNION ALL",
141120 /* 86 */ "multiselect_op ::= EXCEPT|INTERSECT",
141121 /* 87 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
141122 /* 88 */ "values ::= VALUES LP nexprlist RP",
141123 /* 89 */ "values ::= values COMMA LP exprlist RP",
141124 /* 90 */ "distinct ::= DISTINCT",
141125 /* 91 */ "distinct ::= ALL",
141126 /* 92 */ "distinct ::=",
141127 /* 93 */ "sclp ::=",
141128 /* 94 */ "selcollist ::= sclp scanpt expr scanpt as",
141129 /* 95 */ "selcollist ::= sclp scanpt STAR",
141130 /* 96 */ "selcollist ::= sclp scanpt nm DOT STAR",
141131 /* 97 */ "as ::= AS nm",
141132 /* 98 */ "as ::=",
141133 /* 99 */ "from ::=",
141134 /* 100 */ "from ::= FROM seltablist",
141135 /* 101 */ "stl_prefix ::= seltablist joinop",
141136 /* 102 */ "stl_prefix ::=",
141137 /* 103 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
141138 /* 104 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt",
141139 /* 105 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
141140 /* 106 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
141141 /* 107 */ "dbnm ::=",
141142 /* 108 */ "dbnm ::= DOT nm",
141143 /* 109 */ "fullname ::= nm",
141144 /* 110 */ "fullname ::= nm DOT nm",
141145 /* 111 */ "joinop ::= COMMA|JOIN",
141146 /* 112 */ "joinop ::= JOIN_KW JOIN",
141147 /* 113 */ "joinop ::= JOIN_KW nm JOIN",
141148 /* 114 */ "joinop ::= JOIN_KW nm nm JOIN",
141149 /* 115 */ "on_opt ::= ON expr",
141150 /* 116 */ "on_opt ::=",
141151 /* 117 */ "indexed_opt ::=",
141152 /* 118 */ "indexed_opt ::= INDEXED BY nm",
141153 /* 119 */ "indexed_opt ::= NOT INDEXED",
141154 /* 120 */ "using_opt ::= USING LP idlist RP",
141155 /* 121 */ "using_opt ::=",
141156 /* 122 */ "orderby_opt ::=",
141157 /* 123 */ "orderby_opt ::= ORDER BY sortlist",
141158 /* 124 */ "sortlist ::= sortlist COMMA expr sortorder",
141159 /* 125 */ "sortlist ::= expr sortorder",
141160 /* 126 */ "sortorder ::= ASC",
141161 /* 127 */ "sortorder ::= DESC",
141162 /* 128 */ "sortorder ::=",
141163 /* 129 */ "groupby_opt ::=",
141164 /* 130 */ "groupby_opt ::= GROUP BY nexprlist",
141165 /* 131 */ "having_opt ::=",
141166 /* 132 */ "having_opt ::= HAVING expr",
141167 /* 133 */ "limit_opt ::=",
141168 /* 134 */ "limit_opt ::= LIMIT expr",
141169 /* 135 */ "limit_opt ::= LIMIT expr OFFSET expr",
141170 /* 136 */ "limit_opt ::= LIMIT expr COMMA expr",
141171 /* 137 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt",
141172 /* 138 */ "where_opt ::=",
141173 /* 139 */ "where_opt ::= WHERE expr",
141174 /* 140 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt",
141175 /* 141 */ "setlist ::= setlist COMMA nm EQ expr",
141176 /* 142 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
141177 /* 143 */ "setlist ::= nm EQ expr",
141178 /* 144 */ "setlist ::= LP idlist RP EQ expr",
141179 /* 145 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select",
141180 /* 146 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES",
141181 /* 147 */ "insert_cmd ::= INSERT orconf",
141182 /* 148 */ "insert_cmd ::= REPLACE",
141183 /* 149 */ "idlist_opt ::=",
141184 /* 150 */ "idlist_opt ::= LP idlist RP",
141185 /* 151 */ "idlist ::= idlist COMMA nm",
141186 /* 152 */ "idlist ::= nm",
141187 /* 153 */ "expr ::= LP expr RP",
141188 /* 154 */ "expr ::= ID|INDEXED",
141189 /* 155 */ "expr ::= JOIN_KW",
141190 /* 156 */ "expr ::= nm DOT nm",
141191 /* 157 */ "expr ::= nm DOT nm DOT nm",
141192 /* 158 */ "term ::= NULL|FLOAT|BLOB",
141193 /* 159 */ "term ::= STRING",
141194 /* 160 */ "term ::= INTEGER",
141195 /* 161 */ "expr ::= VARIABLE",
141196 /* 162 */ "expr ::= expr COLLATE ID|STRING",
141197 /* 163 */ "expr ::= CAST LP expr AS typetoken RP",
141198 /* 164 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
141199 /* 165 */ "expr ::= ID|INDEXED LP STAR RP",
141200 /* 166 */ "term ::= CTIME_KW",
141201 /* 167 */ "expr ::= LP nexprlist COMMA expr RP",
141202 /* 168 */ "expr ::= expr AND expr",
141203 /* 169 */ "expr ::= expr OR expr",
141204 /* 170 */ "expr ::= expr LT|GT|GE|LE expr",
141205 /* 171 */ "expr ::= expr EQ|NE expr",
141206 /* 172 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
141207 /* 173 */ "expr ::= expr PLUS|MINUS expr",
141208 /* 174 */ "expr ::= expr STAR|SLASH|REM expr",
141209 /* 175 */ "expr ::= expr CONCAT expr",
141210 /* 176 */ "likeop ::= NOT LIKE_KW|MATCH",
141211 /* 177 */ "expr ::= expr likeop expr",
141212 /* 178 */ "expr ::= expr likeop expr ESCAPE expr",
141213 /* 179 */ "expr ::= expr ISNULL|NOTNULL",
141214 /* 180 */ "expr ::= expr NOT NULL",
141215 /* 181 */ "expr ::= expr IS expr",
141216 /* 182 */ "expr ::= expr IS NOT expr",
141217 /* 183 */ "expr ::= NOT expr",
141218 /* 184 */ "expr ::= BITNOT expr",
141219 /* 185 */ "expr ::= MINUS expr",
141220 /* 186 */ "expr ::= PLUS expr",
141221 /* 187 */ "between_op ::= BETWEEN",
141222 /* 188 */ "between_op ::= NOT BETWEEN",
141223 /* 189 */ "expr ::= expr between_op expr AND expr",
141224 /* 190 */ "in_op ::= IN",
141225 /* 191 */ "in_op ::= NOT IN",
141226 /* 192 */ "expr ::= expr in_op LP exprlist RP",
141227 /* 193 */ "expr ::= LP select RP",
141228 /* 194 */ "expr ::= expr in_op LP select RP",
141229 /* 195 */ "expr ::= expr in_op nm dbnm paren_exprlist",
141230 /* 196 */ "expr ::= EXISTS LP select RP",
141231 /* 197 */ "expr ::= CASE case_operand case_exprlist case_else END",
141232 /* 198 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
141233 /* 199 */ "case_exprlist ::= WHEN expr THEN expr",
141234 /* 200 */ "case_else ::= ELSE expr",
141235 /* 201 */ "case_else ::=",
141236 /* 202 */ "case_operand ::= expr",
141237 /* 203 */ "case_operand ::=",
141238 /* 204 */ "exprlist ::=",
141239 /* 205 */ "nexprlist ::= nexprlist COMMA expr",
141240 /* 206 */ "nexprlist ::= expr",
141241 /* 207 */ "paren_exprlist ::=",
141242 /* 208 */ "paren_exprlist ::= LP exprlist RP",
141243 /* 209 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
141244 /* 210 */ "uniqueflag ::= UNIQUE",
141245 /* 211 */ "uniqueflag ::=",
141246 /* 212 */ "eidlist_opt ::=",
141247 /* 213 */ "eidlist_opt ::= LP eidlist RP",
141248 /* 214 */ "eidlist ::= eidlist COMMA nm collate sortorder",
141249 /* 215 */ "eidlist ::= nm collate sortorder",
141250 /* 216 */ "collate ::=",
141251 /* 217 */ "collate ::= COLLATE ID|STRING",
141252 /* 218 */ "cmd ::= DROP INDEX ifexists fullname",
141253 /* 219 */ "cmd ::= VACUUM",
141254 /* 220 */ "cmd ::= VACUUM nm",
141255 /* 221 */ "cmd ::= PRAGMA nm dbnm",
141256 /* 222 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
141257 /* 223 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
141258 /* 224 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
141259 /* 225 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
141260 /* 226 */ "plus_num ::= PLUS INTEGER|FLOAT",
141261 /* 227 */ "minus_num ::= MINUS INTEGER|FLOAT",
141262 /* 228 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
141263 /* 229 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
141264 /* 230 */ "trigger_time ::= BEFORE|AFTER",
141265 /* 231 */ "trigger_time ::= INSTEAD OF",
141266 /* 232 */ "trigger_time ::=",
141267 /* 233 */ "trigger_event ::= DELETE|INSERT",
141268 /* 234 */ "trigger_event ::= UPDATE",
141269 /* 235 */ "trigger_event ::= UPDATE OF idlist",
141270 /* 236 */ "when_clause ::=",
141271 /* 237 */ "when_clause ::= WHEN expr",
141272 /* 238 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
141273 /* 239 */ "trigger_cmd_list ::= trigger_cmd SEMI",
141274 /* 240 */ "trnm ::= nm DOT nm",
141275 /* 241 */ "tridxby ::= INDEXED BY nm",
141276 /* 242 */ "tridxby ::= NOT INDEXED",
141277 /* 243 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt",
141278 /* 244 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt",
141279 /* 245 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt",
141280 /* 246 */ "trigger_cmd ::= scanpt select scanpt",
141281 /* 247 */ "expr ::= RAISE LP IGNORE RP",
141282 /* 248 */ "expr ::= RAISE LP raisetype COMMA nm RP",
141283 /* 249 */ "raisetype ::= ROLLBACK",
141284 /* 250 */ "raisetype ::= ABORT",
141285 /* 251 */ "raisetype ::= FAIL",
141286 /* 252 */ "cmd ::= DROP TRIGGER ifexists fullname",
141287 /* 253 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
141288 /* 254 */ "cmd ::= DETACH database_kw_opt expr",
141289 /* 255 */ "key_opt ::=",
141290 /* 256 */ "key_opt ::= KEY expr",
141291 /* 257 */ "cmd ::= REINDEX",
141292 /* 258 */ "cmd ::= REINDEX nm dbnm",
141293 /* 259 */ "cmd ::= ANALYZE",
141294 /* 260 */ "cmd ::= ANALYZE nm dbnm",
141295 /* 261 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
141296 /* 262 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
141297 /* 263 */ "add_column_fullname ::= fullname",
141298 /* 264 */ "cmd ::= create_vtab",
141299 /* 265 */ "cmd ::= create_vtab LP vtabarglist RP",
141300 /* 266 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
141301 /* 267 */ "vtabarg ::=",
141302 /* 268 */ "vtabargtoken ::= ANY",
141303 /* 269 */ "vtabargtoken ::= lp anylist RP",
141304 /* 270 */ "lp ::= LP",
141305 /* 271 */ "with ::= WITH wqlist",
141306 /* 272 */ "with ::= WITH RECURSIVE wqlist",
141307 /* 273 */ "wqlist ::= nm eidlist_opt AS LP select RP",
141308 /* 274 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
141309 /* 275 */ "input ::= cmdlist",
141310 /* 276 */ "cmdlist ::= cmdlist ecmd",
141311 /* 277 */ "cmdlist ::= ecmd",
141312 /* 278 */ "ecmd ::= SEMI",
141313 /* 279 */ "ecmd ::= explain cmdx SEMI",
141314 /* 280 */ "explain ::=",
141315 /* 281 */ "trans_opt ::=",
141316 /* 282 */ "trans_opt ::= TRANSACTION",
141317 /* 283 */ "trans_opt ::= TRANSACTION nm",
141318 /* 284 */ "savepoint_opt ::= SAVEPOINT",
141319 /* 285 */ "savepoint_opt ::=",
141320 /* 286 */ "cmd ::= create_table create_table_args",
141321 /* 287 */ "columnlist ::= columnlist COMMA columnname carglist",
141322 /* 288 */ "columnlist ::= columnname carglist",
141323 /* 289 */ "nm ::= ID|INDEXED",
141324 /* 290 */ "nm ::= STRING",
141325 /* 291 */ "nm ::= JOIN_KW",
141326 /* 292 */ "typetoken ::= typename",
141327 /* 293 */ "typename ::= ID|STRING",
141328 /* 294 */ "signed ::= plus_num",
141329 /* 295 */ "signed ::= minus_num",
141330 /* 296 */ "carglist ::= carglist ccons",
141331 /* 297 */ "carglist ::=",
141332 /* 298 */ "ccons ::= NULL onconf",
141333 /* 299 */ "conslist_opt ::= COMMA conslist",
141334 /* 300 */ "conslist ::= conslist tconscomma tcons",
141335 /* 301 */ "conslist ::= tcons",
141336 /* 302 */ "tconscomma ::=",
141337 /* 303 */ "defer_subclause_opt ::= defer_subclause",
141338 /* 304 */ "resolvetype ::= raisetype",
141339 /* 305 */ "selectnowith ::= oneselect",
141340 /* 306 */ "oneselect ::= values",
141341 /* 307 */ "sclp ::= selcollist COMMA",
141342 /* 308 */ "as ::= ID|STRING",
141343 /* 309 */ "expr ::= term",
141344 /* 310 */ "likeop ::= LIKE_KW|MATCH",
141345 /* 311 */ "exprlist ::= nexprlist",
141346 /* 312 */ "nmnum ::= plus_num",
141347 /* 313 */ "nmnum ::= nm",
141348 /* 314 */ "nmnum ::= ON",
141349 /* 315 */ "nmnum ::= DELETE",
141350 /* 316 */ "nmnum ::= DEFAULT",
141351 /* 317 */ "plus_num ::= INTEGER|FLOAT",
141352 /* 318 */ "foreach_clause ::=",
141353 /* 319 */ "foreach_clause ::= FOR EACH ROW",
141354 /* 320 */ "trnm ::= nm",
141355 /* 321 */ "tridxby ::=",
141356 /* 322 */ "database_kw_opt ::= DATABASE",
141357 /* 323 */ "database_kw_opt ::=",
141358 /* 324 */ "kwcolumn_opt ::=",
141359 /* 325 */ "kwcolumn_opt ::= COLUMNKW",
141360 /* 326 */ "vtabarglist ::= vtabarg",
141361 /* 327 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
141362 /* 328 */ "vtabarg ::= vtabarg vtabargtoken",
141363 /* 329 */ "anylist ::=",
141364 /* 330 */ "anylist ::= anylist LP anylist RP",
141365 /* 331 */ "anylist ::= anylist ANY",
141366 /* 332 */ "with ::=",
141367 };
141368 #endif /* NDEBUG */
141369
141370
141371 #if YYSTACKDEPTH<=0
@@ -141423,14 +141495,14 @@
141495 case 173: /* term */
141496 case 174: /* expr */
141497 case 202: /* where_opt */
141498 case 204: /* having_opt */
141499 case 216: /* on_opt */
141500 case 227: /* case_operand */
141501 case 229: /* case_else */
141502 case 238: /* when_clause */
141503 case 243: /* key_opt */
141504 {
141505 sqlite3ExprDelete(pParse->db, (yypminor->yy314));
141506 }
141507 break;
141508 case 178: /* eidlist_opt */
@@ -141440,13 +141512,13 @@
141512 case 203: /* groupby_opt */
141513 case 205: /* orderby_opt */
141514 case 208: /* nexprlist */
141515 case 209: /* exprlist */
141516 case 210: /* sclp */
141517 case 220: /* setlist */
141518 case 226: /* paren_exprlist */
141519 case 228: /* case_exprlist */
141520 {
141521 sqlite3ExprListDelete(pParse->db, (yypminor->yy322));
141522 }
141523 break;
141524 case 194: /* fullname */
@@ -141455,30 +141527,29 @@
141527 case 213: /* stl_prefix */
141528 {
141529 sqlite3SrcListDelete(pParse->db, (yypminor->yy259));
141530 }
141531 break;
141532 case 197: /* wqlist */
 
141533 {
141534 sqlite3WithDelete(pParse->db, (yypminor->yy451));
141535 }
141536 break;
141537 case 217: /* using_opt */
141538 case 218: /* idlist */
141539 case 222: /* idlist_opt */
141540 {
141541 sqlite3IdListDelete(pParse->db, (yypminor->yy384));
141542 }
141543 break;
141544 case 234: /* trigger_cmd_list */
141545 case 239: /* trigger_cmd */
141546 {
141547 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203));
141548 }
141549 break;
141550 case 236: /* trigger_event */
141551 {
141552 sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
141553 }
141554 break;
141555 /********* End destructor definitions *****************************************/
@@ -141853,260 +141924,263 @@
141924 { 193, -2 }, /* (75) ifexists ::= IF EXISTS */
141925 { 193, 0 }, /* (76) ifexists ::= */
141926 { 149, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
141927 { 149, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */
141928 { 149, -1 }, /* (79) cmd ::= select */
141929 { 163, -3 }, /* (80) select ::= WITH wqlist selectnowith */
141930 { 163, -4 }, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
141931 { 163, -1 }, /* (82) select ::= selectnowith */
141932 { 195, -3 }, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
141933 { 198, -1 }, /* (84) multiselect_op ::= UNION */
141934 { 198, -2 }, /* (85) multiselect_op ::= UNION ALL */
141935 { 198, -1 }, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
141936 { 196, -9 }, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
141937 { 207, -4 }, /* (88) values ::= VALUES LP nexprlist RP */
141938 { 207, -5 }, /* (89) values ::= values COMMA LP exprlist RP */
141939 { 199, -1 }, /* (90) distinct ::= DISTINCT */
141940 { 199, -1 }, /* (91) distinct ::= ALL */
141941 { 199, 0 }, /* (92) distinct ::= */
141942 { 210, 0 }, /* (93) sclp ::= */
141943 { 200, -5 }, /* (94) selcollist ::= sclp scanpt expr scanpt as */
141944 { 200, -3 }, /* (95) selcollist ::= sclp scanpt STAR */
141945 { 200, -5 }, /* (96) selcollist ::= sclp scanpt nm DOT STAR */
141946 { 211, -2 }, /* (97) as ::= AS nm */
141947 { 211, 0 }, /* (98) as ::= */
141948 { 201, 0 }, /* (99) from ::= */
141949 { 201, -2 }, /* (100) from ::= FROM seltablist */
141950 { 213, -2 }, /* (101) stl_prefix ::= seltablist joinop */
141951 { 213, 0 }, /* (102) stl_prefix ::= */
141952 { 212, -7 }, /* (103) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
141953 { 212, -9 }, /* (104) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
141954 { 212, -7 }, /* (105) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
141955 { 212, -7 }, /* (106) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
141956 { 159, 0 }, /* (107) dbnm ::= */
141957 { 159, -2 }, /* (108) dbnm ::= DOT nm */
141958 { 194, -1 }, /* (109) fullname ::= nm */
141959 { 194, -3 }, /* (110) fullname ::= nm DOT nm */
141960 { 214, -1 }, /* (111) joinop ::= COMMA|JOIN */
141961 { 214, -2 }, /* (112) joinop ::= JOIN_KW JOIN */
141962 { 214, -3 }, /* (113) joinop ::= JOIN_KW nm JOIN */
141963 { 214, -4 }, /* (114) joinop ::= JOIN_KW nm nm JOIN */
141964 { 216, -2 }, /* (115) on_opt ::= ON expr */
141965 { 216, 0 }, /* (116) on_opt ::= */
141966 { 215, 0 }, /* (117) indexed_opt ::= */
141967 { 215, -3 }, /* (118) indexed_opt ::= INDEXED BY nm */
141968 { 215, -2 }, /* (119) indexed_opt ::= NOT INDEXED */
141969 { 217, -4 }, /* (120) using_opt ::= USING LP idlist RP */
141970 { 217, 0 }, /* (121) using_opt ::= */
141971 { 205, 0 }, /* (122) orderby_opt ::= */
141972 { 205, -3 }, /* (123) orderby_opt ::= ORDER BY sortlist */
141973 { 187, -4 }, /* (124) sortlist ::= sortlist COMMA expr sortorder */
141974 { 187, -2 }, /* (125) sortlist ::= expr sortorder */
141975 { 176, -1 }, /* (126) sortorder ::= ASC */
141976 { 176, -1 }, /* (127) sortorder ::= DESC */
141977 { 176, 0 }, /* (128) sortorder ::= */
141978 { 203, 0 }, /* (129) groupby_opt ::= */
141979 { 203, -3 }, /* (130) groupby_opt ::= GROUP BY nexprlist */
141980 { 204, 0 }, /* (131) having_opt ::= */
141981 { 204, -2 }, /* (132) having_opt ::= HAVING expr */
141982 { 206, 0 }, /* (133) limit_opt ::= */
141983 { 206, -2 }, /* (134) limit_opt ::= LIMIT expr */
141984 { 206, -4 }, /* (135) limit_opt ::= LIMIT expr OFFSET expr */
141985 { 206, -4 }, /* (136) limit_opt ::= LIMIT expr COMMA expr */
141986 { 149, -6 }, /* (137) cmd ::= with DELETE FROM fullname indexed_opt where_opt */
141987 { 202, 0 }, /* (138) where_opt ::= */
141988 { 202, -2 }, /* (139) where_opt ::= WHERE expr */
141989 { 149, -8 }, /* (140) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
141990 { 220, -5 }, /* (141) setlist ::= setlist COMMA nm EQ expr */
141991 { 220, -7 }, /* (142) setlist ::= setlist COMMA LP idlist RP EQ expr */
141992 { 220, -3 }, /* (143) setlist ::= nm EQ expr */
141993 { 220, -5 }, /* (144) setlist ::= LP idlist RP EQ expr */
141994 { 149, -6 }, /* (145) cmd ::= with insert_cmd INTO fullname idlist_opt select */
141995 { 149, -7 }, /* (146) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
141996 { 221, -2 }, /* (147) insert_cmd ::= INSERT orconf */
141997 { 221, -1 }, /* (148) insert_cmd ::= REPLACE */
141998 { 222, 0 }, /* (149) idlist_opt ::= */
141999 { 222, -3 }, /* (150) idlist_opt ::= LP idlist RP */
142000 { 218, -3 }, /* (151) idlist ::= idlist COMMA nm */
142001 { 218, -1 }, /* (152) idlist ::= nm */
142002 { 174, -3 }, /* (153) expr ::= LP expr RP */
142003 { 174, -1 }, /* (154) expr ::= ID|INDEXED */
142004 { 174, -1 }, /* (155) expr ::= JOIN_KW */
142005 { 174, -3 }, /* (156) expr ::= nm DOT nm */
142006 { 174, -5 }, /* (157) expr ::= nm DOT nm DOT nm */
142007 { 173, -1 }, /* (158) term ::= NULL|FLOAT|BLOB */
142008 { 173, -1 }, /* (159) term ::= STRING */
142009 { 173, -1 }, /* (160) term ::= INTEGER */
142010 { 174, -1 }, /* (161) expr ::= VARIABLE */
142011 { 174, -3 }, /* (162) expr ::= expr COLLATE ID|STRING */
142012 { 174, -6 }, /* (163) expr ::= CAST LP expr AS typetoken RP */
142013 { 174, -5 }, /* (164) expr ::= ID|INDEXED LP distinct exprlist RP */
142014 { 174, -4 }, /* (165) expr ::= ID|INDEXED LP STAR RP */
142015 { 173, -1 }, /* (166) term ::= CTIME_KW */
142016 { 174, -5 }, /* (167) expr ::= LP nexprlist COMMA expr RP */
142017 { 174, -3 }, /* (168) expr ::= expr AND expr */
142018 { 174, -3 }, /* (169) expr ::= expr OR expr */
142019 { 174, -3 }, /* (170) expr ::= expr LT|GT|GE|LE expr */
142020 { 174, -3 }, /* (171) expr ::= expr EQ|NE expr */
142021 { 174, -3 }, /* (172) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
142022 { 174, -3 }, /* (173) expr ::= expr PLUS|MINUS expr */
142023 { 174, -3 }, /* (174) expr ::= expr STAR|SLASH|REM expr */
142024 { 174, -3 }, /* (175) expr ::= expr CONCAT expr */
142025 { 223, -2 }, /* (176) likeop ::= NOT LIKE_KW|MATCH */
142026 { 174, -3 }, /* (177) expr ::= expr likeop expr */
142027 { 174, -5 }, /* (178) expr ::= expr likeop expr ESCAPE expr */
142028 { 174, -2 }, /* (179) expr ::= expr ISNULL|NOTNULL */
142029 { 174, -3 }, /* (180) expr ::= expr NOT NULL */
142030 { 174, -3 }, /* (181) expr ::= expr IS expr */
142031 { 174, -4 }, /* (182) expr ::= expr IS NOT expr */
142032 { 174, -2 }, /* (183) expr ::= NOT expr */
142033 { 174, -2 }, /* (184) expr ::= BITNOT expr */
142034 { 174, -2 }, /* (185) expr ::= MINUS expr */
142035 { 174, -2 }, /* (186) expr ::= PLUS expr */
142036 { 224, -1 }, /* (187) between_op ::= BETWEEN */
142037 { 224, -2 }, /* (188) between_op ::= NOT BETWEEN */
142038 { 174, -5 }, /* (189) expr ::= expr between_op expr AND expr */
142039 { 225, -1 }, /* (190) in_op ::= IN */
142040 { 225, -2 }, /* (191) in_op ::= NOT IN */
142041 { 174, -5 }, /* (192) expr ::= expr in_op LP exprlist RP */
142042 { 174, -3 }, /* (193) expr ::= LP select RP */
142043 { 174, -5 }, /* (194) expr ::= expr in_op LP select RP */
142044 { 174, -5 }, /* (195) expr ::= expr in_op nm dbnm paren_exprlist */
142045 { 174, -4 }, /* (196) expr ::= EXISTS LP select RP */
142046 { 174, -5 }, /* (197) expr ::= CASE case_operand case_exprlist case_else END */
142047 { 228, -5 }, /* (198) case_exprlist ::= case_exprlist WHEN expr THEN expr */
142048 { 228, -4 }, /* (199) case_exprlist ::= WHEN expr THEN expr */
142049 { 229, -2 }, /* (200) case_else ::= ELSE expr */
142050 { 229, 0 }, /* (201) case_else ::= */
142051 { 227, -1 }, /* (202) case_operand ::= expr */
142052 { 227, 0 }, /* (203) case_operand ::= */
142053 { 209, 0 }, /* (204) exprlist ::= */
142054 { 208, -3 }, /* (205) nexprlist ::= nexprlist COMMA expr */
142055 { 208, -1 }, /* (206) nexprlist ::= expr */
142056 { 226, 0 }, /* (207) paren_exprlist ::= */
142057 { 226, -3 }, /* (208) paren_exprlist ::= LP exprlist RP */
142058 { 149, -12 }, /* (209) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
142059 { 230, -1 }, /* (210) uniqueflag ::= UNIQUE */
142060 { 230, 0 }, /* (211) uniqueflag ::= */
142061 { 178, 0 }, /* (212) eidlist_opt ::= */
142062 { 178, -3 }, /* (213) eidlist_opt ::= LP eidlist RP */
142063 { 188, -5 }, /* (214) eidlist ::= eidlist COMMA nm collate sortorder */
142064 { 188, -3 }, /* (215) eidlist ::= nm collate sortorder */
142065 { 231, 0 }, /* (216) collate ::= */
142066 { 231, -2 }, /* (217) collate ::= COLLATE ID|STRING */
142067 { 149, -4 }, /* (218) cmd ::= DROP INDEX ifexists fullname */
142068 { 149, -1 }, /* (219) cmd ::= VACUUM */
142069 { 149, -2 }, /* (220) cmd ::= VACUUM nm */
142070 { 149, -3 }, /* (221) cmd ::= PRAGMA nm dbnm */
142071 { 149, -5 }, /* (222) cmd ::= PRAGMA nm dbnm EQ nmnum */
142072 { 149, -6 }, /* (223) cmd ::= PRAGMA nm dbnm LP nmnum RP */
142073 { 149, -5 }, /* (224) cmd ::= PRAGMA nm dbnm EQ minus_num */
142074 { 149, -6 }, /* (225) cmd ::= PRAGMA nm dbnm LP minus_num RP */
142075 { 169, -2 }, /* (226) plus_num ::= PLUS INTEGER|FLOAT */
142076 { 170, -2 }, /* (227) minus_num ::= MINUS INTEGER|FLOAT */
142077 { 149, -5 }, /* (228) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
142078 { 233, -11 }, /* (229) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
142079 { 235, -1 }, /* (230) trigger_time ::= BEFORE|AFTER */
142080 { 235, -2 }, /* (231) trigger_time ::= INSTEAD OF */
142081 { 235, 0 }, /* (232) trigger_time ::= */
142082 { 236, -1 }, /* (233) trigger_event ::= DELETE|INSERT */
142083 { 236, -1 }, /* (234) trigger_event ::= UPDATE */
142084 { 236, -3 }, /* (235) trigger_event ::= UPDATE OF idlist */
142085 { 238, 0 }, /* (236) when_clause ::= */
142086 { 238, -2 }, /* (237) when_clause ::= WHEN expr */
142087 { 234, -3 }, /* (238) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
142088 { 234, -2 }, /* (239) trigger_cmd_list ::= trigger_cmd SEMI */
142089 { 240, -3 }, /* (240) trnm ::= nm DOT nm */
142090 { 241, -3 }, /* (241) tridxby ::= INDEXED BY nm */
142091 { 241, -2 }, /* (242) tridxby ::= NOT INDEXED */
142092 { 239, -8 }, /* (243) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
142093 { 239, -7 }, /* (244) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
142094 { 239, -6 }, /* (245) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
142095 { 239, -3 }, /* (246) trigger_cmd ::= scanpt select scanpt */
142096 { 174, -4 }, /* (247) expr ::= RAISE LP IGNORE RP */
142097 { 174, -6 }, /* (248) expr ::= RAISE LP raisetype COMMA nm RP */
142098 { 192, -1 }, /* (249) raisetype ::= ROLLBACK */
142099 { 192, -1 }, /* (250) raisetype ::= ABORT */
142100 { 192, -1 }, /* (251) raisetype ::= FAIL */
142101 { 149, -4 }, /* (252) cmd ::= DROP TRIGGER ifexists fullname */
142102 { 149, -6 }, /* (253) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
142103 { 149, -3 }, /* (254) cmd ::= DETACH database_kw_opt expr */
142104 { 243, 0 }, /* (255) key_opt ::= */
142105 { 243, -2 }, /* (256) key_opt ::= KEY expr */
142106 { 149, -1 }, /* (257) cmd ::= REINDEX */
142107 { 149, -3 }, /* (258) cmd ::= REINDEX nm dbnm */
142108 { 149, -1 }, /* (259) cmd ::= ANALYZE */
142109 { 149, -3 }, /* (260) cmd ::= ANALYZE nm dbnm */
142110 { 149, -6 }, /* (261) cmd ::= ALTER TABLE fullname RENAME TO nm */
142111 { 149, -7 }, /* (262) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
142112 { 244, -1 }, /* (263) add_column_fullname ::= fullname */
142113 { 149, -1 }, /* (264) cmd ::= create_vtab */
142114 { 149, -4 }, /* (265) cmd ::= create_vtab LP vtabarglist RP */
142115 { 246, -8 }, /* (266) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
142116 { 248, 0 }, /* (267) vtabarg ::= */
142117 { 249, -1 }, /* (268) vtabargtoken ::= ANY */
142118 { 249, -3 }, /* (269) vtabargtoken ::= lp anylist RP */
142119 { 250, -1 }, /* (270) lp ::= LP */
142120 { 219, -2 }, /* (271) with ::= WITH wqlist */
142121 { 219, -3 }, /* (272) with ::= WITH RECURSIVE wqlist */
142122 { 197, -6 }, /* (273) wqlist ::= nm eidlist_opt AS LP select RP */
142123 { 197, -8 }, /* (274) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
142124 { 144, -1 }, /* (275) input ::= cmdlist */
142125 { 145, -2 }, /* (276) cmdlist ::= cmdlist ecmd */
142126 { 145, -1 }, /* (277) cmdlist ::= ecmd */
142127 { 146, -1 }, /* (278) ecmd ::= SEMI */
142128 { 146, -3 }, /* (279) ecmd ::= explain cmdx SEMI */
142129 { 147, 0 }, /* (280) explain ::= */
142130 { 151, 0 }, /* (281) trans_opt ::= */
142131 { 151, -1 }, /* (282) trans_opt ::= TRANSACTION */
142132 { 151, -2 }, /* (283) trans_opt ::= TRANSACTION nm */
142133 { 153, -1 }, /* (284) savepoint_opt ::= SAVEPOINT */
142134 { 153, 0 }, /* (285) savepoint_opt ::= */
142135 { 149, -2 }, /* (286) cmd ::= create_table create_table_args */
142136 { 160, -4 }, /* (287) columnlist ::= columnlist COMMA columnname carglist */
142137 { 160, -2 }, /* (288) columnlist ::= columnname carglist */
142138 { 152, -1 }, /* (289) nm ::= ID|INDEXED */
142139 { 152, -1 }, /* (290) nm ::= STRING */
142140 { 152, -1 }, /* (291) nm ::= JOIN_KW */
142141 { 166, -1 }, /* (292) typetoken ::= typename */
142142 { 167, -1 }, /* (293) typename ::= ID|STRING */
142143 { 168, -1 }, /* (294) signed ::= plus_num */
142144 { 168, -1 }, /* (295) signed ::= minus_num */
142145 { 165, -2 }, /* (296) carglist ::= carglist ccons */
142146 { 165, 0 }, /* (297) carglist ::= */
142147 { 172, -2 }, /* (298) ccons ::= NULL onconf */
142148 { 161, -2 }, /* (299) conslist_opt ::= COMMA conslist */
142149 { 184, -3 }, /* (300) conslist ::= conslist tconscomma tcons */
142150 { 184, -1 }, /* (301) conslist ::= tcons */
142151 { 185, 0 }, /* (302) tconscomma ::= */
142152 { 189, -1 }, /* (303) defer_subclause_opt ::= defer_subclause */
142153 { 191, -1 }, /* (304) resolvetype ::= raisetype */
142154 { 195, -1 }, /* (305) selectnowith ::= oneselect */
142155 { 196, -1 }, /* (306) oneselect ::= values */
142156 { 210, -2 }, /* (307) sclp ::= selcollist COMMA */
142157 { 211, -1 }, /* (308) as ::= ID|STRING */
142158 { 174, -1 }, /* (309) expr ::= term */
142159 { 223, -1 }, /* (310) likeop ::= LIKE_KW|MATCH */
142160 { 209, -1 }, /* (311) exprlist ::= nexprlist */
142161 { 232, -1 }, /* (312) nmnum ::= plus_num */
142162 { 232, -1 }, /* (313) nmnum ::= nm */
142163 { 232, -1 }, /* (314) nmnum ::= ON */
142164 { 232, -1 }, /* (315) nmnum ::= DELETE */
142165 { 232, -1 }, /* (316) nmnum ::= DEFAULT */
142166 { 169, -1 }, /* (317) plus_num ::= INTEGER|FLOAT */
142167 { 237, 0 }, /* (318) foreach_clause ::= */
142168 { 237, -3 }, /* (319) foreach_clause ::= FOR EACH ROW */
142169 { 240, -1 }, /* (320) trnm ::= nm */
142170 { 241, 0 }, /* (321) tridxby ::= */
142171 { 242, -1 }, /* (322) database_kw_opt ::= DATABASE */
142172 { 242, 0 }, /* (323) database_kw_opt ::= */
142173 { 245, 0 }, /* (324) kwcolumn_opt ::= */
142174 { 245, -1 }, /* (325) kwcolumn_opt ::= COLUMNKW */
142175 { 247, -1 }, /* (326) vtabarglist ::= vtabarg */
142176 { 247, -3 }, /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */
142177 { 248, -2 }, /* (328) vtabarg ::= vtabarg vtabargtoken */
142178 { 251, 0 }, /* (329) anylist ::= */
142179 { 251, -4 }, /* (330) anylist ::= anylist LP anylist RP */
142180 { 251, -2 }, /* (331) anylist ::= anylist ANY */
142181 { 219, 0 }, /* (332) with ::= */
142182 };
142183
142184 static void yy_accept(yyParser*); /* Forward Declaration */
142185
142186 /*
@@ -142236,12 +142310,12 @@
142310 case 21: /* table_options ::= */ yytestcase(yyruleno==21);
142311 case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
142312 case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
142313 case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
142314 case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
142315 case 92: /* distinct ::= */ yytestcase(yyruleno==92);
142316 case 216: /* collate ::= */ yytestcase(yyruleno==216);
142317 {yymsp[1].minor.yy4 = 0;}
142318 break;
142319 case 16: /* ifnotexists ::= IF NOT EXISTS */
142320 {yymsp[-2].minor.yy4 = 1;}
142321 break;
@@ -142273,11 +142347,11 @@
142347 case 23: /* columnname ::= nm typetoken */
142348 {sqlite3AddColumn(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);}
142349 break;
142350 case 24: /* typetoken ::= */
142351 case 60: /* conslist_opt ::= */ yytestcase(yyruleno==60);
142352 case 98: /* as ::= */ yytestcase(yyruleno==98);
142353 {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;}
142354 break;
142355 case 25: /* typetoken ::= typename LP signed RP */
142356 {
142357 yymsp[-3].minor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy0.z);
@@ -142384,18 +142458,18 @@
142458 case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
142459 {yymsp[-2].minor.yy4 = 0;}
142460 break;
142461 case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
142462 case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
142463 case 147: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==147);
142464 {yymsp[-1].minor.yy4 = yymsp[0].minor.yy4;}
142465 break;
142466 case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
142467 case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
142468 case 188: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==188);
142469 case 191: /* in_op ::= NOT IN */ yytestcase(yyruleno==191);
142470 case 217: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==217);
142471 {yymsp[-1].minor.yy4 = 1;}
142472 break;
142473 case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
142474 {yymsp[-1].minor.yy4 = 0;}
142475 break;
@@ -142427,11 +142501,11 @@
142501 break;
142502 case 72: /* resolvetype ::= IGNORE */
142503 {yymsp[0].minor.yy4 = OE_Ignore;}
142504 break;
142505 case 73: /* resolvetype ::= REPLACE */
142506 case 148: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==148);
142507 {yymsp[0].minor.yy4 = OE_Replace;}
142508 break;
142509 case 74: /* cmd ::= DROP TABLE ifexists fullname */
142510 {
142511 sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0, yymsp[-1].minor.yy4);
@@ -142452,23 +142526,44 @@
142526 SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
142527 sqlite3Select(pParse, yymsp[0].minor.yy387, &dest);
142528 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
142529 }
142530 break;
142531 case 80: /* select ::= WITH wqlist selectnowith */
142532 {
142533 Select *p = yymsp[0].minor.yy387;
142534 if( p ){
142535 p->pWith = yymsp[-1].minor.yy451;
142536 parserDoubleLinkSelect(pParse, p);
142537 }else{
142538 sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
142539 }
142540 yymsp[-2].minor.yy387 = p;
142541 }
142542 break;
142543 case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
142544 {
142545 Select *p = yymsp[0].minor.yy387;
142546 if( p ){
142547 p->pWith = yymsp[-1].minor.yy451;
142548 parserDoubleLinkSelect(pParse, p);
142549 }else{
142550 sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451);
142551 }
142552 yymsp[-3].minor.yy387 = p;
142553 }
142554 break;
142555 case 82: /* select ::= selectnowith */
142556 {
142557 Select *p = yymsp[0].minor.yy387;
142558 if( p ){
142559 parserDoubleLinkSelect(pParse, p);
142560 }
142561 yymsp[0].minor.yy387 = p; /*A-overwrites-X*/
142562 }
142563 break;
142564 case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
142565 {
142566 Select *pRhs = yymsp[0].minor.yy387;
142567 Select *pLhs = yymsp[-2].minor.yy387;
142568 if( pRhs && pRhs->pPrior ){
142569 SrcList *pFrom;
@@ -142488,18 +142583,18 @@
142583 sqlite3SelectDelete(pParse->db, pLhs);
142584 }
142585 yymsp[-2].minor.yy387 = pRhs;
142586 }
142587 break;
142588 case 84: /* multiselect_op ::= UNION */
142589 case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
142590 {yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-OP*/}
142591 break;
142592 case 85: /* multiselect_op ::= UNION ALL */
142593 {yymsp[-1].minor.yy4 = TK_ALL;}
142594 break;
142595 case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
142596 {
142597 #if SELECTTRACE_ENABLED
142598 Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/
142599 #endif
142600 yymsp[-8].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy259,yymsp[-4].minor.yy314,yymsp[-3].minor.yy322,yymsp[-2].minor.yy314,yymsp[-1].minor.yy322,yymsp[-7].minor.yy4,yymsp[0].minor.yy314);
@@ -142526,16 +142621,16 @@
142621 }
142622 }
142623 #endif /* SELECTRACE_ENABLED */
142624 }
142625 break;
142626 case 88: /* values ::= VALUES LP nexprlist RP */
142627 {
142628 yymsp[-3].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0);
142629 }
142630 break;
142631 case 89: /* values ::= values COMMA LP exprlist RP */
142632 {
142633 Select *pRight, *pLeft = yymsp[-4].minor.yy387;
142634 pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0);
142635 if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
142636 if( pRight ){
@@ -142545,86 +142640,86 @@
142640 }else{
142641 yymsp[-4].minor.yy387 = pLeft;
142642 }
142643 }
142644 break;
142645 case 90: /* distinct ::= DISTINCT */
142646 {yymsp[0].minor.yy4 = SF_Distinct;}
142647 break;
142648 case 91: /* distinct ::= ALL */
142649 {yymsp[0].minor.yy4 = SF_All;}
142650 break;
142651 case 93: /* sclp ::= */
142652 case 122: /* orderby_opt ::= */ yytestcase(yyruleno==122);
142653 case 129: /* groupby_opt ::= */ yytestcase(yyruleno==129);
142654 case 204: /* exprlist ::= */ yytestcase(yyruleno==204);
142655 case 207: /* paren_exprlist ::= */ yytestcase(yyruleno==207);
142656 case 212: /* eidlist_opt ::= */ yytestcase(yyruleno==212);
142657 {yymsp[1].minor.yy322 = 0;}
142658 break;
142659 case 94: /* selcollist ::= sclp scanpt expr scanpt as */
142660 {
142661 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
142662 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1);
142663 sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy336,yymsp[-1].minor.yy336);
142664 }
142665 break;
142666 case 95: /* selcollist ::= sclp scanpt STAR */
142667 {
142668 Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
142669 yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p);
142670 }
142671 break;
142672 case 96: /* selcollist ::= sclp scanpt nm DOT STAR */
142673 {
142674 Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
142675 Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142676 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
142677 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot);
142678 }
142679 break;
142680 case 97: /* as ::= AS nm */
142681 case 108: /* dbnm ::= DOT nm */ yytestcase(yyruleno==108);
142682 case 226: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==226);
142683 case 227: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==227);
142684 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
142685 break;
142686 case 99: /* from ::= */
142687 {yymsp[1].minor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy259));}
142688 break;
142689 case 100: /* from ::= FROM seltablist */
142690 {
142691 yymsp[-1].minor.yy259 = yymsp[0].minor.yy259;
142692 sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy259);
142693 }
142694 break;
142695 case 101: /* stl_prefix ::= seltablist joinop */
142696 {
142697 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;
142698 }
142699 break;
142700 case 102: /* stl_prefix ::= */
142701 {yymsp[1].minor.yy259 = 0;}
142702 break;
142703 case 103: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
142704 {
142705 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);
142706 sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy259, &yymsp[-2].minor.yy0);
142707 }
142708 break;
142709 case 104: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
142710 {
142711 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);
142712 sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy259, yymsp[-4].minor.yy322);
142713 }
142714 break;
142715 case 105: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
142716 {
142717 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);
142718 }
142719 break;
142720 case 106: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
142721 {
142722 if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy314==0 && yymsp[0].minor.yy384==0 ){
142723 yymsp[-6].minor.yy259 = yymsp[-4].minor.yy259;
142724 }else if( yymsp[-4].minor.yy259->nSrc==1 ){
142725 yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
@@ -142644,185 +142739,184 @@
142739 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy259,0,0,0,0,SF_NestedFrom,0);
142740 yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy314,yymsp[0].minor.yy384);
142741 }
142742 }
142743 break;
142744 case 107: /* dbnm ::= */
142745 case 117: /* indexed_opt ::= */ yytestcase(yyruleno==117);
142746 {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
142747 break;
142748 case 109: /* fullname ::= nm */
142749 {yymsp[0].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
142750 break;
142751 case 110: /* fullname ::= nm DOT nm */
142752 {yymsp[-2].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
142753 break;
142754 case 111: /* joinop ::= COMMA|JOIN */
142755 { yymsp[0].minor.yy4 = JT_INNER; }
142756 break;
142757 case 112: /* joinop ::= JOIN_KW JOIN */
142758 {yymsp[-1].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
142759 break;
142760 case 113: /* joinop ::= JOIN_KW nm JOIN */
142761 {yymsp[-2].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
142762 break;
142763 case 114: /* joinop ::= JOIN_KW nm nm JOIN */
142764 {yymsp[-3].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
142765 break;
142766 case 115: /* on_opt ::= ON expr */
142767 case 132: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==132);
142768 case 139: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==139);
142769 case 200: /* case_else ::= ELSE expr */ yytestcase(yyruleno==200);
142770 {yymsp[-1].minor.yy314 = yymsp[0].minor.yy314;}
142771 break;
142772 case 116: /* on_opt ::= */
142773 case 131: /* having_opt ::= */ yytestcase(yyruleno==131);
142774 case 133: /* limit_opt ::= */ yytestcase(yyruleno==133);
142775 case 138: /* where_opt ::= */ yytestcase(yyruleno==138);
142776 case 201: /* case_else ::= */ yytestcase(yyruleno==201);
142777 case 203: /* case_operand ::= */ yytestcase(yyruleno==203);
142778 {yymsp[1].minor.yy314 = 0;}
142779 break;
142780 case 118: /* indexed_opt ::= INDEXED BY nm */
142781 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
142782 break;
142783 case 119: /* indexed_opt ::= NOT INDEXED */
142784 {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
142785 break;
142786 case 120: /* using_opt ::= USING LP idlist RP */
142787 {yymsp[-3].minor.yy384 = yymsp[-1].minor.yy384;}
142788 break;
142789 case 121: /* using_opt ::= */
142790 case 149: /* idlist_opt ::= */ yytestcase(yyruleno==149);
142791 {yymsp[1].minor.yy384 = 0;}
142792 break;
142793 case 123: /* orderby_opt ::= ORDER BY sortlist */
142794 case 130: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==130);
142795 {yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;}
142796 break;
142797 case 124: /* sortlist ::= sortlist COMMA expr sortorder */
142798 {
142799 yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[-1].minor.yy314);
142800 sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy322,yymsp[0].minor.yy4);
142801 }
142802 break;
142803 case 125: /* sortlist ::= expr sortorder */
142804 {
142805 yymsp[-1].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314); /*A-overwrites-Y*/
142806 sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy322,yymsp[0].minor.yy4);
142807 }
142808 break;
142809 case 126: /* sortorder ::= ASC */
142810 {yymsp[0].minor.yy4 = SQLITE_SO_ASC;}
142811 break;
142812 case 127: /* sortorder ::= DESC */
142813 {yymsp[0].minor.yy4 = SQLITE_SO_DESC;}
142814 break;
142815 case 128: /* sortorder ::= */
142816 {yymsp[1].minor.yy4 = SQLITE_SO_UNDEFINED;}
142817 break;
142818 case 134: /* limit_opt ::= LIMIT expr */
142819 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,0);}
142820 break;
142821 case 135: /* limit_opt ::= LIMIT expr OFFSET expr */
142822 {yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142823 break;
142824 case 136: /* limit_opt ::= LIMIT expr COMMA expr */
142825 {yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,yymsp[-2].minor.yy314);}
142826 break;
142827 case 137: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */
142828 {
 
142829 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0);
142830 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314,0,0);
142831 }
142832 break;
142833 case 140: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */
142834 {
 
142835 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0);
142836 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list");
142837 sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].minor.yy314,yymsp[-5].minor.yy4,0,0);
142838 }
142839 break;
142840 case 141: /* setlist ::= setlist COMMA nm EQ expr */
142841 {
142842 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
142843 sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1);
142844 }
142845 break;
142846 case 142: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
142847 {
142848 yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142849 }
142850 break;
142851 case 143: /* setlist ::= nm EQ expr */
142852 {
142853 yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy314);
142854 sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1);
142855 }
142856 yymsp[-2].minor.yy322 = yylhsminor.yy322;
142857 break;
142858 case 144: /* setlist ::= LP idlist RP EQ expr */
142859 {
142860 yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy384, yymsp[0].minor.yy314);
142861 }
142862 break;
142863 case 145: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */
142864 {
 
142865 sqlite3Insert(pParse, yymsp[-2].minor.yy259, yymsp[0].minor.yy387, yymsp[-1].minor.yy384, yymsp[-4].minor.yy4);
142866 }
142867 break;
142868 case 146: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */
142869 {
 
142870 sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, yymsp[-2].minor.yy384, yymsp[-5].minor.yy4);
142871 }
142872 break;
142873 case 150: /* idlist_opt ::= LP idlist RP */
142874 {yymsp[-2].minor.yy384 = yymsp[-1].minor.yy384;}
142875 break;
142876 case 151: /* idlist ::= idlist COMMA nm */
142877 {yymsp[-2].minor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp[0].minor.yy0);}
142878 break;
142879 case 152: /* idlist ::= nm */
142880 {yymsp[0].minor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
142881 break;
142882 case 153: /* expr ::= LP expr RP */
142883 {yymsp[-2].minor.yy314 = yymsp[-1].minor.yy314;}
142884 break;
142885 case 154: /* expr ::= ID|INDEXED */
142886 case 155: /* expr ::= JOIN_KW */ yytestcase(yyruleno==155);
142887 {yymsp[0].minor.yy314=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142888 break;
142889 case 156: /* expr ::= nm DOT nm */
142890 {
142891 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142892 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142893 yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
142894 }
142895 yymsp[-2].minor.yy314 = yylhsminor.yy314;
142896 break;
142897 case 157: /* expr ::= nm DOT nm DOT nm */
142898 {
142899 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
142900 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
142901 Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
142902 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
142903 yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
142904 }
142905 yymsp[-4].minor.yy314 = yylhsminor.yy314;
142906 break;
142907 case 158: /* term ::= NULL|FLOAT|BLOB */
142908 case 159: /* term ::= STRING */ yytestcase(yyruleno==159);
142909 {yymsp[0].minor.yy314=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
142910 break;
142911 case 160: /* term ::= INTEGER */
142912 {
142913 yylhsminor.yy314 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
142914 }
142915 yymsp[0].minor.yy314 = yylhsminor.yy314;
142916 break;
142917 case 161: /* expr ::= VARIABLE */
142918 {
142919 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
142920 u32 n = yymsp[0].minor.yy0.n;
142921 yymsp[0].minor.yy314 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
142922 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy314, n);
@@ -142840,22 +142934,22 @@
142934 if( yymsp[0].minor.yy314 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy314->iTable);
142935 }
142936 }
142937 }
142938 break;
142939 case 162: /* expr ::= expr COLLATE ID|STRING */
142940 {
142941 yymsp[-2].minor.yy314 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy314, &yymsp[0].minor.yy0, 1);
142942 }
142943 break;
142944 case 163: /* expr ::= CAST LP expr AS typetoken RP */
142945 {
142946 yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
142947 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy314, yymsp[-3].minor.yy314, 0);
142948 }
142949 break;
142950 case 164: /* expr ::= ID|INDEXED LP distinct exprlist RP */
142951 {
142952 if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
142953 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
142954 }
142955 yylhsminor.yy314 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0);
@@ -142863,23 +142957,23 @@
142957 yylhsminor.yy314->flags |= EP_Distinct;
142958 }
142959 }
142960 yymsp[-4].minor.yy314 = yylhsminor.yy314;
142961 break;
142962 case 165: /* expr ::= ID|INDEXED LP STAR RP */
142963 {
142964 yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
142965 }
142966 yymsp[-3].minor.yy314 = yylhsminor.yy314;
142967 break;
142968 case 166: /* term ::= CTIME_KW */
142969 {
142970 yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
142971 }
142972 yymsp[0].minor.yy314 = yylhsminor.yy314;
142973 break;
142974 case 167: /* expr ::= LP nexprlist COMMA expr RP */
142975 {
142976 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy314);
142977 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
142978 if( yymsp[-4].minor.yy314 ){
142979 yymsp[-4].minor.yy314->x.pList = pList;
@@ -142886,24 +142980,24 @@
142980 }else{
142981 sqlite3ExprListDelete(pParse->db, pList);
142982 }
142983 }
142984 break;
142985 case 168: /* expr ::= expr AND expr */
142986 case 169: /* expr ::= expr OR expr */ yytestcase(yyruleno==169);
142987 case 170: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==170);
142988 case 171: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==171);
142989 case 172: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==172);
142990 case 173: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==173);
142991 case 174: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==174);
142992 case 175: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==175);
142993 {yymsp[-2].minor.yy314=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);}
142994 break;
142995 case 176: /* likeop ::= NOT LIKE_KW|MATCH */
142996 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
142997 break;
142998 case 177: /* expr ::= expr likeop expr */
142999 {
143000 ExprList *pList;
143001 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
143002 yymsp[-1].minor.yy0.n &= 0x7fffffff;
143003 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy314);
@@ -142911,11 +143005,11 @@
143005 yymsp[-2].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
143006 if( bNot ) yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy314, 0);
143007 if( yymsp[-2].minor.yy314 ) yymsp[-2].minor.yy314->flags |= EP_InfixFunc;
143008 }
143009 break;
143010 case 178: /* expr ::= expr likeop expr ESCAPE expr */
143011 {
143012 ExprList *pList;
143013 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
143014 yymsp[-3].minor.yy0.n &= 0x7fffffff;
143015 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
@@ -142924,43 +143018,43 @@
143018 yymsp[-4].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
143019 if( bNot ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143020 if( yymsp[-4].minor.yy314 ) yymsp[-4].minor.yy314->flags |= EP_InfixFunc;
143021 }
143022 break;
143023 case 179: /* expr ::= expr ISNULL|NOTNULL */
143024 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy314,0);}
143025 break;
143026 case 180: /* expr ::= expr NOT NULL */
143027 {yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy314,0);}
143028 break;
143029 case 181: /* expr ::= expr IS expr */
143030 {
143031 yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);
143032 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-2].minor.yy314, TK_ISNULL);
143033 }
143034 break;
143035 case 182: /* expr ::= expr IS NOT expr */
143036 {
143037 yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy314,yymsp[0].minor.yy314);
143038 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-3].minor.yy314, TK_NOTNULL);
143039 }
143040 break;
143041 case 183: /* expr ::= NOT expr */
143042 case 184: /* expr ::= BITNOT expr */ yytestcase(yyruleno==184);
143043 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy314, 0);/*A-overwrites-B*/}
143044 break;
143045 case 185: /* expr ::= MINUS expr */
143046 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy314, 0);}
143047 break;
143048 case 186: /* expr ::= PLUS expr */
143049 {yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy314, 0);}
143050 break;
143051 case 187: /* between_op ::= BETWEEN */
143052 case 190: /* in_op ::= IN */ yytestcase(yyruleno==190);
143053 {yymsp[0].minor.yy4 = 0;}
143054 break;
143055 case 189: /* expr ::= expr between_op expr AND expr */
143056 {
143057 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
143058 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314);
143059 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy314, 0);
143060 if( yymsp[-4].minor.yy314 ){
@@ -142969,11 +143063,11 @@
143063 sqlite3ExprListDelete(pParse->db, pList);
143064 }
143065 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143066 }
143067 break;
143068 case 192: /* expr ::= expr in_op LP exprlist RP */
143069 {
143070 if( yymsp[-1].minor.yy322==0 ){
143071 /* Expressions of the form
143072 **
143073 ** expr1 IN ()
@@ -143021,41 +143115,41 @@
143115 }
143116 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143117 }
143118 }
143119 break;
143120 case 193: /* expr ::= LP select RP */
143121 {
143122 yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
143123 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy314, yymsp[-1].minor.yy387);
143124 }
143125 break;
143126 case 194: /* expr ::= expr in_op LP select RP */
143127 {
143128 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143129 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, yymsp[-1].minor.yy387);
143130 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143131 }
143132 break;
143133 case 195: /* expr ::= expr in_op nm dbnm paren_exprlist */
143134 {
143135 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
143136 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
143137 if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322);
143138 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0);
143139 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, pSelect);
143140 if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0);
143141 }
143142 break;
143143 case 196: /* expr ::= EXISTS LP select RP */
143144 {
143145 Expr *p;
143146 p = yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
143147 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy387);
143148 }
143149 break;
143150 case 197: /* expr ::= CASE case_operand case_exprlist case_else END */
143151 {
143152 yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, 0);
143153 if( yymsp[-4].minor.yy314 ){
143154 yymsp[-4].minor.yy314->x.pList = yymsp[-1].minor.yy314 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy314) : yymsp[-2].minor.yy322;
143155 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy314);
@@ -143063,334 +143157,330 @@
143157 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322);
143158 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy314);
143159 }
143160 }
143161 break;
143162 case 198: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
143163 {
143164 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy314);
143165 yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy314);
143166 }
143167 break;
143168 case 199: /* case_exprlist ::= WHEN expr THEN expr */
143169 {
143170 yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314);
143171 yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy314);
143172 }
143173 break;
143174 case 202: /* case_operand ::= expr */
143175 {yymsp[0].minor.yy314 = yymsp[0].minor.yy314; /*A-overwrites-X*/}
143176 break;
143177 case 205: /* nexprlist ::= nexprlist COMMA expr */
143178 {yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy314);}
143179 break;
143180 case 206: /* nexprlist ::= expr */
143181 {yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy314); /*A-overwrites-Y*/}
143182 break;
143183 case 208: /* paren_exprlist ::= LP exprlist RP */
143184 case 213: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==213);
143185 {yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;}
143186 break;
143187 case 209: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
143188 {
143189 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
143190 sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy4,
143191 &yymsp[-11].minor.yy0, yymsp[0].minor.yy314, SQLITE_SO_ASC, yymsp[-8].minor.yy4, SQLITE_IDXTYPE_APPDEF);
143192 }
143193 break;
143194 case 210: /* uniqueflag ::= UNIQUE */
143195 case 250: /* raisetype ::= ABORT */ yytestcase(yyruleno==250);
143196 {yymsp[0].minor.yy4 = OE_Abort;}
143197 break;
143198 case 211: /* uniqueflag ::= */
143199 {yymsp[1].minor.yy4 = OE_None;}
143200 break;
143201 case 214: /* eidlist ::= eidlist COMMA nm collate sortorder */
143202 {
143203 yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4);
143204 }
143205 break;
143206 case 215: /* eidlist ::= nm collate sortorder */
143207 {
143208 yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4); /*A-overwrites-Y*/
143209 }
143210 break;
143211 case 218: /* cmd ::= DROP INDEX ifexists fullname */
143212 {sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);}
143213 break;
143214 case 219: /* cmd ::= VACUUM */
143215 {sqlite3Vacuum(pParse,0);}
143216 break;
143217 case 220: /* cmd ::= VACUUM nm */
143218 {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
143219 break;
143220 case 221: /* cmd ::= PRAGMA nm dbnm */
143221 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
143222 break;
143223 case 222: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
143224 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
143225 break;
143226 case 223: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
143227 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
143228 break;
143229 case 224: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
143230 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
143231 break;
143232 case 225: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
143233 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
143234 break;
143235 case 228: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
143236 {
143237 Token all;
143238 all.z = yymsp[-3].minor.yy0.z;
143239 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
143240 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all);
143241 }
143242 break;
143243 case 229: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
143244 {
143245 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);
143246 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
143247 }
143248 break;
143249 case 230: /* trigger_time ::= BEFORE|AFTER */
143250 { yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-X*/ }
143251 break;
143252 case 231: /* trigger_time ::= INSTEAD OF */
143253 { yymsp[-1].minor.yy4 = TK_INSTEAD;}
143254 break;
143255 case 232: /* trigger_time ::= */
143256 { yymsp[1].minor.yy4 = TK_BEFORE; }
143257 break;
143258 case 233: /* trigger_event ::= DELETE|INSERT */
143259 case 234: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==234);
143260 {yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;}
143261 break;
143262 case 235: /* trigger_event ::= UPDATE OF idlist */
143263 {yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy384;}
143264 break;
143265 case 236: /* when_clause ::= */
143266 case 255: /* key_opt ::= */ yytestcase(yyruleno==255);
143267 { yymsp[1].minor.yy314 = 0; }
143268 break;
143269 case 237: /* when_clause ::= WHEN expr */
143270 case 256: /* key_opt ::= KEY expr */ yytestcase(yyruleno==256);
143271 { yymsp[-1].minor.yy314 = yymsp[0].minor.yy314; }
143272 break;
143273 case 238: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
143274 {
143275 assert( yymsp[-2].minor.yy203!=0 );
143276 yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203;
143277 yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203;
143278 }
143279 break;
143280 case 239: /* trigger_cmd_list ::= trigger_cmd SEMI */
143281 {
143282 assert( yymsp[-1].minor.yy203!=0 );
143283 yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203;
143284 }
143285 break;
143286 case 240: /* trnm ::= nm DOT nm */
143287 {
143288 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
143289 sqlite3ErrorMsg(pParse,
143290 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
143291 "statements within triggers");
143292 }
143293 break;
143294 case 241: /* tridxby ::= INDEXED BY nm */
143295 {
143296 sqlite3ErrorMsg(pParse,
143297 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
143298 "within triggers");
143299 }
143300 break;
143301 case 242: /* tridxby ::= NOT INDEXED */
143302 {
143303 sqlite3ErrorMsg(pParse,
143304 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
143305 "within triggers");
143306 }
143307 break;
143308 case 243: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
143309 {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);}
143310 yymsp[-7].minor.yy203 = yylhsminor.yy203;
143311 break;
143312 case 244: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */
143313 {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*/}
143314 yymsp[-6].minor.yy203 = yylhsminor.yy203;
143315 break;
143316 case 245: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
143317 {yylhsminor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy314, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy336);}
143318 yymsp[-5].minor.yy203 = yylhsminor.yy203;
143319 break;
143320 case 246: /* trigger_cmd ::= scanpt select scanpt */
143321 {yylhsminor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy387, yymsp[-2].minor.yy336, yymsp[0].minor.yy336); /*yylhsminor.yy203-overwrites-yymsp[-1].minor.yy387*/}
143322 yymsp[-2].minor.yy203 = yylhsminor.yy203;
143323 break;
143324 case 247: /* expr ::= RAISE LP IGNORE RP */
143325 {
143326 yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
143327 if( yymsp[-3].minor.yy314 ){
143328 yymsp[-3].minor.yy314->affinity = OE_Ignore;
143329 }
143330 }
143331 break;
143332 case 248: /* expr ::= RAISE LP raisetype COMMA nm RP */
143333 {
143334 yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
143335 if( yymsp[-5].minor.yy314 ) {
143336 yymsp[-5].minor.yy314->affinity = (char)yymsp[-3].minor.yy4;
143337 }
143338 }
143339 break;
143340 case 249: /* raisetype ::= ROLLBACK */
143341 {yymsp[0].minor.yy4 = OE_Rollback;}
143342 break;
143343 case 251: /* raisetype ::= FAIL */
143344 {yymsp[0].minor.yy4 = OE_Fail;}
143345 break;
143346 case 252: /* cmd ::= DROP TRIGGER ifexists fullname */
143347 {
143348 sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4);
143349 }
143350 break;
143351 case 253: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
143352 {
143353 sqlite3Attach(pParse, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, yymsp[0].minor.yy314);
143354 }
143355 break;
143356 case 254: /* cmd ::= DETACH database_kw_opt expr */
143357 {
143358 sqlite3Detach(pParse, yymsp[0].minor.yy314);
143359 }
143360 break;
143361 case 257: /* cmd ::= REINDEX */
143362 {sqlite3Reindex(pParse, 0, 0);}
143363 break;
143364 case 258: /* cmd ::= REINDEX nm dbnm */
143365 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143366 break;
143367 case 259: /* cmd ::= ANALYZE */
143368 {sqlite3Analyze(pParse, 0, 0);}
143369 break;
143370 case 260: /* cmd ::= ANALYZE nm dbnm */
143371 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
143372 break;
143373 case 261: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
143374 {
143375 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0);
143376 }
143377 break;
143378 case 262: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
143379 {
143380 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
143381 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
143382 }
143383 break;
143384 case 263: /* add_column_fullname ::= fullname */
143385 {
143386 disableLookaside(pParse);
143387 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259);
143388 }
143389 break;
143390 case 264: /* cmd ::= create_vtab */
143391 {sqlite3VtabFinishParse(pParse,0);}
143392 break;
143393 case 265: /* cmd ::= create_vtab LP vtabarglist RP */
143394 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
143395 break;
143396 case 266: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
143397 {
143398 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy4);
143399 }
143400 break;
143401 case 267: /* vtabarg ::= */
143402 {sqlite3VtabArgInit(pParse);}
143403 break;
143404 case 268: /* vtabargtoken ::= ANY */
143405 case 269: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==269);
143406 case 270: /* lp ::= LP */ yytestcase(yyruleno==270);
143407 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
143408 break;
143409 case 271: /* with ::= WITH wqlist */
143410 case 272: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==272);
143411 { sqlite3WithPush(pParse, yymsp[0].minor.yy451, 1); }
143412 break;
143413 case 273: /* wqlist ::= nm eidlist_opt AS LP select RP */
 
 
 
 
 
143414 {
143415 yymsp[-5].minor.yy451 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387); /*A-overwrites-X*/
143416 }
143417 break;
143418 case 274: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
143419 {
143420 yymsp[-7].minor.yy451 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy451, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387);
143421 }
143422 break;
143423 default:
143424 /* (275) input ::= cmdlist */ yytestcase(yyruleno==275);
143425 /* (276) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==276);
143426 /* (277) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=277);
143427 /* (278) ecmd ::= SEMI */ yytestcase(yyruleno==278);
143428 /* (279) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==279);
143429 /* (280) explain ::= */ yytestcase(yyruleno==280);
143430 /* (281) trans_opt ::= */ yytestcase(yyruleno==281);
143431 /* (282) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==282);
143432 /* (283) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==283);
143433 /* (284) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==284);
143434 /* (285) savepoint_opt ::= */ yytestcase(yyruleno==285);
143435 /* (286) cmd ::= create_table create_table_args */ yytestcase(yyruleno==286);
143436 /* (287) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==287);
143437 /* (288) columnlist ::= columnname carglist */ yytestcase(yyruleno==288);
143438 /* (289) nm ::= ID|INDEXED */ yytestcase(yyruleno==289);
143439 /* (290) nm ::= STRING */ yytestcase(yyruleno==290);
143440 /* (291) nm ::= JOIN_KW */ yytestcase(yyruleno==291);
143441 /* (292) typetoken ::= typename */ yytestcase(yyruleno==292);
143442 /* (293) typename ::= ID|STRING */ yytestcase(yyruleno==293);
143443 /* (294) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=294);
143444 /* (295) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
143445 /* (296) carglist ::= carglist ccons */ yytestcase(yyruleno==296);
143446 /* (297) carglist ::= */ yytestcase(yyruleno==297);
143447 /* (298) ccons ::= NULL onconf */ yytestcase(yyruleno==298);
143448 /* (299) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==299);
143449 /* (300) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==300);
143450 /* (301) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=301);
143451 /* (302) tconscomma ::= */ yytestcase(yyruleno==302);
143452 /* (303) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=303);
143453 /* (304) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=304);
143454 /* (305) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=305);
143455 /* (306) oneselect ::= values */ yytestcase(yyruleno==306);
143456 /* (307) sclp ::= selcollist COMMA */ yytestcase(yyruleno==307);
143457 /* (308) as ::= ID|STRING */ yytestcase(yyruleno==308);
143458 /* (309) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=309);
143459 /* (310) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==310);
143460 /* (311) exprlist ::= nexprlist */ yytestcase(yyruleno==311);
143461 /* (312) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=312);
143462 /* (313) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=313);
143463 /* (314) nmnum ::= ON */ yytestcase(yyruleno==314);
143464 /* (315) nmnum ::= DELETE */ yytestcase(yyruleno==315);
143465 /* (316) nmnum ::= DEFAULT */ yytestcase(yyruleno==316);
143466 /* (317) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==317);
143467 /* (318) foreach_clause ::= */ yytestcase(yyruleno==318);
143468 /* (319) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==319);
143469 /* (320) trnm ::= nm */ yytestcase(yyruleno==320);
143470 /* (321) tridxby ::= */ yytestcase(yyruleno==321);
143471 /* (322) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==322);
143472 /* (323) database_kw_opt ::= */ yytestcase(yyruleno==323);
143473 /* (324) kwcolumn_opt ::= */ yytestcase(yyruleno==324);
143474 /* (325) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==325);
143475 /* (326) vtabarglist ::= vtabarg */ yytestcase(yyruleno==326);
143476 /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==327);
143477 /* (328) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==328);
143478 /* (329) anylist ::= */ yytestcase(yyruleno==329);
143479 /* (330) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==330);
143480 /* (331) anylist ::= anylist ANY */ yytestcase(yyruleno==331);
143481 /* (332) with ::= */ yytestcase(yyruleno==332);
143482 break;
143483 /********** End reduce actions ************************************************/
143484 };
143485 assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
143486 yygoto = yyRuleInfo[yyruleno].lhs;
@@ -180440,11 +180530,11 @@
180530 ** input data. Input data may be supplied either as a single large buffer
180531 ** (e.g. sqlite3changeset_start()) or using a stream function (e.g.
180532 ** sqlite3changeset_start_strm()).
180533 */
180534 struct SessionInput {
180535 int bNoDiscard; /* If true, do not discard in InputBuffer() */
180536 int iCurrent; /* Offset in aData[] of current change */
180537 int iNext; /* Offset in aData[] of next change */
180538 u8 *aData; /* Pointer to buffer containing changeset */
180539 int nData; /* Number of bytes in aData */
180540
@@ -182965,11 +183055,11 @@
183055 /*
183056 ** If the SessionInput object passed as the only argument is a streaming
183057 ** object and the buffer is full, discard some data to free up space.
183058 */
183059 static void sessionDiscardData(SessionInput *pIn){
183060 if( pIn->xInput && pIn->iNext>=SESSIONS_STRM_CHUNK_SIZE ){
183061 int nMove = pIn->buf.nBuf - pIn->iNext;
183062 assert( nMove>=0 );
183063 if( nMove>0 ){
183064 memmove(pIn->buf.aBuf, &pIn->buf.aBuf[pIn->iNext], nMove);
183065 }
@@ -184606,14 +184696,15 @@
184696 void *pCtx, /* Copy of fifth arg to _apply() */
184697 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184698 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184699 ),
184700 void *pCtx, /* First argument passed to xConflict */
184701 void **ppRebase, int *pnRebase, /* OUT: Rebase information */
184702 int flags /* SESSION_APPLY_XXX flags */
184703 ){
184704 int schemaMismatch = 0;
184705 int rc = SQLITE_OK; /* Return code */
184706 const char *zTab = 0; /* Name of current table */
184707 int nTab = 0; /* Result of sqlite3Strlen30(zTab) */
184708 SessionApplyCtx sApply; /* changeset_apply() context object */
184709 int bPatchset;
184710
@@ -184620,11 +184711,13 @@
184711 assert( xConflict!=0 );
184712
184713 pIter->in.bNoDiscard = 1;
184714 memset(&sApply, 0, sizeof(sApply));
184715 sqlite3_mutex_enter(sqlite3_db_mutex(db));
184716 if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
184717 rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0);
184718 }
184719 if( rc==SQLITE_OK ){
184720 rc = sqlite3_exec(db, "PRAGMA defer_foreign_keys = 1", 0, 0, 0);
184721 }
184722 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3changeset_next(pIter) ){
184723 int nCol;
@@ -184758,15 +184851,17 @@
184851 }
184852 }
184853 }
184854 sqlite3_exec(db, "PRAGMA defer_foreign_keys = 0", 0, 0, 0);
184855
184856 if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){
184857 if( rc==SQLITE_OK ){
184858 rc = sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184859 }else{
184860 sqlite3_exec(db, "ROLLBACK TO changeset_apply", 0, 0, 0);
184861 sqlite3_exec(db, "RELEASE changeset_apply", 0, 0, 0);
184862 }
184863 }
184864
184865 if( rc==SQLITE_OK && bPatchset==0 && ppRebase && pnRebase ){
184866 *ppRebase = (void*)sApply.rebase.aBuf;
184867 *pnRebase = sApply.rebase.nBuf;
@@ -184799,17 +184894,18 @@
184894 void *pCtx, /* Copy of sixth arg to _apply() */
184895 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184896 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184897 ),
184898 void *pCtx, /* First argument passed to xConflict */
184899 void **ppRebase, int *pnRebase,
184900 int flags
184901 ){
184902 sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
184903 int rc = sqlite3changeset_start(&pIter, nChangeset, pChangeset);
184904 if( rc==SQLITE_OK ){
184905 rc = sessionChangesetApply(
184906 db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
184907 );
184908 }
184909 return rc;
184910 }
184911
@@ -184832,11 +184928,11 @@
184928 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184929 ),
184930 void *pCtx /* First argument passed to xConflict */
184931 ){
184932 return sqlite3changeset_apply_v2(
184933 db, nChangeset, pChangeset, xFilter, xConflict, pCtx, 0, 0, 0
184934 );
184935 }
184936
184937 /*
184938 ** Apply the changeset passed via xInput/pIn to the main database
@@ -184855,17 +184951,18 @@
184951 void *pCtx, /* Copy of sixth arg to _apply() */
184952 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
184953 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184954 ),
184955 void *pCtx, /* First argument passed to xConflict */
184956 void **ppRebase, int *pnRebase,
184957 int flags
184958 ){
184959 sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
184960 int rc = sqlite3changeset_start_strm(&pIter, xInput, pIn);
184961 if( rc==SQLITE_OK ){
184962 rc = sessionChangesetApply(
184963 db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags
184964 );
184965 }
184966 return rc;
184967 }
184968 SQLITE_API int sqlite3changeset_apply_strm(
@@ -184882,11 +184979,11 @@
184979 sqlite3_changeset_iter *p /* Handle describing change and conflict */
184980 ),
184981 void *pCtx /* First argument passed to xConflict */
184982 ){
184983 return sqlite3changeset_apply_v2_strm(
184984 db, xInput, pIn, xFilter, xConflict, pCtx, 0, 0, 0
184985 );
184986 }
184987
184988 /*
184989 ** sqlite3_changegroup handle.
@@ -203462,10 +203559,16 @@
203559
203560 int aColMap[3];
203561 aColMap[0] = -1;
203562 aColMap[1] = nCol;
203563 aColMap[2] = nCol+1;
203564
203565 assert( SQLITE_INDEX_CONSTRAINT_EQ<SQLITE_INDEX_CONSTRAINT_MATCH );
203566 assert( SQLITE_INDEX_CONSTRAINT_GT<SQLITE_INDEX_CONSTRAINT_MATCH );
203567 assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
203568 assert( SQLITE_INDEX_CONSTRAINT_GE<SQLITE_INDEX_CONSTRAINT_MATCH );
203569 assert( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH );
203570
203571 /* Set idxFlags flags for all WHERE clause terms that will be used. */
203572 for(i=0; i<pInfo->nConstraint; i++){
203573 struct sqlite3_index_constraint *p = &pInfo->aConstraint[i];
203574 int iCol = p->iColumn;
@@ -203481,15 +203584,15 @@
203584 /* As there exists an unusable MATCH constraint this is an
203585 ** unusable plan. Set a prohibitively high cost. */
203586 pInfo->estimatedCost = 1e50;
203587 return SQLITE_OK;
203588 }
203589 }else if( p->op<=SQLITE_INDEX_CONSTRAINT_MATCH ){
203590 int j;
203591 for(j=1; j<ArraySize(aConstraint); j++){
203592 struct Constraint *pC = &aConstraint[j];
203593 if( iCol==aColMap[pC->iCol] && (p->op & pC->op) && p->usable ){
203594 pC->iConsIndex = i;
203595 idxFlags |= pC->fts5op;
203596 }
203597 }
203598 }
@@ -205557,11 +205660,11 @@
205660 int nArg, /* Number of args */
205661 sqlite3_value **apUnused /* Function arguments */
205662 ){
205663 assert( nArg==0 );
205664 UNUSED_PARAM2(nArg, apUnused);
205665 sqlite3_result_text(pCtx, "fts5: 2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b", -1, SQLITE_TRANSIENT);
205666 }
205667
205668 static int fts5Init(sqlite3 *db){
205669 static const sqlite3_module fts5Mod = {
205670 /* iVersion */ 2,
@@ -209827,12 +209930,12 @@
209930 }
209931 #endif /* SQLITE_CORE */
209932 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
209933
209934 /************** End of stmt.c ************************************************/
209935 #if __LINE__!=209935
209936 #undef SQLITE_SOURCE_ID
209937 #define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd14alt2"
209938 #endif
209939 /* Return the source-id for this library */
209940 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
209941 /************************** End of sqlite3.c ******************************/
209942
+33 -5
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,13 +121,13 @@
121121
**
122122
** See also: [sqlite3_libversion()],
123123
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124124
** [sqlite_version()] and [sqlite_source_id()].
125125
*/
126
-#define SQLITE_VERSION "3.23.0"
127
-#define SQLITE_VERSION_NUMBER 3023000
128
-#define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
126
+#define SQLITE_VERSION "3.23.1"
127
+#define SQLITE_VERSION_NUMBER 3023001
128
+#define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
129129
130130
/*
131131
** CAPI3REF: Run-Time Library Version Numbers
132132
** KEYWORDS: sqlite3_version sqlite3_sourceid
133133
**
@@ -10104,10 +10104,17 @@
1010410104
** is set to the size of the buffer in bytes. It is the responsibility of the
1010510105
** caller to eventually free any such buffer using sqlite3_free(). The buffer
1010610106
** is only allocated and populated if one or more conflicts were encountered
1010710107
** while applying the patchset. See comments surrounding the sqlite3_rebaser
1010810108
** APIs for further details.
10109
+**
10110
+** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
10111
+** may be modified by passing a combination of
10112
+** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
10113
+**
10114
+** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
10115
+** and therefore subject to change.
1010910116
*/
1011010117
SQLITE_API int sqlite3changeset_apply(
1011110118
sqlite3 *db, /* Apply change to "main" db of this handle */
1011210119
int nChangeset, /* Size of changeset in bytes */
1011310120
void *pChangeset, /* Changeset blob */
@@ -10134,13 +10141,32 @@
1013410141
void *pCtx, /* Copy of sixth arg to _apply() */
1013510142
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
1013610143
sqlite3_changeset_iter *p /* Handle describing change and conflict */
1013710144
),
1013810145
void *pCtx, /* First argument passed to xConflict */
10139
- void **ppRebase, int *pnRebase
10146
+ void **ppRebase, int *pnRebase, /* OUT: Rebase data */
10147
+ int flags /* Combination of SESSION_APPLY_* flags */
1014010148
);
1014110149
10150
+/*
10151
+** CAPI3REF: Flags for sqlite3changeset_apply_v2
10152
+**
10153
+** The following flags may passed via the 9th parameter to
10154
+** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
10155
+**
10156
+** <dl>
10157
+** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
10158
+** Usually, the sessions module encloses all operations performed by
10159
+** a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
10160
+** SAVEPOINT is committed if the changeset or patchset is successfully
10161
+** applied, or rolled back if an error occurs. Specifying this flag
10162
+** causes the sessions module to omit this savepoint. In this case, if the
10163
+** caller has an open transaction or savepoint when apply_v2() is called,
10164
+** it may revert the partially applied changeset by rolling it back.
10165
+*/
10166
+#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
10167
+
1014210168
/*
1014310169
** CAPI3REF: Constants Passed To The Conflict Handler
1014410170
**
1014510171
** Values that may be passed as the second argument to a conflict-handler.
1014610172
**
@@ -10397,10 +10423,11 @@
1039710423
** corresponding non-streaming API functions:
1039810424
**
1039910425
** <table border=1 style="margin-left:8ex;margin-right:8ex">
1040010426
** <tr><th>Streaming function<th>Non-streaming equivalent</th>
1040110427
** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
10428
+** <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2]
1040210429
** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
1040310430
** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
1040410431
** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
1040510432
** <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset]
1040610433
** <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset]
@@ -10506,11 +10533,12 @@
1050610533
void *pCtx, /* Copy of sixth arg to _apply() */
1050710534
int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
1050810535
sqlite3_changeset_iter *p /* Handle describing change and conflict */
1050910536
),
1051010537
void *pCtx, /* First argument passed to xConflict */
10511
- void **ppRebase, int *pnRebase
10538
+ void **ppRebase, int *pnRebase,
10539
+ int flags
1051210540
);
1051310541
SQLITE_API int sqlite3changeset_concat_strm(
1051410542
int (*xInputA)(void *pIn, void *pData, int *pnData),
1051510543
void *pInA,
1051610544
int (*xInputB)(void *pIn, void *pData, int *pnData),
1051710545
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,13 +121,13 @@
121 **
122 ** See also: [sqlite3_libversion()],
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.23.0"
127 #define SQLITE_VERSION_NUMBER 3023000
128 #define SQLITE_SOURCE_ID "2018-04-02 11:04:16 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
@@ -10104,10 +10104,17 @@
10104 ** is set to the size of the buffer in bytes. It is the responsibility of the
10105 ** caller to eventually free any such buffer using sqlite3_free(). The buffer
10106 ** is only allocated and populated if one or more conflicts were encountered
10107 ** while applying the patchset. See comments surrounding the sqlite3_rebaser
10108 ** APIs for further details.
 
 
 
 
 
 
 
10109 */
10110 SQLITE_API int sqlite3changeset_apply(
10111 sqlite3 *db, /* Apply change to "main" db of this handle */
10112 int nChangeset, /* Size of changeset in bytes */
10113 void *pChangeset, /* Changeset blob */
@@ -10134,13 +10141,32 @@
10134 void *pCtx, /* Copy of sixth arg to _apply() */
10135 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
10136 sqlite3_changeset_iter *p /* Handle describing change and conflict */
10137 ),
10138 void *pCtx, /* First argument passed to xConflict */
10139 void **ppRebase, int *pnRebase
 
10140 );
10141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10142 /*
10143 ** CAPI3REF: Constants Passed To The Conflict Handler
10144 **
10145 ** Values that may be passed as the second argument to a conflict-handler.
10146 **
@@ -10397,10 +10423,11 @@
10397 ** corresponding non-streaming API functions:
10398 **
10399 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
10400 ** <tr><th>Streaming function<th>Non-streaming equivalent</th>
10401 ** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
 
10402 ** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
10403 ** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
10404 ** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
10405 ** <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset]
10406 ** <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset]
@@ -10506,11 +10533,12 @@
10506 void *pCtx, /* Copy of sixth arg to _apply() */
10507 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
10508 sqlite3_changeset_iter *p /* Handle describing change and conflict */
10509 ),
10510 void *pCtx, /* First argument passed to xConflict */
10511 void **ppRebase, int *pnRebase
 
10512 );
10513 SQLITE_API int sqlite3changeset_concat_strm(
10514 int (*xInputA)(void *pIn, void *pData, int *pnData),
10515 void *pInA,
10516 int (*xInputB)(void *pIn, void *pData, int *pnData),
10517
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,13 +121,13 @@
121 **
122 ** See also: [sqlite3_libversion()],
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.23.1"
127 #define SQLITE_VERSION_NUMBER 3023001
128 #define SQLITE_SOURCE_ID "2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
@@ -10104,10 +10104,17 @@
10104 ** is set to the size of the buffer in bytes. It is the responsibility of the
10105 ** caller to eventually free any such buffer using sqlite3_free(). The buffer
10106 ** is only allocated and populated if one or more conflicts were encountered
10107 ** while applying the patchset. See comments surrounding the sqlite3_rebaser
10108 ** APIs for further details.
10109 **
10110 ** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent
10111 ** may be modified by passing a combination of
10112 ** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter.
10113 **
10114 ** Note that the sqlite3changeset_apply_v2() API is still <b>experimental</b>
10115 ** and therefore subject to change.
10116 */
10117 SQLITE_API int sqlite3changeset_apply(
10118 sqlite3 *db, /* Apply change to "main" db of this handle */
10119 int nChangeset, /* Size of changeset in bytes */
10120 void *pChangeset, /* Changeset blob */
@@ -10134,13 +10141,32 @@
10141 void *pCtx, /* Copy of sixth arg to _apply() */
10142 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
10143 sqlite3_changeset_iter *p /* Handle describing change and conflict */
10144 ),
10145 void *pCtx, /* First argument passed to xConflict */
10146 void **ppRebase, int *pnRebase, /* OUT: Rebase data */
10147 int flags /* Combination of SESSION_APPLY_* flags */
10148 );
10149
10150 /*
10151 ** CAPI3REF: Flags for sqlite3changeset_apply_v2
10152 **
10153 ** The following flags may passed via the 9th parameter to
10154 ** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]:
10155 **
10156 ** <dl>
10157 ** <dt>SQLITE_CHANGESETAPPLY_NOSAVEPOINT <dd>
10158 ** Usually, the sessions module encloses all operations performed by
10159 ** a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The
10160 ** SAVEPOINT is committed if the changeset or patchset is successfully
10161 ** applied, or rolled back if an error occurs. Specifying this flag
10162 ** causes the sessions module to omit this savepoint. In this case, if the
10163 ** caller has an open transaction or savepoint when apply_v2() is called,
10164 ** it may revert the partially applied changeset by rolling it back.
10165 */
10166 #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
10167
10168 /*
10169 ** CAPI3REF: Constants Passed To The Conflict Handler
10170 **
10171 ** Values that may be passed as the second argument to a conflict-handler.
10172 **
@@ -10397,10 +10423,11 @@
10423 ** corresponding non-streaming API functions:
10424 **
10425 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
10426 ** <tr><th>Streaming function<th>Non-streaming equivalent</th>
10427 ** <tr><td>sqlite3changeset_apply_strm<td>[sqlite3changeset_apply]
10428 ** <tr><td>sqlite3changeset_apply_strm_v2<td>[sqlite3changeset_apply_v2]
10429 ** <tr><td>sqlite3changeset_concat_strm<td>[sqlite3changeset_concat]
10430 ** <tr><td>sqlite3changeset_invert_strm<td>[sqlite3changeset_invert]
10431 ** <tr><td>sqlite3changeset_start_strm<td>[sqlite3changeset_start]
10432 ** <tr><td>sqlite3session_changeset_strm<td>[sqlite3session_changeset]
10433 ** <tr><td>sqlite3session_patchset_strm<td>[sqlite3session_patchset]
@@ -10506,11 +10533,12 @@
10533 void *pCtx, /* Copy of sixth arg to _apply() */
10534 int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */
10535 sqlite3_changeset_iter *p /* Handle describing change and conflict */
10536 ),
10537 void *pCtx, /* First argument passed to xConflict */
10538 void **ppRebase, int *pnRebase,
10539 int flags
10540 );
10541 SQLITE_API int sqlite3changeset_concat_strm(
10542 int (*xInputA)(void *pIn, void *pData, int *pnData),
10543 void *pInA,
10544 int (*xInputB)(void *pIn, void *pData, int *pnData),
10545

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button