Fossil SCM

Update the built-in SQLite to the latest 3.15.0 beta.

drh 2016-09-28 16:17 trunk
Commit 95768950b417f08fb9e599a01e6f83a32b68df23
2 files changed +770 -741 +5 -5
+770 -741
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -381,11 +381,11 @@
381381
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
382382
** [sqlite_version()] and [sqlite_source_id()].
383383
*/
384384
#define SQLITE_VERSION "3.15.0"
385385
#define SQLITE_VERSION_NUMBER 3015000
386
-#define SQLITE_SOURCE_ID "2016-09-22 18:53:13 c3774c6a5fe48af91fda28e9e18c6ed9053ea992"
386
+#define SQLITE_SOURCE_ID "2016-09-28 16:05:53 40c0fb0af678797c39a99853f9f4102464c16f4b"
387387
388388
/*
389389
** CAPI3REF: Run-Time Library Version Numbers
390390
** KEYWORDS: sqlite3_version, sqlite3_sourceid
391391
**
@@ -8915,11 +8915,11 @@
89158915
89168916
/*
89178917
** CAPI3REF: Set a table filter on a Session Object.
89188918
**
89198919
** The second argument (xFilter) is the "filter callback". For changes to rows
8920
-** in tables that are not attached to the Session oject, the filter is called
8920
+** in tables that are not attached to the Session object, the filter is called
89218921
** to determine whether changes to the table's rows should be tracked or not.
89228922
** If xFilter returns 0, changes is not tracked. Note that once a table is
89238923
** attached, xFilter will not be called again.
89248924
*/
89258925
void sqlite3session_table_filter(
@@ -9181,11 +9181,11 @@
91819181
** Assuming the changeset blob was created by one of the
91829182
** [sqlite3session_changeset()], [sqlite3changeset_concat()] or
91839183
** [sqlite3changeset_invert()] functions, all changes within the changeset
91849184
** that apply to a single table are grouped together. This means that when
91859185
** an application iterates through a changeset using an iterator created by
9186
-** this function, all changes that relate to a single table are visted
9186
+** this function, all changes that relate to a single table are visited
91879187
** consecutively. There is no chance that the iterator will visit a change
91889188
** the applies to table X, then one for table Y, and then later on visit
91899189
** another change for table X.
91909190
*/
91919191
int sqlite3changeset_start(
@@ -9268,11 +9268,11 @@
92689268
** If successful, *pabPK is set to point to an array of nCol entries, where
92699269
** nCol is the number of columns in the table. Elements of *pabPK are set to
92709270
** 0x01 if the corresponding column is part of the tables primary key, or
92719271
** 0x00 if it is not.
92729272
**
9273
-** If argumet pnCol is not NULL, then *pnCol is set to the number of columns
9273
+** If argument pnCol is not NULL, then *pnCol is set to the number of columns
92749274
** in the table.
92759275
**
92769276
** If this function is called when the iterator does not point to a valid
92779277
** entry, SQLITE_MISUSE is returned and the output variables zeroed. Otherwise,
92789278
** SQLITE_OK is returned and the output variables populated as described
@@ -9543,11 +9543,11 @@
95439543
** Rows within the changeset and changegroup are identified by the values in
95449544
** their PRIMARY KEY columns. A change in the changeset is considered to
95459545
** apply to the same row as a change already present in the changegroup if
95469546
** the two rows have the same primary key.
95479547
**
9548
-** Changes to rows that that do not already appear in the changegroup are
9548
+** Changes to rows that do not already appear in the changegroup are
95499549
** simply copied into it. Or, if both the new changeset and the changegroup
95509550
** contain changes that apply to a single row, the final contents of the
95519551
** changegroup depends on the type of each change, as follows:
95529552
**
95539553
** <table border=1 style="margin-left:8ex;margin-right:8ex">
@@ -11411,13 +11411,13 @@
1141111411
#define TK_GROUP 127
1141211412
#define TK_HAVING 128
1141311413
#define TK_LIMIT 129
1141411414
#define TK_WHERE 130
1141511415
#define TK_INTO 131
11416
-#define TK_INTEGER 132
11417
-#define TK_FLOAT 133
11418
-#define TK_BLOB 134
11416
+#define TK_FLOAT 132
11417
+#define TK_BLOB 133
11418
+#define TK_INTEGER 134
1141911419
#define TK_VARIABLE 135
1142011420
#define TK_CASE 136
1142111421
#define TK_WHEN 137
1142211422
#define TK_THEN 138
1142311423
#define TK_ELSE 139
@@ -12682,12 +12682,12 @@
1268212682
#define OP_IdxDelete 127 /* synopsis: key=r[P2@P3] */
1268312683
#define OP_Seek 128 /* synopsis: Move P3 to P1.rowid */
1268412684
#define OP_IdxRowid 129 /* synopsis: r[P2]=rowid */
1268512685
#define OP_Destroy 130
1268612686
#define OP_Clear 131
12687
-#define OP_ResetSorter 132
12688
-#define OP_Real 133 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
12687
+#define OP_Real 132 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
12688
+#define OP_ResetSorter 133
1268912689
#define OP_CreateIndex 134 /* synopsis: r[P2]=root iDb=P1 */
1269012690
#define OP_CreateTable 135 /* synopsis: r[P2]=root iDb=P1 */
1269112691
#define OP_ParseSchema 136
1269212692
#define OP_LoadAnalysis 137
1269312693
#define OP_DropTable 138
@@ -12741,11 +12741,11 @@
1274112741
/* 88 */ 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00,\
1274212742
/* 96 */ 0x00, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\
1274312743
/* 104 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
1274412744
/* 112 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\
1274512745
/* 120 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x04, 0x00,\
12746
-/* 128 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x10,\
12746
+/* 128 */ 0x00, 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10,\
1274712747
/* 136 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10,\
1274812748
/* 144 */ 0x00, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00,\
1274912749
/* 152 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10,\
1275012750
/* 160 */ 0x00, 0x00, 0x00,}
1275112751
@@ -14963,10 +14963,11 @@
1496314963
#define EP_Unlikely 0x040000 /* unlikely() or likelihood() function */
1496414964
#define EP_ConstFunc 0x080000 /* A SQLITE_FUNC_CONSTANT or _SLOCHNG function */
1496514965
#define EP_CanBeNull 0x100000 /* Can be null despite NOT NULL constraint */
1496614966
#define EP_Subquery 0x200000 /* Tree contains a TK_SELECT operator */
1496714967
#define EP_Alias 0x400000 /* Is an alias for a result set column */
14968
+#define EP_Leaf 0x800000 /* Expr.pLeft, .pRight, .u.pSelect all NULL */
1496814969
1496914970
/*
1497014971
** Combinations of two or more EP_* flags
1497114972
*/
1497214973
#define EP_Propagate (EP_Collate|EP_Subquery) /* Propagate these bits up tree */
@@ -29131,12 +29132,12 @@
2913129132
/* 127 */ "IdxDelete" OpHelp("key=r[P2@P3]"),
2913229133
/* 128 */ "Seek" OpHelp("Move P3 to P1.rowid"),
2913329134
/* 129 */ "IdxRowid" OpHelp("r[P2]=rowid"),
2913429135
/* 130 */ "Destroy" OpHelp(""),
2913529136
/* 131 */ "Clear" OpHelp(""),
29136
- /* 132 */ "ResetSorter" OpHelp(""),
29137
- /* 133 */ "Real" OpHelp("r[P2]=P4"),
29137
+ /* 132 */ "Real" OpHelp("r[P2]=P4"),
29138
+ /* 133 */ "ResetSorter" OpHelp(""),
2913829139
/* 134 */ "CreateIndex" OpHelp("r[P2]=root iDb=P1"),
2913929140
/* 135 */ "CreateTable" OpHelp("r[P2]=root iDb=P1"),
2914029141
/* 136 */ "ParseSchema" OpHelp(""),
2914129142
/* 137 */ "LoadAnalysis" OpHelp(""),
2914229143
/* 138 */ "DropTable" OpHelp(""),
@@ -76047,18 +76048,17 @@
7604776048
static Mem *columnMem(sqlite3_stmt *pStmt, int i){
7604876049
Vdbe *pVm;
7604976050
Mem *pOut;
7605076051
7605176052
pVm = (Vdbe *)pStmt;
76052
- if( pVm && pVm->pResultSet!=0 && i<pVm->nResColumn && i>=0 ){
76053
- sqlite3_mutex_enter(pVm->db->mutex);
76053
+ if( pVm==0 ) return (Mem*)columnNullValue();
76054
+ assert( pVm->db );
76055
+ sqlite3_mutex_enter(pVm->db->mutex);
76056
+ if( pVm->pResultSet!=0 && i<pVm->nResColumn && i>=0 ){
7605476057
pOut = &pVm->pResultSet[i];
7605576058
}else{
76056
- if( pVm && ALWAYS(pVm->db) ){
76057
- sqlite3_mutex_enter(pVm->db->mutex);
76058
- sqlite3Error(pVm->db, SQLITE_RANGE);
76059
- }
76059
+ sqlite3Error(pVm->db, SQLITE_RANGE);
7606076060
pOut = (Mem*)columnNullValue();
7606176061
}
7606276062
return pOut;
7606376063
}
7606476064
@@ -76087,10 +76087,12 @@
7608776087
** SQLITE_NOMEM. The next call to _step() (if any) will return SQLITE_ERROR
7608876088
** and _finalize() will return NOMEM.
7608976089
*/
7609076090
Vdbe *p = (Vdbe *)pStmt;
7609176091
if( p ){
76092
+ assert( p->db!=0 );
76093
+ assert( sqlite3_mutex_held(p->db->mutex) );
7609276094
p->rc = sqlite3ApiExit(p->db, p->rc);
7609376095
sqlite3_mutex_leave(p->db->mutex);
7609476096
}
7609576097
}
7609676098
@@ -80487,14 +80489,13 @@
8048780489
p->nStmtDefCons = db->nDeferredCons;
8048880490
p->nStmtDefImmCons = db->nDeferredImmCons;
8048980491
}
8049080492
8049180493
/* Gather the schema version number for checking:
80492
- ** IMPLEMENTATION-OF: R-32195-19465 The schema version is used by SQLite
80493
- ** each time a query is executed to ensure that the internal cache of the
80494
- ** schema used when compiling the SQL query matches the schema of the
80495
- ** database against which the compiled query is actually executed.
80494
+ ** IMPLEMENTATION-OF: R-03189-51135 As each SQL statement runs, the schema
80495
+ ** version is checked to ensure that the schema has not changed since the
80496
+ ** SQL statement was prepared.
8049680497
*/
8049780498
sqlite3BtreeGetMeta(pBt, BTREE_SCHEMA_VERSION, (u32 *)&iMeta);
8049880499
iGen = db->aDb[pOp->p1].pSchema->iGeneration;
8049980500
}else{
8050080501
iGen = iMeta = 0;
@@ -81746,11 +81747,11 @@
8174681747
** change count is incremented (otherwise not).
8174781748
**
8174881749
** P1 must not be pseudo-table. It has to be a real table with
8174981750
** multiple rows.
8175081751
**
81751
-** If P4 is not NULL then it points to a Table struture. In this case either
81752
+** If P4 is not NULL then it points to a Table object. In this case either
8175281753
** the update or pre-update hook, or both, may be invoked. The P1 cursor must
8175381754
** have been positioned using OP_NotFound prior to invoking this opcode in
8175481755
** this case. Specifically, if one is configured, the pre-update hook is
8175581756
** invoked if P4 is not NULL. The update-hook is invoked if one is configured,
8175681757
** P4 is not NULL, and the OPFLAG_NCHANGE flag is set in P2.
@@ -88036,11 +88037,13 @@
8803688037
static SQLITE_NOINLINE int walkExpr(Walker *pWalker, Expr *pExpr){
8803788038
int rc;
8803888039
testcase( ExprHasProperty(pExpr, EP_TokenOnly) );
8803988040
testcase( ExprHasProperty(pExpr, EP_Reduced) );
8804088041
rc = pWalker->xExprCallback(pWalker, pExpr);
88041
- if( rc || ExprHasProperty(pExpr,EP_TokenOnly) ) return rc & WRC_Abort;
88042
+ if( rc || ExprHasProperty(pExpr,(EP_TokenOnly|EP_Leaf)) ){
88043
+ return rc & WRC_Abort;
88044
+ }
8804288045
if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort;
8804388046
if( pExpr->pRight && walkExpr(pWalker, pExpr->pRight) ) return WRC_Abort;
8804488047
if( ExprHasProperty(pExpr, EP_xIsSelect) ){
8804588048
if( sqlite3WalkSelect(pWalker, pExpr->x.pSelect) ) return WRC_Abort;
8804688049
}else if( pExpr->x.pList ){
@@ -90705,22 +90708,29 @@
9070590708
*/
9070690709
static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){
9070790710
assert( p!=0 );
9070890711
/* Sanity check: Assert that the IntValue is non-negative if it exists */
9070990712
assert( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 );
90710
- if( !ExprHasProperty(p, EP_TokenOnly) ){
90713
+#ifdef SQLITE_DEBUG
90714
+ if( ExprHasProperty(p, EP_Leaf) && !ExprHasProperty(p, EP_TokenOnly) ){
90715
+ assert( p->pLeft==0 );
90716
+ assert( p->pRight==0 );
90717
+ assert( p->x.pSelect==0 );
90718
+ }
90719
+#endif
90720
+ if( !ExprHasProperty(p, (EP_TokenOnly|EP_Leaf)) ){
9071190721
/* The Expr.x union is never used at the same time as Expr.pRight */
9071290722
assert( p->x.pList==0 || p->pRight==0 );
9071390723
if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft);
9071490724
sqlite3ExprDelete(db, p->pRight);
90715
- if( ExprHasProperty(p, EP_MemToken) ) sqlite3DbFree(db, p->u.zToken);
9071690725
if( ExprHasProperty(p, EP_xIsSelect) ){
9071790726
sqlite3SelectDelete(db, p->x.pSelect);
9071890727
}else{
9071990728
sqlite3ExprListDelete(db, p->x.pList);
9072090729
}
9072190730
}
90731
+ if( ExprHasProperty(p, EP_MemToken) ) sqlite3DbFree(db, p->u.zToken);
9072290732
if( !ExprHasProperty(p, EP_Static) ){
9072390733
sqlite3DbFree(db, p);
9072490734
}
9072590735
}
9072690736
SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *db, Expr *p){
@@ -90893,11 +90903,11 @@
9089390903
if( nToken ){
9089490904
char *zToken = pNew->u.zToken = (char*)&zAlloc[nNewSize];
9089590905
memcpy(zToken, p->u.zToken, nToken);
9089690906
}
9089790907
90898
- if( 0==((p->flags|pNew->flags) & EP_TokenOnly) ){
90908
+ if( 0==((p->flags|pNew->flags) & (EP_TokenOnly|EP_Leaf)) ){
9089990909
/* Fill in the pNew->x.pSelect or pNew->x.pList member. */
9090090910
if( ExprHasProperty(p, EP_xIsSelect) ){
9090190911
pNew->x.pSelect = sqlite3SelectDup(db, p->x.pSelect, dupFlags);
9090290912
}else{
9090390913
pNew->x.pList = sqlite3ExprListDup(db, p->x.pList, dupFlags);
@@ -90905,21 +90915,21 @@
9090590915
}
9090690916
9090790917
/* Fill in pNew->pLeft and pNew->pRight. */
9090890918
if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly) ){
9090990919
zAlloc += dupedExprNodeSize(p, dupFlags);
90910
- if( ExprHasProperty(pNew, EP_Reduced) ){
90920
+ if( !ExprHasProperty(pNew, EP_TokenOnly|EP_Leaf) ){
9091190921
pNew->pLeft = p->pLeft ?
9091290922
exprDup(db, p->pLeft, EXPRDUP_REDUCE, &zAlloc) : 0;
9091390923
pNew->pRight = p->pRight ?
9091490924
exprDup(db, p->pRight, EXPRDUP_REDUCE, &zAlloc) : 0;
9091590925
}
9091690926
if( pzBuffer ){
9091790927
*pzBuffer = zAlloc;
9091890928
}
9091990929
}else{
90920
- if( !ExprHasProperty(p, EP_TokenOnly) ){
90930
+ if( !ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){
9092190931
if( pNew->op==TK_SELECT_COLUMN ){
9092290932
pNew->pLeft = p->pLeft;
9092390933
}else{
9092490934
pNew->pLeft = sqlite3ExprDup(db, p->pLeft, 0);
9092590935
}
@@ -92276,12 +92286,12 @@
9227692286
dest.eDest = SRT_Exists;
9227792287
sqlite3VdbeAddOp2(v, OP_Integer, 0, dest.iSDParm);
9227892288
VdbeComment((v, "Init EXISTS result"));
9227992289
}
9228092290
sqlite3ExprDelete(pParse->db, pSel->pLimit);
92281
- pSel->pLimit = sqlite3PExpr(pParse, TK_INTEGER, 0, 0,
92282
- &sqlite3IntTokens[1]);
92291
+ pSel->pLimit = sqlite3ExprAlloc(pParse->db, TK_INTEGER,
92292
+ &sqlite3IntTokens[1], 0);
9228392293
pSel->iLimit = 0;
9228492294
pSel->selFlags &= ~SF_MultiValue;
9228592295
if( sqlite3Select(pParse, pSel, &dest) ){
9228692296
return 0;
9228792297
}
@@ -97959,11 +97969,11 @@
9795997969
}else{
9796097970
sqlite3ErrorMsg(pFix->pParse, "%s cannot use variables", pFix->zType);
9796197971
return 1;
9796297972
}
9796397973
}
97964
- if( ExprHasProperty(pExpr, EP_TokenOnly) ) break;
97974
+ if( ExprHasProperty(pExpr, EP_TokenOnly|EP_Leaf) ) break;
9796597975
if( ExprHasProperty(pExpr, EP_xIsSelect) ){
9796697976
if( sqlite3FixSelect(pFix, pExpr->x.pSelect) ) return 1;
9796797977
}else{
9796897978
if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;
9796997979
}
@@ -99735,10 +99745,13 @@
9973599745
** This plan is not completely bullet-proof. It is possible for
9973699746
** the schema to change multiple times and for the cookie to be
9973799747
** set back to prior value. But schema changes are infrequent
9973899748
** and the probability of hitting the same cookie value is only
9973999749
** 1 chance in 2^32. So we're safe enough.
99750
+**
99751
+** IMPLEMENTATION-OF: R-34230-56049 SQLite automatically increments
99752
+** the schema-version whenever the schema changes.
9974099753
*/
9974199754
SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
9974299755
sqlite3 *db = pParse->db;
9974399756
Vdbe *v = pParse->pVdbe;
9974499757
assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
@@ -107192,14 +107205,14 @@
107192107205
}else if( action==OE_SetDflt ){
107193107206
Expr *pDflt = pFKey->pFrom->aCol[iFromCol].pDflt;
107194107207
if( pDflt ){
107195107208
pNew = sqlite3ExprDup(db, pDflt, 0);
107196107209
}else{
107197
- pNew = sqlite3PExpr(pParse, TK_NULL, 0, 0, 0);
107210
+ pNew = sqlite3ExprAlloc(db, TK_NULL, 0, 0);
107198107211
}
107199107212
}else{
107200
- pNew = sqlite3PExpr(pParse, TK_NULL, 0, 0, 0);
107213
+ pNew = sqlite3ExprAlloc(db, TK_NULL, 0, 0);
107201107214
}
107202107215
pList = sqlite3ExprListAppend(pParse, pList, pNew);
107203107216
sqlite3ExprListSetName(pParse, pList, &tFromCol, 0);
107204107217
}
107205107218
}
@@ -118072,16 +118085,17 @@
118072118085
pWhere = sqlite3ExprDup(db, pSub->pWhere, 0);
118073118086
if( subqueryIsAgg ){
118074118087
assert( pParent->pHaving==0 );
118075118088
pParent->pHaving = pParent->pWhere;
118076118089
pParent->pWhere = pWhere;
118077
- pParent->pHaving = sqlite3ExprAnd(db, pParent->pHaving,
118078
- sqlite3ExprDup(db, pSub->pHaving, 0));
118090
+ pParent->pHaving = sqlite3ExprAnd(db,
118091
+ sqlite3ExprDup(db, pSub->pHaving, 0), pParent->pHaving
118092
+ );
118079118093
assert( pParent->pGroupBy==0 );
118080118094
pParent->pGroupBy = sqlite3ExprListDup(db, pSub->pGroupBy, 0);
118081118095
}else{
118082
- pParent->pWhere = sqlite3ExprAnd(db, pParent->pWhere, pWhere);
118096
+ pParent->pWhere = sqlite3ExprAnd(db, pWhere, pParent->pWhere);
118083118097
}
118084118098
substSelect(db, pParent, iParent, pSub->pEList, 0);
118085118099
118086118100
/* The flattened query is distinct if either the inner or the
118087118101
** outer query is distinct.
@@ -127618,11 +127632,11 @@
127618127632
int idxNew;
127619127633
WhereTerm *pNewTerm;
127620127634
127621127635
pNewExpr = sqlite3PExpr(pParse, TK_GT,
127622127636
sqlite3ExprDup(db, pLeft, 0),
127623
- sqlite3PExpr(pParse, TK_NULL, 0, 0, 0), 0);
127637
+ sqlite3ExprAlloc(db, TK_NULL, 0, 0), 0);
127624127638
127625127639
idxNew = whereClauseInsert(pWC, pNewExpr,
127626127640
TERM_VIRTUAL|TERM_DYNAMIC|TERM_VNULL);
127627127641
if( idxNew ){
127628127642
pNewTerm = &pWC->a[idxNew];
@@ -127796,11 +127810,11 @@
127796127810
if( k>=pTab->nCol ){
127797127811
sqlite3ErrorMsg(pParse, "too many arguments on %s() - max %d",
127798127812
pTab->zName, j);
127799127813
return;
127800127814
}
127801
- pColRef = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
127815
+ pColRef = sqlite3ExprAlloc(pParse->db, TK_COLUMN, 0, 0);
127802127816
if( pColRef==0 ) return;
127803127817
pColRef->iTable = pItem->iCursor;
127804127818
pColRef->iColumn = k++;
127805127819
pColRef->pTab = pTab;
127806127820
pTerm = sqlite3PExpr(pParse, TK_EQ, pColRef,
@@ -132844,19 +132858,10 @@
132844132858
struct LimitVal {
132845132859
Expr *pLimit; /* The LIMIT expression. NULL if there is no limit */
132846132860
Expr *pOffset; /* The OFFSET expression. NULL if there is none */
132847132861
};
132848132862
132849
-/*
132850
-** An instance of this structure is used to store the LIKE,
132851
-** GLOB, NOT LIKE, and NOT GLOB operators.
132852
-*/
132853
-struct LikeOp {
132854
- Token eOperator; /* "like" or "glob" or "regexp" */
132855
- int bNot; /* True if the NOT keyword is present */
132856
-};
132857
-
132858132863
/*
132859132864
** An instance of the following structure describes the event of a
132860132865
** TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT,
132861132866
** TK_DELETE, or TK_INSTEAD. If the event is of the form
132862132867
**
@@ -132864,15 +132869,10 @@
132864132869
**
132865132870
** Then the "b" IdList records the list "a,b,c".
132866132871
*/
132867132872
struct TrigEvent { int a; IdList * b; };
132868132873
132869
-/*
132870
-** An instance of this structure holds the ATTACH key and the key type.
132871
-*/
132872
-struct AttachKey { int type; Token key; };
132873
-
132874132874
/*
132875132875
** Disable lookaside memory allocation for objects that might be
132876132876
** shared across database connections.
132877132877
*/
132878132878
static void disableLookaside(Parse *pParse){
@@ -132915,11 +132915,28 @@
132915132915
/* Construct a new Expr object from a single identifier. Use the
132916132916
** new Expr to populate pOut. Set the span of pOut to be the identifier
132917132917
** that created the expression.
132918132918
*/
132919132919
static void spanExpr(ExprSpan *pOut, Parse *pParse, int op, Token t){
132920
- pOut->pExpr = sqlite3PExpr(pParse, op, 0, 0, &t);
132920
+ Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1);
132921
+ if( p ){
132922
+ memset(p, 0, sizeof(Expr));
132923
+ p->op = (u8)op;
132924
+ p->flags = EP_Leaf;
132925
+ p->iAgg = -1;
132926
+ p->u.zToken = (char*)&p[1];
132927
+ memcpy(p->u.zToken, t.z, t.n);
132928
+ p->u.zToken[t.n] = 0;
132929
+ if( sqlite3Isquote(p->u.zToken[0]) ){
132930
+ if( p->u.zToken[0]=='"' ) p->flags |= EP_DblQuoted;
132931
+ sqlite3Dequote(p->u.zToken);
132932
+ }
132933
+#if SQLITE_MAX_EXPR_DEPTH>0
132934
+ p->nHeight = 1;
132935
+#endif
132936
+ }
132937
+ pOut->pExpr = p;
132921132938
pOut->zStart = t.z;
132922132939
pOut->zEnd = &t.z[t.n];
132923132940
}
132924132941
132925132942
/* This routine constructs a binary expression node out of two ExprSpan
@@ -133078,11 +133095,10 @@
133078133095
Select* yy243;
133079133096
IdList* yy254;
133080133097
With* yy285;
133081133098
struct TrigEvent yy332;
133082133099
struct LimitVal yy354;
133083
- struct LikeOp yy392;
133084133100
struct {int value; int mask;} yy497;
133085133101
} YYMINORTYPE;
133086133102
#ifndef YYSTACKDEPTH
133087133103
#define YYSTACKDEPTH 100
133088133104
#endif
@@ -133090,19 +133106,19 @@
133090133106
#define sqlite3ParserARG_PDECL ,Parse *pParse
133091133107
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
133092133108
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
133093133109
#define YYFALLBACK 1
133094133110
#define YYNSTATE 456
133095
-#define YYNRULE 331
133111
+#define YYNRULE 332
133096133112
#define YY_MAX_SHIFT 455
133097
-#define YY_MIN_SHIFTREDUCE 667
133098
-#define YY_MAX_SHIFTREDUCE 997
133099
-#define YY_MIN_REDUCE 998
133100
-#define YY_MAX_REDUCE 1328
133101
-#define YY_ERROR_ACTION 1329
133102
-#define YY_ACCEPT_ACTION 1330
133103
-#define YY_NO_ACTION 1331
133113
+#define YY_MIN_SHIFTREDUCE 668
133114
+#define YY_MAX_SHIFTREDUCE 999
133115
+#define YY_MIN_REDUCE 1000
133116
+#define YY_MAX_REDUCE 1331
133117
+#define YY_ERROR_ACTION 1332
133118
+#define YY_ACCEPT_ACTION 1333
133119
+#define YY_NO_ACTION 1334
133104133120
/************* End control #defines *******************************************/
133105133121
133106133122
/* Define the yytestcase() macro to be a no-op if is not already defined
133107133123
** otherwise.
133108133124
**
@@ -133170,170 +133186,169 @@
133170133186
** yy_reduce_ofst[] For each state, the offset into yy_action for
133171133187
** shifting non-terminals after a reduce.
133172133188
** yy_default[] Default action for each state.
133173133189
**
133174133190
*********** Begin parsing tables **********************************************/
133175
-#define YY_ACTTAB_COUNT (1571)
133191
+#define YY_ACTTAB_COUNT (1567)
133176133192
static const YYACTIONTYPE yy_action[] = {
133177
- /* 0 */ 325, 830, 351, 824, 5, 203, 203, 818, 99, 100,
133178
- /* 10 */ 90, 840, 840, 852, 855, 844, 844, 97, 97, 98,
133193
+ /* 0 */ 325, 832, 351, 825, 5, 203, 203, 819, 99, 100,
133194
+ /* 10 */ 90, 842, 842, 854, 857, 846, 846, 97, 97, 98,
133179133195
/* 20 */ 98, 98, 98, 301, 96, 96, 96, 96, 95, 95,
133180
- /* 30 */ 94, 94, 94, 93, 351, 325, 975, 975, 823, 823,
133181
- /* 40 */ 823, 945, 354, 99, 100, 90, 840, 840, 852, 855,
133182
- /* 50 */ 844, 844, 97, 97, 98, 98, 98, 98, 338, 96,
133196
+ /* 30 */ 94, 94, 94, 93, 351, 325, 977, 977, 824, 824,
133197
+ /* 40 */ 826, 947, 354, 99, 100, 90, 842, 842, 854, 857,
133198
+ /* 50 */ 846, 846, 97, 97, 98, 98, 98, 98, 338, 96,
133183133199
/* 60 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 351,
133184
- /* 70 */ 95, 95, 94, 94, 94, 93, 351, 790, 975, 975,
133185
- /* 80 */ 325, 94, 94, 94, 93, 351, 791, 75, 99, 100,
133186
- /* 90 */ 90, 840, 840, 852, 855, 844, 844, 97, 97, 98,
133200
+ /* 70 */ 95, 95, 94, 94, 94, 93, 351, 791, 977, 977,
133201
+ /* 80 */ 325, 94, 94, 94, 93, 351, 792, 75, 99, 100,
133202
+ /* 90 */ 90, 842, 842, 854, 857, 846, 846, 97, 97, 98,
133187133203
/* 100 */ 98, 98, 98, 450, 96, 96, 96, 96, 95, 95,
133188
- /* 110 */ 94, 94, 94, 93, 351, 1330, 155, 155, 2, 325,
133204
+ /* 110 */ 94, 94, 94, 93, 351, 1333, 155, 155, 2, 325,
133189133205
/* 120 */ 275, 146, 132, 52, 52, 93, 351, 99, 100, 90,
133190
- /* 130 */ 840, 840, 852, 855, 844, 844, 97, 97, 98, 98,
133206
+ /* 130 */ 842, 842, 854, 857, 846, 846, 97, 97, 98, 98,
133191133207
/* 140 */ 98, 98, 101, 96, 96, 96, 96, 95, 95, 94,
133192
- /* 150 */ 94, 94, 93, 351, 956, 956, 325, 268, 428, 413,
133193
- /* 160 */ 411, 61, 751, 751, 99, 100, 90, 840, 840, 852,
133194
- /* 170 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 60,
133208
+ /* 150 */ 94, 94, 93, 351, 958, 958, 325, 268, 428, 413,
133209
+ /* 160 */ 411, 61, 752, 752, 99, 100, 90, 842, 842, 854,
133210
+ /* 170 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 60,
133195133211
/* 180 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133196
- /* 190 */ 351, 325, 270, 329, 273, 277, 957, 958, 250, 99,
133197
- /* 200 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133212
+ /* 190 */ 351, 325, 270, 329, 273, 277, 959, 960, 250, 99,
133213
+ /* 200 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133198133214
/* 210 */ 98, 98, 98, 98, 301, 96, 96, 96, 96, 95,
133199
- /* 220 */ 95, 94, 94, 94, 93, 351, 325, 936, 1323, 697,
133200
- /* 230 */ 705, 1323, 242, 412, 99, 100, 90, 840, 840, 852,
133201
- /* 240 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 347,
133215
+ /* 220 */ 95, 94, 94, 94, 93, 351, 325, 938, 1326, 698,
133216
+ /* 230 */ 706, 1326, 242, 412, 99, 100, 90, 842, 842, 854,
133217
+ /* 240 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 347,
133202133218
/* 250 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133203
- /* 260 */ 351, 325, 936, 1324, 384, 698, 1324, 381, 379, 99,
133204
- /* 270 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133205
- /* 280 */ 98, 98, 98, 98, 700, 96, 96, 96, 96, 95,
133219
+ /* 260 */ 351, 325, 938, 1327, 384, 699, 1327, 381, 379, 99,
133220
+ /* 270 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133221
+ /* 280 */ 98, 98, 98, 98, 701, 96, 96, 96, 96, 95,
133206133222
/* 290 */ 95, 94, 94, 94, 93, 351, 325, 92, 89, 178,
133207
- /* 300 */ 831, 934, 373, 699, 99, 100, 90, 840, 840, 852,
133208
- /* 310 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 375,
133223
+ /* 300 */ 833, 936, 373, 700, 99, 100, 90, 842, 842, 854,
133224
+ /* 310 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 375,
133209133225
/* 320 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133210
- /* 330 */ 351, 325, 1273, 945, 354, 817, 934, 738, 738, 99,
133211
- /* 340 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133226
+ /* 330 */ 351, 325, 1276, 947, 354, 818, 936, 739, 739, 99,
133227
+ /* 340 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133212133228
/* 350 */ 98, 98, 98, 98, 230, 96, 96, 96, 96, 95,
133213
- /* 360 */ 95, 94, 94, 94, 93, 351, 325, 967, 227, 92,
133214
- /* 370 */ 89, 178, 373, 300, 99, 100, 90, 840, 840, 852,
133215
- /* 380 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 919,
133229
+ /* 360 */ 95, 94, 94, 94, 93, 351, 325, 969, 227, 92,
133230
+ /* 370 */ 89, 178, 373, 300, 99, 100, 90, 842, 842, 854,
133231
+ /* 380 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 921,
133216133232
/* 390 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133217
- /* 400 */ 351, 325, 449, 447, 447, 447, 147, 736, 736, 99,
133218
- /* 410 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133233
+ /* 400 */ 351, 325, 449, 447, 447, 447, 147, 737, 737, 99,
133234
+ /* 410 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133219133235
/* 420 */ 98, 98, 98, 98, 296, 96, 96, 96, 96, 95,
133220
- /* 430 */ 95, 94, 94, 94, 93, 351, 325, 419, 231, 956,
133221
- /* 440 */ 956, 158, 25, 422, 99, 100, 90, 840, 840, 852,
133222
- /* 450 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 450,
133236
+ /* 430 */ 95, 94, 94, 94, 93, 351, 325, 419, 231, 958,
133237
+ /* 440 */ 958, 158, 25, 422, 99, 100, 90, 842, 842, 854,
133238
+ /* 450 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 450,
133223133239
/* 460 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133224
- /* 470 */ 351, 443, 224, 224, 420, 956, 956, 960, 325, 52,
133225
- /* 480 */ 52, 957, 958, 176, 415, 78, 99, 100, 90, 840,
133226
- /* 490 */ 840, 852, 855, 844, 844, 97, 97, 98, 98, 98,
133240
+ /* 470 */ 351, 443, 224, 224, 420, 958, 958, 962, 325, 52,
133241
+ /* 480 */ 52, 959, 960, 176, 415, 78, 99, 100, 90, 842,
133242
+ /* 490 */ 842, 854, 857, 846, 846, 97, 97, 98, 98, 98,
133227133243
/* 500 */ 98, 379, 96, 96, 96, 96, 95, 95, 94, 94,
133228
- /* 510 */ 94, 93, 351, 325, 428, 418, 298, 957, 958, 960,
133229
- /* 520 */ 81, 99, 88, 90, 840, 840, 852, 855, 844, 844,
133230
- /* 530 */ 97, 97, 98, 98, 98, 98, 716, 96, 96, 96,
133231
- /* 540 */ 96, 95, 95, 94, 94, 94, 93, 351, 325, 841,
133232
- /* 550 */ 841, 853, 856, 994, 318, 343, 379, 100, 90, 840,
133233
- /* 560 */ 840, 852, 855, 844, 844, 97, 97, 98, 98, 98,
133244
+ /* 510 */ 94, 93, 351, 325, 428, 418, 298, 959, 960, 962,
133245
+ /* 520 */ 81, 99, 88, 90, 842, 842, 854, 857, 846, 846,
133246
+ /* 530 */ 97, 97, 98, 98, 98, 98, 717, 96, 96, 96,
133247
+ /* 540 */ 96, 95, 95, 94, 94, 94, 93, 351, 325, 843,
133248
+ /* 550 */ 843, 855, 858, 996, 318, 343, 379, 100, 90, 842,
133249
+ /* 560 */ 842, 854, 857, 846, 846, 97, 97, 98, 98, 98,
133234133250
/* 570 */ 98, 450, 96, 96, 96, 96, 95, 95, 94, 94,
133235133251
/* 580 */ 94, 93, 351, 325, 350, 350, 350, 260, 377, 340,
133236
- /* 590 */ 927, 52, 52, 90, 840, 840, 852, 855, 844, 844,
133252
+ /* 590 */ 929, 52, 52, 90, 842, 842, 854, 857, 846, 846,
133237133253
/* 600 */ 97, 97, 98, 98, 98, 98, 361, 96, 96, 96,
133238133254
/* 610 */ 96, 95, 95, 94, 94, 94, 93, 351, 86, 445,
133239
- /* 620 */ 845, 3, 1200, 361, 360, 378, 344, 812, 956, 956,
133240
- /* 630 */ 1297, 86, 445, 728, 3, 212, 169, 287, 405, 282,
133241
- /* 640 */ 404, 199, 232, 450, 300, 759, 83, 84, 280, 245,
133255
+ /* 620 */ 847, 3, 1203, 361, 360, 378, 344, 813, 958, 958,
133256
+ /* 630 */ 1300, 86, 445, 729, 3, 212, 169, 287, 405, 282,
133257
+ /* 640 */ 404, 199, 232, 450, 300, 760, 83, 84, 280, 245,
133242133258
/* 650 */ 262, 365, 251, 85, 352, 352, 92, 89, 178, 83,
133243133259
/* 660 */ 84, 242, 412, 52, 52, 448, 85, 352, 352, 246,
133244
- /* 670 */ 957, 958, 194, 455, 669, 402, 399, 398, 448, 243,
133245
- /* 680 */ 221, 114, 434, 775, 361, 450, 397, 268, 746, 224,
133246
- /* 690 */ 224, 132, 132, 198, 830, 434, 452, 451, 428, 427,
133247
- /* 700 */ 818, 415, 733, 712, 132, 52, 52, 830, 268, 452,
133248
- /* 710 */ 451, 733, 194, 818, 363, 402, 399, 398, 450, 1268,
133249
- /* 720 */ 1268, 23, 956, 956, 86, 445, 397, 3, 228, 429,
133250
- /* 730 */ 893, 823, 823, 823, 825, 19, 203, 719, 52, 52,
133251
- /* 740 */ 428, 408, 439, 249, 823, 823, 823, 825, 19, 229,
133252
- /* 750 */ 403, 153, 83, 84, 760, 177, 241, 450, 720, 85,
133253
- /* 760 */ 352, 352, 120, 157, 957, 958, 58, 975, 409, 355,
133254
- /* 770 */ 330, 448, 268, 428, 430, 320, 789, 32, 32, 86,
133255
- /* 780 */ 445, 775, 3, 341, 98, 98, 98, 98, 434, 96,
133260
+ /* 670 */ 959, 960, 194, 455, 670, 402, 399, 398, 448, 243,
133261
+ /* 680 */ 221, 114, 434, 776, 361, 450, 397, 268, 747, 224,
133262
+ /* 690 */ 224, 132, 132, 198, 832, 434, 452, 451, 428, 427,
133263
+ /* 700 */ 819, 415, 734, 713, 132, 52, 52, 832, 268, 452,
133264
+ /* 710 */ 451, 734, 194, 819, 363, 402, 399, 398, 450, 1271,
133265
+ /* 720 */ 1271, 23, 958, 958, 86, 445, 397, 3, 228, 429,
133266
+ /* 730 */ 895, 824, 824, 826, 827, 19, 203, 720, 52, 52,
133267
+ /* 740 */ 428, 408, 439, 249, 824, 824, 826, 827, 19, 229,
133268
+ /* 750 */ 403, 153, 83, 84, 761, 177, 241, 450, 721, 85,
133269
+ /* 760 */ 352, 352, 120, 157, 959, 960, 58, 977, 409, 355,
133270
+ /* 770 */ 330, 448, 268, 428, 430, 320, 790, 32, 32, 86,
133271
+ /* 780 */ 445, 776, 3, 341, 98, 98, 98, 98, 434, 96,
133256133272
/* 790 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 351,
133257
- /* 800 */ 830, 120, 452, 451, 812, 885, 818, 83, 84, 975,
133258
- /* 810 */ 812, 132, 410, 918, 85, 352, 352, 132, 407, 788,
133259
- /* 820 */ 956, 956, 92, 89, 178, 915, 448, 262, 370, 261,
133260
- /* 830 */ 82, 912, 80, 262, 370, 261, 932, 823, 823, 823,
133261
- /* 840 */ 825, 19, 257, 434, 96, 96, 96, 96, 95, 95,
133262
- /* 850 */ 94, 94, 94, 93, 351, 830, 268, 452, 451, 956,
133263
- /* 860 */ 956, 818, 957, 958, 120, 92, 89, 178, 943, 2,
133264
- /* 870 */ 916, 963, 268, 1, 766, 76, 445, 761, 3, 707,
133265
- /* 880 */ 899, 899, 387, 956, 956, 756, 917, 371, 739, 777,
133266
- /* 890 */ 755, 907, 823, 823, 823, 825, 19, 883, 740, 450,
133267
- /* 900 */ 24, 957, 958, 83, 84, 369, 956, 956, 708, 226,
133268
- /* 910 */ 85, 352, 352, 745, 315, 314, 313, 215, 311, 10,
133269
- /* 920 */ 10, 682, 448, 349, 348, 957, 958, 887, 776, 691,
133270
- /* 930 */ 331, 956, 956, 337, 157, 450, 268, 103, 450, 434,
133271
- /* 940 */ 450, 816, 310, 906, 887, 889, 321, 450, 957, 958,
133272
- /* 950 */ 708, 830, 775, 452, 451, 10, 10, 818, 10, 10,
133273
- /* 960 */ 52, 52, 171, 170, 180, 225, 248, 10, 10, 339,
133274
- /* 970 */ 701, 701, 233, 957, 958, 247, 982, 741, 450, 956,
133275
- /* 980 */ 956, 425, 157, 980, 685, 981, 182, 912, 823, 823,
133276
- /* 990 */ 823, 825, 19, 183, 324, 423, 132, 181, 51, 51,
133277
- /* 1000 */ 715, 349, 348, 394, 256, 887, 334, 915, 983, 983,
133278
- /* 1010 */ 830, 417, 824, 234, 198, 234, 818, 268, 326, 382,
133279
- /* 1020 */ 120, 957, 958, 264, 177, 98, 98, 98, 98, 91,
133273
+ /* 800 */ 832, 120, 452, 451, 813, 887, 819, 83, 84, 977,
133274
+ /* 810 */ 813, 132, 410, 920, 85, 352, 352, 132, 407, 789,
133275
+ /* 820 */ 958, 958, 92, 89, 178, 917, 448, 262, 370, 261,
133276
+ /* 830 */ 82, 914, 80, 262, 370, 261, 776, 824, 824, 826,
133277
+ /* 840 */ 827, 19, 934, 434, 96, 96, 96, 96, 95, 95,
133278
+ /* 850 */ 94, 94, 94, 93, 351, 832, 74, 452, 451, 958,
133279
+ /* 860 */ 958, 819, 959, 960, 120, 92, 89, 178, 945, 2,
133280
+ /* 870 */ 918, 965, 268, 1, 976, 76, 445, 762, 3, 708,
133281
+ /* 880 */ 901, 901, 387, 958, 958, 757, 919, 371, 740, 778,
133282
+ /* 890 */ 756, 257, 824, 824, 826, 827, 19, 417, 741, 450,
133283
+ /* 900 */ 24, 959, 960, 83, 84, 369, 958, 958, 177, 226,
133284
+ /* 910 */ 85, 352, 352, 885, 315, 314, 313, 215, 311, 10,
133285
+ /* 920 */ 10, 683, 448, 349, 348, 959, 960, 909, 777, 157,
133286
+ /* 930 */ 120, 958, 958, 337, 776, 416, 711, 310, 450, 434,
133287
+ /* 940 */ 450, 321, 450, 791, 103, 200, 175, 450, 959, 960,
133288
+ /* 950 */ 908, 832, 792, 452, 451, 9, 9, 819, 10, 10,
133289
+ /* 960 */ 52, 52, 51, 51, 180, 716, 248, 10, 10, 171,
133290
+ /* 970 */ 170, 167, 339, 959, 960, 247, 984, 702, 702, 450,
133291
+ /* 980 */ 715, 233, 686, 982, 889, 983, 182, 914, 824, 824,
133292
+ /* 990 */ 826, 827, 19, 183, 256, 423, 132, 181, 394, 10,
133293
+ /* 1000 */ 10, 889, 891, 749, 958, 958, 917, 268, 985, 198,
133294
+ /* 1010 */ 985, 349, 348, 425, 415, 299, 817, 832, 326, 825,
133295
+ /* 1020 */ 120, 332, 133, 819, 268, 98, 98, 98, 98, 91,
133280133296
/* 1030 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133281
- /* 1040 */ 351, 816, 416, 371, 120, 359, 816, 823, 823, 823,
133282
- /* 1050 */ 775, 299, 916, 450, 368, 197, 196, 195, 358, 200,
133283
- /* 1060 */ 175, 380, 9, 9, 450, 1287, 875, 714, 917, 450,
133284
- /* 1070 */ 433, 237, 450, 36, 36, 132, 253, 450, 255, 450,
133285
- /* 1080 */ 117, 450, 809, 362, 37, 37, 983, 983, 450, 12,
133286
- /* 1090 */ 12, 330, 27, 27, 446, 331, 280, 38, 38, 39,
133287
- /* 1100 */ 39, 40, 40, 1207, 450, 816, 335, 356, 41, 41,
133288
- /* 1110 */ 450, 336, 450, 695, 450, 120, 450, 332, 133, 450,
133289
- /* 1120 */ 268, 450, 269, 450, 42, 42, 450, 816, 254, 450,
133290
- /* 1130 */ 28, 28, 29, 29, 31, 31, 43, 43, 450, 44,
133291
- /* 1140 */ 44, 45, 45, 11, 11, 450, 46, 46, 450, 105,
133292
- /* 1150 */ 105, 450, 748, 713, 450, 695, 450, 910, 47, 47,
133293
- /* 1160 */ 450, 267, 450, 415, 450, 48, 48, 450, 33, 33,
133294
- /* 1170 */ 386, 49, 49, 450, 50, 50, 34, 34, 450, 172,
133295
- /* 1180 */ 122, 122, 123, 123, 124, 124, 450, 56, 56, 450,
133296
- /* 1190 */ 120, 450, 345, 35, 35, 450, 790, 450, 106, 106,
133297
- /* 1200 */ 450, 74, 450, 974, 450, 791, 53, 53, 432, 107,
133298
- /* 1210 */ 107, 108, 108, 450, 272, 104, 104, 121, 121, 450,
133299
- /* 1220 */ 119, 119, 112, 112, 111, 111, 450, 317, 996, 450,
133300
- /* 1230 */ 118, 450, 162, 109, 109, 317, 935, 450, 896, 110,
133301
- /* 1240 */ 110, 450, 895, 744, 688, 436, 55, 55, 20, 57,
133302
- /* 1250 */ 57, 54, 54, 440, 444, 756, 385, 26, 26, 274,
133303
- /* 1260 */ 755, 30, 30, 21, 672, 673, 674, 223, 175, 931,
133304
- /* 1270 */ 814, 372, 319, 202, 202, 882, 120, 120, 120, 374,
133305
- /* 1280 */ 826, 710, 202, 72, 276, 263, 120, 120, 74, 395,
133306
- /* 1290 */ 278, 286, 208, 74, 718, 717, 725, 726, 892, 892,
133307
- /* 1300 */ 167, 997, 285, 753, 729, 784, 77, 878, 202, 997,
133308
- /* 1310 */ 208, 693, 891, 891, 116, 281, 782, 882, 390, 815,
133309
- /* 1320 */ 762, 773, 826, 431, 302, 303, 822, 218, 696, 289,
133310
- /* 1330 */ 690, 291, 293, 679, 678, 680, 950, 159, 316, 7,
133311
- /* 1340 */ 364, 252, 259, 804, 909, 376, 400, 295, 308, 173,
133312
- /* 1350 */ 435, 953, 168, 991, 135, 205, 926, 924, 59, 988,
133313
- /* 1360 */ 62, 284, 880, 333, 879, 712, 144, 156, 130, 72,
133314
- /* 1370 */ 366, 367, 393, 185, 189, 160, 383, 67, 389, 266,
133315
- /* 1380 */ 137, 894, 774, 219, 154, 139, 190, 140, 391, 271,
133316
- /* 1390 */ 191, 141, 142, 801, 681, 148, 811, 342, 322, 192,
133317
- /* 1400 */ 406, 732, 911, 874, 723, 731, 323, 710, 730, 71,
133318
- /* 1410 */ 704, 204, 283, 703, 6, 79, 421, 702, 965, 770,
133319
- /* 1420 */ 297, 346, 426, 102, 722, 288, 73, 424, 213, 951,
133320
- /* 1430 */ 771, 438, 22, 290, 687, 769, 442, 453, 239, 217,
133321
- /* 1440 */ 214, 668, 125, 353, 126, 216, 454, 166, 676, 115,
133322
- /* 1450 */ 675, 235, 244, 179, 670, 357, 810, 113, 890, 888,
133323
- /* 1460 */ 292, 136, 128, 752, 304, 768, 294, 305, 138, 742,
133324
- /* 1470 */ 306, 307, 127, 184, 860, 258, 905, 145, 143, 238,
133325
- /* 1480 */ 63, 64, 65, 66, 240, 129, 908, 186, 187, 904,
133326
- /* 1490 */ 8, 13, 188, 265, 897, 149, 202, 985, 388, 684,
133327
- /* 1500 */ 150, 161, 392, 285, 193, 279, 151, 396, 68, 14,
133328
- /* 1510 */ 401, 15, 327, 721, 328, 134, 69, 70, 236, 131,
133329
- /* 1520 */ 829, 828, 858, 750, 16, 201, 754, 4, 783, 220,
133330
- /* 1530 */ 414, 174, 222, 152, 77, 778, 74, 17, 18, 873,
133331
- /* 1540 */ 859, 857, 914, 862, 913, 207, 206, 940, 163, 437,
133332
- /* 1550 */ 946, 941, 164, 209, 210, 441, 861, 165, 312, 827,
133333
- /* 1560 */ 694, 87, 1000, 309, 211, 1000, 1000, 1000, 1000, 1289,
133334
- /* 1570 */ 1288,
133297
+ /* 1040 */ 351, 157, 810, 371, 382, 359, 959, 960, 358, 268,
133298
+ /* 1050 */ 450, 918, 368, 324, 824, 824, 826, 450, 709, 450,
133299
+ /* 1060 */ 264, 380, 889, 450, 877, 746, 253, 919, 255, 433,
133300
+ /* 1070 */ 36, 36, 234, 450, 234, 120, 269, 37, 37, 12,
133301
+ /* 1080 */ 12, 334, 272, 27, 27, 450, 330, 118, 450, 162,
133302
+ /* 1090 */ 742, 280, 450, 38, 38, 450, 985, 356, 985, 450,
133303
+ /* 1100 */ 709, 1210, 450, 132, 450, 39, 39, 450, 40, 40,
133304
+ /* 1110 */ 450, 362, 41, 41, 450, 42, 42, 450, 254, 28,
133305
+ /* 1120 */ 28, 450, 29, 29, 31, 31, 450, 43, 43, 450,
133306
+ /* 1130 */ 44, 44, 450, 714, 45, 45, 450, 11, 11, 767,
133307
+ /* 1140 */ 450, 46, 46, 450, 268, 450, 105, 105, 450, 47,
133308
+ /* 1150 */ 47, 450, 48, 48, 450, 237, 33, 33, 450, 172,
133309
+ /* 1160 */ 49, 49, 450, 50, 50, 34, 34, 274, 122, 122,
133310
+ /* 1170 */ 450, 123, 123, 450, 124, 124, 450, 898, 56, 56,
133311
+ /* 1180 */ 450, 897, 35, 35, 450, 267, 450, 817, 450, 817,
133312
+ /* 1190 */ 106, 106, 450, 53, 53, 385, 107, 107, 450, 817,
133313
+ /* 1200 */ 108, 108, 817, 450, 104, 104, 121, 121, 119, 119,
133314
+ /* 1210 */ 450, 117, 112, 112, 450, 276, 450, 225, 111, 111,
133315
+ /* 1220 */ 450, 730, 450, 109, 109, 450, 673, 674, 675, 912,
133316
+ /* 1230 */ 110, 110, 317, 998, 55, 55, 57, 57, 692, 331,
133317
+ /* 1240 */ 54, 54, 26, 26, 696, 30, 30, 317, 937, 197,
133318
+ /* 1250 */ 196, 195, 335, 281, 336, 446, 331, 745, 689, 436,
133319
+ /* 1260 */ 440, 444, 120, 72, 386, 223, 175, 345, 757, 933,
133320
+ /* 1270 */ 20, 286, 319, 756, 815, 372, 374, 202, 202, 202,
133321
+ /* 1280 */ 263, 395, 285, 74, 208, 21, 696, 719, 718, 884,
133322
+ /* 1290 */ 120, 120, 120, 120, 120, 754, 278, 828, 77, 74,
133323
+ /* 1300 */ 726, 727, 785, 783, 880, 202, 999, 208, 894, 893,
133324
+ /* 1310 */ 894, 893, 694, 816, 763, 116, 774, 1290, 431, 432,
133325
+ /* 1320 */ 302, 999, 390, 303, 823, 697, 691, 680, 159, 289,
133326
+ /* 1330 */ 679, 884, 681, 952, 291, 218, 293, 7, 316, 828,
133327
+ /* 1340 */ 173, 805, 259, 364, 252, 911, 376, 713, 295, 435,
133328
+ /* 1350 */ 308, 168, 955, 993, 135, 400, 990, 284, 882, 881,
133329
+ /* 1360 */ 205, 928, 926, 59, 333, 62, 144, 156, 130, 72,
133330
+ /* 1370 */ 802, 366, 367, 393, 137, 185, 189, 160, 139, 383,
133331
+ /* 1380 */ 67, 896, 140, 141, 142, 148, 389, 812, 775, 266,
133332
+ /* 1390 */ 219, 190, 154, 391, 913, 876, 271, 406, 191, 322,
133333
+ /* 1400 */ 682, 733, 192, 342, 732, 724, 731, 711, 723, 421,
133334
+ /* 1410 */ 705, 71, 323, 6, 204, 771, 288, 79, 297, 346,
133335
+ /* 1420 */ 772, 704, 290, 283, 703, 770, 292, 294, 967, 239,
133336
+ /* 1430 */ 769, 102, 862, 438, 426, 240, 424, 442, 73, 213,
133337
+ /* 1440 */ 688, 238, 22, 453, 953, 214, 217, 216, 454, 677,
133338
+ /* 1450 */ 676, 671, 753, 125, 115, 235, 126, 669, 353, 166,
133339
+ /* 1460 */ 127, 244, 179, 357, 306, 304, 305, 307, 113, 892,
133340
+ /* 1470 */ 327, 890, 811, 328, 134, 128, 136, 138, 743, 258,
133341
+ /* 1480 */ 907, 184, 143, 129, 910, 186, 63, 64, 145, 187,
133342
+ /* 1490 */ 906, 65, 8, 66, 13, 188, 202, 899, 265, 149,
133343
+ /* 1500 */ 987, 388, 150, 685, 161, 392, 285, 193, 279, 396,
133344
+ /* 1510 */ 151, 401, 68, 14, 15, 722, 69, 236, 831, 131,
133345
+ /* 1520 */ 830, 860, 70, 751, 16, 414, 755, 4, 174, 220,
133346
+ /* 1530 */ 222, 784, 201, 152, 779, 77, 74, 17, 18, 875,
133347
+ /* 1540 */ 861, 859, 916, 864, 915, 207, 206, 942, 163, 437,
133348
+ /* 1550 */ 948, 943, 164, 209, 1002, 441, 863, 165, 210, 829,
133349
+ /* 1560 */ 695, 87, 312, 211, 1292, 1291, 309,
133335133350
};
133336133351
static const YYCODETYPE yy_lookahead[] = {
133337133352
/* 0 */ 19, 95, 53, 97, 22, 24, 24, 101, 27, 28,
133338133353
/* 10 */ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
133339133354
/* 20 */ 39, 40, 41, 152, 43, 44, 45, 46, 47, 48,
@@ -133415,87 +133430,86 @@
133415133430
/* 780 */ 20, 124, 22, 111, 38, 39, 40, 41, 83, 43,
133416133431
/* 790 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
133417133432
/* 800 */ 95, 196, 97, 98, 85, 152, 101, 47, 48, 97,
133418133433
/* 810 */ 85, 92, 207, 193, 54, 55, 56, 92, 49, 175,
133419133434
/* 820 */ 55, 56, 221, 222, 223, 12, 66, 108, 109, 110,
133420
- /* 830 */ 137, 163, 139, 108, 109, 110, 152, 132, 133, 134,
133435
+ /* 830 */ 137, 163, 139, 108, 109, 110, 26, 132, 133, 134,
133421133436
/* 840 */ 135, 136, 152, 83, 43, 44, 45, 46, 47, 48,
133422
- /* 850 */ 49, 50, 51, 52, 53, 95, 152, 97, 98, 55,
133437
+ /* 850 */ 49, 50, 51, 52, 53, 95, 26, 97, 98, 55,
133423133438
/* 860 */ 56, 101, 97, 98, 196, 221, 222, 223, 146, 147,
133424
- /* 870 */ 57, 171, 152, 22, 213, 19, 20, 49, 22, 179,
133439
+ /* 870 */ 57, 171, 152, 22, 26, 19, 20, 49, 22, 179,
133425133440
/* 880 */ 108, 109, 110, 55, 56, 116, 73, 219, 75, 124,
133426
- /* 890 */ 121, 152, 132, 133, 134, 135, 136, 193, 85, 152,
133427
- /* 900 */ 232, 97, 98, 47, 48, 237, 55, 56, 55, 5,
133441
+ /* 890 */ 121, 152, 132, 133, 134, 135, 136, 163, 85, 152,
133442
+ /* 900 */ 232, 97, 98, 47, 48, 237, 55, 56, 98, 5,
133428133443
/* 910 */ 54, 55, 56, 193, 10, 11, 12, 13, 14, 172,
133429
- /* 920 */ 173, 17, 66, 47, 48, 97, 98, 152, 124, 166,
133430
- /* 930 */ 167, 55, 56, 186, 152, 152, 152, 22, 152, 83,
133431
- /* 940 */ 152, 152, 160, 152, 169, 170, 164, 152, 97, 98,
133432
- /* 950 */ 97, 95, 26, 97, 98, 172, 173, 101, 172, 173,
133433
- /* 960 */ 172, 173, 47, 48, 60, 22, 62, 172, 173, 186,
133434
- /* 970 */ 55, 56, 186, 97, 98, 71, 100, 193, 152, 55,
133435
- /* 980 */ 56, 186, 152, 107, 21, 109, 82, 163, 132, 133,
133436
- /* 990 */ 134, 135, 136, 89, 164, 207, 92, 93, 172, 173,
133437
- /* 1000 */ 181, 47, 48, 19, 16, 230, 217, 12, 132, 133,
133438
- /* 1010 */ 95, 163, 97, 183, 30, 185, 101, 152, 114, 152,
133439
- /* 1020 */ 196, 97, 98, 152, 98, 38, 39, 40, 41, 42,
133444
+ /* 920 */ 173, 17, 66, 47, 48, 97, 98, 152, 124, 152,
133445
+ /* 930 */ 196, 55, 56, 186, 124, 152, 106, 160, 152, 83,
133446
+ /* 940 */ 152, 164, 152, 61, 22, 211, 212, 152, 97, 98,
133447
+ /* 950 */ 152, 95, 70, 97, 98, 172, 173, 101, 172, 173,
133448
+ /* 960 */ 172, 173, 172, 173, 60, 181, 62, 172, 173, 47,
133449
+ /* 970 */ 48, 123, 186, 97, 98, 71, 100, 55, 56, 152,
133450
+ /* 980 */ 181, 186, 21, 107, 152, 109, 82, 163, 132, 133,
133451
+ /* 990 */ 134, 135, 136, 89, 16, 207, 92, 93, 19, 172,
133452
+ /* 1000 */ 173, 169, 170, 195, 55, 56, 12, 152, 132, 30,
133453
+ /* 1010 */ 134, 47, 48, 186, 206, 225, 152, 95, 114, 97,
133454
+ /* 1020 */ 196, 245, 246, 101, 152, 38, 39, 40, 41, 42,
133440133455
/* 1030 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
133441
- /* 1040 */ 53, 152, 152, 219, 196, 141, 152, 132, 133, 134,
133442
- /* 1050 */ 124, 225, 57, 152, 91, 108, 109, 110, 193, 211,
133443
- /* 1060 */ 212, 237, 172, 173, 152, 122, 103, 181, 73, 152,
133444
- /* 1070 */ 75, 210, 152, 172, 173, 92, 88, 152, 90, 152,
133445
- /* 1080 */ 22, 152, 163, 100, 172, 173, 132, 133, 152, 172,
133446
- /* 1090 */ 173, 107, 172, 173, 166, 167, 112, 172, 173, 172,
133447
- /* 1100 */ 173, 172, 173, 140, 152, 152, 217, 242, 172, 173,
133448
- /* 1110 */ 152, 217, 152, 55, 152, 196, 152, 245, 246, 152,
133449
- /* 1120 */ 152, 152, 152, 152, 172, 173, 152, 152, 140, 152,
133450
- /* 1130 */ 172, 173, 172, 173, 172, 173, 172, 173, 152, 172,
133451
- /* 1140 */ 173, 172, 173, 172, 173, 152, 172, 173, 152, 172,
133452
- /* 1150 */ 173, 152, 195, 152, 152, 97, 152, 163, 172, 173,
133453
- /* 1160 */ 152, 193, 152, 206, 152, 172, 173, 152, 172, 173,
133454
- /* 1170 */ 217, 172, 173, 152, 172, 173, 172, 173, 152, 26,
133455
- /* 1180 */ 172, 173, 172, 173, 172, 173, 152, 172, 173, 152,
133456
- /* 1190 */ 196, 152, 217, 172, 173, 152, 61, 152, 172, 173,
133457
- /* 1200 */ 152, 26, 152, 26, 152, 70, 172, 173, 191, 172,
133458
- /* 1210 */ 173, 172, 173, 152, 152, 172, 173, 172, 173, 152,
133459
- /* 1220 */ 172, 173, 172, 173, 172, 173, 152, 22, 23, 152,
133460
- /* 1230 */ 22, 152, 24, 172, 173, 22, 23, 152, 59, 172,
133461
- /* 1240 */ 173, 152, 63, 163, 163, 163, 172, 173, 22, 172,
133462
- /* 1250 */ 173, 172, 173, 163, 163, 116, 77, 172, 173, 152,
133463
- /* 1260 */ 121, 172, 173, 37, 7, 8, 9, 211, 212, 23,
133464
- /* 1270 */ 23, 23, 26, 26, 26, 55, 196, 196, 196, 23,
133465
- /* 1280 */ 55, 106, 26, 130, 152, 23, 196, 196, 26, 23,
133466
- /* 1290 */ 23, 101, 26, 26, 100, 101, 7, 8, 132, 133,
133467
- /* 1300 */ 123, 96, 112, 23, 152, 23, 26, 23, 26, 96,
133468
- /* 1310 */ 26, 23, 132, 133, 26, 152, 152, 97, 234, 152,
133469
- /* 1320 */ 152, 152, 97, 152, 152, 152, 152, 233, 152, 210,
133470
- /* 1330 */ 152, 210, 210, 152, 152, 152, 152, 197, 150, 198,
133471
- /* 1340 */ 214, 214, 239, 201, 201, 239, 176, 214, 200, 184,
133472
- /* 1350 */ 227, 155, 198, 67, 243, 122, 159, 159, 240, 69,
133473
- /* 1360 */ 240, 175, 175, 159, 175, 180, 22, 220, 27, 130,
133474
- /* 1370 */ 18, 159, 18, 158, 158, 220, 159, 137, 74, 235,
133475
- /* 1380 */ 189, 236, 159, 159, 22, 192, 158, 192, 177, 159,
133476
- /* 1390 */ 158, 192, 192, 201, 159, 189, 189, 76, 177, 158,
133477
- /* 1400 */ 107, 174, 201, 201, 182, 174, 177, 106, 174, 107,
133478
- /* 1410 */ 174, 159, 174, 176, 22, 137, 125, 174, 174, 216,
133479
- /* 1420 */ 159, 53, 126, 129, 182, 215, 128, 127, 25, 13,
133480
- /* 1430 */ 216, 177, 26, 215, 162, 216, 177, 161, 229, 6,
133481
- /* 1440 */ 153, 4, 165, 3, 165, 153, 151, 22, 151, 178,
133482
- /* 1450 */ 151, 178, 142, 15, 151, 94, 120, 16, 23, 23,
133483
- /* 1460 */ 215, 131, 111, 205, 204, 216, 215, 203, 123, 20,
133484
- /* 1470 */ 202, 201, 165, 125, 224, 16, 1, 131, 123, 226,
133485
- /* 1480 */ 37, 37, 37, 37, 229, 111, 56, 64, 122, 1,
133486
- /* 1490 */ 5, 22, 107, 140, 80, 80, 26, 87, 72, 20,
133487
- /* 1500 */ 107, 24, 19, 112, 105, 23, 22, 79, 22, 22,
133488
- /* 1510 */ 79, 22, 249, 58, 249, 246, 22, 26, 79, 68,
133489
- /* 1520 */ 23, 23, 23, 116, 22, 64, 23, 22, 56, 23,
133490
- /* 1530 */ 26, 122, 23, 22, 26, 124, 26, 64, 64, 23,
133456
+ /* 1040 */ 53, 152, 163, 219, 152, 141, 97, 98, 193, 152,
133457
+ /* 1050 */ 152, 57, 91, 164, 132, 133, 134, 152, 55, 152,
133458
+ /* 1060 */ 152, 237, 230, 152, 103, 193, 88, 73, 90, 75,
133459
+ /* 1070 */ 172, 173, 183, 152, 185, 196, 152, 172, 173, 172,
133460
+ /* 1080 */ 173, 217, 152, 172, 173, 152, 107, 22, 152, 24,
133461
+ /* 1090 */ 193, 112, 152, 172, 173, 152, 132, 242, 134, 152,
133462
+ /* 1100 */ 97, 140, 152, 92, 152, 172, 173, 152, 172, 173,
133463
+ /* 1110 */ 152, 100, 172, 173, 152, 172, 173, 152, 140, 172,
133464
+ /* 1120 */ 173, 152, 172, 173, 172, 173, 152, 172, 173, 152,
133465
+ /* 1130 */ 172, 173, 152, 152, 172, 173, 152, 172, 173, 213,
133466
+ /* 1140 */ 152, 172, 173, 152, 152, 152, 172, 173, 152, 172,
133467
+ /* 1150 */ 173, 152, 172, 173, 152, 210, 172, 173, 152, 26,
133468
+ /* 1160 */ 172, 173, 152, 172, 173, 172, 173, 152, 172, 173,
133469
+ /* 1170 */ 152, 172, 173, 152, 172, 173, 152, 59, 172, 173,
133470
+ /* 1180 */ 152, 63, 172, 173, 152, 193, 152, 152, 152, 152,
133471
+ /* 1190 */ 172, 173, 152, 172, 173, 77, 172, 173, 152, 152,
133472
+ /* 1200 */ 172, 173, 152, 152, 172, 173, 172, 173, 172, 173,
133473
+ /* 1210 */ 152, 22, 172, 173, 152, 152, 152, 22, 172, 173,
133474
+ /* 1220 */ 152, 152, 152, 172, 173, 152, 7, 8, 9, 163,
133475
+ /* 1230 */ 172, 173, 22, 23, 172, 173, 172, 173, 166, 167,
133476
+ /* 1240 */ 172, 173, 172, 173, 55, 172, 173, 22, 23, 108,
133477
+ /* 1250 */ 109, 110, 217, 152, 217, 166, 167, 163, 163, 163,
133478
+ /* 1260 */ 163, 163, 196, 130, 217, 211, 212, 217, 116, 23,
133479
+ /* 1270 */ 22, 101, 26, 121, 23, 23, 23, 26, 26, 26,
133480
+ /* 1280 */ 23, 23, 112, 26, 26, 37, 97, 100, 101, 55,
133481
+ /* 1290 */ 196, 196, 196, 196, 196, 23, 23, 55, 26, 26,
133482
+ /* 1300 */ 7, 8, 23, 152, 23, 26, 96, 26, 132, 132,
133483
+ /* 1310 */ 134, 134, 23, 152, 152, 26, 152, 122, 152, 191,
133484
+ /* 1320 */ 152, 96, 234, 152, 152, 152, 152, 152, 197, 210,
133485
+ /* 1330 */ 152, 97, 152, 152, 210, 233, 210, 198, 150, 97,
133486
+ /* 1340 */ 184, 201, 239, 214, 214, 201, 239, 180, 214, 227,
133487
+ /* 1350 */ 200, 198, 155, 67, 243, 176, 69, 175, 175, 175,
133488
+ /* 1360 */ 122, 159, 159, 240, 159, 240, 22, 220, 27, 130,
133489
+ /* 1370 */ 201, 18, 159, 18, 189, 158, 158, 220, 192, 159,
133490
+ /* 1380 */ 137, 236, 192, 192, 192, 189, 74, 189, 159, 235,
133491
+ /* 1390 */ 159, 158, 22, 177, 201, 201, 159, 107, 158, 177,
133492
+ /* 1400 */ 159, 174, 158, 76, 174, 182, 174, 106, 182, 125,
133493
+ /* 1410 */ 174, 107, 177, 22, 159, 216, 215, 137, 159, 53,
133494
+ /* 1420 */ 216, 176, 215, 174, 174, 216, 215, 215, 174, 229,
133495
+ /* 1430 */ 216, 129, 224, 177, 126, 229, 127, 177, 128, 25,
133496
+ /* 1440 */ 162, 226, 26, 161, 13, 153, 6, 153, 151, 151,
133497
+ /* 1450 */ 151, 151, 205, 165, 178, 178, 165, 4, 3, 22,
133498
+ /* 1460 */ 165, 142, 15, 94, 202, 204, 203, 201, 16, 23,
133499
+ /* 1470 */ 249, 23, 120, 249, 246, 111, 131, 123, 20, 16,
133500
+ /* 1480 */ 1, 125, 123, 111, 56, 64, 37, 37, 131, 122,
133501
+ /* 1490 */ 1, 37, 5, 37, 22, 107, 26, 80, 140, 80,
133502
+ /* 1500 */ 87, 72, 107, 20, 24, 19, 112, 105, 23, 79,
133503
+ /* 1510 */ 22, 79, 22, 22, 22, 58, 22, 79, 23, 68,
133504
+ /* 1520 */ 23, 23, 26, 116, 22, 26, 23, 22, 122, 23,
133505
+ /* 1530 */ 23, 56, 64, 22, 124, 26, 26, 64, 64, 23,
133491133506
/* 1540 */ 23, 23, 23, 11, 23, 22, 26, 23, 22, 24,
133492
- /* 1550 */ 1, 23, 22, 26, 122, 24, 23, 22, 15, 23,
133493
- /* 1560 */ 23, 22, 251, 23, 122, 251, 251, 251, 251, 122,
133494
- /* 1570 */ 122,
133507
+ /* 1550 */ 1, 23, 22, 26, 251, 24, 23, 22, 122, 23,
133508
+ /* 1560 */ 23, 22, 15, 122, 122, 122, 23,
133495133509
};
133496
-#define YY_SHIFT_USE_DFLT (1571)
133510
+#define YY_SHIFT_USE_DFLT (1567)
133497133511
#define YY_SHIFT_COUNT (455)
133498133512
#define YY_SHIFT_MIN (-94)
133499133513
#define YY_SHIFT_MAX (1549)
133500133514
static const short yy_shift_ofst[] = {
133501133515
/* 0 */ 40, 599, 904, 612, 760, 760, 760, 760, 725, -19,
@@ -133507,132 +133521,132 @@
133507133521
/* 60 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133508133522
/* 70 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133509133523
/* 80 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133510133524
/* 90 */ 856, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133511133525
/* 100 */ 760, 760, 760, 760, 987, 746, 746, 746, 746, 746,
133512
- /* 110 */ 801, 23, 32, 924, 963, 984, 954, 954, 924, 73,
133513
- /* 120 */ 113, -51, 1571, 1571, 1571, 536, 536, 536, 99, 99,
133514
- /* 130 */ 813, 813, 667, 205, 240, 924, 924, 924, 924, 924,
133515
- /* 140 */ 924, 924, 924, 924, 924, 924, 924, 924, 924, 924,
133516
- /* 150 */ 924, 924, 924, 924, 924, 332, 983, 422, 422, 113,
133517
- /* 160 */ 30, 30, 30, 30, 30, 30, 1571, 1571, 1571, 915,
133518
- /* 170 */ -94, -94, 384, 613, 828, 420, 765, 804, 851, 924,
133519
- /* 180 */ 924, 924, 924, 924, 924, 924, 924, 924, 924, 924,
133520
- /* 190 */ 924, 924, 924, 924, 924, 672, 672, 672, 924, 924,
133521
- /* 200 */ 657, 924, 924, 924, -18, 924, 924, 995, 924, 924,
133522
- /* 210 */ 924, 924, 924, 924, 924, 924, 924, 924, 772, 1179,
133523
- /* 220 */ 712, 712, 712, 926, 45, 769, 1257, 1153, 418, 418,
133524
- /* 230 */ 569, 1153, 569, 1175, 607, 663, 1135, 418, 693, 1135,
133525
- /* 240 */ 1135, 1177, 1139, 1208, 1286, 1233, 1233, 1290, 1290, 1233,
133526
- /* 250 */ 1344, 1341, 1239, 1352, 1352, 1352, 1352, 1233, 1354, 1239,
133527
- /* 260 */ 1344, 1341, 1341, 1239, 1233, 1354, 1240, 1304, 1233, 1233,
133528
- /* 270 */ 1354, 1362, 1233, 1354, 1233, 1354, 1362, 1293, 1293, 1293,
133529
- /* 280 */ 1321, 1362, 1293, 1301, 1293, 1321, 1293, 1293, 1291, 1302,
133530
- /* 290 */ 1291, 1302, 1291, 1302, 1291, 1302, 1233, 1392, 1233, 1278,
133531
- /* 300 */ 1362, 1368, 1368, 1362, 1294, 1296, 1298, 1300, 1239, 1403,
133532
- /* 310 */ 1406, 1416, 1416, 1433, 1433, 1433, 1433, 1571, 1571, 1571,
133533
- /* 320 */ 1571, 1571, 1571, 1571, 1571, 519, 988, 1205, 1213, 104,
133534
- /* 330 */ 947, 1058, 1246, 1226, 1247, 1248, 1256, 1262, 1266, 1267,
133535
- /* 340 */ 853, 1194, 1289, 1190, 1280, 1282, 1220, 1284, 1166, 1180,
133536
- /* 350 */ 1288, 1225, 943, 1437, 1440, 1425, 1310, 1438, 1361, 1441,
133537
- /* 360 */ 1435, 1436, 1336, 1330, 1351, 1345, 1449, 1348, 1459, 1475,
133538
- /* 370 */ 1355, 1346, 1443, 1444, 1445, 1446, 1374, 1430, 1423, 1366,
133539
- /* 380 */ 1488, 1485, 1469, 1385, 1353, 1414, 1470, 1415, 1410, 1426,
133540
- /* 390 */ 1393, 1477, 1479, 1483, 1391, 1399, 1484, 1428, 1486, 1487,
133541
- /* 400 */ 1482, 1489, 1431, 1455, 1494, 1439, 1451, 1497, 1498, 1499,
133542
- /* 410 */ 1491, 1407, 1502, 1503, 1505, 1504, 1409, 1506, 1509, 1472,
133543
- /* 420 */ 1461, 1511, 1411, 1508, 1473, 1510, 1474, 1516, 1508, 1517,
133526
+ /* 110 */ 801, 23, 32, 949, 961, 979, 964, 964, 949, 73,
133527
+ /* 120 */ 113, -51, 1567, 1567, 1567, 536, 536, 536, 99, 99,
133528
+ /* 130 */ 813, 813, 667, 205, 240, 949, 949, 949, 949, 949,
133529
+ /* 140 */ 949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
133530
+ /* 150 */ 949, 949, 949, 949, 949, 332, 1011, 422, 422, 113,
133531
+ /* 160 */ 30, 30, 30, 30, 30, 30, 1567, 1567, 1567, 922,
133532
+ /* 170 */ -94, -94, 384, 613, 828, 420, 765, 804, 851, 949,
133533
+ /* 180 */ 949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
133534
+ /* 190 */ 949, 949, 949, 949, 949, 672, 672, 672, 949, 949,
133535
+ /* 200 */ 657, 949, 949, 949, -18, 949, 949, 994, 949, 949,
133536
+ /* 210 */ 949, 949, 949, 949, 949, 949, 949, 949, 772, 1118,
133537
+ /* 220 */ 712, 712, 712, 810, 45, 769, 1219, 1133, 418, 418,
133538
+ /* 230 */ 569, 1133, 569, 830, 607, 663, 882, 418, 693, 882,
133539
+ /* 240 */ 882, 848, 1152, 1065, 1286, 1238, 1238, 1287, 1287, 1238,
133540
+ /* 250 */ 1344, 1341, 1239, 1353, 1353, 1353, 1353, 1238, 1355, 1239,
133541
+ /* 260 */ 1344, 1341, 1341, 1239, 1238, 1355, 1243, 1312, 1238, 1238,
133542
+ /* 270 */ 1355, 1370, 1238, 1355, 1238, 1355, 1370, 1290, 1290, 1290,
133543
+ /* 280 */ 1327, 1370, 1290, 1301, 1290, 1327, 1290, 1290, 1284, 1304,
133544
+ /* 290 */ 1284, 1304, 1284, 1304, 1284, 1304, 1238, 1391, 1238, 1280,
133545
+ /* 300 */ 1370, 1366, 1366, 1370, 1302, 1308, 1310, 1309, 1239, 1414,
133546
+ /* 310 */ 1416, 1431, 1431, 1440, 1440, 1440, 1440, 1567, 1567, 1567,
133547
+ /* 320 */ 1567, 1567, 1567, 1567, 1567, 519, 978, 1210, 1225, 104,
133548
+ /* 330 */ 1141, 1189, 1246, 1248, 1251, 1252, 1253, 1257, 1258, 1273,
133549
+ /* 340 */ 1003, 1187, 1293, 1170, 1272, 1279, 1234, 1281, 1176, 1177,
133550
+ /* 350 */ 1289, 1242, 1195, 1453, 1455, 1437, 1319, 1447, 1369, 1452,
133551
+ /* 360 */ 1446, 1448, 1352, 1345, 1364, 1354, 1458, 1356, 1463, 1479,
133552
+ /* 370 */ 1359, 1357, 1449, 1450, 1454, 1456, 1372, 1428, 1421, 1367,
133553
+ /* 380 */ 1489, 1487, 1472, 1388, 1358, 1417, 1470, 1419, 1413, 1429,
133554
+ /* 390 */ 1395, 1480, 1483, 1486, 1394, 1402, 1488, 1430, 1490, 1491,
133555
+ /* 400 */ 1485, 1492, 1432, 1457, 1494, 1438, 1451, 1495, 1497, 1498,
133556
+ /* 410 */ 1496, 1407, 1502, 1503, 1505, 1499, 1406, 1506, 1507, 1475,
133557
+ /* 420 */ 1468, 1511, 1410, 1509, 1473, 1510, 1474, 1516, 1509, 1517,
133544133558
/* 430 */ 1518, 1519, 1520, 1521, 1523, 1532, 1524, 1526, 1525, 1527,
133545
- /* 440 */ 1528, 1530, 1531, 1527, 1533, 1535, 1536, 1537, 1539, 1432,
133546
- /* 450 */ 1442, 1447, 1448, 1540, 1543, 1549,
133559
+ /* 440 */ 1528, 1530, 1531, 1527, 1533, 1535, 1536, 1537, 1539, 1436,
133560
+ /* 450 */ 1441, 1442, 1443, 1543, 1547, 1549,
133547133561
};
133548133562
#define YY_REDUCE_USE_DFLT (-130)
133549133563
#define YY_REDUCE_COUNT (324)
133550133564
#define YY_REDUCE_MIN (-129)
133551
-#define YY_REDUCE_MAX (1307)
133565
+#define YY_REDUCE_MAX (1300)
133552133566
static const short yy_reduce_ofst[] = {
133553133567
/* 0 */ -29, 566, 525, 605, -49, 307, 491, 533, 668, 435,
133554
- /* 10 */ 601, 644, 148, 747, 783, 786, 419, 788, 795, 826,
133555
- /* 20 */ 454, 775, 830, 495, 824, 848, 76, 76, 76, 76,
133568
+ /* 10 */ 601, 644, 148, 747, 786, 795, 419, 788, 827, 790,
133569
+ /* 20 */ 454, 832, 889, 495, 824, 734, 76, 76, 76, 76,
133556133570
/* 30 */ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
133557133571
/* 40 */ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
133558
- /* 50 */ 76, 76, 76, 76, 76, 76, 76, 76, 890, 901,
133559
- /* 60 */ 912, 917, 920, 925, 927, 929, 936, 952, 958, 960,
133560
- /* 70 */ 962, 964, 967, 969, 971, 974, 977, 986, 993, 996,
133561
- /* 80 */ 999, 1002, 1004, 1008, 1010, 1012, 1015, 1021, 1026, 1034,
133562
- /* 90 */ 1037, 1039, 1043, 1045, 1048, 1050, 1052, 1061, 1067, 1074,
133563
- /* 100 */ 1077, 1079, 1085, 1089, 76, 76, 76, 76, 76, 76,
133564
- /* 110 */ 76, 76, 76, 865, 36, 523, 235, 416, 782, 76,
133572
+ /* 50 */ 76, 76, 76, 76, 76, 76, 76, 76, 783, 898,
133573
+ /* 60 */ 905, 907, 911, 921, 933, 936, 940, 943, 947, 950,
133574
+ /* 70 */ 952, 955, 958, 962, 965, 969, 974, 977, 980, 984,
133575
+ /* 80 */ 988, 991, 993, 996, 999, 1002, 1006, 1010, 1018, 1021,
133576
+ /* 90 */ 1024, 1028, 1032, 1034, 1036, 1040, 1046, 1051, 1058, 1062,
133577
+ /* 100 */ 1064, 1068, 1070, 1073, 76, 76, 76, 76, 76, 76,
133578
+ /* 110 */ 76, 76, 76, 855, 36, 523, 235, 416, 777, 76,
133565133579
/* 120 */ 278, 76, 76, 76, 76, 700, 700, 700, 150, 220,
133566133580
/* 130 */ 147, 217, 221, 306, 306, 611, 5, 535, 556, 620,
133567
- /* 140 */ 704, 720, 784, 116, 789, 349, 889, 894, 404, 953,
133568
- /* 150 */ 968, -129, 975, 492, 62, 722, 919, 763, 928, 957,
133569
- /* 160 */ 994, 1080, 1081, 1082, 1090, 1091, 872, 1056, 557, 57,
133581
+ /* 140 */ 720, 872, 897, 116, 864, 349, 1035, 1037, 404, 1047,
133582
+ /* 150 */ 992, -129, 1050, 492, 62, 722, 879, 1072, 1089, 808,
133583
+ /* 160 */ 1066, 1094, 1095, 1096, 1097, 1098, 776, 1054, 557, 57,
133570133584
/* 170 */ 112, 131, 167, 182, 250, 272, 291, 331, 364, 438,
133571
- /* 180 */ 497, 517, 591, 653, 684, 690, 739, 791, 867, 871,
133572
- /* 190 */ 970, 1062, 1107, 1132, 1152, 355, 819, 886, 1001, 1163,
133573
- /* 200 */ 661, 1164, 1167, 1168, 861, 1169, 1171, 1017, 1172, 1173,
133574
- /* 210 */ 1174, 250, 1176, 1178, 1181, 1182, 1183, 1184, 1084, 1094,
133575
- /* 220 */ 1119, 1121, 1122, 661, 1140, 1141, 1188, 1142, 1126, 1127,
133576
- /* 230 */ 1103, 1143, 1106, 1170, 1165, 1185, 1186, 1133, 1123, 1187,
133577
- /* 240 */ 1189, 1148, 1154, 1196, 1111, 1197, 1198, 1118, 1120, 1204,
133578
- /* 250 */ 1147, 1191, 1192, 1193, 1195, 1199, 1200, 1212, 1215, 1201,
133579
- /* 260 */ 1155, 1206, 1207, 1202, 1217, 1216, 1145, 1144, 1223, 1224,
133580
- /* 270 */ 1228, 1211, 1230, 1232, 1235, 1241, 1221, 1227, 1231, 1234,
133581
- /* 280 */ 1222, 1229, 1236, 1237, 1238, 1242, 1243, 1244, 1203, 1210,
133582
- /* 290 */ 1214, 1218, 1219, 1245, 1249, 1251, 1252, 1250, 1261, 1253,
133583
- /* 300 */ 1254, 1209, 1255, 1259, 1258, 1260, 1264, 1268, 1270, 1272,
133584
- /* 310 */ 1276, 1287, 1292, 1295, 1297, 1299, 1303, 1263, 1265, 1269,
133585
- /* 320 */ 1277, 1279, 1271, 1273, 1307,
133585
+ /* 180 */ 497, 517, 591, 653, 690, 739, 775, 798, 892, 908,
133586
+ /* 190 */ 924, 930, 1015, 1063, 1069, 355, 784, 799, 981, 1101,
133587
+ /* 200 */ 926, 1151, 1161, 1162, 945, 1164, 1166, 1128, 1168, 1171,
133588
+ /* 210 */ 1172, 250, 1173, 1174, 1175, 1178, 1180, 1181, 1088, 1102,
133589
+ /* 220 */ 1119, 1124, 1126, 926, 1131, 1139, 1188, 1140, 1129, 1130,
133590
+ /* 230 */ 1103, 1144, 1107, 1179, 1156, 1167, 1182, 1134, 1122, 1183,
133591
+ /* 240 */ 1184, 1150, 1153, 1197, 1111, 1202, 1203, 1123, 1125, 1205,
133592
+ /* 250 */ 1147, 1185, 1169, 1186, 1190, 1191, 1192, 1213, 1217, 1193,
133593
+ /* 260 */ 1157, 1196, 1198, 1194, 1220, 1218, 1145, 1154, 1229, 1231,
133594
+ /* 270 */ 1233, 1216, 1237, 1240, 1241, 1244, 1222, 1227, 1230, 1232,
133595
+ /* 280 */ 1223, 1235, 1236, 1245, 1249, 1226, 1250, 1254, 1199, 1201,
133596
+ /* 290 */ 1204, 1207, 1209, 1211, 1214, 1212, 1255, 1208, 1259, 1215,
133597
+ /* 300 */ 1256, 1200, 1206, 1260, 1247, 1261, 1263, 1262, 1266, 1278,
133598
+ /* 310 */ 1282, 1292, 1294, 1297, 1298, 1299, 1300, 1221, 1224, 1228,
133599
+ /* 320 */ 1288, 1291, 1276, 1277, 1295,
133586133600
};
133587133601
static const YYACTIONTYPE yy_default[] = {
133588
- /* 0 */ 1278, 1268, 1268, 1268, 1200, 1200, 1200, 1200, 1268, 1094,
133589
- /* 10 */ 1123, 1123, 1252, 1329, 1329, 1329, 1329, 1329, 1329, 1199,
133590
- /* 20 */ 1329, 1329, 1329, 1329, 1268, 1098, 1129, 1329, 1329, 1329,
133591
- /* 30 */ 1329, 1201, 1202, 1329, 1329, 1329, 1251, 1253, 1139, 1138,
133592
- /* 40 */ 1137, 1136, 1234, 1110, 1134, 1127, 1131, 1201, 1195, 1196,
133593
- /* 50 */ 1194, 1198, 1202, 1329, 1130, 1164, 1179, 1163, 1329, 1329,
133594
- /* 60 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133595
- /* 70 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133596
- /* 80 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133597
- /* 90 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133598
- /* 100 */ 1329, 1329, 1329, 1329, 1173, 1178, 1185, 1177, 1174, 1166,
133599
- /* 110 */ 1165, 1167, 1168, 1329, 1017, 1065, 1329, 1329, 1329, 1169,
133600
- /* 120 */ 1329, 1170, 1182, 1181, 1180, 1259, 1286, 1285, 1329, 1329,
133601
- /* 130 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133602
- /* 140 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133603
- /* 150 */ 1329, 1329, 1329, 1329, 1329, 1278, 1268, 1023, 1023, 1329,
133604
- /* 160 */ 1268, 1268, 1268, 1268, 1268, 1268, 1264, 1098, 1089, 1329,
133605
- /* 170 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133606
- /* 180 */ 1256, 1254, 1329, 1215, 1329, 1329, 1329, 1329, 1329, 1329,
133607
- /* 190 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133608
- /* 200 */ 1329, 1329, 1329, 1329, 1094, 1329, 1329, 1329, 1329, 1329,
133609
- /* 210 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1280, 1329, 1229,
133610
- /* 220 */ 1094, 1094, 1094, 1096, 1078, 1088, 1002, 1133, 1112, 1112,
133611
- /* 230 */ 1318, 1133, 1318, 1040, 1300, 1037, 1123, 1112, 1197, 1123,
133612
- /* 240 */ 1123, 1095, 1088, 1329, 1321, 1103, 1103, 1320, 1320, 1103,
133613
- /* 250 */ 1144, 1068, 1133, 1074, 1074, 1074, 1074, 1103, 1014, 1133,
133614
- /* 260 */ 1144, 1068, 1068, 1133, 1103, 1014, 1233, 1315, 1103, 1103,
133615
- /* 270 */ 1014, 1208, 1103, 1014, 1103, 1014, 1208, 1066, 1066, 1066,
133616
- /* 280 */ 1055, 1208, 1066, 1040, 1066, 1055, 1066, 1066, 1116, 1111,
133617
- /* 290 */ 1116, 1111, 1116, 1111, 1116, 1111, 1103, 1203, 1103, 1329,
133618
- /* 300 */ 1208, 1212, 1212, 1208, 1128, 1117, 1126, 1124, 1133, 1020,
133619
- /* 310 */ 1058, 1283, 1283, 1279, 1279, 1279, 1279, 1326, 1326, 1264,
133620
- /* 320 */ 1295, 1295, 1042, 1042, 1295, 1329, 1329, 1329, 1329, 1329,
133621
- /* 330 */ 1329, 1290, 1329, 1217, 1329, 1329, 1329, 1329, 1329, 1329,
133622
- /* 340 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133623
- /* 350 */ 1329, 1329, 1150, 1329, 998, 1261, 1329, 1329, 1260, 1329,
133624
- /* 360 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133625
- /* 370 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1317,
133626
- /* 380 */ 1329, 1329, 1329, 1329, 1329, 1329, 1232, 1231, 1329, 1329,
133627
- /* 390 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133628
- /* 400 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133629
- /* 410 */ 1329, 1080, 1329, 1329, 1329, 1304, 1329, 1329, 1329, 1329,
133630
- /* 420 */ 1329, 1329, 1329, 1125, 1329, 1118, 1329, 1329, 1308, 1329,
133631
- /* 430 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1270,
133632
- /* 440 */ 1329, 1329, 1329, 1269, 1329, 1329, 1329, 1329, 1329, 1152,
133633
- /* 450 */ 1329, 1151, 1155, 1329, 1008, 1329,
133602
+ /* 0 */ 1281, 1271, 1271, 1271, 1203, 1203, 1203, 1203, 1271, 1096,
133603
+ /* 10 */ 1125, 1125, 1255, 1332, 1332, 1332, 1332, 1332, 1332, 1202,
133604
+ /* 20 */ 1332, 1332, 1332, 1332, 1271, 1100, 1131, 1332, 1332, 1332,
133605
+ /* 30 */ 1332, 1204, 1205, 1332, 1332, 1332, 1254, 1256, 1141, 1140,
133606
+ /* 40 */ 1139, 1138, 1237, 1112, 1136, 1129, 1133, 1204, 1198, 1199,
133607
+ /* 50 */ 1197, 1201, 1205, 1332, 1132, 1167, 1182, 1166, 1332, 1332,
133608
+ /* 60 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133609
+ /* 70 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133610
+ /* 80 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133611
+ /* 90 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133612
+ /* 100 */ 1332, 1332, 1332, 1332, 1176, 1181, 1188, 1180, 1177, 1169,
133613
+ /* 110 */ 1168, 1170, 1171, 1332, 1019, 1067, 1332, 1332, 1332, 1172,
133614
+ /* 120 */ 1332, 1173, 1185, 1184, 1183, 1262, 1289, 1288, 1332, 1332,
133615
+ /* 130 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133616
+ /* 140 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133617
+ /* 150 */ 1332, 1332, 1332, 1332, 1332, 1281, 1271, 1025, 1025, 1332,
133618
+ /* 160 */ 1271, 1271, 1271, 1271, 1271, 1271, 1267, 1100, 1091, 1332,
133619
+ /* 170 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133620
+ /* 180 */ 1259, 1257, 1332, 1218, 1332, 1332, 1332, 1332, 1332, 1332,
133621
+ /* 190 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133622
+ /* 200 */ 1332, 1332, 1332, 1332, 1096, 1332, 1332, 1332, 1332, 1332,
133623
+ /* 210 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1283, 1332, 1232,
133624
+ /* 220 */ 1096, 1096, 1096, 1098, 1080, 1090, 1004, 1135, 1114, 1114,
133625
+ /* 230 */ 1321, 1135, 1321, 1042, 1303, 1039, 1125, 1114, 1200, 1125,
133626
+ /* 240 */ 1125, 1097, 1090, 1332, 1324, 1105, 1105, 1323, 1323, 1105,
133627
+ /* 250 */ 1146, 1070, 1135, 1076, 1076, 1076, 1076, 1105, 1016, 1135,
133628
+ /* 260 */ 1146, 1070, 1070, 1135, 1105, 1016, 1236, 1318, 1105, 1105,
133629
+ /* 270 */ 1016, 1211, 1105, 1016, 1105, 1016, 1211, 1068, 1068, 1068,
133630
+ /* 280 */ 1057, 1211, 1068, 1042, 1068, 1057, 1068, 1068, 1118, 1113,
133631
+ /* 290 */ 1118, 1113, 1118, 1113, 1118, 1113, 1105, 1206, 1105, 1332,
133632
+ /* 300 */ 1211, 1215, 1215, 1211, 1130, 1119, 1128, 1126, 1135, 1022,
133633
+ /* 310 */ 1060, 1286, 1286, 1282, 1282, 1282, 1282, 1329, 1329, 1267,
133634
+ /* 320 */ 1298, 1298, 1044, 1044, 1298, 1332, 1332, 1332, 1332, 1332,
133635
+ /* 330 */ 1332, 1293, 1332, 1220, 1332, 1332, 1332, 1332, 1332, 1332,
133636
+ /* 340 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133637
+ /* 350 */ 1332, 1332, 1152, 1332, 1000, 1264, 1332, 1332, 1263, 1332,
133638
+ /* 360 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133639
+ /* 370 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1320,
133640
+ /* 380 */ 1332, 1332, 1332, 1332, 1332, 1332, 1235, 1234, 1332, 1332,
133641
+ /* 390 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133642
+ /* 400 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133643
+ /* 410 */ 1332, 1082, 1332, 1332, 1332, 1307, 1332, 1332, 1332, 1332,
133644
+ /* 420 */ 1332, 1332, 1332, 1127, 1332, 1120, 1332, 1332, 1311, 1332,
133645
+ /* 430 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1273,
133646
+ /* 440 */ 1332, 1332, 1332, 1272, 1332, 1332, 1332, 1332, 1332, 1154,
133647
+ /* 450 */ 1332, 1153, 1157, 1332, 1010, 1332,
133634133648
};
133635133649
/********** End of lemon-generated parsing tables *****************************/
133636133650
133637133651
/* The next table maps tokens (terminal symbols) into fallback tokens.
133638133652
** If a construct like the following:
@@ -133862,11 +133876,11 @@
133862133876
"DEFERRABLE", "FOREIGN", "DROP", "UNION",
133863133877
"ALL", "EXCEPT", "INTERSECT", "SELECT",
133864133878
"VALUES", "DISTINCT", "DOT", "FROM",
133865133879
"JOIN", "USING", "ORDER", "GROUP",
133866133880
"HAVING", "LIMIT", "WHERE", "INTO",
133867
- "INTEGER", "FLOAT", "BLOB", "VARIABLE",
133881
+ "FLOAT", "BLOB", "INTEGER", "VARIABLE",
133868133882
"CASE", "WHEN", "THEN", "ELSE",
133869133883
"INDEX", "ALTER", "ADD", "error",
133870133884
"input", "cmdlist", "ecmd", "explain",
133871133885
"cmdx", "cmd", "transtype", "trans_opt",
133872133886
"nm", "savepoint_opt", "create_table", "create_table_args",
@@ -134055,185 +134069,186 @@
134055134069
/* 151 */ "term ::= NULL",
134056134070
/* 152 */ "expr ::= ID|INDEXED",
134057134071
/* 153 */ "expr ::= JOIN_KW",
134058134072
/* 154 */ "expr ::= nm DOT nm",
134059134073
/* 155 */ "expr ::= nm DOT nm DOT nm",
134060
- /* 156 */ "term ::= INTEGER|FLOAT|BLOB",
134074
+ /* 156 */ "term ::= FLOAT|BLOB",
134061134075
/* 157 */ "term ::= STRING",
134062
- /* 158 */ "expr ::= VARIABLE",
134063
- /* 159 */ "expr ::= expr COLLATE ID|STRING",
134064
- /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
134065
- /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
134066
- /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
134067
- /* 163 */ "term ::= CTIME_KW",
134068
- /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
134069
- /* 165 */ "expr ::= expr AND expr",
134070
- /* 166 */ "expr ::= expr OR expr",
134071
- /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
134072
- /* 168 */ "expr ::= expr EQ|NE expr",
134073
- /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
134074
- /* 170 */ "expr ::= expr PLUS|MINUS expr",
134075
- /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
134076
- /* 172 */ "expr ::= expr CONCAT expr",
134077
- /* 173 */ "likeop ::= LIKE_KW|MATCH",
134078
- /* 174 */ "likeop ::= NOT LIKE_KW|MATCH",
134079
- /* 175 */ "expr ::= expr likeop expr",
134080
- /* 176 */ "expr ::= expr likeop expr ESCAPE expr",
134081
- /* 177 */ "expr ::= expr ISNULL|NOTNULL",
134082
- /* 178 */ "expr ::= expr NOT NULL",
134083
- /* 179 */ "expr ::= expr IS expr",
134084
- /* 180 */ "expr ::= expr IS NOT expr",
134085
- /* 181 */ "expr ::= NOT expr",
134086
- /* 182 */ "expr ::= BITNOT expr",
134087
- /* 183 */ "expr ::= MINUS expr",
134088
- /* 184 */ "expr ::= PLUS expr",
134089
- /* 185 */ "between_op ::= BETWEEN",
134090
- /* 186 */ "between_op ::= NOT BETWEEN",
134091
- /* 187 */ "expr ::= expr between_op expr AND expr",
134092
- /* 188 */ "in_op ::= IN",
134093
- /* 189 */ "in_op ::= NOT IN",
134094
- /* 190 */ "expr ::= expr in_op LP exprlist RP",
134095
- /* 191 */ "expr ::= LP select RP",
134096
- /* 192 */ "expr ::= expr in_op LP select RP",
134097
- /* 193 */ "expr ::= expr in_op nm dbnm paren_exprlist",
134098
- /* 194 */ "expr ::= EXISTS LP select RP",
134099
- /* 195 */ "expr ::= CASE case_operand case_exprlist case_else END",
134100
- /* 196 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
134101
- /* 197 */ "case_exprlist ::= WHEN expr THEN expr",
134102
- /* 198 */ "case_else ::= ELSE expr",
134103
- /* 199 */ "case_else ::=",
134104
- /* 200 */ "case_operand ::= expr",
134105
- /* 201 */ "case_operand ::=",
134106
- /* 202 */ "exprlist ::=",
134107
- /* 203 */ "nexprlist ::= nexprlist COMMA expr",
134108
- /* 204 */ "nexprlist ::= expr",
134109
- /* 205 */ "paren_exprlist ::=",
134110
- /* 206 */ "paren_exprlist ::= LP exprlist RP",
134111
- /* 207 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
134112
- /* 208 */ "uniqueflag ::= UNIQUE",
134113
- /* 209 */ "uniqueflag ::=",
134114
- /* 210 */ "eidlist_opt ::=",
134115
- /* 211 */ "eidlist_opt ::= LP eidlist RP",
134116
- /* 212 */ "eidlist ::= eidlist COMMA nm collate sortorder",
134117
- /* 213 */ "eidlist ::= nm collate sortorder",
134118
- /* 214 */ "collate ::=",
134119
- /* 215 */ "collate ::= COLLATE ID|STRING",
134120
- /* 216 */ "cmd ::= DROP INDEX ifexists fullname",
134121
- /* 217 */ "cmd ::= VACUUM",
134122
- /* 218 */ "cmd ::= VACUUM nm",
134123
- /* 219 */ "cmd ::= PRAGMA nm dbnm",
134124
- /* 220 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
134125
- /* 221 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
134126
- /* 222 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
134127
- /* 223 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
134128
- /* 224 */ "plus_num ::= PLUS INTEGER|FLOAT",
134129
- /* 225 */ "minus_num ::= MINUS INTEGER|FLOAT",
134130
- /* 226 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
134131
- /* 227 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
134132
- /* 228 */ "trigger_time ::= BEFORE",
134133
- /* 229 */ "trigger_time ::= AFTER",
134134
- /* 230 */ "trigger_time ::= INSTEAD OF",
134135
- /* 231 */ "trigger_time ::=",
134136
- /* 232 */ "trigger_event ::= DELETE|INSERT",
134137
- /* 233 */ "trigger_event ::= UPDATE",
134138
- /* 234 */ "trigger_event ::= UPDATE OF idlist",
134139
- /* 235 */ "when_clause ::=",
134140
- /* 236 */ "when_clause ::= WHEN expr",
134141
- /* 237 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
134142
- /* 238 */ "trigger_cmd_list ::= trigger_cmd SEMI",
134143
- /* 239 */ "trnm ::= nm DOT nm",
134144
- /* 240 */ "tridxby ::= INDEXED BY nm",
134145
- /* 241 */ "tridxby ::= NOT INDEXED",
134146
- /* 242 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
134147
- /* 243 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
134148
- /* 244 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
134149
- /* 245 */ "trigger_cmd ::= select",
134150
- /* 246 */ "expr ::= RAISE LP IGNORE RP",
134151
- /* 247 */ "expr ::= RAISE LP raisetype COMMA nm RP",
134152
- /* 248 */ "raisetype ::= ROLLBACK",
134153
- /* 249 */ "raisetype ::= ABORT",
134154
- /* 250 */ "raisetype ::= FAIL",
134155
- /* 251 */ "cmd ::= DROP TRIGGER ifexists fullname",
134156
- /* 252 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
134157
- /* 253 */ "cmd ::= DETACH database_kw_opt expr",
134158
- /* 254 */ "key_opt ::=",
134159
- /* 255 */ "key_opt ::= KEY expr",
134160
- /* 256 */ "cmd ::= REINDEX",
134161
- /* 257 */ "cmd ::= REINDEX nm dbnm",
134162
- /* 258 */ "cmd ::= ANALYZE",
134163
- /* 259 */ "cmd ::= ANALYZE nm dbnm",
134164
- /* 260 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
134165
- /* 261 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
134166
- /* 262 */ "add_column_fullname ::= fullname",
134167
- /* 263 */ "cmd ::= create_vtab",
134168
- /* 264 */ "cmd ::= create_vtab LP vtabarglist RP",
134169
- /* 265 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
134170
- /* 266 */ "vtabarg ::=",
134171
- /* 267 */ "vtabargtoken ::= ANY",
134172
- /* 268 */ "vtabargtoken ::= lp anylist RP",
134173
- /* 269 */ "lp ::= LP",
134174
- /* 270 */ "with ::=",
134175
- /* 271 */ "with ::= WITH wqlist",
134176
- /* 272 */ "with ::= WITH RECURSIVE wqlist",
134177
- /* 273 */ "wqlist ::= nm eidlist_opt AS LP select RP",
134178
- /* 274 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
134179
- /* 275 */ "input ::= cmdlist",
134180
- /* 276 */ "cmdlist ::= cmdlist ecmd",
134181
- /* 277 */ "cmdlist ::= ecmd",
134182
- /* 278 */ "ecmd ::= SEMI",
134183
- /* 279 */ "ecmd ::= explain cmdx SEMI",
134184
- /* 280 */ "explain ::=",
134185
- /* 281 */ "trans_opt ::=",
134186
- /* 282 */ "trans_opt ::= TRANSACTION",
134187
- /* 283 */ "trans_opt ::= TRANSACTION nm",
134188
- /* 284 */ "savepoint_opt ::= SAVEPOINT",
134189
- /* 285 */ "savepoint_opt ::=",
134190
- /* 286 */ "cmd ::= create_table create_table_args",
134191
- /* 287 */ "columnlist ::= columnlist COMMA columnname carglist",
134192
- /* 288 */ "columnlist ::= columnname carglist",
134193
- /* 289 */ "nm ::= ID|INDEXED",
134194
- /* 290 */ "nm ::= STRING",
134195
- /* 291 */ "nm ::= JOIN_KW",
134196
- /* 292 */ "typetoken ::= typename",
134197
- /* 293 */ "typename ::= ID|STRING",
134198
- /* 294 */ "signed ::= plus_num",
134199
- /* 295 */ "signed ::= minus_num",
134200
- /* 296 */ "carglist ::= carglist ccons",
134201
- /* 297 */ "carglist ::=",
134202
- /* 298 */ "ccons ::= NULL onconf",
134203
- /* 299 */ "conslist_opt ::= COMMA conslist",
134204
- /* 300 */ "conslist ::= conslist tconscomma tcons",
134205
- /* 301 */ "conslist ::= tcons",
134206
- /* 302 */ "tconscomma ::=",
134207
- /* 303 */ "defer_subclause_opt ::= defer_subclause",
134208
- /* 304 */ "resolvetype ::= raisetype",
134209
- /* 305 */ "selectnowith ::= oneselect",
134210
- /* 306 */ "oneselect ::= values",
134211
- /* 307 */ "sclp ::= selcollist COMMA",
134212
- /* 308 */ "as ::= ID|STRING",
134213
- /* 309 */ "expr ::= term",
134214
- /* 310 */ "exprlist ::= nexprlist",
134215
- /* 311 */ "nmnum ::= plus_num",
134216
- /* 312 */ "nmnum ::= nm",
134217
- /* 313 */ "nmnum ::= ON",
134218
- /* 314 */ "nmnum ::= DELETE",
134219
- /* 315 */ "nmnum ::= DEFAULT",
134220
- /* 316 */ "plus_num ::= INTEGER|FLOAT",
134221
- /* 317 */ "foreach_clause ::=",
134222
- /* 318 */ "foreach_clause ::= FOR EACH ROW",
134223
- /* 319 */ "trnm ::= nm",
134224
- /* 320 */ "tridxby ::=",
134225
- /* 321 */ "database_kw_opt ::= DATABASE",
134226
- /* 322 */ "database_kw_opt ::=",
134227
- /* 323 */ "kwcolumn_opt ::=",
134228
- /* 324 */ "kwcolumn_opt ::= COLUMNKW",
134229
- /* 325 */ "vtabarglist ::= vtabarg",
134230
- /* 326 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
134231
- /* 327 */ "vtabarg ::= vtabarg vtabargtoken",
134232
- /* 328 */ "anylist ::=",
134233
- /* 329 */ "anylist ::= anylist LP anylist RP",
134234
- /* 330 */ "anylist ::= anylist ANY",
134076
+ /* 158 */ "term ::= INTEGER",
134077
+ /* 159 */ "expr ::= VARIABLE",
134078
+ /* 160 */ "expr ::= expr COLLATE ID|STRING",
134079
+ /* 161 */ "expr ::= CAST LP expr AS typetoken RP",
134080
+ /* 162 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
134081
+ /* 163 */ "expr ::= ID|INDEXED LP STAR RP",
134082
+ /* 164 */ "term ::= CTIME_KW",
134083
+ /* 165 */ "expr ::= LP nexprlist COMMA expr RP",
134084
+ /* 166 */ "expr ::= expr AND expr",
134085
+ /* 167 */ "expr ::= expr OR expr",
134086
+ /* 168 */ "expr ::= expr LT|GT|GE|LE expr",
134087
+ /* 169 */ "expr ::= expr EQ|NE expr",
134088
+ /* 170 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
134089
+ /* 171 */ "expr ::= expr PLUS|MINUS expr",
134090
+ /* 172 */ "expr ::= expr STAR|SLASH|REM expr",
134091
+ /* 173 */ "expr ::= expr CONCAT expr",
134092
+ /* 174 */ "likeop ::= LIKE_KW|MATCH",
134093
+ /* 175 */ "likeop ::= NOT LIKE_KW|MATCH",
134094
+ /* 176 */ "expr ::= expr likeop expr",
134095
+ /* 177 */ "expr ::= expr likeop expr ESCAPE expr",
134096
+ /* 178 */ "expr ::= expr ISNULL|NOTNULL",
134097
+ /* 179 */ "expr ::= expr NOT NULL",
134098
+ /* 180 */ "expr ::= expr IS expr",
134099
+ /* 181 */ "expr ::= expr IS NOT expr",
134100
+ /* 182 */ "expr ::= NOT expr",
134101
+ /* 183 */ "expr ::= BITNOT expr",
134102
+ /* 184 */ "expr ::= MINUS expr",
134103
+ /* 185 */ "expr ::= PLUS expr",
134104
+ /* 186 */ "between_op ::= BETWEEN",
134105
+ /* 187 */ "between_op ::= NOT BETWEEN",
134106
+ /* 188 */ "expr ::= expr between_op expr AND expr",
134107
+ /* 189 */ "in_op ::= IN",
134108
+ /* 190 */ "in_op ::= NOT IN",
134109
+ /* 191 */ "expr ::= expr in_op LP exprlist RP",
134110
+ /* 192 */ "expr ::= LP select RP",
134111
+ /* 193 */ "expr ::= expr in_op LP select RP",
134112
+ /* 194 */ "expr ::= expr in_op nm dbnm paren_exprlist",
134113
+ /* 195 */ "expr ::= EXISTS LP select RP",
134114
+ /* 196 */ "expr ::= CASE case_operand case_exprlist case_else END",
134115
+ /* 197 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
134116
+ /* 198 */ "case_exprlist ::= WHEN expr THEN expr",
134117
+ /* 199 */ "case_else ::= ELSE expr",
134118
+ /* 200 */ "case_else ::=",
134119
+ /* 201 */ "case_operand ::= expr",
134120
+ /* 202 */ "case_operand ::=",
134121
+ /* 203 */ "exprlist ::=",
134122
+ /* 204 */ "nexprlist ::= nexprlist COMMA expr",
134123
+ /* 205 */ "nexprlist ::= expr",
134124
+ /* 206 */ "paren_exprlist ::=",
134125
+ /* 207 */ "paren_exprlist ::= LP exprlist RP",
134126
+ /* 208 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
134127
+ /* 209 */ "uniqueflag ::= UNIQUE",
134128
+ /* 210 */ "uniqueflag ::=",
134129
+ /* 211 */ "eidlist_opt ::=",
134130
+ /* 212 */ "eidlist_opt ::= LP eidlist RP",
134131
+ /* 213 */ "eidlist ::= eidlist COMMA nm collate sortorder",
134132
+ /* 214 */ "eidlist ::= nm collate sortorder",
134133
+ /* 215 */ "collate ::=",
134134
+ /* 216 */ "collate ::= COLLATE ID|STRING",
134135
+ /* 217 */ "cmd ::= DROP INDEX ifexists fullname",
134136
+ /* 218 */ "cmd ::= VACUUM",
134137
+ /* 219 */ "cmd ::= VACUUM nm",
134138
+ /* 220 */ "cmd ::= PRAGMA nm dbnm",
134139
+ /* 221 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
134140
+ /* 222 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
134141
+ /* 223 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
134142
+ /* 224 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
134143
+ /* 225 */ "plus_num ::= PLUS INTEGER|FLOAT",
134144
+ /* 226 */ "minus_num ::= MINUS INTEGER|FLOAT",
134145
+ /* 227 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
134146
+ /* 228 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
134147
+ /* 229 */ "trigger_time ::= BEFORE",
134148
+ /* 230 */ "trigger_time ::= AFTER",
134149
+ /* 231 */ "trigger_time ::= INSTEAD OF",
134150
+ /* 232 */ "trigger_time ::=",
134151
+ /* 233 */ "trigger_event ::= DELETE|INSERT",
134152
+ /* 234 */ "trigger_event ::= UPDATE",
134153
+ /* 235 */ "trigger_event ::= UPDATE OF idlist",
134154
+ /* 236 */ "when_clause ::=",
134155
+ /* 237 */ "when_clause ::= WHEN expr",
134156
+ /* 238 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
134157
+ /* 239 */ "trigger_cmd_list ::= trigger_cmd SEMI",
134158
+ /* 240 */ "trnm ::= nm DOT nm",
134159
+ /* 241 */ "tridxby ::= INDEXED BY nm",
134160
+ /* 242 */ "tridxby ::= NOT INDEXED",
134161
+ /* 243 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
134162
+ /* 244 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
134163
+ /* 245 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
134164
+ /* 246 */ "trigger_cmd ::= select",
134165
+ /* 247 */ "expr ::= RAISE LP IGNORE RP",
134166
+ /* 248 */ "expr ::= RAISE LP raisetype COMMA nm RP",
134167
+ /* 249 */ "raisetype ::= ROLLBACK",
134168
+ /* 250 */ "raisetype ::= ABORT",
134169
+ /* 251 */ "raisetype ::= FAIL",
134170
+ /* 252 */ "cmd ::= DROP TRIGGER ifexists fullname",
134171
+ /* 253 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
134172
+ /* 254 */ "cmd ::= DETACH database_kw_opt expr",
134173
+ /* 255 */ "key_opt ::=",
134174
+ /* 256 */ "key_opt ::= KEY expr",
134175
+ /* 257 */ "cmd ::= REINDEX",
134176
+ /* 258 */ "cmd ::= REINDEX nm dbnm",
134177
+ /* 259 */ "cmd ::= ANALYZE",
134178
+ /* 260 */ "cmd ::= ANALYZE nm dbnm",
134179
+ /* 261 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
134180
+ /* 262 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
134181
+ /* 263 */ "add_column_fullname ::= fullname",
134182
+ /* 264 */ "cmd ::= create_vtab",
134183
+ /* 265 */ "cmd ::= create_vtab LP vtabarglist RP",
134184
+ /* 266 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
134185
+ /* 267 */ "vtabarg ::=",
134186
+ /* 268 */ "vtabargtoken ::= ANY",
134187
+ /* 269 */ "vtabargtoken ::= lp anylist RP",
134188
+ /* 270 */ "lp ::= LP",
134189
+ /* 271 */ "with ::=",
134190
+ /* 272 */ "with ::= WITH wqlist",
134191
+ /* 273 */ "with ::= WITH RECURSIVE wqlist",
134192
+ /* 274 */ "wqlist ::= nm eidlist_opt AS LP select RP",
134193
+ /* 275 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
134194
+ /* 276 */ "input ::= cmdlist",
134195
+ /* 277 */ "cmdlist ::= cmdlist ecmd",
134196
+ /* 278 */ "cmdlist ::= ecmd",
134197
+ /* 279 */ "ecmd ::= SEMI",
134198
+ /* 280 */ "ecmd ::= explain cmdx SEMI",
134199
+ /* 281 */ "explain ::=",
134200
+ /* 282 */ "trans_opt ::=",
134201
+ /* 283 */ "trans_opt ::= TRANSACTION",
134202
+ /* 284 */ "trans_opt ::= TRANSACTION nm",
134203
+ /* 285 */ "savepoint_opt ::= SAVEPOINT",
134204
+ /* 286 */ "savepoint_opt ::=",
134205
+ /* 287 */ "cmd ::= create_table create_table_args",
134206
+ /* 288 */ "columnlist ::= columnlist COMMA columnname carglist",
134207
+ /* 289 */ "columnlist ::= columnname carglist",
134208
+ /* 290 */ "nm ::= ID|INDEXED",
134209
+ /* 291 */ "nm ::= STRING",
134210
+ /* 292 */ "nm ::= JOIN_KW",
134211
+ /* 293 */ "typetoken ::= typename",
134212
+ /* 294 */ "typename ::= ID|STRING",
134213
+ /* 295 */ "signed ::= plus_num",
134214
+ /* 296 */ "signed ::= minus_num",
134215
+ /* 297 */ "carglist ::= carglist ccons",
134216
+ /* 298 */ "carglist ::=",
134217
+ /* 299 */ "ccons ::= NULL onconf",
134218
+ /* 300 */ "conslist_opt ::= COMMA conslist",
134219
+ /* 301 */ "conslist ::= conslist tconscomma tcons",
134220
+ /* 302 */ "conslist ::= tcons",
134221
+ /* 303 */ "tconscomma ::=",
134222
+ /* 304 */ "defer_subclause_opt ::= defer_subclause",
134223
+ /* 305 */ "resolvetype ::= raisetype",
134224
+ /* 306 */ "selectnowith ::= oneselect",
134225
+ /* 307 */ "oneselect ::= values",
134226
+ /* 308 */ "sclp ::= selcollist COMMA",
134227
+ /* 309 */ "as ::= ID|STRING",
134228
+ /* 310 */ "expr ::= term",
134229
+ /* 311 */ "exprlist ::= nexprlist",
134230
+ /* 312 */ "nmnum ::= plus_num",
134231
+ /* 313 */ "nmnum ::= nm",
134232
+ /* 314 */ "nmnum ::= ON",
134233
+ /* 315 */ "nmnum ::= DELETE",
134234
+ /* 316 */ "nmnum ::= DEFAULT",
134235
+ /* 317 */ "plus_num ::= INTEGER|FLOAT",
134236
+ /* 318 */ "foreach_clause ::=",
134237
+ /* 319 */ "foreach_clause ::= FOR EACH ROW",
134238
+ /* 320 */ "trnm ::= nm",
134239
+ /* 321 */ "tridxby ::=",
134240
+ /* 322 */ "database_kw_opt ::= DATABASE",
134241
+ /* 323 */ "database_kw_opt ::=",
134242
+ /* 324 */ "kwcolumn_opt ::=",
134243
+ /* 325 */ "kwcolumn_opt ::= COLUMNKW",
134244
+ /* 326 */ "vtabarglist ::= vtabarg",
134245
+ /* 327 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
134246
+ /* 328 */ "vtabarg ::= vtabarg vtabargtoken",
134247
+ /* 329 */ "anylist ::=",
134248
+ /* 330 */ "anylist ::= anylist LP anylist RP",
134249
+ /* 331 */ "anylist ::= anylist ANY",
134235134250
};
134236134251
#endif /* NDEBUG */
134237134252
134238134253
134239134254
#if YYSTACKDEPTH<=0
@@ -134811,10 +134826,11 @@
134811134826
{ 173, 1 },
134812134827
{ 173, 3 },
134813134828
{ 173, 5 },
134814134829
{ 172, 1 },
134815134830
{ 172, 1 },
134831
+ { 172, 1 },
134816134832
{ 173, 1 },
134817134833
{ 173, 3 },
134818134834
{ 173, 6 },
134819134835
{ 173, 5 },
134820134836
{ 173, 4 },
@@ -135105,11 +135121,11 @@
135105135121
case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
135106135122
case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
135107135123
case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
135108135124
case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
135109135125
case 90: /* distinct ::= */ yytestcase(yyruleno==90);
135110
- case 214: /* collate ::= */ yytestcase(yyruleno==214);
135126
+ case 215: /* collate ::= */ yytestcase(yyruleno==215);
135111135127
{yymsp[1].minor.yy194 = 0;}
135112135128
break;
135113135129
case 17: /* ifnotexists ::= IF NOT EXISTS */
135114135130
{yymsp[-2].minor.yy194 = 1;}
135115135131
break;
@@ -135249,13 +135265,13 @@
135249135265
case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144);
135250135266
{yymsp[-1].minor.yy194 = yymsp[0].minor.yy194;}
135251135267
break;
135252135268
case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
135253135269
case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
135254
- case 186: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==186);
135255
- case 189: /* in_op ::= NOT IN */ yytestcase(yyruleno==189);
135256
- case 215: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==215);
135270
+ case 187: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==187);
135271
+ case 190: /* in_op ::= NOT IN */ yytestcase(yyruleno==190);
135272
+ case 216: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==216);
135257135273
{yymsp[-1].minor.yy194 = 1;}
135258135274
break;
135259135275
case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
135260135276
{yymsp[-1].minor.yy194 = 0;}
135261135277
break;
@@ -135415,13 +135431,13 @@
135415135431
{yymsp[0].minor.yy194 = SF_All;}
135416135432
break;
135417135433
case 91: /* sclp ::= */
135418135434
case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119);
135419135435
case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126);
135420
- case 202: /* exprlist ::= */ yytestcase(yyruleno==202);
135421
- case 205: /* paren_exprlist ::= */ yytestcase(yyruleno==205);
135422
- case 210: /* eidlist_opt ::= */ yytestcase(yyruleno==210);
135436
+ case 203: /* exprlist ::= */ yytestcase(yyruleno==203);
135437
+ case 206: /* paren_exprlist ::= */ yytestcase(yyruleno==206);
135438
+ case 211: /* eidlist_opt ::= */ yytestcase(yyruleno==211);
135423135439
{yymsp[1].minor.yy148 = 0;}
135424135440
break;
135425135441
case 92: /* selcollist ::= sclp expr as */
135426135442
{
135427135443
yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy148, yymsp[-1].minor.yy190.pExpr);
@@ -135435,20 +135451,20 @@
135435135451
yymsp[-1].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy148, p);
135436135452
}
135437135453
break;
135438135454
case 94: /* selcollist ::= sclp nm DOT STAR */
135439135455
{
135440
- Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0, &yymsp[0].minor.yy0);
135456
+ Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0, 0);
135441135457
Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
135442135458
Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
135443135459
yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, pDot);
135444135460
}
135445135461
break;
135446135462
case 95: /* as ::= AS nm */
135447135463
case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106);
135448
- case 224: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
135449
- case 225: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==225);
135464
+ case 225: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==225);
135465
+ case 226: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==226);
135450135466
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
135451135467
break;
135452135468
case 97: /* from ::= */
135453135469
{yymsp[1].minor.yy185 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy185));}
135454135470
break;
@@ -135527,18 +135543,18 @@
135527135543
{yymsp[-3].minor.yy194 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
135528135544
break;
135529135545
case 112: /* on_opt ::= ON expr */
135530135546
case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129);
135531135547
case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136);
135532
- case 198: /* case_else ::= ELSE expr */ yytestcase(yyruleno==198);
135548
+ case 199: /* case_else ::= ELSE expr */ yytestcase(yyruleno==199);
135533135549
{yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr;}
135534135550
break;
135535135551
case 113: /* on_opt ::= */
135536135552
case 128: /* having_opt ::= */ yytestcase(yyruleno==128);
135537135553
case 135: /* where_opt ::= */ yytestcase(yyruleno==135);
135538
- case 199: /* case_else ::= */ yytestcase(yyruleno==199);
135539
- case 201: /* case_operand ::= */ yytestcase(yyruleno==201);
135554
+ case 200: /* case_else ::= */ yytestcase(yyruleno==200);
135555
+ case 202: /* case_operand ::= */ yytestcase(yyruleno==202);
135540135556
{yymsp[1].minor.yy72 = 0;}
135541135557
break;
135542135558
case 115: /* indexed_opt ::= INDEXED BY nm */
135543135559
{yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
135544135560
break;
@@ -135650,37 +135666,46 @@
135650135666
break;
135651135667
case 150: /* expr ::= LP expr RP */
135652135668
{spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/ yymsp[-2].minor.yy190.pExpr = yymsp[-1].minor.yy190.pExpr;}
135653135669
break;
135654135670
case 151: /* term ::= NULL */
135655
- case 156: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==156);
135671
+ case 156: /* term ::= FLOAT|BLOB */ yytestcase(yyruleno==156);
135656135672
case 157: /* term ::= STRING */ yytestcase(yyruleno==157);
135657135673
{spanExpr(&yymsp[0].minor.yy190,pParse,yymsp[0].major,yymsp[0].minor.yy0);/*A-overwrites-X*/}
135658135674
break;
135659135675
case 152: /* expr ::= ID|INDEXED */
135660135676
case 153: /* expr ::= JOIN_KW */ yytestcase(yyruleno==153);
135661135677
{spanExpr(&yymsp[0].minor.yy190,pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
135662135678
break;
135663135679
case 154: /* expr ::= nm DOT nm */
135664135680
{
135665
- Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
135666
- Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
135681
+ Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
135682
+ Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
135667135683
spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135668135684
yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
135669135685
}
135670135686
break;
135671135687
case 155: /* expr ::= nm DOT nm DOT nm */
135672135688
{
135673
- Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
135674
- Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
135675
- Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
135689
+ Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
135690
+ Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
135691
+ Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
135676135692
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
135677135693
spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135678135694
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
135679135695
}
135680135696
break;
135681
- case 158: /* expr ::= VARIABLE */
135697
+ case 158: /* term ::= INTEGER */
135698
+{
135699
+ yylhsminor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
135700
+ yylhsminor.yy190.zStart = yymsp[0].minor.yy0.z;
135701
+ yylhsminor.yy190.zEnd = yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n;
135702
+ if( yylhsminor.yy190.pExpr ) yylhsminor.yy190.pExpr->flags |= EP_Leaf;
135703
+}
135704
+ yymsp[0].minor.yy190 = yylhsminor.yy190;
135705
+ break;
135706
+ case 159: /* expr ::= VARIABLE */
135682135707
{
135683135708
if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
135684135709
spanExpr(&yymsp[0].minor.yy190, pParse, TK_VARIABLE, yymsp[0].minor.yy0);
135685135710
sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy190.pExpr);
135686135711
}else{
@@ -135692,29 +135717,29 @@
135692135717
spanSet(&yymsp[0].minor.yy190, &t, &t);
135693135718
if( pParse->nested==0 ){
135694135719
sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
135695135720
yymsp[0].minor.yy190.pExpr = 0;
135696135721
}else{
135697
- yymsp[0].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &t);
135722
+ yymsp[0].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, 0);
135698135723
if( yymsp[0].minor.yy190.pExpr ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy190.pExpr->iTable);
135699135724
}
135700135725
}
135701135726
}
135702135727
break;
135703
- case 159: /* expr ::= expr COLLATE ID|STRING */
135728
+ case 160: /* expr ::= expr COLLATE ID|STRING */
135704135729
{
135705135730
yymsp[-2].minor.yy190.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy190.pExpr, &yymsp[0].minor.yy0, 1);
135706135731
yymsp[-2].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135707135732
}
135708135733
break;
135709
- case 160: /* expr ::= CAST LP expr AS typetoken RP */
135734
+ case 161: /* expr ::= CAST LP expr AS typetoken RP */
135710135735
{
135711135736
spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135712135737
yymsp[-5].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy190.pExpr, 0, &yymsp[-1].minor.yy0);
135713135738
}
135714135739
break;
135715
- case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
135740
+ case 162: /* expr ::= ID|INDEXED LP distinct exprlist RP */
135716135741
{
135717135742
if( yymsp[-1].minor.yy148 && yymsp[-1].minor.yy148->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
135718135743
sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
135719135744
}
135720135745
yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy148, &yymsp[-4].minor.yy0);
@@ -135723,25 +135748,25 @@
135723135748
yylhsminor.yy190.pExpr->flags |= EP_Distinct;
135724135749
}
135725135750
}
135726135751
yymsp[-4].minor.yy190 = yylhsminor.yy190;
135727135752
break;
135728
- case 162: /* expr ::= ID|INDEXED LP STAR RP */
135753
+ case 163: /* expr ::= ID|INDEXED LP STAR RP */
135729135754
{
135730135755
yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
135731135756
spanSet(&yylhsminor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
135732135757
}
135733135758
yymsp[-3].minor.yy190 = yylhsminor.yy190;
135734135759
break;
135735
- case 163: /* term ::= CTIME_KW */
135760
+ case 164: /* term ::= CTIME_KW */
135736135761
{
135737135762
yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
135738135763
spanSet(&yylhsminor.yy190, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
135739135764
}
135740135765
yymsp[0].minor.yy190 = yylhsminor.yy190;
135741135766
break;
135742
- case 164: /* expr ::= LP nexprlist COMMA expr RP */
135767
+ case 165: /* expr ::= LP nexprlist COMMA expr RP */
135743135768
{
135744135769
ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy148, yymsp[-1].minor.yy190.pExpr);
135745135770
yylhsminor.yy190.pExpr = sqlite3PExpr(pParse, TK_VECTOR, 0, 0, 0);
135746135771
if( yylhsminor.yy190.pExpr ){
135747135772
yylhsminor.yy190.pExpr->x.pList = pList;
@@ -135750,82 +135775,86 @@
135750135775
sqlite3ExprListDelete(pParse->db, pList);
135751135776
}
135752135777
}
135753135778
yymsp[-4].minor.yy190 = yylhsminor.yy190;
135754135779
break;
135755
- case 165: /* expr ::= expr AND expr */
135756
- case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
135757
- case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
135758
- case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
135759
- case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
135760
- case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
135761
- case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
135762
- case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
135780
+ case 166: /* expr ::= expr AND expr */
135781
+ case 167: /* expr ::= expr OR expr */ yytestcase(yyruleno==167);
135782
+ case 168: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==168);
135783
+ case 169: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==169);
135784
+ case 170: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==170);
135785
+ case 171: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==171);
135786
+ case 172: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==172);
135787
+ case 173: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==173);
135763135788
{spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);}
135764135789
break;
135765
- case 173: /* likeop ::= LIKE_KW|MATCH */
135766
-{yymsp[0].minor.yy392.eOperator = yymsp[0].minor.yy0; yymsp[0].minor.yy392.bNot = 0;/*A-overwrites-X*/}
135790
+ case 174: /* likeop ::= LIKE_KW|MATCH */
135791
+{yymsp[0].minor.yy0=yymsp[0].minor.yy0;/*A-overwrites-X*/}
135767135792
break;
135768
- case 174: /* likeop ::= NOT LIKE_KW|MATCH */
135769
-{yymsp[-1].minor.yy392.eOperator = yymsp[0].minor.yy0; yymsp[-1].minor.yy392.bNot = 1;}
135793
+ case 175: /* likeop ::= NOT LIKE_KW|MATCH */
135794
+{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
135770135795
break;
135771
- case 175: /* expr ::= expr likeop expr */
135796
+ case 176: /* expr ::= expr likeop expr */
135772135797
{
135773135798
ExprList *pList;
135799
+ int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
135800
+ yymsp[-1].minor.yy0.n &= 0x7fffffff;
135774135801
pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy190.pExpr);
135775135802
pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy190.pExpr);
135776
- yymsp[-2].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy392.eOperator);
135777
- exprNot(pParse, yymsp[-1].minor.yy392.bNot, &yymsp[-2].minor.yy190);
135803
+ yymsp[-2].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
135804
+ exprNot(pParse, bNot, &yymsp[-2].minor.yy190);
135778135805
yymsp[-2].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135779135806
if( yymsp[-2].minor.yy190.pExpr ) yymsp[-2].minor.yy190.pExpr->flags |= EP_InfixFunc;
135780135807
}
135781135808
break;
135782
- case 176: /* expr ::= expr likeop expr ESCAPE expr */
135809
+ case 177: /* expr ::= expr likeop expr ESCAPE expr */
135783135810
{
135784135811
ExprList *pList;
135812
+ int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
135813
+ yymsp[-3].minor.yy0.n &= 0x7fffffff;
135785135814
pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135786135815
pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy190.pExpr);
135787135816
pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
135788
- yymsp[-4].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy392.eOperator);
135789
- exprNot(pParse, yymsp[-3].minor.yy392.bNot, &yymsp[-4].minor.yy190);
135817
+ yymsp[-4].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
135818
+ exprNot(pParse, bNot, &yymsp[-4].minor.yy190);
135790135819
yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135791135820
if( yymsp[-4].minor.yy190.pExpr ) yymsp[-4].minor.yy190.pExpr->flags |= EP_InfixFunc;
135792135821
}
135793135822
break;
135794
- case 177: /* expr ::= expr ISNULL|NOTNULL */
135823
+ case 178: /* expr ::= expr ISNULL|NOTNULL */
135795135824
{spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy190,&yymsp[0].minor.yy0);}
135796135825
break;
135797
- case 178: /* expr ::= expr NOT NULL */
135826
+ case 179: /* expr ::= expr NOT NULL */
135798135827
{spanUnaryPostfix(pParse,TK_NOTNULL,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy0);}
135799135828
break;
135800
- case 179: /* expr ::= expr IS expr */
135829
+ case 180: /* expr ::= expr IS expr */
135801135830
{
135802135831
spanBinaryExpr(pParse,TK_IS,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);
135803135832
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-2].minor.yy190.pExpr, TK_ISNULL);
135804135833
}
135805135834
break;
135806
- case 180: /* expr ::= expr IS NOT expr */
135835
+ case 181: /* expr ::= expr IS NOT expr */
135807135836
{
135808135837
spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy190,&yymsp[0].minor.yy190);
135809135838
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, TK_NOTNULL);
135810135839
}
135811135840
break;
135812
- case 181: /* expr ::= NOT expr */
135813
- case 182: /* expr ::= BITNOT expr */ yytestcase(yyruleno==182);
135841
+ case 182: /* expr ::= NOT expr */
135842
+ case 183: /* expr ::= BITNOT expr */ yytestcase(yyruleno==183);
135814135843
{spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,yymsp[-1].major,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135815135844
break;
135816
- case 183: /* expr ::= MINUS expr */
135845
+ case 184: /* expr ::= MINUS expr */
135817135846
{spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UMINUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135818135847
break;
135819
- case 184: /* expr ::= PLUS expr */
135848
+ case 185: /* expr ::= PLUS expr */
135820135849
{spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UPLUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135821135850
break;
135822
- case 185: /* between_op ::= BETWEEN */
135823
- case 188: /* in_op ::= IN */ yytestcase(yyruleno==188);
135851
+ case 186: /* between_op ::= BETWEEN */
135852
+ case 189: /* in_op ::= IN */ yytestcase(yyruleno==189);
135824135853
{yymsp[0].minor.yy194 = 0;}
135825135854
break;
135826
- case 187: /* expr ::= expr between_op expr AND expr */
135855
+ case 188: /* expr ::= expr between_op expr AND expr */
135827135856
{
135828135857
ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135829135858
pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
135830135859
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy190.pExpr, 0, 0);
135831135860
if( yymsp[-4].minor.yy190.pExpr ){
@@ -135835,11 +135864,11 @@
135835135864
}
135836135865
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135837135866
yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135838135867
}
135839135868
break;
135840
- case 190: /* expr ::= expr in_op LP exprlist RP */
135869
+ case 191: /* expr ::= expr in_op LP exprlist RP */
135841135870
{
135842135871
if( yymsp[-1].minor.yy148==0 ){
135843135872
/* Expressions of the form
135844135873
**
135845135874
** expr1 IN ()
@@ -135888,26 +135917,26 @@
135888135917
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135889135918
}
135890135919
yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135891135920
}
135892135921
break;
135893
- case 191: /* expr ::= LP select RP */
135922
+ case 192: /* expr ::= LP select RP */
135894135923
{
135895135924
spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
135896135925
yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
135897135926
sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy190.pExpr, yymsp[-1].minor.yy243);
135898135927
}
135899135928
break;
135900
- case 192: /* expr ::= expr in_op LP select RP */
135929
+ case 193: /* expr ::= expr in_op LP select RP */
135901135930
{
135902135931
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0, 0);
135903135932
sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, yymsp[-1].minor.yy243);
135904135933
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135905135934
yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135906135935
}
135907135936
break;
135908
- case 193: /* expr ::= expr in_op nm dbnm paren_exprlist */
135937
+ case 194: /* expr ::= expr in_op nm dbnm paren_exprlist */
135909135938
{
135910135939
SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
135911135940
Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
135912135941
if( yymsp[0].minor.yy148 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy148);
135913135942
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0, 0);
@@ -135914,19 +135943,19 @@
135914135943
sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, pSelect);
135915135944
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135916135945
yymsp[-4].minor.yy190.zEnd = yymsp[-1].minor.yy0.z ? &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n] : &yymsp[-2].minor.yy0.z[yymsp[-2].minor.yy0.n];
135917135946
}
135918135947
break;
135919
- case 194: /* expr ::= EXISTS LP select RP */
135948
+ case 195: /* expr ::= EXISTS LP select RP */
135920135949
{
135921135950
Expr *p;
135922135951
spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
135923135952
p = yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
135924135953
sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy243);
135925135954
}
135926135955
break;
135927
- case 195: /* expr ::= CASE case_operand case_exprlist case_else END */
135956
+ case 196: /* expr ::= CASE case_operand case_exprlist case_else END */
135928135957
{
135929135958
spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-C*/
135930135959
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy72, 0, 0);
135931135960
if( yymsp[-4].minor.yy190.pExpr ){
135932135961
yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy72 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[-1].minor.yy72) : yymsp[-2].minor.yy148;
@@ -135935,334 +135964,334 @@
135935135964
sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy148);
135936135965
sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy72);
135937135966
}
135938135967
}
135939135968
break;
135940
- case 196: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
135969
+ case 197: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
135941135970
{
135942135971
yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[-2].minor.yy190.pExpr);
135943135972
yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[0].minor.yy190.pExpr);
135944135973
}
135945135974
break;
135946
- case 197: /* case_exprlist ::= WHEN expr THEN expr */
135975
+ case 198: /* case_exprlist ::= WHEN expr THEN expr */
135947135976
{
135948135977
yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135949135978
yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, yymsp[0].minor.yy190.pExpr);
135950135979
}
135951135980
break;
135952
- case 200: /* case_operand ::= expr */
135981
+ case 201: /* case_operand ::= expr */
135953135982
{yymsp[0].minor.yy72 = yymsp[0].minor.yy190.pExpr; /*A-overwrites-X*/}
135954135983
break;
135955
- case 203: /* nexprlist ::= nexprlist COMMA expr */
135984
+ case 204: /* nexprlist ::= nexprlist COMMA expr */
135956135985
{yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[0].minor.yy190.pExpr);}
135957135986
break;
135958
- case 204: /* nexprlist ::= expr */
135987
+ case 205: /* nexprlist ::= expr */
135959135988
{yymsp[0].minor.yy148 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy190.pExpr); /*A-overwrites-Y*/}
135960135989
break;
135961
- case 206: /* paren_exprlist ::= LP exprlist RP */
135962
- case 211: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==211);
135990
+ case 207: /* paren_exprlist ::= LP exprlist RP */
135991
+ case 212: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==212);
135963135992
{yymsp[-2].minor.yy148 = yymsp[-1].minor.yy148;}
135964135993
break;
135965
- case 207: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
135994
+ case 208: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
135966135995
{
135967135996
sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
135968135997
sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy148, yymsp[-10].minor.yy194,
135969135998
&yymsp[-11].minor.yy0, yymsp[0].minor.yy72, SQLITE_SO_ASC, yymsp[-8].minor.yy194, SQLITE_IDXTYPE_APPDEF);
135970135999
}
135971136000
break;
135972
- case 208: /* uniqueflag ::= UNIQUE */
135973
- case 249: /* raisetype ::= ABORT */ yytestcase(yyruleno==249);
136001
+ case 209: /* uniqueflag ::= UNIQUE */
136002
+ case 250: /* raisetype ::= ABORT */ yytestcase(yyruleno==250);
135974136003
{yymsp[0].minor.yy194 = OE_Abort;}
135975136004
break;
135976
- case 209: /* uniqueflag ::= */
136005
+ case 210: /* uniqueflag ::= */
135977136006
{yymsp[1].minor.yy194 = OE_None;}
135978136007
break;
135979
- case 212: /* eidlist ::= eidlist COMMA nm collate sortorder */
136008
+ case 213: /* eidlist ::= eidlist COMMA nm collate sortorder */
135980136009
{
135981136010
yymsp[-4].minor.yy148 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy148, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194);
135982136011
}
135983136012
break;
135984
- case 213: /* eidlist ::= nm collate sortorder */
136013
+ case 214: /* eidlist ::= nm collate sortorder */
135985136014
{
135986136015
yymsp[-2].minor.yy148 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194); /*A-overwrites-Y*/
135987136016
}
135988136017
break;
135989
- case 216: /* cmd ::= DROP INDEX ifexists fullname */
136018
+ case 217: /* cmd ::= DROP INDEX ifexists fullname */
135990136019
{sqlite3DropIndex(pParse, yymsp[0].minor.yy185, yymsp[-1].minor.yy194);}
135991136020
break;
135992
- case 217: /* cmd ::= VACUUM */
136021
+ case 218: /* cmd ::= VACUUM */
135993136022
{sqlite3Vacuum(pParse,0);}
135994136023
break;
135995
- case 218: /* cmd ::= VACUUM nm */
136024
+ case 219: /* cmd ::= VACUUM nm */
135996136025
{sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
135997136026
break;
135998
- case 219: /* cmd ::= PRAGMA nm dbnm */
136027
+ case 220: /* cmd ::= PRAGMA nm dbnm */
135999136028
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
136000136029
break;
136001
- case 220: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
136030
+ case 221: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
136002136031
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
136003136032
break;
136004
- case 221: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
136033
+ case 222: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
136005136034
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
136006136035
break;
136007
- case 222: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
136036
+ case 223: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
136008136037
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
136009136038
break;
136010
- case 223: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
136039
+ case 224: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
136011136040
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
136012136041
break;
136013
- case 226: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
136042
+ case 227: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
136014136043
{
136015136044
Token all;
136016136045
all.z = yymsp[-3].minor.yy0.z;
136017136046
all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
136018136047
sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy145, &all);
136019136048
}
136020136049
break;
136021
- case 227: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
136050
+ case 228: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
136022136051
{
136023136052
sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy194, yymsp[-4].minor.yy332.a, yymsp[-4].minor.yy332.b, yymsp[-2].minor.yy185, yymsp[0].minor.yy72, yymsp[-10].minor.yy194, yymsp[-8].minor.yy194);
136024136053
yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
136025136054
}
136026136055
break;
136027
- case 228: /* trigger_time ::= BEFORE */
136056
+ case 229: /* trigger_time ::= BEFORE */
136028136057
{ yymsp[0].minor.yy194 = TK_BEFORE; }
136029136058
break;
136030
- case 229: /* trigger_time ::= AFTER */
136059
+ case 230: /* trigger_time ::= AFTER */
136031136060
{ yymsp[0].minor.yy194 = TK_AFTER; }
136032136061
break;
136033
- case 230: /* trigger_time ::= INSTEAD OF */
136062
+ case 231: /* trigger_time ::= INSTEAD OF */
136034136063
{ yymsp[-1].minor.yy194 = TK_INSTEAD;}
136035136064
break;
136036
- case 231: /* trigger_time ::= */
136065
+ case 232: /* trigger_time ::= */
136037136066
{ yymsp[1].minor.yy194 = TK_BEFORE; }
136038136067
break;
136039
- case 232: /* trigger_event ::= DELETE|INSERT */
136040
- case 233: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==233);
136068
+ case 233: /* trigger_event ::= DELETE|INSERT */
136069
+ case 234: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==234);
136041136070
{yymsp[0].minor.yy332.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy332.b = 0;}
136042136071
break;
136043
- case 234: /* trigger_event ::= UPDATE OF idlist */
136072
+ case 235: /* trigger_event ::= UPDATE OF idlist */
136044136073
{yymsp[-2].minor.yy332.a = TK_UPDATE; yymsp[-2].minor.yy332.b = yymsp[0].minor.yy254;}
136045136074
break;
136046
- case 235: /* when_clause ::= */
136047
- case 254: /* key_opt ::= */ yytestcase(yyruleno==254);
136075
+ case 236: /* when_clause ::= */
136076
+ case 255: /* key_opt ::= */ yytestcase(yyruleno==255);
136048136077
{ yymsp[1].minor.yy72 = 0; }
136049136078
break;
136050
- case 236: /* when_clause ::= WHEN expr */
136051
- case 255: /* key_opt ::= KEY expr */ yytestcase(yyruleno==255);
136079
+ case 237: /* when_clause ::= WHEN expr */
136080
+ case 256: /* key_opt ::= KEY expr */ yytestcase(yyruleno==256);
136052136081
{ yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr; }
136053136082
break;
136054
- case 237: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
136083
+ case 238: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
136055136084
{
136056136085
assert( yymsp[-2].minor.yy145!=0 );
136057136086
yymsp[-2].minor.yy145->pLast->pNext = yymsp[-1].minor.yy145;
136058136087
yymsp[-2].minor.yy145->pLast = yymsp[-1].minor.yy145;
136059136088
}
136060136089
break;
136061
- case 238: /* trigger_cmd_list ::= trigger_cmd SEMI */
136090
+ case 239: /* trigger_cmd_list ::= trigger_cmd SEMI */
136062136091
{
136063136092
assert( yymsp[-1].minor.yy145!=0 );
136064136093
yymsp[-1].minor.yy145->pLast = yymsp[-1].minor.yy145;
136065136094
}
136066136095
break;
136067
- case 239: /* trnm ::= nm DOT nm */
136096
+ case 240: /* trnm ::= nm DOT nm */
136068136097
{
136069136098
yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
136070136099
sqlite3ErrorMsg(pParse,
136071136100
"qualified table names are not allowed on INSERT, UPDATE, and DELETE "
136072136101
"statements within triggers");
136073136102
}
136074136103
break;
136075
- case 240: /* tridxby ::= INDEXED BY nm */
136104
+ case 241: /* tridxby ::= INDEXED BY nm */
136076136105
{
136077136106
sqlite3ErrorMsg(pParse,
136078136107
"the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
136079136108
"within triggers");
136080136109
}
136081136110
break;
136082
- case 241: /* tridxby ::= NOT INDEXED */
136111
+ case 242: /* tridxby ::= NOT INDEXED */
136083136112
{
136084136113
sqlite3ErrorMsg(pParse,
136085136114
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
136086136115
"within triggers");
136087136116
}
136088136117
break;
136089
- case 242: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
136118
+ case 243: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
136090136119
{yymsp[-6].minor.yy145 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy148, yymsp[0].minor.yy72, yymsp[-5].minor.yy194);}
136091136120
break;
136092
- case 243: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
136121
+ case 244: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
136093136122
{yymsp[-4].minor.yy145 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy254, yymsp[0].minor.yy243, yymsp[-4].minor.yy194);/*A-overwrites-R*/}
136094136123
break;
136095
- case 244: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
136124
+ case 245: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
136096136125
{yymsp[-4].minor.yy145 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy72);}
136097136126
break;
136098
- case 245: /* trigger_cmd ::= select */
136127
+ case 246: /* trigger_cmd ::= select */
136099136128
{yymsp[0].minor.yy145 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy243); /*A-overwrites-X*/}
136100136129
break;
136101
- case 246: /* expr ::= RAISE LP IGNORE RP */
136130
+ case 247: /* expr ::= RAISE LP IGNORE RP */
136102136131
{
136103136132
spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
136104136133
yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0);
136105136134
if( yymsp[-3].minor.yy190.pExpr ){
136106136135
yymsp[-3].minor.yy190.pExpr->affinity = OE_Ignore;
136107136136
}
136108136137
}
136109136138
break;
136110
- case 247: /* expr ::= RAISE LP raisetype COMMA nm RP */
136139
+ case 248: /* expr ::= RAISE LP raisetype COMMA nm RP */
136111136140
{
136112136141
spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
136113136142
yymsp[-5].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0);
136114136143
if( yymsp[-5].minor.yy190.pExpr ) {
136115136144
yymsp[-5].minor.yy190.pExpr->affinity = (char)yymsp[-3].minor.yy194;
136116136145
}
136117136146
}
136118136147
break;
136119
- case 248: /* raisetype ::= ROLLBACK */
136148
+ case 249: /* raisetype ::= ROLLBACK */
136120136149
{yymsp[0].minor.yy194 = OE_Rollback;}
136121136150
break;
136122
- case 250: /* raisetype ::= FAIL */
136151
+ case 251: /* raisetype ::= FAIL */
136123136152
{yymsp[0].minor.yy194 = OE_Fail;}
136124136153
break;
136125
- case 251: /* cmd ::= DROP TRIGGER ifexists fullname */
136154
+ case 252: /* cmd ::= DROP TRIGGER ifexists fullname */
136126136155
{
136127136156
sqlite3DropTrigger(pParse,yymsp[0].minor.yy185,yymsp[-1].minor.yy194);
136128136157
}
136129136158
break;
136130
- case 252: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
136159
+ case 253: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
136131136160
{
136132136161
sqlite3Attach(pParse, yymsp[-3].minor.yy190.pExpr, yymsp[-1].minor.yy190.pExpr, yymsp[0].minor.yy72);
136133136162
}
136134136163
break;
136135
- case 253: /* cmd ::= DETACH database_kw_opt expr */
136164
+ case 254: /* cmd ::= DETACH database_kw_opt expr */
136136136165
{
136137136166
sqlite3Detach(pParse, yymsp[0].minor.yy190.pExpr);
136138136167
}
136139136168
break;
136140
- case 256: /* cmd ::= REINDEX */
136169
+ case 257: /* cmd ::= REINDEX */
136141136170
{sqlite3Reindex(pParse, 0, 0);}
136142136171
break;
136143
- case 257: /* cmd ::= REINDEX nm dbnm */
136172
+ case 258: /* cmd ::= REINDEX nm dbnm */
136144136173
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
136145136174
break;
136146
- case 258: /* cmd ::= ANALYZE */
136175
+ case 259: /* cmd ::= ANALYZE */
136147136176
{sqlite3Analyze(pParse, 0, 0);}
136148136177
break;
136149
- case 259: /* cmd ::= ANALYZE nm dbnm */
136178
+ case 260: /* cmd ::= ANALYZE nm dbnm */
136150136179
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
136151136180
break;
136152
- case 260: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
136181
+ case 261: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
136153136182
{
136154136183
sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy185,&yymsp[0].minor.yy0);
136155136184
}
136156136185
break;
136157
- case 261: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
136186
+ case 262: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
136158136187
{
136159136188
yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
136160136189
sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
136161136190
}
136162136191
break;
136163
- case 262: /* add_column_fullname ::= fullname */
136192
+ case 263: /* add_column_fullname ::= fullname */
136164136193
{
136165136194
disableLookaside(pParse);
136166136195
sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy185);
136167136196
}
136168136197
break;
136169
- case 263: /* cmd ::= create_vtab */
136198
+ case 264: /* cmd ::= create_vtab */
136170136199
{sqlite3VtabFinishParse(pParse,0);}
136171136200
break;
136172
- case 264: /* cmd ::= create_vtab LP vtabarglist RP */
136201
+ case 265: /* cmd ::= create_vtab LP vtabarglist RP */
136173136202
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
136174136203
break;
136175
- case 265: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
136204
+ case 266: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
136176136205
{
136177136206
sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy194);
136178136207
}
136179136208
break;
136180
- case 266: /* vtabarg ::= */
136209
+ case 267: /* vtabarg ::= */
136181136210
{sqlite3VtabArgInit(pParse);}
136182136211
break;
136183
- case 267: /* vtabargtoken ::= ANY */
136184
- case 268: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==268);
136185
- case 269: /* lp ::= LP */ yytestcase(yyruleno==269);
136212
+ case 268: /* vtabargtoken ::= ANY */
136213
+ case 269: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==269);
136214
+ case 270: /* lp ::= LP */ yytestcase(yyruleno==270);
136186136215
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
136187136216
break;
136188
- case 270: /* with ::= */
136217
+ case 271: /* with ::= */
136189136218
{yymsp[1].minor.yy285 = 0;}
136190136219
break;
136191
- case 271: /* with ::= WITH wqlist */
136220
+ case 272: /* with ::= WITH wqlist */
136192136221
{ yymsp[-1].minor.yy285 = yymsp[0].minor.yy285; }
136193136222
break;
136194
- case 272: /* with ::= WITH RECURSIVE wqlist */
136223
+ case 273: /* with ::= WITH RECURSIVE wqlist */
136195136224
{ yymsp[-2].minor.yy285 = yymsp[0].minor.yy285; }
136196136225
break;
136197
- case 273: /* wqlist ::= nm eidlist_opt AS LP select RP */
136226
+ case 274: /* wqlist ::= nm eidlist_opt AS LP select RP */
136198136227
{
136199136228
yymsp[-5].minor.yy285 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243); /*A-overwrites-X*/
136200136229
}
136201136230
break;
136202
- case 274: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
136231
+ case 275: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
136203136232
{
136204136233
yymsp[-7].minor.yy285 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy285, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243);
136205136234
}
136206136235
break;
136207136236
default:
136208
- /* (275) input ::= cmdlist */ yytestcase(yyruleno==275);
136209
- /* (276) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==276);
136210
- /* (277) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=277);
136211
- /* (278) ecmd ::= SEMI */ yytestcase(yyruleno==278);
136212
- /* (279) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==279);
136213
- /* (280) explain ::= */ yytestcase(yyruleno==280);
136214
- /* (281) trans_opt ::= */ yytestcase(yyruleno==281);
136215
- /* (282) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==282);
136216
- /* (283) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==283);
136217
- /* (284) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==284);
136218
- /* (285) savepoint_opt ::= */ yytestcase(yyruleno==285);
136219
- /* (286) cmd ::= create_table create_table_args */ yytestcase(yyruleno==286);
136220
- /* (287) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==287);
136221
- /* (288) columnlist ::= columnname carglist */ yytestcase(yyruleno==288);
136222
- /* (289) nm ::= ID|INDEXED */ yytestcase(yyruleno==289);
136223
- /* (290) nm ::= STRING */ yytestcase(yyruleno==290);
136224
- /* (291) nm ::= JOIN_KW */ yytestcase(yyruleno==291);
136225
- /* (292) typetoken ::= typename */ yytestcase(yyruleno==292);
136226
- /* (293) typename ::= ID|STRING */ yytestcase(yyruleno==293);
136227
- /* (294) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=294);
136228
- /* (295) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
136229
- /* (296) carglist ::= carglist ccons */ yytestcase(yyruleno==296);
136230
- /* (297) carglist ::= */ yytestcase(yyruleno==297);
136231
- /* (298) ccons ::= NULL onconf */ yytestcase(yyruleno==298);
136232
- /* (299) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==299);
136233
- /* (300) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==300);
136234
- /* (301) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=301);
136235
- /* (302) tconscomma ::= */ yytestcase(yyruleno==302);
136236
- /* (303) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=303);
136237
- /* (304) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=304);
136238
- /* (305) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=305);
136239
- /* (306) oneselect ::= values */ yytestcase(yyruleno==306);
136240
- /* (307) sclp ::= selcollist COMMA */ yytestcase(yyruleno==307);
136241
- /* (308) as ::= ID|STRING */ yytestcase(yyruleno==308);
136242
- /* (309) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=309);
136243
- /* (310) exprlist ::= nexprlist */ yytestcase(yyruleno==310);
136244
- /* (311) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=311);
136245
- /* (312) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=312);
136246
- /* (313) nmnum ::= ON */ yytestcase(yyruleno==313);
136247
- /* (314) nmnum ::= DELETE */ yytestcase(yyruleno==314);
136248
- /* (315) nmnum ::= DEFAULT */ yytestcase(yyruleno==315);
136249
- /* (316) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==316);
136250
- /* (317) foreach_clause ::= */ yytestcase(yyruleno==317);
136251
- /* (318) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==318);
136252
- /* (319) trnm ::= nm */ yytestcase(yyruleno==319);
136253
- /* (320) tridxby ::= */ yytestcase(yyruleno==320);
136254
- /* (321) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==321);
136255
- /* (322) database_kw_opt ::= */ yytestcase(yyruleno==322);
136256
- /* (323) kwcolumn_opt ::= */ yytestcase(yyruleno==323);
136257
- /* (324) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==324);
136258
- /* (325) vtabarglist ::= vtabarg */ yytestcase(yyruleno==325);
136259
- /* (326) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==326);
136260
- /* (327) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==327);
136261
- /* (328) anylist ::= */ yytestcase(yyruleno==328);
136262
- /* (329) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==329);
136263
- /* (330) anylist ::= anylist ANY */ yytestcase(yyruleno==330);
136237
+ /* (276) input ::= cmdlist */ yytestcase(yyruleno==276);
136238
+ /* (277) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==277);
136239
+ /* (278) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=278);
136240
+ /* (279) ecmd ::= SEMI */ yytestcase(yyruleno==279);
136241
+ /* (280) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==280);
136242
+ /* (281) explain ::= */ yytestcase(yyruleno==281);
136243
+ /* (282) trans_opt ::= */ yytestcase(yyruleno==282);
136244
+ /* (283) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==283);
136245
+ /* (284) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==284);
136246
+ /* (285) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==285);
136247
+ /* (286) savepoint_opt ::= */ yytestcase(yyruleno==286);
136248
+ /* (287) cmd ::= create_table create_table_args */ yytestcase(yyruleno==287);
136249
+ /* (288) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==288);
136250
+ /* (289) columnlist ::= columnname carglist */ yytestcase(yyruleno==289);
136251
+ /* (290) nm ::= ID|INDEXED */ yytestcase(yyruleno==290);
136252
+ /* (291) nm ::= STRING */ yytestcase(yyruleno==291);
136253
+ /* (292) nm ::= JOIN_KW */ yytestcase(yyruleno==292);
136254
+ /* (293) typetoken ::= typename */ yytestcase(yyruleno==293);
136255
+ /* (294) typename ::= ID|STRING */ yytestcase(yyruleno==294);
136256
+ /* (295) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
136257
+ /* (296) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=296);
136258
+ /* (297) carglist ::= carglist ccons */ yytestcase(yyruleno==297);
136259
+ /* (298) carglist ::= */ yytestcase(yyruleno==298);
136260
+ /* (299) ccons ::= NULL onconf */ yytestcase(yyruleno==299);
136261
+ /* (300) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==300);
136262
+ /* (301) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==301);
136263
+ /* (302) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=302);
136264
+ /* (303) tconscomma ::= */ yytestcase(yyruleno==303);
136265
+ /* (304) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=304);
136266
+ /* (305) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=305);
136267
+ /* (306) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=306);
136268
+ /* (307) oneselect ::= values */ yytestcase(yyruleno==307);
136269
+ /* (308) sclp ::= selcollist COMMA */ yytestcase(yyruleno==308);
136270
+ /* (309) as ::= ID|STRING */ yytestcase(yyruleno==309);
136271
+ /* (310) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=310);
136272
+ /* (311) exprlist ::= nexprlist */ yytestcase(yyruleno==311);
136273
+ /* (312) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=312);
136274
+ /* (313) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=313);
136275
+ /* (314) nmnum ::= ON */ yytestcase(yyruleno==314);
136276
+ /* (315) nmnum ::= DELETE */ yytestcase(yyruleno==315);
136277
+ /* (316) nmnum ::= DEFAULT */ yytestcase(yyruleno==316);
136278
+ /* (317) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==317);
136279
+ /* (318) foreach_clause ::= */ yytestcase(yyruleno==318);
136280
+ /* (319) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==319);
136281
+ /* (320) trnm ::= nm */ yytestcase(yyruleno==320);
136282
+ /* (321) tridxby ::= */ yytestcase(yyruleno==321);
136283
+ /* (322) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==322);
136284
+ /* (323) database_kw_opt ::= */ yytestcase(yyruleno==323);
136285
+ /* (324) kwcolumn_opt ::= */ yytestcase(yyruleno==324);
136286
+ /* (325) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==325);
136287
+ /* (326) vtabarglist ::= vtabarg */ yytestcase(yyruleno==326);
136288
+ /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==327);
136289
+ /* (328) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==328);
136290
+ /* (329) anylist ::= */ yytestcase(yyruleno==329);
136291
+ /* (330) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==330);
136292
+ /* (331) anylist ::= anylist ANY */ yytestcase(yyruleno==331);
136264136293
break;
136265136294
/********** End reduce actions ************************************************/
136266136295
};
136267136296
assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
136268136297
yygoto = yyRuleInfo[yyruleno].lhs;
@@ -195597,11 +195626,11 @@
195597195626
int nArg, /* Number of args */
195598195627
sqlite3_value **apUnused /* Function arguments */
195599195628
){
195600195629
assert( nArg==0 );
195601195630
UNUSED_PARAM2(nArg, apUnused);
195602
- sqlite3_result_text(pCtx, "fts5: 2016-09-21 19:43:34 0741812d7fcd558479e4849fbb3ba8d03738d018", -1, SQLITE_TRANSIENT);
195631
+ sqlite3_result_text(pCtx, "fts5: 2016-09-16 17:50:57 e3d9efa2770cd789ece3f4db4941b901c8b805ad", -1, SQLITE_TRANSIENT);
195603195632
}
195604195633
195605195634
static int fts5Init(sqlite3 *db){
195606195635
static const sqlite3_module fts5Mod = {
195607195636
/* iVersion */ 2,
195608195637
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -381,11 +381,11 @@
381 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
382 ** [sqlite_version()] and [sqlite_source_id()].
383 */
384 #define SQLITE_VERSION "3.15.0"
385 #define SQLITE_VERSION_NUMBER 3015000
386 #define SQLITE_SOURCE_ID "2016-09-22 18:53:13 c3774c6a5fe48af91fda28e9e18c6ed9053ea992"
387
388 /*
389 ** CAPI3REF: Run-Time Library Version Numbers
390 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
391 **
@@ -8915,11 +8915,11 @@
8915
8916 /*
8917 ** CAPI3REF: Set a table filter on a Session Object.
8918 **
8919 ** The second argument (xFilter) is the "filter callback". For changes to rows
8920 ** in tables that are not attached to the Session oject, the filter is called
8921 ** to determine whether changes to the table's rows should be tracked or not.
8922 ** If xFilter returns 0, changes is not tracked. Note that once a table is
8923 ** attached, xFilter will not be called again.
8924 */
8925 void sqlite3session_table_filter(
@@ -9181,11 +9181,11 @@
9181 ** Assuming the changeset blob was created by one of the
9182 ** [sqlite3session_changeset()], [sqlite3changeset_concat()] or
9183 ** [sqlite3changeset_invert()] functions, all changes within the changeset
9184 ** that apply to a single table are grouped together. This means that when
9185 ** an application iterates through a changeset using an iterator created by
9186 ** this function, all changes that relate to a single table are visted
9187 ** consecutively. There is no chance that the iterator will visit a change
9188 ** the applies to table X, then one for table Y, and then later on visit
9189 ** another change for table X.
9190 */
9191 int sqlite3changeset_start(
@@ -9268,11 +9268,11 @@
9268 ** If successful, *pabPK is set to point to an array of nCol entries, where
9269 ** nCol is the number of columns in the table. Elements of *pabPK are set to
9270 ** 0x01 if the corresponding column is part of the tables primary key, or
9271 ** 0x00 if it is not.
9272 **
9273 ** If argumet pnCol is not NULL, then *pnCol is set to the number of columns
9274 ** in the table.
9275 **
9276 ** If this function is called when the iterator does not point to a valid
9277 ** entry, SQLITE_MISUSE is returned and the output variables zeroed. Otherwise,
9278 ** SQLITE_OK is returned and the output variables populated as described
@@ -9543,11 +9543,11 @@
9543 ** Rows within the changeset and changegroup are identified by the values in
9544 ** their PRIMARY KEY columns. A change in the changeset is considered to
9545 ** apply to the same row as a change already present in the changegroup if
9546 ** the two rows have the same primary key.
9547 **
9548 ** Changes to rows that that do not already appear in the changegroup are
9549 ** simply copied into it. Or, if both the new changeset and the changegroup
9550 ** contain changes that apply to a single row, the final contents of the
9551 ** changegroup depends on the type of each change, as follows:
9552 **
9553 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
@@ -11411,13 +11411,13 @@
11411 #define TK_GROUP 127
11412 #define TK_HAVING 128
11413 #define TK_LIMIT 129
11414 #define TK_WHERE 130
11415 #define TK_INTO 131
11416 #define TK_INTEGER 132
11417 #define TK_FLOAT 133
11418 #define TK_BLOB 134
11419 #define TK_VARIABLE 135
11420 #define TK_CASE 136
11421 #define TK_WHEN 137
11422 #define TK_THEN 138
11423 #define TK_ELSE 139
@@ -12682,12 +12682,12 @@
12682 #define OP_IdxDelete 127 /* synopsis: key=r[P2@P3] */
12683 #define OP_Seek 128 /* synopsis: Move P3 to P1.rowid */
12684 #define OP_IdxRowid 129 /* synopsis: r[P2]=rowid */
12685 #define OP_Destroy 130
12686 #define OP_Clear 131
12687 #define OP_ResetSorter 132
12688 #define OP_Real 133 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
12689 #define OP_CreateIndex 134 /* synopsis: r[P2]=root iDb=P1 */
12690 #define OP_CreateTable 135 /* synopsis: r[P2]=root iDb=P1 */
12691 #define OP_ParseSchema 136
12692 #define OP_LoadAnalysis 137
12693 #define OP_DropTable 138
@@ -12741,11 +12741,11 @@
12741 /* 88 */ 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00,\
12742 /* 96 */ 0x00, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\
12743 /* 104 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
12744 /* 112 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\
12745 /* 120 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x04, 0x00,\
12746 /* 128 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x10,\
12747 /* 136 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10,\
12748 /* 144 */ 0x00, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00,\
12749 /* 152 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10,\
12750 /* 160 */ 0x00, 0x00, 0x00,}
12751
@@ -14963,10 +14963,11 @@
14963 #define EP_Unlikely 0x040000 /* unlikely() or likelihood() function */
14964 #define EP_ConstFunc 0x080000 /* A SQLITE_FUNC_CONSTANT or _SLOCHNG function */
14965 #define EP_CanBeNull 0x100000 /* Can be null despite NOT NULL constraint */
14966 #define EP_Subquery 0x200000 /* Tree contains a TK_SELECT operator */
14967 #define EP_Alias 0x400000 /* Is an alias for a result set column */
 
14968
14969 /*
14970 ** Combinations of two or more EP_* flags
14971 */
14972 #define EP_Propagate (EP_Collate|EP_Subquery) /* Propagate these bits up tree */
@@ -29131,12 +29132,12 @@
29131 /* 127 */ "IdxDelete" OpHelp("key=r[P2@P3]"),
29132 /* 128 */ "Seek" OpHelp("Move P3 to P1.rowid"),
29133 /* 129 */ "IdxRowid" OpHelp("r[P2]=rowid"),
29134 /* 130 */ "Destroy" OpHelp(""),
29135 /* 131 */ "Clear" OpHelp(""),
29136 /* 132 */ "ResetSorter" OpHelp(""),
29137 /* 133 */ "Real" OpHelp("r[P2]=P4"),
29138 /* 134 */ "CreateIndex" OpHelp("r[P2]=root iDb=P1"),
29139 /* 135 */ "CreateTable" OpHelp("r[P2]=root iDb=P1"),
29140 /* 136 */ "ParseSchema" OpHelp(""),
29141 /* 137 */ "LoadAnalysis" OpHelp(""),
29142 /* 138 */ "DropTable" OpHelp(""),
@@ -76047,18 +76048,17 @@
76047 static Mem *columnMem(sqlite3_stmt *pStmt, int i){
76048 Vdbe *pVm;
76049 Mem *pOut;
76050
76051 pVm = (Vdbe *)pStmt;
76052 if( pVm && pVm->pResultSet!=0 && i<pVm->nResColumn && i>=0 ){
76053 sqlite3_mutex_enter(pVm->db->mutex);
 
 
76054 pOut = &pVm->pResultSet[i];
76055 }else{
76056 if( pVm && ALWAYS(pVm->db) ){
76057 sqlite3_mutex_enter(pVm->db->mutex);
76058 sqlite3Error(pVm->db, SQLITE_RANGE);
76059 }
76060 pOut = (Mem*)columnNullValue();
76061 }
76062 return pOut;
76063 }
76064
@@ -76087,10 +76087,12 @@
76087 ** SQLITE_NOMEM. The next call to _step() (if any) will return SQLITE_ERROR
76088 ** and _finalize() will return NOMEM.
76089 */
76090 Vdbe *p = (Vdbe *)pStmt;
76091 if( p ){
 
 
76092 p->rc = sqlite3ApiExit(p->db, p->rc);
76093 sqlite3_mutex_leave(p->db->mutex);
76094 }
76095 }
76096
@@ -80487,14 +80489,13 @@
80487 p->nStmtDefCons = db->nDeferredCons;
80488 p->nStmtDefImmCons = db->nDeferredImmCons;
80489 }
80490
80491 /* Gather the schema version number for checking:
80492 ** IMPLEMENTATION-OF: R-32195-19465 The schema version is used by SQLite
80493 ** each time a query is executed to ensure that the internal cache of the
80494 ** schema used when compiling the SQL query matches the schema of the
80495 ** database against which the compiled query is actually executed.
80496 */
80497 sqlite3BtreeGetMeta(pBt, BTREE_SCHEMA_VERSION, (u32 *)&iMeta);
80498 iGen = db->aDb[pOp->p1].pSchema->iGeneration;
80499 }else{
80500 iGen = iMeta = 0;
@@ -81746,11 +81747,11 @@
81746 ** change count is incremented (otherwise not).
81747 **
81748 ** P1 must not be pseudo-table. It has to be a real table with
81749 ** multiple rows.
81750 **
81751 ** If P4 is not NULL then it points to a Table struture. In this case either
81752 ** the update or pre-update hook, or both, may be invoked. The P1 cursor must
81753 ** have been positioned using OP_NotFound prior to invoking this opcode in
81754 ** this case. Specifically, if one is configured, the pre-update hook is
81755 ** invoked if P4 is not NULL. The update-hook is invoked if one is configured,
81756 ** P4 is not NULL, and the OPFLAG_NCHANGE flag is set in P2.
@@ -88036,11 +88037,13 @@
88036 static SQLITE_NOINLINE int walkExpr(Walker *pWalker, Expr *pExpr){
88037 int rc;
88038 testcase( ExprHasProperty(pExpr, EP_TokenOnly) );
88039 testcase( ExprHasProperty(pExpr, EP_Reduced) );
88040 rc = pWalker->xExprCallback(pWalker, pExpr);
88041 if( rc || ExprHasProperty(pExpr,EP_TokenOnly) ) return rc & WRC_Abort;
 
 
88042 if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort;
88043 if( pExpr->pRight && walkExpr(pWalker, pExpr->pRight) ) return WRC_Abort;
88044 if( ExprHasProperty(pExpr, EP_xIsSelect) ){
88045 if( sqlite3WalkSelect(pWalker, pExpr->x.pSelect) ) return WRC_Abort;
88046 }else if( pExpr->x.pList ){
@@ -90705,22 +90708,29 @@
90705 */
90706 static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){
90707 assert( p!=0 );
90708 /* Sanity check: Assert that the IntValue is non-negative if it exists */
90709 assert( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 );
90710 if( !ExprHasProperty(p, EP_TokenOnly) ){
 
 
 
 
 
 
 
90711 /* The Expr.x union is never used at the same time as Expr.pRight */
90712 assert( p->x.pList==0 || p->pRight==0 );
90713 if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft);
90714 sqlite3ExprDelete(db, p->pRight);
90715 if( ExprHasProperty(p, EP_MemToken) ) sqlite3DbFree(db, p->u.zToken);
90716 if( ExprHasProperty(p, EP_xIsSelect) ){
90717 sqlite3SelectDelete(db, p->x.pSelect);
90718 }else{
90719 sqlite3ExprListDelete(db, p->x.pList);
90720 }
90721 }
 
90722 if( !ExprHasProperty(p, EP_Static) ){
90723 sqlite3DbFree(db, p);
90724 }
90725 }
90726 SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *db, Expr *p){
@@ -90893,11 +90903,11 @@
90893 if( nToken ){
90894 char *zToken = pNew->u.zToken = (char*)&zAlloc[nNewSize];
90895 memcpy(zToken, p->u.zToken, nToken);
90896 }
90897
90898 if( 0==((p->flags|pNew->flags) & EP_TokenOnly) ){
90899 /* Fill in the pNew->x.pSelect or pNew->x.pList member. */
90900 if( ExprHasProperty(p, EP_xIsSelect) ){
90901 pNew->x.pSelect = sqlite3SelectDup(db, p->x.pSelect, dupFlags);
90902 }else{
90903 pNew->x.pList = sqlite3ExprListDup(db, p->x.pList, dupFlags);
@@ -90905,21 +90915,21 @@
90905 }
90906
90907 /* Fill in pNew->pLeft and pNew->pRight. */
90908 if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly) ){
90909 zAlloc += dupedExprNodeSize(p, dupFlags);
90910 if( ExprHasProperty(pNew, EP_Reduced) ){
90911 pNew->pLeft = p->pLeft ?
90912 exprDup(db, p->pLeft, EXPRDUP_REDUCE, &zAlloc) : 0;
90913 pNew->pRight = p->pRight ?
90914 exprDup(db, p->pRight, EXPRDUP_REDUCE, &zAlloc) : 0;
90915 }
90916 if( pzBuffer ){
90917 *pzBuffer = zAlloc;
90918 }
90919 }else{
90920 if( !ExprHasProperty(p, EP_TokenOnly) ){
90921 if( pNew->op==TK_SELECT_COLUMN ){
90922 pNew->pLeft = p->pLeft;
90923 }else{
90924 pNew->pLeft = sqlite3ExprDup(db, p->pLeft, 0);
90925 }
@@ -92276,12 +92286,12 @@
92276 dest.eDest = SRT_Exists;
92277 sqlite3VdbeAddOp2(v, OP_Integer, 0, dest.iSDParm);
92278 VdbeComment((v, "Init EXISTS result"));
92279 }
92280 sqlite3ExprDelete(pParse->db, pSel->pLimit);
92281 pSel->pLimit = sqlite3PExpr(pParse, TK_INTEGER, 0, 0,
92282 &sqlite3IntTokens[1]);
92283 pSel->iLimit = 0;
92284 pSel->selFlags &= ~SF_MultiValue;
92285 if( sqlite3Select(pParse, pSel, &dest) ){
92286 return 0;
92287 }
@@ -97959,11 +97969,11 @@
97959 }else{
97960 sqlite3ErrorMsg(pFix->pParse, "%s cannot use variables", pFix->zType);
97961 return 1;
97962 }
97963 }
97964 if( ExprHasProperty(pExpr, EP_TokenOnly) ) break;
97965 if( ExprHasProperty(pExpr, EP_xIsSelect) ){
97966 if( sqlite3FixSelect(pFix, pExpr->x.pSelect) ) return 1;
97967 }else{
97968 if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;
97969 }
@@ -99735,10 +99745,13 @@
99735 ** This plan is not completely bullet-proof. It is possible for
99736 ** the schema to change multiple times and for the cookie to be
99737 ** set back to prior value. But schema changes are infrequent
99738 ** and the probability of hitting the same cookie value is only
99739 ** 1 chance in 2^32. So we're safe enough.
 
 
 
99740 */
99741 SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
99742 sqlite3 *db = pParse->db;
99743 Vdbe *v = pParse->pVdbe;
99744 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
@@ -107192,14 +107205,14 @@
107192 }else if( action==OE_SetDflt ){
107193 Expr *pDflt = pFKey->pFrom->aCol[iFromCol].pDflt;
107194 if( pDflt ){
107195 pNew = sqlite3ExprDup(db, pDflt, 0);
107196 }else{
107197 pNew = sqlite3PExpr(pParse, TK_NULL, 0, 0, 0);
107198 }
107199 }else{
107200 pNew = sqlite3PExpr(pParse, TK_NULL, 0, 0, 0);
107201 }
107202 pList = sqlite3ExprListAppend(pParse, pList, pNew);
107203 sqlite3ExprListSetName(pParse, pList, &tFromCol, 0);
107204 }
107205 }
@@ -118072,16 +118085,17 @@
118072 pWhere = sqlite3ExprDup(db, pSub->pWhere, 0);
118073 if( subqueryIsAgg ){
118074 assert( pParent->pHaving==0 );
118075 pParent->pHaving = pParent->pWhere;
118076 pParent->pWhere = pWhere;
118077 pParent->pHaving = sqlite3ExprAnd(db, pParent->pHaving,
118078 sqlite3ExprDup(db, pSub->pHaving, 0));
 
118079 assert( pParent->pGroupBy==0 );
118080 pParent->pGroupBy = sqlite3ExprListDup(db, pSub->pGroupBy, 0);
118081 }else{
118082 pParent->pWhere = sqlite3ExprAnd(db, pParent->pWhere, pWhere);
118083 }
118084 substSelect(db, pParent, iParent, pSub->pEList, 0);
118085
118086 /* The flattened query is distinct if either the inner or the
118087 ** outer query is distinct.
@@ -127618,11 +127632,11 @@
127618 int idxNew;
127619 WhereTerm *pNewTerm;
127620
127621 pNewExpr = sqlite3PExpr(pParse, TK_GT,
127622 sqlite3ExprDup(db, pLeft, 0),
127623 sqlite3PExpr(pParse, TK_NULL, 0, 0, 0), 0);
127624
127625 idxNew = whereClauseInsert(pWC, pNewExpr,
127626 TERM_VIRTUAL|TERM_DYNAMIC|TERM_VNULL);
127627 if( idxNew ){
127628 pNewTerm = &pWC->a[idxNew];
@@ -127796,11 +127810,11 @@
127796 if( k>=pTab->nCol ){
127797 sqlite3ErrorMsg(pParse, "too many arguments on %s() - max %d",
127798 pTab->zName, j);
127799 return;
127800 }
127801 pColRef = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
127802 if( pColRef==0 ) return;
127803 pColRef->iTable = pItem->iCursor;
127804 pColRef->iColumn = k++;
127805 pColRef->pTab = pTab;
127806 pTerm = sqlite3PExpr(pParse, TK_EQ, pColRef,
@@ -132844,19 +132858,10 @@
132844 struct LimitVal {
132845 Expr *pLimit; /* The LIMIT expression. NULL if there is no limit */
132846 Expr *pOffset; /* The OFFSET expression. NULL if there is none */
132847 };
132848
132849 /*
132850 ** An instance of this structure is used to store the LIKE,
132851 ** GLOB, NOT LIKE, and NOT GLOB operators.
132852 */
132853 struct LikeOp {
132854 Token eOperator; /* "like" or "glob" or "regexp" */
132855 int bNot; /* True if the NOT keyword is present */
132856 };
132857
132858 /*
132859 ** An instance of the following structure describes the event of a
132860 ** TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT,
132861 ** TK_DELETE, or TK_INSTEAD. If the event is of the form
132862 **
@@ -132864,15 +132869,10 @@
132864 **
132865 ** Then the "b" IdList records the list "a,b,c".
132866 */
132867 struct TrigEvent { int a; IdList * b; };
132868
132869 /*
132870 ** An instance of this structure holds the ATTACH key and the key type.
132871 */
132872 struct AttachKey { int type; Token key; };
132873
132874 /*
132875 ** Disable lookaside memory allocation for objects that might be
132876 ** shared across database connections.
132877 */
132878 static void disableLookaside(Parse *pParse){
@@ -132915,11 +132915,28 @@
132915 /* Construct a new Expr object from a single identifier. Use the
132916 ** new Expr to populate pOut. Set the span of pOut to be the identifier
132917 ** that created the expression.
132918 */
132919 static void spanExpr(ExprSpan *pOut, Parse *pParse, int op, Token t){
132920 pOut->pExpr = sqlite3PExpr(pParse, op, 0, 0, &t);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132921 pOut->zStart = t.z;
132922 pOut->zEnd = &t.z[t.n];
132923 }
132924
132925 /* This routine constructs a binary expression node out of two ExprSpan
@@ -133078,11 +133095,10 @@
133078 Select* yy243;
133079 IdList* yy254;
133080 With* yy285;
133081 struct TrigEvent yy332;
133082 struct LimitVal yy354;
133083 struct LikeOp yy392;
133084 struct {int value; int mask;} yy497;
133085 } YYMINORTYPE;
133086 #ifndef YYSTACKDEPTH
133087 #define YYSTACKDEPTH 100
133088 #endif
@@ -133090,19 +133106,19 @@
133090 #define sqlite3ParserARG_PDECL ,Parse *pParse
133091 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
133092 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
133093 #define YYFALLBACK 1
133094 #define YYNSTATE 456
133095 #define YYNRULE 331
133096 #define YY_MAX_SHIFT 455
133097 #define YY_MIN_SHIFTREDUCE 667
133098 #define YY_MAX_SHIFTREDUCE 997
133099 #define YY_MIN_REDUCE 998
133100 #define YY_MAX_REDUCE 1328
133101 #define YY_ERROR_ACTION 1329
133102 #define YY_ACCEPT_ACTION 1330
133103 #define YY_NO_ACTION 1331
133104 /************* End control #defines *******************************************/
133105
133106 /* Define the yytestcase() macro to be a no-op if is not already defined
133107 ** otherwise.
133108 **
@@ -133170,170 +133186,169 @@
133170 ** yy_reduce_ofst[] For each state, the offset into yy_action for
133171 ** shifting non-terminals after a reduce.
133172 ** yy_default[] Default action for each state.
133173 **
133174 *********** Begin parsing tables **********************************************/
133175 #define YY_ACTTAB_COUNT (1571)
133176 static const YYACTIONTYPE yy_action[] = {
133177 /* 0 */ 325, 830, 351, 824, 5, 203, 203, 818, 99, 100,
133178 /* 10 */ 90, 840, 840, 852, 855, 844, 844, 97, 97, 98,
133179 /* 20 */ 98, 98, 98, 301, 96, 96, 96, 96, 95, 95,
133180 /* 30 */ 94, 94, 94, 93, 351, 325, 975, 975, 823, 823,
133181 /* 40 */ 823, 945, 354, 99, 100, 90, 840, 840, 852, 855,
133182 /* 50 */ 844, 844, 97, 97, 98, 98, 98, 98, 338, 96,
133183 /* 60 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 351,
133184 /* 70 */ 95, 95, 94, 94, 94, 93, 351, 790, 975, 975,
133185 /* 80 */ 325, 94, 94, 94, 93, 351, 791, 75, 99, 100,
133186 /* 90 */ 90, 840, 840, 852, 855, 844, 844, 97, 97, 98,
133187 /* 100 */ 98, 98, 98, 450, 96, 96, 96, 96, 95, 95,
133188 /* 110 */ 94, 94, 94, 93, 351, 1330, 155, 155, 2, 325,
133189 /* 120 */ 275, 146, 132, 52, 52, 93, 351, 99, 100, 90,
133190 /* 130 */ 840, 840, 852, 855, 844, 844, 97, 97, 98, 98,
133191 /* 140 */ 98, 98, 101, 96, 96, 96, 96, 95, 95, 94,
133192 /* 150 */ 94, 94, 93, 351, 956, 956, 325, 268, 428, 413,
133193 /* 160 */ 411, 61, 751, 751, 99, 100, 90, 840, 840, 852,
133194 /* 170 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 60,
133195 /* 180 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133196 /* 190 */ 351, 325, 270, 329, 273, 277, 957, 958, 250, 99,
133197 /* 200 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133198 /* 210 */ 98, 98, 98, 98, 301, 96, 96, 96, 96, 95,
133199 /* 220 */ 95, 94, 94, 94, 93, 351, 325, 936, 1323, 697,
133200 /* 230 */ 705, 1323, 242, 412, 99, 100, 90, 840, 840, 852,
133201 /* 240 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 347,
133202 /* 250 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133203 /* 260 */ 351, 325, 936, 1324, 384, 698, 1324, 381, 379, 99,
133204 /* 270 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133205 /* 280 */ 98, 98, 98, 98, 700, 96, 96, 96, 96, 95,
133206 /* 290 */ 95, 94, 94, 94, 93, 351, 325, 92, 89, 178,
133207 /* 300 */ 831, 934, 373, 699, 99, 100, 90, 840, 840, 852,
133208 /* 310 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 375,
133209 /* 320 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133210 /* 330 */ 351, 325, 1273, 945, 354, 817, 934, 738, 738, 99,
133211 /* 340 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133212 /* 350 */ 98, 98, 98, 98, 230, 96, 96, 96, 96, 95,
133213 /* 360 */ 95, 94, 94, 94, 93, 351, 325, 967, 227, 92,
133214 /* 370 */ 89, 178, 373, 300, 99, 100, 90, 840, 840, 852,
133215 /* 380 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 919,
133216 /* 390 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133217 /* 400 */ 351, 325, 449, 447, 447, 447, 147, 736, 736, 99,
133218 /* 410 */ 100, 90, 840, 840, 852, 855, 844, 844, 97, 97,
133219 /* 420 */ 98, 98, 98, 98, 296, 96, 96, 96, 96, 95,
133220 /* 430 */ 95, 94, 94, 94, 93, 351, 325, 419, 231, 956,
133221 /* 440 */ 956, 158, 25, 422, 99, 100, 90, 840, 840, 852,
133222 /* 450 */ 855, 844, 844, 97, 97, 98, 98, 98, 98, 450,
133223 /* 460 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133224 /* 470 */ 351, 443, 224, 224, 420, 956, 956, 960, 325, 52,
133225 /* 480 */ 52, 957, 958, 176, 415, 78, 99, 100, 90, 840,
133226 /* 490 */ 840, 852, 855, 844, 844, 97, 97, 98, 98, 98,
133227 /* 500 */ 98, 379, 96, 96, 96, 96, 95, 95, 94, 94,
133228 /* 510 */ 94, 93, 351, 325, 428, 418, 298, 957, 958, 960,
133229 /* 520 */ 81, 99, 88, 90, 840, 840, 852, 855, 844, 844,
133230 /* 530 */ 97, 97, 98, 98, 98, 98, 716, 96, 96, 96,
133231 /* 540 */ 96, 95, 95, 94, 94, 94, 93, 351, 325, 841,
133232 /* 550 */ 841, 853, 856, 994, 318, 343, 379, 100, 90, 840,
133233 /* 560 */ 840, 852, 855, 844, 844, 97, 97, 98, 98, 98,
133234 /* 570 */ 98, 450, 96, 96, 96, 96, 95, 95, 94, 94,
133235 /* 580 */ 94, 93, 351, 325, 350, 350, 350, 260, 377, 340,
133236 /* 590 */ 927, 52, 52, 90, 840, 840, 852, 855, 844, 844,
133237 /* 600 */ 97, 97, 98, 98, 98, 98, 361, 96, 96, 96,
133238 /* 610 */ 96, 95, 95, 94, 94, 94, 93, 351, 86, 445,
133239 /* 620 */ 845, 3, 1200, 361, 360, 378, 344, 812, 956, 956,
133240 /* 630 */ 1297, 86, 445, 728, 3, 212, 169, 287, 405, 282,
133241 /* 640 */ 404, 199, 232, 450, 300, 759, 83, 84, 280, 245,
133242 /* 650 */ 262, 365, 251, 85, 352, 352, 92, 89, 178, 83,
133243 /* 660 */ 84, 242, 412, 52, 52, 448, 85, 352, 352, 246,
133244 /* 670 */ 957, 958, 194, 455, 669, 402, 399, 398, 448, 243,
133245 /* 680 */ 221, 114, 434, 775, 361, 450, 397, 268, 746, 224,
133246 /* 690 */ 224, 132, 132, 198, 830, 434, 452, 451, 428, 427,
133247 /* 700 */ 818, 415, 733, 712, 132, 52, 52, 830, 268, 452,
133248 /* 710 */ 451, 733, 194, 818, 363, 402, 399, 398, 450, 1268,
133249 /* 720 */ 1268, 23, 956, 956, 86, 445, 397, 3, 228, 429,
133250 /* 730 */ 893, 823, 823, 823, 825, 19, 203, 719, 52, 52,
133251 /* 740 */ 428, 408, 439, 249, 823, 823, 823, 825, 19, 229,
133252 /* 750 */ 403, 153, 83, 84, 760, 177, 241, 450, 720, 85,
133253 /* 760 */ 352, 352, 120, 157, 957, 958, 58, 975, 409, 355,
133254 /* 770 */ 330, 448, 268, 428, 430, 320, 789, 32, 32, 86,
133255 /* 780 */ 445, 775, 3, 341, 98, 98, 98, 98, 434, 96,
133256 /* 790 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 351,
133257 /* 800 */ 830, 120, 452, 451, 812, 885, 818, 83, 84, 975,
133258 /* 810 */ 812, 132, 410, 918, 85, 352, 352, 132, 407, 788,
133259 /* 820 */ 956, 956, 92, 89, 178, 915, 448, 262, 370, 261,
133260 /* 830 */ 82, 912, 80, 262, 370, 261, 932, 823, 823, 823,
133261 /* 840 */ 825, 19, 257, 434, 96, 96, 96, 96, 95, 95,
133262 /* 850 */ 94, 94, 94, 93, 351, 830, 268, 452, 451, 956,
133263 /* 860 */ 956, 818, 957, 958, 120, 92, 89, 178, 943, 2,
133264 /* 870 */ 916, 963, 268, 1, 766, 76, 445, 761, 3, 707,
133265 /* 880 */ 899, 899, 387, 956, 956, 756, 917, 371, 739, 777,
133266 /* 890 */ 755, 907, 823, 823, 823, 825, 19, 883, 740, 450,
133267 /* 900 */ 24, 957, 958, 83, 84, 369, 956, 956, 708, 226,
133268 /* 910 */ 85, 352, 352, 745, 315, 314, 313, 215, 311, 10,
133269 /* 920 */ 10, 682, 448, 349, 348, 957, 958, 887, 776, 691,
133270 /* 930 */ 331, 956, 956, 337, 157, 450, 268, 103, 450, 434,
133271 /* 940 */ 450, 816, 310, 906, 887, 889, 321, 450, 957, 958,
133272 /* 950 */ 708, 830, 775, 452, 451, 10, 10, 818, 10, 10,
133273 /* 960 */ 52, 52, 171, 170, 180, 225, 248, 10, 10, 339,
133274 /* 970 */ 701, 701, 233, 957, 958, 247, 982, 741, 450, 956,
133275 /* 980 */ 956, 425, 157, 980, 685, 981, 182, 912, 823, 823,
133276 /* 990 */ 823, 825, 19, 183, 324, 423, 132, 181, 51, 51,
133277 /* 1000 */ 715, 349, 348, 394, 256, 887, 334, 915, 983, 983,
133278 /* 1010 */ 830, 417, 824, 234, 198, 234, 818, 268, 326, 382,
133279 /* 1020 */ 120, 957, 958, 264, 177, 98, 98, 98, 98, 91,
133280 /* 1030 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133281 /* 1040 */ 351, 816, 416, 371, 120, 359, 816, 823, 823, 823,
133282 /* 1050 */ 775, 299, 916, 450, 368, 197, 196, 195, 358, 200,
133283 /* 1060 */ 175, 380, 9, 9, 450, 1287, 875, 714, 917, 450,
133284 /* 1070 */ 433, 237, 450, 36, 36, 132, 253, 450, 255, 450,
133285 /* 1080 */ 117, 450, 809, 362, 37, 37, 983, 983, 450, 12,
133286 /* 1090 */ 12, 330, 27, 27, 446, 331, 280, 38, 38, 39,
133287 /* 1100 */ 39, 40, 40, 1207, 450, 816, 335, 356, 41, 41,
133288 /* 1110 */ 450, 336, 450, 695, 450, 120, 450, 332, 133, 450,
133289 /* 1120 */ 268, 450, 269, 450, 42, 42, 450, 816, 254, 450,
133290 /* 1130 */ 28, 28, 29, 29, 31, 31, 43, 43, 450, 44,
133291 /* 1140 */ 44, 45, 45, 11, 11, 450, 46, 46, 450, 105,
133292 /* 1150 */ 105, 450, 748, 713, 450, 695, 450, 910, 47, 47,
133293 /* 1160 */ 450, 267, 450, 415, 450, 48, 48, 450, 33, 33,
133294 /* 1170 */ 386, 49, 49, 450, 50, 50, 34, 34, 450, 172,
133295 /* 1180 */ 122, 122, 123, 123, 124, 124, 450, 56, 56, 450,
133296 /* 1190 */ 120, 450, 345, 35, 35, 450, 790, 450, 106, 106,
133297 /* 1200 */ 450, 74, 450, 974, 450, 791, 53, 53, 432, 107,
133298 /* 1210 */ 107, 108, 108, 450, 272, 104, 104, 121, 121, 450,
133299 /* 1220 */ 119, 119, 112, 112, 111, 111, 450, 317, 996, 450,
133300 /* 1230 */ 118, 450, 162, 109, 109, 317, 935, 450, 896, 110,
133301 /* 1240 */ 110, 450, 895, 744, 688, 436, 55, 55, 20, 57,
133302 /* 1250 */ 57, 54, 54, 440, 444, 756, 385, 26, 26, 274,
133303 /* 1260 */ 755, 30, 30, 21, 672, 673, 674, 223, 175, 931,
133304 /* 1270 */ 814, 372, 319, 202, 202, 882, 120, 120, 120, 374,
133305 /* 1280 */ 826, 710, 202, 72, 276, 263, 120, 120, 74, 395,
133306 /* 1290 */ 278, 286, 208, 74, 718, 717, 725, 726, 892, 892,
133307 /* 1300 */ 167, 997, 285, 753, 729, 784, 77, 878, 202, 997,
133308 /* 1310 */ 208, 693, 891, 891, 116, 281, 782, 882, 390, 815,
133309 /* 1320 */ 762, 773, 826, 431, 302, 303, 822, 218, 696, 289,
133310 /* 1330 */ 690, 291, 293, 679, 678, 680, 950, 159, 316, 7,
133311 /* 1340 */ 364, 252, 259, 804, 909, 376, 400, 295, 308, 173,
133312 /* 1350 */ 435, 953, 168, 991, 135, 205, 926, 924, 59, 988,
133313 /* 1360 */ 62, 284, 880, 333, 879, 712, 144, 156, 130, 72,
133314 /* 1370 */ 366, 367, 393, 185, 189, 160, 383, 67, 389, 266,
133315 /* 1380 */ 137, 894, 774, 219, 154, 139, 190, 140, 391, 271,
133316 /* 1390 */ 191, 141, 142, 801, 681, 148, 811, 342, 322, 192,
133317 /* 1400 */ 406, 732, 911, 874, 723, 731, 323, 710, 730, 71,
133318 /* 1410 */ 704, 204, 283, 703, 6, 79, 421, 702, 965, 770,
133319 /* 1420 */ 297, 346, 426, 102, 722, 288, 73, 424, 213, 951,
133320 /* 1430 */ 771, 438, 22, 290, 687, 769, 442, 453, 239, 217,
133321 /* 1440 */ 214, 668, 125, 353, 126, 216, 454, 166, 676, 115,
133322 /* 1450 */ 675, 235, 244, 179, 670, 357, 810, 113, 890, 888,
133323 /* 1460 */ 292, 136, 128, 752, 304, 768, 294, 305, 138, 742,
133324 /* 1470 */ 306, 307, 127, 184, 860, 258, 905, 145, 143, 238,
133325 /* 1480 */ 63, 64, 65, 66, 240, 129, 908, 186, 187, 904,
133326 /* 1490 */ 8, 13, 188, 265, 897, 149, 202, 985, 388, 684,
133327 /* 1500 */ 150, 161, 392, 285, 193, 279, 151, 396, 68, 14,
133328 /* 1510 */ 401, 15, 327, 721, 328, 134, 69, 70, 236, 131,
133329 /* 1520 */ 829, 828, 858, 750, 16, 201, 754, 4, 783, 220,
133330 /* 1530 */ 414, 174, 222, 152, 77, 778, 74, 17, 18, 873,
133331 /* 1540 */ 859, 857, 914, 862, 913, 207, 206, 940, 163, 437,
133332 /* 1550 */ 946, 941, 164, 209, 210, 441, 861, 165, 312, 827,
133333 /* 1560 */ 694, 87, 1000, 309, 211, 1000, 1000, 1000, 1000, 1289,
133334 /* 1570 */ 1288,
133335 };
133336 static const YYCODETYPE yy_lookahead[] = {
133337 /* 0 */ 19, 95, 53, 97, 22, 24, 24, 101, 27, 28,
133338 /* 10 */ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
133339 /* 20 */ 39, 40, 41, 152, 43, 44, 45, 46, 47, 48,
@@ -133415,87 +133430,86 @@
133415 /* 780 */ 20, 124, 22, 111, 38, 39, 40, 41, 83, 43,
133416 /* 790 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
133417 /* 800 */ 95, 196, 97, 98, 85, 152, 101, 47, 48, 97,
133418 /* 810 */ 85, 92, 207, 193, 54, 55, 56, 92, 49, 175,
133419 /* 820 */ 55, 56, 221, 222, 223, 12, 66, 108, 109, 110,
133420 /* 830 */ 137, 163, 139, 108, 109, 110, 152, 132, 133, 134,
133421 /* 840 */ 135, 136, 152, 83, 43, 44, 45, 46, 47, 48,
133422 /* 850 */ 49, 50, 51, 52, 53, 95, 152, 97, 98, 55,
133423 /* 860 */ 56, 101, 97, 98, 196, 221, 222, 223, 146, 147,
133424 /* 870 */ 57, 171, 152, 22, 213, 19, 20, 49, 22, 179,
133425 /* 880 */ 108, 109, 110, 55, 56, 116, 73, 219, 75, 124,
133426 /* 890 */ 121, 152, 132, 133, 134, 135, 136, 193, 85, 152,
133427 /* 900 */ 232, 97, 98, 47, 48, 237, 55, 56, 55, 5,
133428 /* 910 */ 54, 55, 56, 193, 10, 11, 12, 13, 14, 172,
133429 /* 920 */ 173, 17, 66, 47, 48, 97, 98, 152, 124, 166,
133430 /* 930 */ 167, 55, 56, 186, 152, 152, 152, 22, 152, 83,
133431 /* 940 */ 152, 152, 160, 152, 169, 170, 164, 152, 97, 98,
133432 /* 950 */ 97, 95, 26, 97, 98, 172, 173, 101, 172, 173,
133433 /* 960 */ 172, 173, 47, 48, 60, 22, 62, 172, 173, 186,
133434 /* 970 */ 55, 56, 186, 97, 98, 71, 100, 193, 152, 55,
133435 /* 980 */ 56, 186, 152, 107, 21, 109, 82, 163, 132, 133,
133436 /* 990 */ 134, 135, 136, 89, 164, 207, 92, 93, 172, 173,
133437 /* 1000 */ 181, 47, 48, 19, 16, 230, 217, 12, 132, 133,
133438 /* 1010 */ 95, 163, 97, 183, 30, 185, 101, 152, 114, 152,
133439 /* 1020 */ 196, 97, 98, 152, 98, 38, 39, 40, 41, 42,
133440 /* 1030 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
133441 /* 1040 */ 53, 152, 152, 219, 196, 141, 152, 132, 133, 134,
133442 /* 1050 */ 124, 225, 57, 152, 91, 108, 109, 110, 193, 211,
133443 /* 1060 */ 212, 237, 172, 173, 152, 122, 103, 181, 73, 152,
133444 /* 1070 */ 75, 210, 152, 172, 173, 92, 88, 152, 90, 152,
133445 /* 1080 */ 22, 152, 163, 100, 172, 173, 132, 133, 152, 172,
133446 /* 1090 */ 173, 107, 172, 173, 166, 167, 112, 172, 173, 172,
133447 /* 1100 */ 173, 172, 173, 140, 152, 152, 217, 242, 172, 173,
133448 /* 1110 */ 152, 217, 152, 55, 152, 196, 152, 245, 246, 152,
133449 /* 1120 */ 152, 152, 152, 152, 172, 173, 152, 152, 140, 152,
133450 /* 1130 */ 172, 173, 172, 173, 172, 173, 172, 173, 152, 172,
133451 /* 1140 */ 173, 172, 173, 172, 173, 152, 172, 173, 152, 172,
133452 /* 1150 */ 173, 152, 195, 152, 152, 97, 152, 163, 172, 173,
133453 /* 1160 */ 152, 193, 152, 206, 152, 172, 173, 152, 172, 173,
133454 /* 1170 */ 217, 172, 173, 152, 172, 173, 172, 173, 152, 26,
133455 /* 1180 */ 172, 173, 172, 173, 172, 173, 152, 172, 173, 152,
133456 /* 1190 */ 196, 152, 217, 172, 173, 152, 61, 152, 172, 173,
133457 /* 1200 */ 152, 26, 152, 26, 152, 70, 172, 173, 191, 172,
133458 /* 1210 */ 173, 172, 173, 152, 152, 172, 173, 172, 173, 152,
133459 /* 1220 */ 172, 173, 172, 173, 172, 173, 152, 22, 23, 152,
133460 /* 1230 */ 22, 152, 24, 172, 173, 22, 23, 152, 59, 172,
133461 /* 1240 */ 173, 152, 63, 163, 163, 163, 172, 173, 22, 172,
133462 /* 1250 */ 173, 172, 173, 163, 163, 116, 77, 172, 173, 152,
133463 /* 1260 */ 121, 172, 173, 37, 7, 8, 9, 211, 212, 23,
133464 /* 1270 */ 23, 23, 26, 26, 26, 55, 196, 196, 196, 23,
133465 /* 1280 */ 55, 106, 26, 130, 152, 23, 196, 196, 26, 23,
133466 /* 1290 */ 23, 101, 26, 26, 100, 101, 7, 8, 132, 133,
133467 /* 1300 */ 123, 96, 112, 23, 152, 23, 26, 23, 26, 96,
133468 /* 1310 */ 26, 23, 132, 133, 26, 152, 152, 97, 234, 152,
133469 /* 1320 */ 152, 152, 97, 152, 152, 152, 152, 233, 152, 210,
133470 /* 1330 */ 152, 210, 210, 152, 152, 152, 152, 197, 150, 198,
133471 /* 1340 */ 214, 214, 239, 201, 201, 239, 176, 214, 200, 184,
133472 /* 1350 */ 227, 155, 198, 67, 243, 122, 159, 159, 240, 69,
133473 /* 1360 */ 240, 175, 175, 159, 175, 180, 22, 220, 27, 130,
133474 /* 1370 */ 18, 159, 18, 158, 158, 220, 159, 137, 74, 235,
133475 /* 1380 */ 189, 236, 159, 159, 22, 192, 158, 192, 177, 159,
133476 /* 1390 */ 158, 192, 192, 201, 159, 189, 189, 76, 177, 158,
133477 /* 1400 */ 107, 174, 201, 201, 182, 174, 177, 106, 174, 107,
133478 /* 1410 */ 174, 159, 174, 176, 22, 137, 125, 174, 174, 216,
133479 /* 1420 */ 159, 53, 126, 129, 182, 215, 128, 127, 25, 13,
133480 /* 1430 */ 216, 177, 26, 215, 162, 216, 177, 161, 229, 6,
133481 /* 1440 */ 153, 4, 165, 3, 165, 153, 151, 22, 151, 178,
133482 /* 1450 */ 151, 178, 142, 15, 151, 94, 120, 16, 23, 23,
133483 /* 1460 */ 215, 131, 111, 205, 204, 216, 215, 203, 123, 20,
133484 /* 1470 */ 202, 201, 165, 125, 224, 16, 1, 131, 123, 226,
133485 /* 1480 */ 37, 37, 37, 37, 229, 111, 56, 64, 122, 1,
133486 /* 1490 */ 5, 22, 107, 140, 80, 80, 26, 87, 72, 20,
133487 /* 1500 */ 107, 24, 19, 112, 105, 23, 22, 79, 22, 22,
133488 /* 1510 */ 79, 22, 249, 58, 249, 246, 22, 26, 79, 68,
133489 /* 1520 */ 23, 23, 23, 116, 22, 64, 23, 22, 56, 23,
133490 /* 1530 */ 26, 122, 23, 22, 26, 124, 26, 64, 64, 23,
133491 /* 1540 */ 23, 23, 23, 11, 23, 22, 26, 23, 22, 24,
133492 /* 1550 */ 1, 23, 22, 26, 122, 24, 23, 22, 15, 23,
133493 /* 1560 */ 23, 22, 251, 23, 122, 251, 251, 251, 251, 122,
133494 /* 1570 */ 122,
133495 };
133496 #define YY_SHIFT_USE_DFLT (1571)
133497 #define YY_SHIFT_COUNT (455)
133498 #define YY_SHIFT_MIN (-94)
133499 #define YY_SHIFT_MAX (1549)
133500 static const short yy_shift_ofst[] = {
133501 /* 0 */ 40, 599, 904, 612, 760, 760, 760, 760, 725, -19,
@@ -133507,132 +133521,132 @@
133507 /* 60 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133508 /* 70 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133509 /* 80 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133510 /* 90 */ 856, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133511 /* 100 */ 760, 760, 760, 760, 987, 746, 746, 746, 746, 746,
133512 /* 110 */ 801, 23, 32, 924, 963, 984, 954, 954, 924, 73,
133513 /* 120 */ 113, -51, 1571, 1571, 1571, 536, 536, 536, 99, 99,
133514 /* 130 */ 813, 813, 667, 205, 240, 924, 924, 924, 924, 924,
133515 /* 140 */ 924, 924, 924, 924, 924, 924, 924, 924, 924, 924,
133516 /* 150 */ 924, 924, 924, 924, 924, 332, 983, 422, 422, 113,
133517 /* 160 */ 30, 30, 30, 30, 30, 30, 1571, 1571, 1571, 915,
133518 /* 170 */ -94, -94, 384, 613, 828, 420, 765, 804, 851, 924,
133519 /* 180 */ 924, 924, 924, 924, 924, 924, 924, 924, 924, 924,
133520 /* 190 */ 924, 924, 924, 924, 924, 672, 672, 672, 924, 924,
133521 /* 200 */ 657, 924, 924, 924, -18, 924, 924, 995, 924, 924,
133522 /* 210 */ 924, 924, 924, 924, 924, 924, 924, 924, 772, 1179,
133523 /* 220 */ 712, 712, 712, 926, 45, 769, 1257, 1153, 418, 418,
133524 /* 230 */ 569, 1153, 569, 1175, 607, 663, 1135, 418, 693, 1135,
133525 /* 240 */ 1135, 1177, 1139, 1208, 1286, 1233, 1233, 1290, 1290, 1233,
133526 /* 250 */ 1344, 1341, 1239, 1352, 1352, 1352, 1352, 1233, 1354, 1239,
133527 /* 260 */ 1344, 1341, 1341, 1239, 1233, 1354, 1240, 1304, 1233, 1233,
133528 /* 270 */ 1354, 1362, 1233, 1354, 1233, 1354, 1362, 1293, 1293, 1293,
133529 /* 280 */ 1321, 1362, 1293, 1301, 1293, 1321, 1293, 1293, 1291, 1302,
133530 /* 290 */ 1291, 1302, 1291, 1302, 1291, 1302, 1233, 1392, 1233, 1278,
133531 /* 300 */ 1362, 1368, 1368, 1362, 1294, 1296, 1298, 1300, 1239, 1403,
133532 /* 310 */ 1406, 1416, 1416, 1433, 1433, 1433, 1433, 1571, 1571, 1571,
133533 /* 320 */ 1571, 1571, 1571, 1571, 1571, 519, 988, 1205, 1213, 104,
133534 /* 330 */ 947, 1058, 1246, 1226, 1247, 1248, 1256, 1262, 1266, 1267,
133535 /* 340 */ 853, 1194, 1289, 1190, 1280, 1282, 1220, 1284, 1166, 1180,
133536 /* 350 */ 1288, 1225, 943, 1437, 1440, 1425, 1310, 1438, 1361, 1441,
133537 /* 360 */ 1435, 1436, 1336, 1330, 1351, 1345, 1449, 1348, 1459, 1475,
133538 /* 370 */ 1355, 1346, 1443, 1444, 1445, 1446, 1374, 1430, 1423, 1366,
133539 /* 380 */ 1488, 1485, 1469, 1385, 1353, 1414, 1470, 1415, 1410, 1426,
133540 /* 390 */ 1393, 1477, 1479, 1483, 1391, 1399, 1484, 1428, 1486, 1487,
133541 /* 400 */ 1482, 1489, 1431, 1455, 1494, 1439, 1451, 1497, 1498, 1499,
133542 /* 410 */ 1491, 1407, 1502, 1503, 1505, 1504, 1409, 1506, 1509, 1472,
133543 /* 420 */ 1461, 1511, 1411, 1508, 1473, 1510, 1474, 1516, 1508, 1517,
133544 /* 430 */ 1518, 1519, 1520, 1521, 1523, 1532, 1524, 1526, 1525, 1527,
133545 /* 440 */ 1528, 1530, 1531, 1527, 1533, 1535, 1536, 1537, 1539, 1432,
133546 /* 450 */ 1442, 1447, 1448, 1540, 1543, 1549,
133547 };
133548 #define YY_REDUCE_USE_DFLT (-130)
133549 #define YY_REDUCE_COUNT (324)
133550 #define YY_REDUCE_MIN (-129)
133551 #define YY_REDUCE_MAX (1307)
133552 static const short yy_reduce_ofst[] = {
133553 /* 0 */ -29, 566, 525, 605, -49, 307, 491, 533, 668, 435,
133554 /* 10 */ 601, 644, 148, 747, 783, 786, 419, 788, 795, 826,
133555 /* 20 */ 454, 775, 830, 495, 824, 848, 76, 76, 76, 76,
133556 /* 30 */ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
133557 /* 40 */ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
133558 /* 50 */ 76, 76, 76, 76, 76, 76, 76, 76, 890, 901,
133559 /* 60 */ 912, 917, 920, 925, 927, 929, 936, 952, 958, 960,
133560 /* 70 */ 962, 964, 967, 969, 971, 974, 977, 986, 993, 996,
133561 /* 80 */ 999, 1002, 1004, 1008, 1010, 1012, 1015, 1021, 1026, 1034,
133562 /* 90 */ 1037, 1039, 1043, 1045, 1048, 1050, 1052, 1061, 1067, 1074,
133563 /* 100 */ 1077, 1079, 1085, 1089, 76, 76, 76, 76, 76, 76,
133564 /* 110 */ 76, 76, 76, 865, 36, 523, 235, 416, 782, 76,
133565 /* 120 */ 278, 76, 76, 76, 76, 700, 700, 700, 150, 220,
133566 /* 130 */ 147, 217, 221, 306, 306, 611, 5, 535, 556, 620,
133567 /* 140 */ 704, 720, 784, 116, 789, 349, 889, 894, 404, 953,
133568 /* 150 */ 968, -129, 975, 492, 62, 722, 919, 763, 928, 957,
133569 /* 160 */ 994, 1080, 1081, 1082, 1090, 1091, 872, 1056, 557, 57,
133570 /* 170 */ 112, 131, 167, 182, 250, 272, 291, 331, 364, 438,
133571 /* 180 */ 497, 517, 591, 653, 684, 690, 739, 791, 867, 871,
133572 /* 190 */ 970, 1062, 1107, 1132, 1152, 355, 819, 886, 1001, 1163,
133573 /* 200 */ 661, 1164, 1167, 1168, 861, 1169, 1171, 1017, 1172, 1173,
133574 /* 210 */ 1174, 250, 1176, 1178, 1181, 1182, 1183, 1184, 1084, 1094,
133575 /* 220 */ 1119, 1121, 1122, 661, 1140, 1141, 1188, 1142, 1126, 1127,
133576 /* 230 */ 1103, 1143, 1106, 1170, 1165, 1185, 1186, 1133, 1123, 1187,
133577 /* 240 */ 1189, 1148, 1154, 1196, 1111, 1197, 1198, 1118, 1120, 1204,
133578 /* 250 */ 1147, 1191, 1192, 1193, 1195, 1199, 1200, 1212, 1215, 1201,
133579 /* 260 */ 1155, 1206, 1207, 1202, 1217, 1216, 1145, 1144, 1223, 1224,
133580 /* 270 */ 1228, 1211, 1230, 1232, 1235, 1241, 1221, 1227, 1231, 1234,
133581 /* 280 */ 1222, 1229, 1236, 1237, 1238, 1242, 1243, 1244, 1203, 1210,
133582 /* 290 */ 1214, 1218, 1219, 1245, 1249, 1251, 1252, 1250, 1261, 1253,
133583 /* 300 */ 1254, 1209, 1255, 1259, 1258, 1260, 1264, 1268, 1270, 1272,
133584 /* 310 */ 1276, 1287, 1292, 1295, 1297, 1299, 1303, 1263, 1265, 1269,
133585 /* 320 */ 1277, 1279, 1271, 1273, 1307,
133586 };
133587 static const YYACTIONTYPE yy_default[] = {
133588 /* 0 */ 1278, 1268, 1268, 1268, 1200, 1200, 1200, 1200, 1268, 1094,
133589 /* 10 */ 1123, 1123, 1252, 1329, 1329, 1329, 1329, 1329, 1329, 1199,
133590 /* 20 */ 1329, 1329, 1329, 1329, 1268, 1098, 1129, 1329, 1329, 1329,
133591 /* 30 */ 1329, 1201, 1202, 1329, 1329, 1329, 1251, 1253, 1139, 1138,
133592 /* 40 */ 1137, 1136, 1234, 1110, 1134, 1127, 1131, 1201, 1195, 1196,
133593 /* 50 */ 1194, 1198, 1202, 1329, 1130, 1164, 1179, 1163, 1329, 1329,
133594 /* 60 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133595 /* 70 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133596 /* 80 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133597 /* 90 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133598 /* 100 */ 1329, 1329, 1329, 1329, 1173, 1178, 1185, 1177, 1174, 1166,
133599 /* 110 */ 1165, 1167, 1168, 1329, 1017, 1065, 1329, 1329, 1329, 1169,
133600 /* 120 */ 1329, 1170, 1182, 1181, 1180, 1259, 1286, 1285, 1329, 1329,
133601 /* 130 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133602 /* 140 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133603 /* 150 */ 1329, 1329, 1329, 1329, 1329, 1278, 1268, 1023, 1023, 1329,
133604 /* 160 */ 1268, 1268, 1268, 1268, 1268, 1268, 1264, 1098, 1089, 1329,
133605 /* 170 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133606 /* 180 */ 1256, 1254, 1329, 1215, 1329, 1329, 1329, 1329, 1329, 1329,
133607 /* 190 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133608 /* 200 */ 1329, 1329, 1329, 1329, 1094, 1329, 1329, 1329, 1329, 1329,
133609 /* 210 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1280, 1329, 1229,
133610 /* 220 */ 1094, 1094, 1094, 1096, 1078, 1088, 1002, 1133, 1112, 1112,
133611 /* 230 */ 1318, 1133, 1318, 1040, 1300, 1037, 1123, 1112, 1197, 1123,
133612 /* 240 */ 1123, 1095, 1088, 1329, 1321, 1103, 1103, 1320, 1320, 1103,
133613 /* 250 */ 1144, 1068, 1133, 1074, 1074, 1074, 1074, 1103, 1014, 1133,
133614 /* 260 */ 1144, 1068, 1068, 1133, 1103, 1014, 1233, 1315, 1103, 1103,
133615 /* 270 */ 1014, 1208, 1103, 1014, 1103, 1014, 1208, 1066, 1066, 1066,
133616 /* 280 */ 1055, 1208, 1066, 1040, 1066, 1055, 1066, 1066, 1116, 1111,
133617 /* 290 */ 1116, 1111, 1116, 1111, 1116, 1111, 1103, 1203, 1103, 1329,
133618 /* 300 */ 1208, 1212, 1212, 1208, 1128, 1117, 1126, 1124, 1133, 1020,
133619 /* 310 */ 1058, 1283, 1283, 1279, 1279, 1279, 1279, 1326, 1326, 1264,
133620 /* 320 */ 1295, 1295, 1042, 1042, 1295, 1329, 1329, 1329, 1329, 1329,
133621 /* 330 */ 1329, 1290, 1329, 1217, 1329, 1329, 1329, 1329, 1329, 1329,
133622 /* 340 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133623 /* 350 */ 1329, 1329, 1150, 1329, 998, 1261, 1329, 1329, 1260, 1329,
133624 /* 360 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133625 /* 370 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1317,
133626 /* 380 */ 1329, 1329, 1329, 1329, 1329, 1329, 1232, 1231, 1329, 1329,
133627 /* 390 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133628 /* 400 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
133629 /* 410 */ 1329, 1080, 1329, 1329, 1329, 1304, 1329, 1329, 1329, 1329,
133630 /* 420 */ 1329, 1329, 1329, 1125, 1329, 1118, 1329, 1329, 1308, 1329,
133631 /* 430 */ 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1270,
133632 /* 440 */ 1329, 1329, 1329, 1269, 1329, 1329, 1329, 1329, 1329, 1152,
133633 /* 450 */ 1329, 1151, 1155, 1329, 1008, 1329,
133634 };
133635 /********** End of lemon-generated parsing tables *****************************/
133636
133637 /* The next table maps tokens (terminal symbols) into fallback tokens.
133638 ** If a construct like the following:
@@ -133862,11 +133876,11 @@
133862 "DEFERRABLE", "FOREIGN", "DROP", "UNION",
133863 "ALL", "EXCEPT", "INTERSECT", "SELECT",
133864 "VALUES", "DISTINCT", "DOT", "FROM",
133865 "JOIN", "USING", "ORDER", "GROUP",
133866 "HAVING", "LIMIT", "WHERE", "INTO",
133867 "INTEGER", "FLOAT", "BLOB", "VARIABLE",
133868 "CASE", "WHEN", "THEN", "ELSE",
133869 "INDEX", "ALTER", "ADD", "error",
133870 "input", "cmdlist", "ecmd", "explain",
133871 "cmdx", "cmd", "transtype", "trans_opt",
133872 "nm", "savepoint_opt", "create_table", "create_table_args",
@@ -134055,185 +134069,186 @@
134055 /* 151 */ "term ::= NULL",
134056 /* 152 */ "expr ::= ID|INDEXED",
134057 /* 153 */ "expr ::= JOIN_KW",
134058 /* 154 */ "expr ::= nm DOT nm",
134059 /* 155 */ "expr ::= nm DOT nm DOT nm",
134060 /* 156 */ "term ::= INTEGER|FLOAT|BLOB",
134061 /* 157 */ "term ::= STRING",
134062 /* 158 */ "expr ::= VARIABLE",
134063 /* 159 */ "expr ::= expr COLLATE ID|STRING",
134064 /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
134065 /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
134066 /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
134067 /* 163 */ "term ::= CTIME_KW",
134068 /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
134069 /* 165 */ "expr ::= expr AND expr",
134070 /* 166 */ "expr ::= expr OR expr",
134071 /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
134072 /* 168 */ "expr ::= expr EQ|NE expr",
134073 /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
134074 /* 170 */ "expr ::= expr PLUS|MINUS expr",
134075 /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
134076 /* 172 */ "expr ::= expr CONCAT expr",
134077 /* 173 */ "likeop ::= LIKE_KW|MATCH",
134078 /* 174 */ "likeop ::= NOT LIKE_KW|MATCH",
134079 /* 175 */ "expr ::= expr likeop expr",
134080 /* 176 */ "expr ::= expr likeop expr ESCAPE expr",
134081 /* 177 */ "expr ::= expr ISNULL|NOTNULL",
134082 /* 178 */ "expr ::= expr NOT NULL",
134083 /* 179 */ "expr ::= expr IS expr",
134084 /* 180 */ "expr ::= expr IS NOT expr",
134085 /* 181 */ "expr ::= NOT expr",
134086 /* 182 */ "expr ::= BITNOT expr",
134087 /* 183 */ "expr ::= MINUS expr",
134088 /* 184 */ "expr ::= PLUS expr",
134089 /* 185 */ "between_op ::= BETWEEN",
134090 /* 186 */ "between_op ::= NOT BETWEEN",
134091 /* 187 */ "expr ::= expr between_op expr AND expr",
134092 /* 188 */ "in_op ::= IN",
134093 /* 189 */ "in_op ::= NOT IN",
134094 /* 190 */ "expr ::= expr in_op LP exprlist RP",
134095 /* 191 */ "expr ::= LP select RP",
134096 /* 192 */ "expr ::= expr in_op LP select RP",
134097 /* 193 */ "expr ::= expr in_op nm dbnm paren_exprlist",
134098 /* 194 */ "expr ::= EXISTS LP select RP",
134099 /* 195 */ "expr ::= CASE case_operand case_exprlist case_else END",
134100 /* 196 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
134101 /* 197 */ "case_exprlist ::= WHEN expr THEN expr",
134102 /* 198 */ "case_else ::= ELSE expr",
134103 /* 199 */ "case_else ::=",
134104 /* 200 */ "case_operand ::= expr",
134105 /* 201 */ "case_operand ::=",
134106 /* 202 */ "exprlist ::=",
134107 /* 203 */ "nexprlist ::= nexprlist COMMA expr",
134108 /* 204 */ "nexprlist ::= expr",
134109 /* 205 */ "paren_exprlist ::=",
134110 /* 206 */ "paren_exprlist ::= LP exprlist RP",
134111 /* 207 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
134112 /* 208 */ "uniqueflag ::= UNIQUE",
134113 /* 209 */ "uniqueflag ::=",
134114 /* 210 */ "eidlist_opt ::=",
134115 /* 211 */ "eidlist_opt ::= LP eidlist RP",
134116 /* 212 */ "eidlist ::= eidlist COMMA nm collate sortorder",
134117 /* 213 */ "eidlist ::= nm collate sortorder",
134118 /* 214 */ "collate ::=",
134119 /* 215 */ "collate ::= COLLATE ID|STRING",
134120 /* 216 */ "cmd ::= DROP INDEX ifexists fullname",
134121 /* 217 */ "cmd ::= VACUUM",
134122 /* 218 */ "cmd ::= VACUUM nm",
134123 /* 219 */ "cmd ::= PRAGMA nm dbnm",
134124 /* 220 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
134125 /* 221 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
134126 /* 222 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
134127 /* 223 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
134128 /* 224 */ "plus_num ::= PLUS INTEGER|FLOAT",
134129 /* 225 */ "minus_num ::= MINUS INTEGER|FLOAT",
134130 /* 226 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
134131 /* 227 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
134132 /* 228 */ "trigger_time ::= BEFORE",
134133 /* 229 */ "trigger_time ::= AFTER",
134134 /* 230 */ "trigger_time ::= INSTEAD OF",
134135 /* 231 */ "trigger_time ::=",
134136 /* 232 */ "trigger_event ::= DELETE|INSERT",
134137 /* 233 */ "trigger_event ::= UPDATE",
134138 /* 234 */ "trigger_event ::= UPDATE OF idlist",
134139 /* 235 */ "when_clause ::=",
134140 /* 236 */ "when_clause ::= WHEN expr",
134141 /* 237 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
134142 /* 238 */ "trigger_cmd_list ::= trigger_cmd SEMI",
134143 /* 239 */ "trnm ::= nm DOT nm",
134144 /* 240 */ "tridxby ::= INDEXED BY nm",
134145 /* 241 */ "tridxby ::= NOT INDEXED",
134146 /* 242 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
134147 /* 243 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
134148 /* 244 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
134149 /* 245 */ "trigger_cmd ::= select",
134150 /* 246 */ "expr ::= RAISE LP IGNORE RP",
134151 /* 247 */ "expr ::= RAISE LP raisetype COMMA nm RP",
134152 /* 248 */ "raisetype ::= ROLLBACK",
134153 /* 249 */ "raisetype ::= ABORT",
134154 /* 250 */ "raisetype ::= FAIL",
134155 /* 251 */ "cmd ::= DROP TRIGGER ifexists fullname",
134156 /* 252 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
134157 /* 253 */ "cmd ::= DETACH database_kw_opt expr",
134158 /* 254 */ "key_opt ::=",
134159 /* 255 */ "key_opt ::= KEY expr",
134160 /* 256 */ "cmd ::= REINDEX",
134161 /* 257 */ "cmd ::= REINDEX nm dbnm",
134162 /* 258 */ "cmd ::= ANALYZE",
134163 /* 259 */ "cmd ::= ANALYZE nm dbnm",
134164 /* 260 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
134165 /* 261 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
134166 /* 262 */ "add_column_fullname ::= fullname",
134167 /* 263 */ "cmd ::= create_vtab",
134168 /* 264 */ "cmd ::= create_vtab LP vtabarglist RP",
134169 /* 265 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
134170 /* 266 */ "vtabarg ::=",
134171 /* 267 */ "vtabargtoken ::= ANY",
134172 /* 268 */ "vtabargtoken ::= lp anylist RP",
134173 /* 269 */ "lp ::= LP",
134174 /* 270 */ "with ::=",
134175 /* 271 */ "with ::= WITH wqlist",
134176 /* 272 */ "with ::= WITH RECURSIVE wqlist",
134177 /* 273 */ "wqlist ::= nm eidlist_opt AS LP select RP",
134178 /* 274 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
134179 /* 275 */ "input ::= cmdlist",
134180 /* 276 */ "cmdlist ::= cmdlist ecmd",
134181 /* 277 */ "cmdlist ::= ecmd",
134182 /* 278 */ "ecmd ::= SEMI",
134183 /* 279 */ "ecmd ::= explain cmdx SEMI",
134184 /* 280 */ "explain ::=",
134185 /* 281 */ "trans_opt ::=",
134186 /* 282 */ "trans_opt ::= TRANSACTION",
134187 /* 283 */ "trans_opt ::= TRANSACTION nm",
134188 /* 284 */ "savepoint_opt ::= SAVEPOINT",
134189 /* 285 */ "savepoint_opt ::=",
134190 /* 286 */ "cmd ::= create_table create_table_args",
134191 /* 287 */ "columnlist ::= columnlist COMMA columnname carglist",
134192 /* 288 */ "columnlist ::= columnname carglist",
134193 /* 289 */ "nm ::= ID|INDEXED",
134194 /* 290 */ "nm ::= STRING",
134195 /* 291 */ "nm ::= JOIN_KW",
134196 /* 292 */ "typetoken ::= typename",
134197 /* 293 */ "typename ::= ID|STRING",
134198 /* 294 */ "signed ::= plus_num",
134199 /* 295 */ "signed ::= minus_num",
134200 /* 296 */ "carglist ::= carglist ccons",
134201 /* 297 */ "carglist ::=",
134202 /* 298 */ "ccons ::= NULL onconf",
134203 /* 299 */ "conslist_opt ::= COMMA conslist",
134204 /* 300 */ "conslist ::= conslist tconscomma tcons",
134205 /* 301 */ "conslist ::= tcons",
134206 /* 302 */ "tconscomma ::=",
134207 /* 303 */ "defer_subclause_opt ::= defer_subclause",
134208 /* 304 */ "resolvetype ::= raisetype",
134209 /* 305 */ "selectnowith ::= oneselect",
134210 /* 306 */ "oneselect ::= values",
134211 /* 307 */ "sclp ::= selcollist COMMA",
134212 /* 308 */ "as ::= ID|STRING",
134213 /* 309 */ "expr ::= term",
134214 /* 310 */ "exprlist ::= nexprlist",
134215 /* 311 */ "nmnum ::= plus_num",
134216 /* 312 */ "nmnum ::= nm",
134217 /* 313 */ "nmnum ::= ON",
134218 /* 314 */ "nmnum ::= DELETE",
134219 /* 315 */ "nmnum ::= DEFAULT",
134220 /* 316 */ "plus_num ::= INTEGER|FLOAT",
134221 /* 317 */ "foreach_clause ::=",
134222 /* 318 */ "foreach_clause ::= FOR EACH ROW",
134223 /* 319 */ "trnm ::= nm",
134224 /* 320 */ "tridxby ::=",
134225 /* 321 */ "database_kw_opt ::= DATABASE",
134226 /* 322 */ "database_kw_opt ::=",
134227 /* 323 */ "kwcolumn_opt ::=",
134228 /* 324 */ "kwcolumn_opt ::= COLUMNKW",
134229 /* 325 */ "vtabarglist ::= vtabarg",
134230 /* 326 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
134231 /* 327 */ "vtabarg ::= vtabarg vtabargtoken",
134232 /* 328 */ "anylist ::=",
134233 /* 329 */ "anylist ::= anylist LP anylist RP",
134234 /* 330 */ "anylist ::= anylist ANY",
 
134235 };
134236 #endif /* NDEBUG */
134237
134238
134239 #if YYSTACKDEPTH<=0
@@ -134811,10 +134826,11 @@
134811 { 173, 1 },
134812 { 173, 3 },
134813 { 173, 5 },
134814 { 172, 1 },
134815 { 172, 1 },
 
134816 { 173, 1 },
134817 { 173, 3 },
134818 { 173, 6 },
134819 { 173, 5 },
134820 { 173, 4 },
@@ -135105,11 +135121,11 @@
135105 case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
135106 case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
135107 case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
135108 case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
135109 case 90: /* distinct ::= */ yytestcase(yyruleno==90);
135110 case 214: /* collate ::= */ yytestcase(yyruleno==214);
135111 {yymsp[1].minor.yy194 = 0;}
135112 break;
135113 case 17: /* ifnotexists ::= IF NOT EXISTS */
135114 {yymsp[-2].minor.yy194 = 1;}
135115 break;
@@ -135249,13 +135265,13 @@
135249 case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144);
135250 {yymsp[-1].minor.yy194 = yymsp[0].minor.yy194;}
135251 break;
135252 case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
135253 case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
135254 case 186: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==186);
135255 case 189: /* in_op ::= NOT IN */ yytestcase(yyruleno==189);
135256 case 215: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==215);
135257 {yymsp[-1].minor.yy194 = 1;}
135258 break;
135259 case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
135260 {yymsp[-1].minor.yy194 = 0;}
135261 break;
@@ -135415,13 +135431,13 @@
135415 {yymsp[0].minor.yy194 = SF_All;}
135416 break;
135417 case 91: /* sclp ::= */
135418 case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119);
135419 case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126);
135420 case 202: /* exprlist ::= */ yytestcase(yyruleno==202);
135421 case 205: /* paren_exprlist ::= */ yytestcase(yyruleno==205);
135422 case 210: /* eidlist_opt ::= */ yytestcase(yyruleno==210);
135423 {yymsp[1].minor.yy148 = 0;}
135424 break;
135425 case 92: /* selcollist ::= sclp expr as */
135426 {
135427 yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy148, yymsp[-1].minor.yy190.pExpr);
@@ -135435,20 +135451,20 @@
135435 yymsp[-1].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy148, p);
135436 }
135437 break;
135438 case 94: /* selcollist ::= sclp nm DOT STAR */
135439 {
135440 Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0, &yymsp[0].minor.yy0);
135441 Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
135442 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
135443 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, pDot);
135444 }
135445 break;
135446 case 95: /* as ::= AS nm */
135447 case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106);
135448 case 224: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
135449 case 225: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==225);
135450 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
135451 break;
135452 case 97: /* from ::= */
135453 {yymsp[1].minor.yy185 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy185));}
135454 break;
@@ -135527,18 +135543,18 @@
135527 {yymsp[-3].minor.yy194 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
135528 break;
135529 case 112: /* on_opt ::= ON expr */
135530 case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129);
135531 case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136);
135532 case 198: /* case_else ::= ELSE expr */ yytestcase(yyruleno==198);
135533 {yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr;}
135534 break;
135535 case 113: /* on_opt ::= */
135536 case 128: /* having_opt ::= */ yytestcase(yyruleno==128);
135537 case 135: /* where_opt ::= */ yytestcase(yyruleno==135);
135538 case 199: /* case_else ::= */ yytestcase(yyruleno==199);
135539 case 201: /* case_operand ::= */ yytestcase(yyruleno==201);
135540 {yymsp[1].minor.yy72 = 0;}
135541 break;
135542 case 115: /* indexed_opt ::= INDEXED BY nm */
135543 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
135544 break;
@@ -135650,37 +135666,46 @@
135650 break;
135651 case 150: /* expr ::= LP expr RP */
135652 {spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/ yymsp[-2].minor.yy190.pExpr = yymsp[-1].minor.yy190.pExpr;}
135653 break;
135654 case 151: /* term ::= NULL */
135655 case 156: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==156);
135656 case 157: /* term ::= STRING */ yytestcase(yyruleno==157);
135657 {spanExpr(&yymsp[0].minor.yy190,pParse,yymsp[0].major,yymsp[0].minor.yy0);/*A-overwrites-X*/}
135658 break;
135659 case 152: /* expr ::= ID|INDEXED */
135660 case 153: /* expr ::= JOIN_KW */ yytestcase(yyruleno==153);
135661 {spanExpr(&yymsp[0].minor.yy190,pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
135662 break;
135663 case 154: /* expr ::= nm DOT nm */
135664 {
135665 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
135666 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
135667 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135668 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
135669 }
135670 break;
135671 case 155: /* expr ::= nm DOT nm DOT nm */
135672 {
135673 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
135674 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
135675 Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
135676 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
135677 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135678 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
135679 }
135680 break;
135681 case 158: /* expr ::= VARIABLE */
 
 
 
 
 
 
 
 
 
135682 {
135683 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
135684 spanExpr(&yymsp[0].minor.yy190, pParse, TK_VARIABLE, yymsp[0].minor.yy0);
135685 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy190.pExpr);
135686 }else{
@@ -135692,29 +135717,29 @@
135692 spanSet(&yymsp[0].minor.yy190, &t, &t);
135693 if( pParse->nested==0 ){
135694 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
135695 yymsp[0].minor.yy190.pExpr = 0;
135696 }else{
135697 yymsp[0].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &t);
135698 if( yymsp[0].minor.yy190.pExpr ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy190.pExpr->iTable);
135699 }
135700 }
135701 }
135702 break;
135703 case 159: /* expr ::= expr COLLATE ID|STRING */
135704 {
135705 yymsp[-2].minor.yy190.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy190.pExpr, &yymsp[0].minor.yy0, 1);
135706 yymsp[-2].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135707 }
135708 break;
135709 case 160: /* expr ::= CAST LP expr AS typetoken RP */
135710 {
135711 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135712 yymsp[-5].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy190.pExpr, 0, &yymsp[-1].minor.yy0);
135713 }
135714 break;
135715 case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
135716 {
135717 if( yymsp[-1].minor.yy148 && yymsp[-1].minor.yy148->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
135718 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
135719 }
135720 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy148, &yymsp[-4].minor.yy0);
@@ -135723,25 +135748,25 @@
135723 yylhsminor.yy190.pExpr->flags |= EP_Distinct;
135724 }
135725 }
135726 yymsp[-4].minor.yy190 = yylhsminor.yy190;
135727 break;
135728 case 162: /* expr ::= ID|INDEXED LP STAR RP */
135729 {
135730 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
135731 spanSet(&yylhsminor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
135732 }
135733 yymsp[-3].minor.yy190 = yylhsminor.yy190;
135734 break;
135735 case 163: /* term ::= CTIME_KW */
135736 {
135737 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
135738 spanSet(&yylhsminor.yy190, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
135739 }
135740 yymsp[0].minor.yy190 = yylhsminor.yy190;
135741 break;
135742 case 164: /* expr ::= LP nexprlist COMMA expr RP */
135743 {
135744 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy148, yymsp[-1].minor.yy190.pExpr);
135745 yylhsminor.yy190.pExpr = sqlite3PExpr(pParse, TK_VECTOR, 0, 0, 0);
135746 if( yylhsminor.yy190.pExpr ){
135747 yylhsminor.yy190.pExpr->x.pList = pList;
@@ -135750,82 +135775,86 @@
135750 sqlite3ExprListDelete(pParse->db, pList);
135751 }
135752 }
135753 yymsp[-4].minor.yy190 = yylhsminor.yy190;
135754 break;
135755 case 165: /* expr ::= expr AND expr */
135756 case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
135757 case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
135758 case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
135759 case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
135760 case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
135761 case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
135762 case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
135763 {spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);}
135764 break;
135765 case 173: /* likeop ::= LIKE_KW|MATCH */
135766 {yymsp[0].minor.yy392.eOperator = yymsp[0].minor.yy0; yymsp[0].minor.yy392.bNot = 0;/*A-overwrites-X*/}
135767 break;
135768 case 174: /* likeop ::= NOT LIKE_KW|MATCH */
135769 {yymsp[-1].minor.yy392.eOperator = yymsp[0].minor.yy0; yymsp[-1].minor.yy392.bNot = 1;}
135770 break;
135771 case 175: /* expr ::= expr likeop expr */
135772 {
135773 ExprList *pList;
 
 
135774 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy190.pExpr);
135775 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy190.pExpr);
135776 yymsp[-2].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy392.eOperator);
135777 exprNot(pParse, yymsp[-1].minor.yy392.bNot, &yymsp[-2].minor.yy190);
135778 yymsp[-2].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135779 if( yymsp[-2].minor.yy190.pExpr ) yymsp[-2].minor.yy190.pExpr->flags |= EP_InfixFunc;
135780 }
135781 break;
135782 case 176: /* expr ::= expr likeop expr ESCAPE expr */
135783 {
135784 ExprList *pList;
 
 
135785 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135786 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy190.pExpr);
135787 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
135788 yymsp[-4].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy392.eOperator);
135789 exprNot(pParse, yymsp[-3].minor.yy392.bNot, &yymsp[-4].minor.yy190);
135790 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135791 if( yymsp[-4].minor.yy190.pExpr ) yymsp[-4].minor.yy190.pExpr->flags |= EP_InfixFunc;
135792 }
135793 break;
135794 case 177: /* expr ::= expr ISNULL|NOTNULL */
135795 {spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy190,&yymsp[0].minor.yy0);}
135796 break;
135797 case 178: /* expr ::= expr NOT NULL */
135798 {spanUnaryPostfix(pParse,TK_NOTNULL,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy0);}
135799 break;
135800 case 179: /* expr ::= expr IS expr */
135801 {
135802 spanBinaryExpr(pParse,TK_IS,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);
135803 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-2].minor.yy190.pExpr, TK_ISNULL);
135804 }
135805 break;
135806 case 180: /* expr ::= expr IS NOT expr */
135807 {
135808 spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy190,&yymsp[0].minor.yy190);
135809 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, TK_NOTNULL);
135810 }
135811 break;
135812 case 181: /* expr ::= NOT expr */
135813 case 182: /* expr ::= BITNOT expr */ yytestcase(yyruleno==182);
135814 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,yymsp[-1].major,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135815 break;
135816 case 183: /* expr ::= MINUS expr */
135817 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UMINUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135818 break;
135819 case 184: /* expr ::= PLUS expr */
135820 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UPLUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135821 break;
135822 case 185: /* between_op ::= BETWEEN */
135823 case 188: /* in_op ::= IN */ yytestcase(yyruleno==188);
135824 {yymsp[0].minor.yy194 = 0;}
135825 break;
135826 case 187: /* expr ::= expr between_op expr AND expr */
135827 {
135828 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135829 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
135830 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy190.pExpr, 0, 0);
135831 if( yymsp[-4].minor.yy190.pExpr ){
@@ -135835,11 +135864,11 @@
135835 }
135836 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135837 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135838 }
135839 break;
135840 case 190: /* expr ::= expr in_op LP exprlist RP */
135841 {
135842 if( yymsp[-1].minor.yy148==0 ){
135843 /* Expressions of the form
135844 **
135845 ** expr1 IN ()
@@ -135888,26 +135917,26 @@
135888 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135889 }
135890 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135891 }
135892 break;
135893 case 191: /* expr ::= LP select RP */
135894 {
135895 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
135896 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
135897 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy190.pExpr, yymsp[-1].minor.yy243);
135898 }
135899 break;
135900 case 192: /* expr ::= expr in_op LP select RP */
135901 {
135902 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0, 0);
135903 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, yymsp[-1].minor.yy243);
135904 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135905 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135906 }
135907 break;
135908 case 193: /* expr ::= expr in_op nm dbnm paren_exprlist */
135909 {
135910 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
135911 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
135912 if( yymsp[0].minor.yy148 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy148);
135913 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0, 0);
@@ -135914,19 +135943,19 @@
135914 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, pSelect);
135915 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135916 yymsp[-4].minor.yy190.zEnd = yymsp[-1].minor.yy0.z ? &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n] : &yymsp[-2].minor.yy0.z[yymsp[-2].minor.yy0.n];
135917 }
135918 break;
135919 case 194: /* expr ::= EXISTS LP select RP */
135920 {
135921 Expr *p;
135922 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
135923 p = yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
135924 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy243);
135925 }
135926 break;
135927 case 195: /* expr ::= CASE case_operand case_exprlist case_else END */
135928 {
135929 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-C*/
135930 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy72, 0, 0);
135931 if( yymsp[-4].minor.yy190.pExpr ){
135932 yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy72 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[-1].minor.yy72) : yymsp[-2].minor.yy148;
@@ -135935,334 +135964,334 @@
135935 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy148);
135936 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy72);
135937 }
135938 }
135939 break;
135940 case 196: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
135941 {
135942 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[-2].minor.yy190.pExpr);
135943 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[0].minor.yy190.pExpr);
135944 }
135945 break;
135946 case 197: /* case_exprlist ::= WHEN expr THEN expr */
135947 {
135948 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135949 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, yymsp[0].minor.yy190.pExpr);
135950 }
135951 break;
135952 case 200: /* case_operand ::= expr */
135953 {yymsp[0].minor.yy72 = yymsp[0].minor.yy190.pExpr; /*A-overwrites-X*/}
135954 break;
135955 case 203: /* nexprlist ::= nexprlist COMMA expr */
135956 {yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[0].minor.yy190.pExpr);}
135957 break;
135958 case 204: /* nexprlist ::= expr */
135959 {yymsp[0].minor.yy148 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy190.pExpr); /*A-overwrites-Y*/}
135960 break;
135961 case 206: /* paren_exprlist ::= LP exprlist RP */
135962 case 211: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==211);
135963 {yymsp[-2].minor.yy148 = yymsp[-1].minor.yy148;}
135964 break;
135965 case 207: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
135966 {
135967 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
135968 sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy148, yymsp[-10].minor.yy194,
135969 &yymsp[-11].minor.yy0, yymsp[0].minor.yy72, SQLITE_SO_ASC, yymsp[-8].minor.yy194, SQLITE_IDXTYPE_APPDEF);
135970 }
135971 break;
135972 case 208: /* uniqueflag ::= UNIQUE */
135973 case 249: /* raisetype ::= ABORT */ yytestcase(yyruleno==249);
135974 {yymsp[0].minor.yy194 = OE_Abort;}
135975 break;
135976 case 209: /* uniqueflag ::= */
135977 {yymsp[1].minor.yy194 = OE_None;}
135978 break;
135979 case 212: /* eidlist ::= eidlist COMMA nm collate sortorder */
135980 {
135981 yymsp[-4].minor.yy148 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy148, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194);
135982 }
135983 break;
135984 case 213: /* eidlist ::= nm collate sortorder */
135985 {
135986 yymsp[-2].minor.yy148 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194); /*A-overwrites-Y*/
135987 }
135988 break;
135989 case 216: /* cmd ::= DROP INDEX ifexists fullname */
135990 {sqlite3DropIndex(pParse, yymsp[0].minor.yy185, yymsp[-1].minor.yy194);}
135991 break;
135992 case 217: /* cmd ::= VACUUM */
135993 {sqlite3Vacuum(pParse,0);}
135994 break;
135995 case 218: /* cmd ::= VACUUM nm */
135996 {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
135997 break;
135998 case 219: /* cmd ::= PRAGMA nm dbnm */
135999 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
136000 break;
136001 case 220: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
136002 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
136003 break;
136004 case 221: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
136005 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
136006 break;
136007 case 222: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
136008 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
136009 break;
136010 case 223: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
136011 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
136012 break;
136013 case 226: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
136014 {
136015 Token all;
136016 all.z = yymsp[-3].minor.yy0.z;
136017 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
136018 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy145, &all);
136019 }
136020 break;
136021 case 227: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
136022 {
136023 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy194, yymsp[-4].minor.yy332.a, yymsp[-4].minor.yy332.b, yymsp[-2].minor.yy185, yymsp[0].minor.yy72, yymsp[-10].minor.yy194, yymsp[-8].minor.yy194);
136024 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
136025 }
136026 break;
136027 case 228: /* trigger_time ::= BEFORE */
136028 { yymsp[0].minor.yy194 = TK_BEFORE; }
136029 break;
136030 case 229: /* trigger_time ::= AFTER */
136031 { yymsp[0].minor.yy194 = TK_AFTER; }
136032 break;
136033 case 230: /* trigger_time ::= INSTEAD OF */
136034 { yymsp[-1].minor.yy194 = TK_INSTEAD;}
136035 break;
136036 case 231: /* trigger_time ::= */
136037 { yymsp[1].minor.yy194 = TK_BEFORE; }
136038 break;
136039 case 232: /* trigger_event ::= DELETE|INSERT */
136040 case 233: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==233);
136041 {yymsp[0].minor.yy332.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy332.b = 0;}
136042 break;
136043 case 234: /* trigger_event ::= UPDATE OF idlist */
136044 {yymsp[-2].minor.yy332.a = TK_UPDATE; yymsp[-2].minor.yy332.b = yymsp[0].minor.yy254;}
136045 break;
136046 case 235: /* when_clause ::= */
136047 case 254: /* key_opt ::= */ yytestcase(yyruleno==254);
136048 { yymsp[1].minor.yy72 = 0; }
136049 break;
136050 case 236: /* when_clause ::= WHEN expr */
136051 case 255: /* key_opt ::= KEY expr */ yytestcase(yyruleno==255);
136052 { yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr; }
136053 break;
136054 case 237: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
136055 {
136056 assert( yymsp[-2].minor.yy145!=0 );
136057 yymsp[-2].minor.yy145->pLast->pNext = yymsp[-1].minor.yy145;
136058 yymsp[-2].minor.yy145->pLast = yymsp[-1].minor.yy145;
136059 }
136060 break;
136061 case 238: /* trigger_cmd_list ::= trigger_cmd SEMI */
136062 {
136063 assert( yymsp[-1].minor.yy145!=0 );
136064 yymsp[-1].minor.yy145->pLast = yymsp[-1].minor.yy145;
136065 }
136066 break;
136067 case 239: /* trnm ::= nm DOT nm */
136068 {
136069 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
136070 sqlite3ErrorMsg(pParse,
136071 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
136072 "statements within triggers");
136073 }
136074 break;
136075 case 240: /* tridxby ::= INDEXED BY nm */
136076 {
136077 sqlite3ErrorMsg(pParse,
136078 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
136079 "within triggers");
136080 }
136081 break;
136082 case 241: /* tridxby ::= NOT INDEXED */
136083 {
136084 sqlite3ErrorMsg(pParse,
136085 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
136086 "within triggers");
136087 }
136088 break;
136089 case 242: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
136090 {yymsp[-6].minor.yy145 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy148, yymsp[0].minor.yy72, yymsp[-5].minor.yy194);}
136091 break;
136092 case 243: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
136093 {yymsp[-4].minor.yy145 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy254, yymsp[0].minor.yy243, yymsp[-4].minor.yy194);/*A-overwrites-R*/}
136094 break;
136095 case 244: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
136096 {yymsp[-4].minor.yy145 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy72);}
136097 break;
136098 case 245: /* trigger_cmd ::= select */
136099 {yymsp[0].minor.yy145 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy243); /*A-overwrites-X*/}
136100 break;
136101 case 246: /* expr ::= RAISE LP IGNORE RP */
136102 {
136103 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
136104 yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0);
136105 if( yymsp[-3].minor.yy190.pExpr ){
136106 yymsp[-3].minor.yy190.pExpr->affinity = OE_Ignore;
136107 }
136108 }
136109 break;
136110 case 247: /* expr ::= RAISE LP raisetype COMMA nm RP */
136111 {
136112 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
136113 yymsp[-5].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0);
136114 if( yymsp[-5].minor.yy190.pExpr ) {
136115 yymsp[-5].minor.yy190.pExpr->affinity = (char)yymsp[-3].minor.yy194;
136116 }
136117 }
136118 break;
136119 case 248: /* raisetype ::= ROLLBACK */
136120 {yymsp[0].minor.yy194 = OE_Rollback;}
136121 break;
136122 case 250: /* raisetype ::= FAIL */
136123 {yymsp[0].minor.yy194 = OE_Fail;}
136124 break;
136125 case 251: /* cmd ::= DROP TRIGGER ifexists fullname */
136126 {
136127 sqlite3DropTrigger(pParse,yymsp[0].minor.yy185,yymsp[-1].minor.yy194);
136128 }
136129 break;
136130 case 252: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
136131 {
136132 sqlite3Attach(pParse, yymsp[-3].minor.yy190.pExpr, yymsp[-1].minor.yy190.pExpr, yymsp[0].minor.yy72);
136133 }
136134 break;
136135 case 253: /* cmd ::= DETACH database_kw_opt expr */
136136 {
136137 sqlite3Detach(pParse, yymsp[0].minor.yy190.pExpr);
136138 }
136139 break;
136140 case 256: /* cmd ::= REINDEX */
136141 {sqlite3Reindex(pParse, 0, 0);}
136142 break;
136143 case 257: /* cmd ::= REINDEX nm dbnm */
136144 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
136145 break;
136146 case 258: /* cmd ::= ANALYZE */
136147 {sqlite3Analyze(pParse, 0, 0);}
136148 break;
136149 case 259: /* cmd ::= ANALYZE nm dbnm */
136150 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
136151 break;
136152 case 260: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
136153 {
136154 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy185,&yymsp[0].minor.yy0);
136155 }
136156 break;
136157 case 261: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
136158 {
136159 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
136160 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
136161 }
136162 break;
136163 case 262: /* add_column_fullname ::= fullname */
136164 {
136165 disableLookaside(pParse);
136166 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy185);
136167 }
136168 break;
136169 case 263: /* cmd ::= create_vtab */
136170 {sqlite3VtabFinishParse(pParse,0);}
136171 break;
136172 case 264: /* cmd ::= create_vtab LP vtabarglist RP */
136173 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
136174 break;
136175 case 265: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
136176 {
136177 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy194);
136178 }
136179 break;
136180 case 266: /* vtabarg ::= */
136181 {sqlite3VtabArgInit(pParse);}
136182 break;
136183 case 267: /* vtabargtoken ::= ANY */
136184 case 268: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==268);
136185 case 269: /* lp ::= LP */ yytestcase(yyruleno==269);
136186 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
136187 break;
136188 case 270: /* with ::= */
136189 {yymsp[1].minor.yy285 = 0;}
136190 break;
136191 case 271: /* with ::= WITH wqlist */
136192 { yymsp[-1].minor.yy285 = yymsp[0].minor.yy285; }
136193 break;
136194 case 272: /* with ::= WITH RECURSIVE wqlist */
136195 { yymsp[-2].minor.yy285 = yymsp[0].minor.yy285; }
136196 break;
136197 case 273: /* wqlist ::= nm eidlist_opt AS LP select RP */
136198 {
136199 yymsp[-5].minor.yy285 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243); /*A-overwrites-X*/
136200 }
136201 break;
136202 case 274: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
136203 {
136204 yymsp[-7].minor.yy285 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy285, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243);
136205 }
136206 break;
136207 default:
136208 /* (275) input ::= cmdlist */ yytestcase(yyruleno==275);
136209 /* (276) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==276);
136210 /* (277) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=277);
136211 /* (278) ecmd ::= SEMI */ yytestcase(yyruleno==278);
136212 /* (279) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==279);
136213 /* (280) explain ::= */ yytestcase(yyruleno==280);
136214 /* (281) trans_opt ::= */ yytestcase(yyruleno==281);
136215 /* (282) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==282);
136216 /* (283) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==283);
136217 /* (284) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==284);
136218 /* (285) savepoint_opt ::= */ yytestcase(yyruleno==285);
136219 /* (286) cmd ::= create_table create_table_args */ yytestcase(yyruleno==286);
136220 /* (287) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==287);
136221 /* (288) columnlist ::= columnname carglist */ yytestcase(yyruleno==288);
136222 /* (289) nm ::= ID|INDEXED */ yytestcase(yyruleno==289);
136223 /* (290) nm ::= STRING */ yytestcase(yyruleno==290);
136224 /* (291) nm ::= JOIN_KW */ yytestcase(yyruleno==291);
136225 /* (292) typetoken ::= typename */ yytestcase(yyruleno==292);
136226 /* (293) typename ::= ID|STRING */ yytestcase(yyruleno==293);
136227 /* (294) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=294);
136228 /* (295) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
136229 /* (296) carglist ::= carglist ccons */ yytestcase(yyruleno==296);
136230 /* (297) carglist ::= */ yytestcase(yyruleno==297);
136231 /* (298) ccons ::= NULL onconf */ yytestcase(yyruleno==298);
136232 /* (299) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==299);
136233 /* (300) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==300);
136234 /* (301) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=301);
136235 /* (302) tconscomma ::= */ yytestcase(yyruleno==302);
136236 /* (303) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=303);
136237 /* (304) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=304);
136238 /* (305) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=305);
136239 /* (306) oneselect ::= values */ yytestcase(yyruleno==306);
136240 /* (307) sclp ::= selcollist COMMA */ yytestcase(yyruleno==307);
136241 /* (308) as ::= ID|STRING */ yytestcase(yyruleno==308);
136242 /* (309) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=309);
136243 /* (310) exprlist ::= nexprlist */ yytestcase(yyruleno==310);
136244 /* (311) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=311);
136245 /* (312) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=312);
136246 /* (313) nmnum ::= ON */ yytestcase(yyruleno==313);
136247 /* (314) nmnum ::= DELETE */ yytestcase(yyruleno==314);
136248 /* (315) nmnum ::= DEFAULT */ yytestcase(yyruleno==315);
136249 /* (316) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==316);
136250 /* (317) foreach_clause ::= */ yytestcase(yyruleno==317);
136251 /* (318) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==318);
136252 /* (319) trnm ::= nm */ yytestcase(yyruleno==319);
136253 /* (320) tridxby ::= */ yytestcase(yyruleno==320);
136254 /* (321) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==321);
136255 /* (322) database_kw_opt ::= */ yytestcase(yyruleno==322);
136256 /* (323) kwcolumn_opt ::= */ yytestcase(yyruleno==323);
136257 /* (324) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==324);
136258 /* (325) vtabarglist ::= vtabarg */ yytestcase(yyruleno==325);
136259 /* (326) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==326);
136260 /* (327) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==327);
136261 /* (328) anylist ::= */ yytestcase(yyruleno==328);
136262 /* (329) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==329);
136263 /* (330) anylist ::= anylist ANY */ yytestcase(yyruleno==330);
136264 break;
136265 /********** End reduce actions ************************************************/
136266 };
136267 assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
136268 yygoto = yyRuleInfo[yyruleno].lhs;
@@ -195597,11 +195626,11 @@
195597 int nArg, /* Number of args */
195598 sqlite3_value **apUnused /* Function arguments */
195599 ){
195600 assert( nArg==0 );
195601 UNUSED_PARAM2(nArg, apUnused);
195602 sqlite3_result_text(pCtx, "fts5: 2016-09-21 19:43:34 0741812d7fcd558479e4849fbb3ba8d03738d018", -1, SQLITE_TRANSIENT);
195603 }
195604
195605 static int fts5Init(sqlite3 *db){
195606 static const sqlite3_module fts5Mod = {
195607 /* iVersion */ 2,
195608
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -381,11 +381,11 @@
381 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
382 ** [sqlite_version()] and [sqlite_source_id()].
383 */
384 #define SQLITE_VERSION "3.15.0"
385 #define SQLITE_VERSION_NUMBER 3015000
386 #define SQLITE_SOURCE_ID "2016-09-28 16:05:53 40c0fb0af678797c39a99853f9f4102464c16f4b"
387
388 /*
389 ** CAPI3REF: Run-Time Library Version Numbers
390 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
391 **
@@ -8915,11 +8915,11 @@
8915
8916 /*
8917 ** CAPI3REF: Set a table filter on a Session Object.
8918 **
8919 ** The second argument (xFilter) is the "filter callback". For changes to rows
8920 ** in tables that are not attached to the Session object, the filter is called
8921 ** to determine whether changes to the table's rows should be tracked or not.
8922 ** If xFilter returns 0, changes is not tracked. Note that once a table is
8923 ** attached, xFilter will not be called again.
8924 */
8925 void sqlite3session_table_filter(
@@ -9181,11 +9181,11 @@
9181 ** Assuming the changeset blob was created by one of the
9182 ** [sqlite3session_changeset()], [sqlite3changeset_concat()] or
9183 ** [sqlite3changeset_invert()] functions, all changes within the changeset
9184 ** that apply to a single table are grouped together. This means that when
9185 ** an application iterates through a changeset using an iterator created by
9186 ** this function, all changes that relate to a single table are visited
9187 ** consecutively. There is no chance that the iterator will visit a change
9188 ** the applies to table X, then one for table Y, and then later on visit
9189 ** another change for table X.
9190 */
9191 int sqlite3changeset_start(
@@ -9268,11 +9268,11 @@
9268 ** If successful, *pabPK is set to point to an array of nCol entries, where
9269 ** nCol is the number of columns in the table. Elements of *pabPK are set to
9270 ** 0x01 if the corresponding column is part of the tables primary key, or
9271 ** 0x00 if it is not.
9272 **
9273 ** If argument pnCol is not NULL, then *pnCol is set to the number of columns
9274 ** in the table.
9275 **
9276 ** If this function is called when the iterator does not point to a valid
9277 ** entry, SQLITE_MISUSE is returned and the output variables zeroed. Otherwise,
9278 ** SQLITE_OK is returned and the output variables populated as described
@@ -9543,11 +9543,11 @@
9543 ** Rows within the changeset and changegroup are identified by the values in
9544 ** their PRIMARY KEY columns. A change in the changeset is considered to
9545 ** apply to the same row as a change already present in the changegroup if
9546 ** the two rows have the same primary key.
9547 **
9548 ** Changes to rows that do not already appear in the changegroup are
9549 ** simply copied into it. Or, if both the new changeset and the changegroup
9550 ** contain changes that apply to a single row, the final contents of the
9551 ** changegroup depends on the type of each change, as follows:
9552 **
9553 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
@@ -11411,13 +11411,13 @@
11411 #define TK_GROUP 127
11412 #define TK_HAVING 128
11413 #define TK_LIMIT 129
11414 #define TK_WHERE 130
11415 #define TK_INTO 131
11416 #define TK_FLOAT 132
11417 #define TK_BLOB 133
11418 #define TK_INTEGER 134
11419 #define TK_VARIABLE 135
11420 #define TK_CASE 136
11421 #define TK_WHEN 137
11422 #define TK_THEN 138
11423 #define TK_ELSE 139
@@ -12682,12 +12682,12 @@
12682 #define OP_IdxDelete 127 /* synopsis: key=r[P2@P3] */
12683 #define OP_Seek 128 /* synopsis: Move P3 to P1.rowid */
12684 #define OP_IdxRowid 129 /* synopsis: r[P2]=rowid */
12685 #define OP_Destroy 130
12686 #define OP_Clear 131
12687 #define OP_Real 132 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
12688 #define OP_ResetSorter 133
12689 #define OP_CreateIndex 134 /* synopsis: r[P2]=root iDb=P1 */
12690 #define OP_CreateTable 135 /* synopsis: r[P2]=root iDb=P1 */
12691 #define OP_ParseSchema 136
12692 #define OP_LoadAnalysis 137
12693 #define OP_DropTable 138
@@ -12741,11 +12741,11 @@
12741 /* 88 */ 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00,\
12742 /* 96 */ 0x00, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\
12743 /* 104 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
12744 /* 112 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\
12745 /* 120 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x04, 0x00,\
12746 /* 128 */ 0x00, 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10,\
12747 /* 136 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10,\
12748 /* 144 */ 0x00, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00,\
12749 /* 152 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10,\
12750 /* 160 */ 0x00, 0x00, 0x00,}
12751
@@ -14963,10 +14963,11 @@
14963 #define EP_Unlikely 0x040000 /* unlikely() or likelihood() function */
14964 #define EP_ConstFunc 0x080000 /* A SQLITE_FUNC_CONSTANT or _SLOCHNG function */
14965 #define EP_CanBeNull 0x100000 /* Can be null despite NOT NULL constraint */
14966 #define EP_Subquery 0x200000 /* Tree contains a TK_SELECT operator */
14967 #define EP_Alias 0x400000 /* Is an alias for a result set column */
14968 #define EP_Leaf 0x800000 /* Expr.pLeft, .pRight, .u.pSelect all NULL */
14969
14970 /*
14971 ** Combinations of two or more EP_* flags
14972 */
14973 #define EP_Propagate (EP_Collate|EP_Subquery) /* Propagate these bits up tree */
@@ -29131,12 +29132,12 @@
29132 /* 127 */ "IdxDelete" OpHelp("key=r[P2@P3]"),
29133 /* 128 */ "Seek" OpHelp("Move P3 to P1.rowid"),
29134 /* 129 */ "IdxRowid" OpHelp("r[P2]=rowid"),
29135 /* 130 */ "Destroy" OpHelp(""),
29136 /* 131 */ "Clear" OpHelp(""),
29137 /* 132 */ "Real" OpHelp("r[P2]=P4"),
29138 /* 133 */ "ResetSorter" OpHelp(""),
29139 /* 134 */ "CreateIndex" OpHelp("r[P2]=root iDb=P1"),
29140 /* 135 */ "CreateTable" OpHelp("r[P2]=root iDb=P1"),
29141 /* 136 */ "ParseSchema" OpHelp(""),
29142 /* 137 */ "LoadAnalysis" OpHelp(""),
29143 /* 138 */ "DropTable" OpHelp(""),
@@ -76047,18 +76048,17 @@
76048 static Mem *columnMem(sqlite3_stmt *pStmt, int i){
76049 Vdbe *pVm;
76050 Mem *pOut;
76051
76052 pVm = (Vdbe *)pStmt;
76053 if( pVm==0 ) return (Mem*)columnNullValue();
76054 assert( pVm->db );
76055 sqlite3_mutex_enter(pVm->db->mutex);
76056 if( pVm->pResultSet!=0 && i<pVm->nResColumn && i>=0 ){
76057 pOut = &pVm->pResultSet[i];
76058 }else{
76059 sqlite3Error(pVm->db, SQLITE_RANGE);
 
 
 
76060 pOut = (Mem*)columnNullValue();
76061 }
76062 return pOut;
76063 }
76064
@@ -76087,10 +76087,12 @@
76087 ** SQLITE_NOMEM. The next call to _step() (if any) will return SQLITE_ERROR
76088 ** and _finalize() will return NOMEM.
76089 */
76090 Vdbe *p = (Vdbe *)pStmt;
76091 if( p ){
76092 assert( p->db!=0 );
76093 assert( sqlite3_mutex_held(p->db->mutex) );
76094 p->rc = sqlite3ApiExit(p->db, p->rc);
76095 sqlite3_mutex_leave(p->db->mutex);
76096 }
76097 }
76098
@@ -80487,14 +80489,13 @@
80489 p->nStmtDefCons = db->nDeferredCons;
80490 p->nStmtDefImmCons = db->nDeferredImmCons;
80491 }
80492
80493 /* Gather the schema version number for checking:
80494 ** IMPLEMENTATION-OF: R-03189-51135 As each SQL statement runs, the schema
80495 ** version is checked to ensure that the schema has not changed since the
80496 ** SQL statement was prepared.
 
80497 */
80498 sqlite3BtreeGetMeta(pBt, BTREE_SCHEMA_VERSION, (u32 *)&iMeta);
80499 iGen = db->aDb[pOp->p1].pSchema->iGeneration;
80500 }else{
80501 iGen = iMeta = 0;
@@ -81746,11 +81747,11 @@
81747 ** change count is incremented (otherwise not).
81748 **
81749 ** P1 must not be pseudo-table. It has to be a real table with
81750 ** multiple rows.
81751 **
81752 ** If P4 is not NULL then it points to a Table object. In this case either
81753 ** the update or pre-update hook, or both, may be invoked. The P1 cursor must
81754 ** have been positioned using OP_NotFound prior to invoking this opcode in
81755 ** this case. Specifically, if one is configured, the pre-update hook is
81756 ** invoked if P4 is not NULL. The update-hook is invoked if one is configured,
81757 ** P4 is not NULL, and the OPFLAG_NCHANGE flag is set in P2.
@@ -88036,11 +88037,13 @@
88037 static SQLITE_NOINLINE int walkExpr(Walker *pWalker, Expr *pExpr){
88038 int rc;
88039 testcase( ExprHasProperty(pExpr, EP_TokenOnly) );
88040 testcase( ExprHasProperty(pExpr, EP_Reduced) );
88041 rc = pWalker->xExprCallback(pWalker, pExpr);
88042 if( rc || ExprHasProperty(pExpr,(EP_TokenOnly|EP_Leaf)) ){
88043 return rc & WRC_Abort;
88044 }
88045 if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort;
88046 if( pExpr->pRight && walkExpr(pWalker, pExpr->pRight) ) return WRC_Abort;
88047 if( ExprHasProperty(pExpr, EP_xIsSelect) ){
88048 if( sqlite3WalkSelect(pWalker, pExpr->x.pSelect) ) return WRC_Abort;
88049 }else if( pExpr->x.pList ){
@@ -90705,22 +90708,29 @@
90708 */
90709 static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){
90710 assert( p!=0 );
90711 /* Sanity check: Assert that the IntValue is non-negative if it exists */
90712 assert( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 );
90713 #ifdef SQLITE_DEBUG
90714 if( ExprHasProperty(p, EP_Leaf) && !ExprHasProperty(p, EP_TokenOnly) ){
90715 assert( p->pLeft==0 );
90716 assert( p->pRight==0 );
90717 assert( p->x.pSelect==0 );
90718 }
90719 #endif
90720 if( !ExprHasProperty(p, (EP_TokenOnly|EP_Leaf)) ){
90721 /* The Expr.x union is never used at the same time as Expr.pRight */
90722 assert( p->x.pList==0 || p->pRight==0 );
90723 if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft);
90724 sqlite3ExprDelete(db, p->pRight);
 
90725 if( ExprHasProperty(p, EP_xIsSelect) ){
90726 sqlite3SelectDelete(db, p->x.pSelect);
90727 }else{
90728 sqlite3ExprListDelete(db, p->x.pList);
90729 }
90730 }
90731 if( ExprHasProperty(p, EP_MemToken) ) sqlite3DbFree(db, p->u.zToken);
90732 if( !ExprHasProperty(p, EP_Static) ){
90733 sqlite3DbFree(db, p);
90734 }
90735 }
90736 SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *db, Expr *p){
@@ -90893,11 +90903,11 @@
90903 if( nToken ){
90904 char *zToken = pNew->u.zToken = (char*)&zAlloc[nNewSize];
90905 memcpy(zToken, p->u.zToken, nToken);
90906 }
90907
90908 if( 0==((p->flags|pNew->flags) & (EP_TokenOnly|EP_Leaf)) ){
90909 /* Fill in the pNew->x.pSelect or pNew->x.pList member. */
90910 if( ExprHasProperty(p, EP_xIsSelect) ){
90911 pNew->x.pSelect = sqlite3SelectDup(db, p->x.pSelect, dupFlags);
90912 }else{
90913 pNew->x.pList = sqlite3ExprListDup(db, p->x.pList, dupFlags);
@@ -90905,21 +90915,21 @@
90915 }
90916
90917 /* Fill in pNew->pLeft and pNew->pRight. */
90918 if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly) ){
90919 zAlloc += dupedExprNodeSize(p, dupFlags);
90920 if( !ExprHasProperty(pNew, EP_TokenOnly|EP_Leaf) ){
90921 pNew->pLeft = p->pLeft ?
90922 exprDup(db, p->pLeft, EXPRDUP_REDUCE, &zAlloc) : 0;
90923 pNew->pRight = p->pRight ?
90924 exprDup(db, p->pRight, EXPRDUP_REDUCE, &zAlloc) : 0;
90925 }
90926 if( pzBuffer ){
90927 *pzBuffer = zAlloc;
90928 }
90929 }else{
90930 if( !ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){
90931 if( pNew->op==TK_SELECT_COLUMN ){
90932 pNew->pLeft = p->pLeft;
90933 }else{
90934 pNew->pLeft = sqlite3ExprDup(db, p->pLeft, 0);
90935 }
@@ -92276,12 +92286,12 @@
92286 dest.eDest = SRT_Exists;
92287 sqlite3VdbeAddOp2(v, OP_Integer, 0, dest.iSDParm);
92288 VdbeComment((v, "Init EXISTS result"));
92289 }
92290 sqlite3ExprDelete(pParse->db, pSel->pLimit);
92291 pSel->pLimit = sqlite3ExprAlloc(pParse->db, TK_INTEGER,
92292 &sqlite3IntTokens[1], 0);
92293 pSel->iLimit = 0;
92294 pSel->selFlags &= ~SF_MultiValue;
92295 if( sqlite3Select(pParse, pSel, &dest) ){
92296 return 0;
92297 }
@@ -97959,11 +97969,11 @@
97969 }else{
97970 sqlite3ErrorMsg(pFix->pParse, "%s cannot use variables", pFix->zType);
97971 return 1;
97972 }
97973 }
97974 if( ExprHasProperty(pExpr, EP_TokenOnly|EP_Leaf) ) break;
97975 if( ExprHasProperty(pExpr, EP_xIsSelect) ){
97976 if( sqlite3FixSelect(pFix, pExpr->x.pSelect) ) return 1;
97977 }else{
97978 if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;
97979 }
@@ -99735,10 +99745,13 @@
99745 ** This plan is not completely bullet-proof. It is possible for
99746 ** the schema to change multiple times and for the cookie to be
99747 ** set back to prior value. But schema changes are infrequent
99748 ** and the probability of hitting the same cookie value is only
99749 ** 1 chance in 2^32. So we're safe enough.
99750 **
99751 ** IMPLEMENTATION-OF: R-34230-56049 SQLite automatically increments
99752 ** the schema-version whenever the schema changes.
99753 */
99754 SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){
99755 sqlite3 *db = pParse->db;
99756 Vdbe *v = pParse->pVdbe;
99757 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
@@ -107192,14 +107205,14 @@
107205 }else if( action==OE_SetDflt ){
107206 Expr *pDflt = pFKey->pFrom->aCol[iFromCol].pDflt;
107207 if( pDflt ){
107208 pNew = sqlite3ExprDup(db, pDflt, 0);
107209 }else{
107210 pNew = sqlite3ExprAlloc(db, TK_NULL, 0, 0);
107211 }
107212 }else{
107213 pNew = sqlite3ExprAlloc(db, TK_NULL, 0, 0);
107214 }
107215 pList = sqlite3ExprListAppend(pParse, pList, pNew);
107216 sqlite3ExprListSetName(pParse, pList, &tFromCol, 0);
107217 }
107218 }
@@ -118072,16 +118085,17 @@
118085 pWhere = sqlite3ExprDup(db, pSub->pWhere, 0);
118086 if( subqueryIsAgg ){
118087 assert( pParent->pHaving==0 );
118088 pParent->pHaving = pParent->pWhere;
118089 pParent->pWhere = pWhere;
118090 pParent->pHaving = sqlite3ExprAnd(db,
118091 sqlite3ExprDup(db, pSub->pHaving, 0), pParent->pHaving
118092 );
118093 assert( pParent->pGroupBy==0 );
118094 pParent->pGroupBy = sqlite3ExprListDup(db, pSub->pGroupBy, 0);
118095 }else{
118096 pParent->pWhere = sqlite3ExprAnd(db, pWhere, pParent->pWhere);
118097 }
118098 substSelect(db, pParent, iParent, pSub->pEList, 0);
118099
118100 /* The flattened query is distinct if either the inner or the
118101 ** outer query is distinct.
@@ -127618,11 +127632,11 @@
127632 int idxNew;
127633 WhereTerm *pNewTerm;
127634
127635 pNewExpr = sqlite3PExpr(pParse, TK_GT,
127636 sqlite3ExprDup(db, pLeft, 0),
127637 sqlite3ExprAlloc(db, TK_NULL, 0, 0), 0);
127638
127639 idxNew = whereClauseInsert(pWC, pNewExpr,
127640 TERM_VIRTUAL|TERM_DYNAMIC|TERM_VNULL);
127641 if( idxNew ){
127642 pNewTerm = &pWC->a[idxNew];
@@ -127796,11 +127810,11 @@
127810 if( k>=pTab->nCol ){
127811 sqlite3ErrorMsg(pParse, "too many arguments on %s() - max %d",
127812 pTab->zName, j);
127813 return;
127814 }
127815 pColRef = sqlite3ExprAlloc(pParse->db, TK_COLUMN, 0, 0);
127816 if( pColRef==0 ) return;
127817 pColRef->iTable = pItem->iCursor;
127818 pColRef->iColumn = k++;
127819 pColRef->pTab = pTab;
127820 pTerm = sqlite3PExpr(pParse, TK_EQ, pColRef,
@@ -132844,19 +132858,10 @@
132858 struct LimitVal {
132859 Expr *pLimit; /* The LIMIT expression. NULL if there is no limit */
132860 Expr *pOffset; /* The OFFSET expression. NULL if there is none */
132861 };
132862
 
 
 
 
 
 
 
 
 
132863 /*
132864 ** An instance of the following structure describes the event of a
132865 ** TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT,
132866 ** TK_DELETE, or TK_INSTEAD. If the event is of the form
132867 **
@@ -132864,15 +132869,10 @@
132869 **
132870 ** Then the "b" IdList records the list "a,b,c".
132871 */
132872 struct TrigEvent { int a; IdList * b; };
132873
 
 
 
 
 
132874 /*
132875 ** Disable lookaside memory allocation for objects that might be
132876 ** shared across database connections.
132877 */
132878 static void disableLookaside(Parse *pParse){
@@ -132915,11 +132915,28 @@
132915 /* Construct a new Expr object from a single identifier. Use the
132916 ** new Expr to populate pOut. Set the span of pOut to be the identifier
132917 ** that created the expression.
132918 */
132919 static void spanExpr(ExprSpan *pOut, Parse *pParse, int op, Token t){
132920 Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1);
132921 if( p ){
132922 memset(p, 0, sizeof(Expr));
132923 p->op = (u8)op;
132924 p->flags = EP_Leaf;
132925 p->iAgg = -1;
132926 p->u.zToken = (char*)&p[1];
132927 memcpy(p->u.zToken, t.z, t.n);
132928 p->u.zToken[t.n] = 0;
132929 if( sqlite3Isquote(p->u.zToken[0]) ){
132930 if( p->u.zToken[0]=='"' ) p->flags |= EP_DblQuoted;
132931 sqlite3Dequote(p->u.zToken);
132932 }
132933 #if SQLITE_MAX_EXPR_DEPTH>0
132934 p->nHeight = 1;
132935 #endif
132936 }
132937 pOut->pExpr = p;
132938 pOut->zStart = t.z;
132939 pOut->zEnd = &t.z[t.n];
132940 }
132941
132942 /* This routine constructs a binary expression node out of two ExprSpan
@@ -133078,11 +133095,10 @@
133095 Select* yy243;
133096 IdList* yy254;
133097 With* yy285;
133098 struct TrigEvent yy332;
133099 struct LimitVal yy354;
 
133100 struct {int value; int mask;} yy497;
133101 } YYMINORTYPE;
133102 #ifndef YYSTACKDEPTH
133103 #define YYSTACKDEPTH 100
133104 #endif
@@ -133090,19 +133106,19 @@
133106 #define sqlite3ParserARG_PDECL ,Parse *pParse
133107 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
133108 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
133109 #define YYFALLBACK 1
133110 #define YYNSTATE 456
133111 #define YYNRULE 332
133112 #define YY_MAX_SHIFT 455
133113 #define YY_MIN_SHIFTREDUCE 668
133114 #define YY_MAX_SHIFTREDUCE 999
133115 #define YY_MIN_REDUCE 1000
133116 #define YY_MAX_REDUCE 1331
133117 #define YY_ERROR_ACTION 1332
133118 #define YY_ACCEPT_ACTION 1333
133119 #define YY_NO_ACTION 1334
133120 /************* End control #defines *******************************************/
133121
133122 /* Define the yytestcase() macro to be a no-op if is not already defined
133123 ** otherwise.
133124 **
@@ -133170,170 +133186,169 @@
133186 ** yy_reduce_ofst[] For each state, the offset into yy_action for
133187 ** shifting non-terminals after a reduce.
133188 ** yy_default[] Default action for each state.
133189 **
133190 *********** Begin parsing tables **********************************************/
133191 #define YY_ACTTAB_COUNT (1567)
133192 static const YYACTIONTYPE yy_action[] = {
133193 /* 0 */ 325, 832, 351, 825, 5, 203, 203, 819, 99, 100,
133194 /* 10 */ 90, 842, 842, 854, 857, 846, 846, 97, 97, 98,
133195 /* 20 */ 98, 98, 98, 301, 96, 96, 96, 96, 95, 95,
133196 /* 30 */ 94, 94, 94, 93, 351, 325, 977, 977, 824, 824,
133197 /* 40 */ 826, 947, 354, 99, 100, 90, 842, 842, 854, 857,
133198 /* 50 */ 846, 846, 97, 97, 98, 98, 98, 98, 338, 96,
133199 /* 60 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 351,
133200 /* 70 */ 95, 95, 94, 94, 94, 93, 351, 791, 977, 977,
133201 /* 80 */ 325, 94, 94, 94, 93, 351, 792, 75, 99, 100,
133202 /* 90 */ 90, 842, 842, 854, 857, 846, 846, 97, 97, 98,
133203 /* 100 */ 98, 98, 98, 450, 96, 96, 96, 96, 95, 95,
133204 /* 110 */ 94, 94, 94, 93, 351, 1333, 155, 155, 2, 325,
133205 /* 120 */ 275, 146, 132, 52, 52, 93, 351, 99, 100, 90,
133206 /* 130 */ 842, 842, 854, 857, 846, 846, 97, 97, 98, 98,
133207 /* 140 */ 98, 98, 101, 96, 96, 96, 96, 95, 95, 94,
133208 /* 150 */ 94, 94, 93, 351, 958, 958, 325, 268, 428, 413,
133209 /* 160 */ 411, 61, 752, 752, 99, 100, 90, 842, 842, 854,
133210 /* 170 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 60,
133211 /* 180 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133212 /* 190 */ 351, 325, 270, 329, 273, 277, 959, 960, 250, 99,
133213 /* 200 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133214 /* 210 */ 98, 98, 98, 98, 301, 96, 96, 96, 96, 95,
133215 /* 220 */ 95, 94, 94, 94, 93, 351, 325, 938, 1326, 698,
133216 /* 230 */ 706, 1326, 242, 412, 99, 100, 90, 842, 842, 854,
133217 /* 240 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 347,
133218 /* 250 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133219 /* 260 */ 351, 325, 938, 1327, 384, 699, 1327, 381, 379, 99,
133220 /* 270 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133221 /* 280 */ 98, 98, 98, 98, 701, 96, 96, 96, 96, 95,
133222 /* 290 */ 95, 94, 94, 94, 93, 351, 325, 92, 89, 178,
133223 /* 300 */ 833, 936, 373, 700, 99, 100, 90, 842, 842, 854,
133224 /* 310 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 375,
133225 /* 320 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133226 /* 330 */ 351, 325, 1276, 947, 354, 818, 936, 739, 739, 99,
133227 /* 340 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133228 /* 350 */ 98, 98, 98, 98, 230, 96, 96, 96, 96, 95,
133229 /* 360 */ 95, 94, 94, 94, 93, 351, 325, 969, 227, 92,
133230 /* 370 */ 89, 178, 373, 300, 99, 100, 90, 842, 842, 854,
133231 /* 380 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 921,
133232 /* 390 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133233 /* 400 */ 351, 325, 449, 447, 447, 447, 147, 737, 737, 99,
133234 /* 410 */ 100, 90, 842, 842, 854, 857, 846, 846, 97, 97,
133235 /* 420 */ 98, 98, 98, 98, 296, 96, 96, 96, 96, 95,
133236 /* 430 */ 95, 94, 94, 94, 93, 351, 325, 419, 231, 958,
133237 /* 440 */ 958, 158, 25, 422, 99, 100, 90, 842, 842, 854,
133238 /* 450 */ 857, 846, 846, 97, 97, 98, 98, 98, 98, 450,
133239 /* 460 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133240 /* 470 */ 351, 443, 224, 224, 420, 958, 958, 962, 325, 52,
133241 /* 480 */ 52, 959, 960, 176, 415, 78, 99, 100, 90, 842,
133242 /* 490 */ 842, 854, 857, 846, 846, 97, 97, 98, 98, 98,
133243 /* 500 */ 98, 379, 96, 96, 96, 96, 95, 95, 94, 94,
133244 /* 510 */ 94, 93, 351, 325, 428, 418, 298, 959, 960, 962,
133245 /* 520 */ 81, 99, 88, 90, 842, 842, 854, 857, 846, 846,
133246 /* 530 */ 97, 97, 98, 98, 98, 98, 717, 96, 96, 96,
133247 /* 540 */ 96, 95, 95, 94, 94, 94, 93, 351, 325, 843,
133248 /* 550 */ 843, 855, 858, 996, 318, 343, 379, 100, 90, 842,
133249 /* 560 */ 842, 854, 857, 846, 846, 97, 97, 98, 98, 98,
133250 /* 570 */ 98, 450, 96, 96, 96, 96, 95, 95, 94, 94,
133251 /* 580 */ 94, 93, 351, 325, 350, 350, 350, 260, 377, 340,
133252 /* 590 */ 929, 52, 52, 90, 842, 842, 854, 857, 846, 846,
133253 /* 600 */ 97, 97, 98, 98, 98, 98, 361, 96, 96, 96,
133254 /* 610 */ 96, 95, 95, 94, 94, 94, 93, 351, 86, 445,
133255 /* 620 */ 847, 3, 1203, 361, 360, 378, 344, 813, 958, 958,
133256 /* 630 */ 1300, 86, 445, 729, 3, 212, 169, 287, 405, 282,
133257 /* 640 */ 404, 199, 232, 450, 300, 760, 83, 84, 280, 245,
133258 /* 650 */ 262, 365, 251, 85, 352, 352, 92, 89, 178, 83,
133259 /* 660 */ 84, 242, 412, 52, 52, 448, 85, 352, 352, 246,
133260 /* 670 */ 959, 960, 194, 455, 670, 402, 399, 398, 448, 243,
133261 /* 680 */ 221, 114, 434, 776, 361, 450, 397, 268, 747, 224,
133262 /* 690 */ 224, 132, 132, 198, 832, 434, 452, 451, 428, 427,
133263 /* 700 */ 819, 415, 734, 713, 132, 52, 52, 832, 268, 452,
133264 /* 710 */ 451, 734, 194, 819, 363, 402, 399, 398, 450, 1271,
133265 /* 720 */ 1271, 23, 958, 958, 86, 445, 397, 3, 228, 429,
133266 /* 730 */ 895, 824, 824, 826, 827, 19, 203, 720, 52, 52,
133267 /* 740 */ 428, 408, 439, 249, 824, 824, 826, 827, 19, 229,
133268 /* 750 */ 403, 153, 83, 84, 761, 177, 241, 450, 721, 85,
133269 /* 760 */ 352, 352, 120, 157, 959, 960, 58, 977, 409, 355,
133270 /* 770 */ 330, 448, 268, 428, 430, 320, 790, 32, 32, 86,
133271 /* 780 */ 445, 776, 3, 341, 98, 98, 98, 98, 434, 96,
133272 /* 790 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 351,
133273 /* 800 */ 832, 120, 452, 451, 813, 887, 819, 83, 84, 977,
133274 /* 810 */ 813, 132, 410, 920, 85, 352, 352, 132, 407, 789,
133275 /* 820 */ 958, 958, 92, 89, 178, 917, 448, 262, 370, 261,
133276 /* 830 */ 82, 914, 80, 262, 370, 261, 776, 824, 824, 826,
133277 /* 840 */ 827, 19, 934, 434, 96, 96, 96, 96, 95, 95,
133278 /* 850 */ 94, 94, 94, 93, 351, 832, 74, 452, 451, 958,
133279 /* 860 */ 958, 819, 959, 960, 120, 92, 89, 178, 945, 2,
133280 /* 870 */ 918, 965, 268, 1, 976, 76, 445, 762, 3, 708,
133281 /* 880 */ 901, 901, 387, 958, 958, 757, 919, 371, 740, 778,
133282 /* 890 */ 756, 257, 824, 824, 826, 827, 19, 417, 741, 450,
133283 /* 900 */ 24, 959, 960, 83, 84, 369, 958, 958, 177, 226,
133284 /* 910 */ 85, 352, 352, 885, 315, 314, 313, 215, 311, 10,
133285 /* 920 */ 10, 683, 448, 349, 348, 959, 960, 909, 777, 157,
133286 /* 930 */ 120, 958, 958, 337, 776, 416, 711, 310, 450, 434,
133287 /* 940 */ 450, 321, 450, 791, 103, 200, 175, 450, 959, 960,
133288 /* 950 */ 908, 832, 792, 452, 451, 9, 9, 819, 10, 10,
133289 /* 960 */ 52, 52, 51, 51, 180, 716, 248, 10, 10, 171,
133290 /* 970 */ 170, 167, 339, 959, 960, 247, 984, 702, 702, 450,
133291 /* 980 */ 715, 233, 686, 982, 889, 983, 182, 914, 824, 824,
133292 /* 990 */ 826, 827, 19, 183, 256, 423, 132, 181, 394, 10,
133293 /* 1000 */ 10, 889, 891, 749, 958, 958, 917, 268, 985, 198,
133294 /* 1010 */ 985, 349, 348, 425, 415, 299, 817, 832, 326, 825,
133295 /* 1020 */ 120, 332, 133, 819, 268, 98, 98, 98, 98, 91,
133296 /* 1030 */ 96, 96, 96, 96, 95, 95, 94, 94, 94, 93,
133297 /* 1040 */ 351, 157, 810, 371, 382, 359, 959, 960, 358, 268,
133298 /* 1050 */ 450, 918, 368, 324, 824, 824, 826, 450, 709, 450,
133299 /* 1060 */ 264, 380, 889, 450, 877, 746, 253, 919, 255, 433,
133300 /* 1070 */ 36, 36, 234, 450, 234, 120, 269, 37, 37, 12,
133301 /* 1080 */ 12, 334, 272, 27, 27, 450, 330, 118, 450, 162,
133302 /* 1090 */ 742, 280, 450, 38, 38, 450, 985, 356, 985, 450,
133303 /* 1100 */ 709, 1210, 450, 132, 450, 39, 39, 450, 40, 40,
133304 /* 1110 */ 450, 362, 41, 41, 450, 42, 42, 450, 254, 28,
133305 /* 1120 */ 28, 450, 29, 29, 31, 31, 450, 43, 43, 450,
133306 /* 1130 */ 44, 44, 450, 714, 45, 45, 450, 11, 11, 767,
133307 /* 1140 */ 450, 46, 46, 450, 268, 450, 105, 105, 450, 47,
133308 /* 1150 */ 47, 450, 48, 48, 450, 237, 33, 33, 450, 172,
133309 /* 1160 */ 49, 49, 450, 50, 50, 34, 34, 274, 122, 122,
133310 /* 1170 */ 450, 123, 123, 450, 124, 124, 450, 898, 56, 56,
133311 /* 1180 */ 450, 897, 35, 35, 450, 267, 450, 817, 450, 817,
133312 /* 1190 */ 106, 106, 450, 53, 53, 385, 107, 107, 450, 817,
133313 /* 1200 */ 108, 108, 817, 450, 104, 104, 121, 121, 119, 119,
133314 /* 1210 */ 450, 117, 112, 112, 450, 276, 450, 225, 111, 111,
133315 /* 1220 */ 450, 730, 450, 109, 109, 450, 673, 674, 675, 912,
133316 /* 1230 */ 110, 110, 317, 998, 55, 55, 57, 57, 692, 331,
133317 /* 1240 */ 54, 54, 26, 26, 696, 30, 30, 317, 937, 197,
133318 /* 1250 */ 196, 195, 335, 281, 336, 446, 331, 745, 689, 436,
133319 /* 1260 */ 440, 444, 120, 72, 386, 223, 175, 345, 757, 933,
133320 /* 1270 */ 20, 286, 319, 756, 815, 372, 374, 202, 202, 202,
133321 /* 1280 */ 263, 395, 285, 74, 208, 21, 696, 719, 718, 884,
133322 /* 1290 */ 120, 120, 120, 120, 120, 754, 278, 828, 77, 74,
133323 /* 1300 */ 726, 727, 785, 783, 880, 202, 999, 208, 894, 893,
133324 /* 1310 */ 894, 893, 694, 816, 763, 116, 774, 1290, 431, 432,
133325 /* 1320 */ 302, 999, 390, 303, 823, 697, 691, 680, 159, 289,
133326 /* 1330 */ 679, 884, 681, 952, 291, 218, 293, 7, 316, 828,
133327 /* 1340 */ 173, 805, 259, 364, 252, 911, 376, 713, 295, 435,
133328 /* 1350 */ 308, 168, 955, 993, 135, 400, 990, 284, 882, 881,
133329 /* 1360 */ 205, 928, 926, 59, 333, 62, 144, 156, 130, 72,
133330 /* 1370 */ 802, 366, 367, 393, 137, 185, 189, 160, 139, 383,
133331 /* 1380 */ 67, 896, 140, 141, 142, 148, 389, 812, 775, 266,
133332 /* 1390 */ 219, 190, 154, 391, 913, 876, 271, 406, 191, 322,
133333 /* 1400 */ 682, 733, 192, 342, 732, 724, 731, 711, 723, 421,
133334 /* 1410 */ 705, 71, 323, 6, 204, 771, 288, 79, 297, 346,
133335 /* 1420 */ 772, 704, 290, 283, 703, 770, 292, 294, 967, 239,
133336 /* 1430 */ 769, 102, 862, 438, 426, 240, 424, 442, 73, 213,
133337 /* 1440 */ 688, 238, 22, 453, 953, 214, 217, 216, 454, 677,
133338 /* 1450 */ 676, 671, 753, 125, 115, 235, 126, 669, 353, 166,
133339 /* 1460 */ 127, 244, 179, 357, 306, 304, 305, 307, 113, 892,
133340 /* 1470 */ 327, 890, 811, 328, 134, 128, 136, 138, 743, 258,
133341 /* 1480 */ 907, 184, 143, 129, 910, 186, 63, 64, 145, 187,
133342 /* 1490 */ 906, 65, 8, 66, 13, 188, 202, 899, 265, 149,
133343 /* 1500 */ 987, 388, 150, 685, 161, 392, 285, 193, 279, 396,
133344 /* 1510 */ 151, 401, 68, 14, 15, 722, 69, 236, 831, 131,
133345 /* 1520 */ 830, 860, 70, 751, 16, 414, 755, 4, 174, 220,
133346 /* 1530 */ 222, 784, 201, 152, 779, 77, 74, 17, 18, 875,
133347 /* 1540 */ 861, 859, 916, 864, 915, 207, 206, 942, 163, 437,
133348 /* 1550 */ 948, 943, 164, 209, 1002, 441, 863, 165, 210, 829,
133349 /* 1560 */ 695, 87, 312, 211, 1292, 1291, 309,
 
133350 };
133351 static const YYCODETYPE yy_lookahead[] = {
133352 /* 0 */ 19, 95, 53, 97, 22, 24, 24, 101, 27, 28,
133353 /* 10 */ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
133354 /* 20 */ 39, 40, 41, 152, 43, 44, 45, 46, 47, 48,
@@ -133415,87 +133430,86 @@
133430 /* 780 */ 20, 124, 22, 111, 38, 39, 40, 41, 83, 43,
133431 /* 790 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
133432 /* 800 */ 95, 196, 97, 98, 85, 152, 101, 47, 48, 97,
133433 /* 810 */ 85, 92, 207, 193, 54, 55, 56, 92, 49, 175,
133434 /* 820 */ 55, 56, 221, 222, 223, 12, 66, 108, 109, 110,
133435 /* 830 */ 137, 163, 139, 108, 109, 110, 26, 132, 133, 134,
133436 /* 840 */ 135, 136, 152, 83, 43, 44, 45, 46, 47, 48,
133437 /* 850 */ 49, 50, 51, 52, 53, 95, 26, 97, 98, 55,
133438 /* 860 */ 56, 101, 97, 98, 196, 221, 222, 223, 146, 147,
133439 /* 870 */ 57, 171, 152, 22, 26, 19, 20, 49, 22, 179,
133440 /* 880 */ 108, 109, 110, 55, 56, 116, 73, 219, 75, 124,
133441 /* 890 */ 121, 152, 132, 133, 134, 135, 136, 163, 85, 152,
133442 /* 900 */ 232, 97, 98, 47, 48, 237, 55, 56, 98, 5,
133443 /* 910 */ 54, 55, 56, 193, 10, 11, 12, 13, 14, 172,
133444 /* 920 */ 173, 17, 66, 47, 48, 97, 98, 152, 124, 152,
133445 /* 930 */ 196, 55, 56, 186, 124, 152, 106, 160, 152, 83,
133446 /* 940 */ 152, 164, 152, 61, 22, 211, 212, 152, 97, 98,
133447 /* 950 */ 152, 95, 70, 97, 98, 172, 173, 101, 172, 173,
133448 /* 960 */ 172, 173, 172, 173, 60, 181, 62, 172, 173, 47,
133449 /* 970 */ 48, 123, 186, 97, 98, 71, 100, 55, 56, 152,
133450 /* 980 */ 181, 186, 21, 107, 152, 109, 82, 163, 132, 133,
133451 /* 990 */ 134, 135, 136, 89, 16, 207, 92, 93, 19, 172,
133452 /* 1000 */ 173, 169, 170, 195, 55, 56, 12, 152, 132, 30,
133453 /* 1010 */ 134, 47, 48, 186, 206, 225, 152, 95, 114, 97,
133454 /* 1020 */ 196, 245, 246, 101, 152, 38, 39, 40, 41, 42,
133455 /* 1030 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
133456 /* 1040 */ 53, 152, 163, 219, 152, 141, 97, 98, 193, 152,
133457 /* 1050 */ 152, 57, 91, 164, 132, 133, 134, 152, 55, 152,
133458 /* 1060 */ 152, 237, 230, 152, 103, 193, 88, 73, 90, 75,
133459 /* 1070 */ 172, 173, 183, 152, 185, 196, 152, 172, 173, 172,
133460 /* 1080 */ 173, 217, 152, 172, 173, 152, 107, 22, 152, 24,
133461 /* 1090 */ 193, 112, 152, 172, 173, 152, 132, 242, 134, 152,
133462 /* 1100 */ 97, 140, 152, 92, 152, 172, 173, 152, 172, 173,
133463 /* 1110 */ 152, 100, 172, 173, 152, 172, 173, 152, 140, 172,
133464 /* 1120 */ 173, 152, 172, 173, 172, 173, 152, 172, 173, 152,
133465 /* 1130 */ 172, 173, 152, 152, 172, 173, 152, 172, 173, 213,
133466 /* 1140 */ 152, 172, 173, 152, 152, 152, 172, 173, 152, 172,
133467 /* 1150 */ 173, 152, 172, 173, 152, 210, 172, 173, 152, 26,
133468 /* 1160 */ 172, 173, 152, 172, 173, 172, 173, 152, 172, 173,
133469 /* 1170 */ 152, 172, 173, 152, 172, 173, 152, 59, 172, 173,
133470 /* 1180 */ 152, 63, 172, 173, 152, 193, 152, 152, 152, 152,
133471 /* 1190 */ 172, 173, 152, 172, 173, 77, 172, 173, 152, 152,
133472 /* 1200 */ 172, 173, 152, 152, 172, 173, 172, 173, 172, 173,
133473 /* 1210 */ 152, 22, 172, 173, 152, 152, 152, 22, 172, 173,
133474 /* 1220 */ 152, 152, 152, 172, 173, 152, 7, 8, 9, 163,
133475 /* 1230 */ 172, 173, 22, 23, 172, 173, 172, 173, 166, 167,
133476 /* 1240 */ 172, 173, 172, 173, 55, 172, 173, 22, 23, 108,
133477 /* 1250 */ 109, 110, 217, 152, 217, 166, 167, 163, 163, 163,
133478 /* 1260 */ 163, 163, 196, 130, 217, 211, 212, 217, 116, 23,
133479 /* 1270 */ 22, 101, 26, 121, 23, 23, 23, 26, 26, 26,
133480 /* 1280 */ 23, 23, 112, 26, 26, 37, 97, 100, 101, 55,
133481 /* 1290 */ 196, 196, 196, 196, 196, 23, 23, 55, 26, 26,
133482 /* 1300 */ 7, 8, 23, 152, 23, 26, 96, 26, 132, 132,
133483 /* 1310 */ 134, 134, 23, 152, 152, 26, 152, 122, 152, 191,
133484 /* 1320 */ 152, 96, 234, 152, 152, 152, 152, 152, 197, 210,
133485 /* 1330 */ 152, 97, 152, 152, 210, 233, 210, 198, 150, 97,
133486 /* 1340 */ 184, 201, 239, 214, 214, 201, 239, 180, 214, 227,
133487 /* 1350 */ 200, 198, 155, 67, 243, 176, 69, 175, 175, 175,
133488 /* 1360 */ 122, 159, 159, 240, 159, 240, 22, 220, 27, 130,
133489 /* 1370 */ 201, 18, 159, 18, 189, 158, 158, 220, 192, 159,
133490 /* 1380 */ 137, 236, 192, 192, 192, 189, 74, 189, 159, 235,
133491 /* 1390 */ 159, 158, 22, 177, 201, 201, 159, 107, 158, 177,
133492 /* 1400 */ 159, 174, 158, 76, 174, 182, 174, 106, 182, 125,
133493 /* 1410 */ 174, 107, 177, 22, 159, 216, 215, 137, 159, 53,
133494 /* 1420 */ 216, 176, 215, 174, 174, 216, 215, 215, 174, 229,
133495 /* 1430 */ 216, 129, 224, 177, 126, 229, 127, 177, 128, 25,
133496 /* 1440 */ 162, 226, 26, 161, 13, 153, 6, 153, 151, 151,
133497 /* 1450 */ 151, 151, 205, 165, 178, 178, 165, 4, 3, 22,
133498 /* 1460 */ 165, 142, 15, 94, 202, 204, 203, 201, 16, 23,
133499 /* 1470 */ 249, 23, 120, 249, 246, 111, 131, 123, 20, 16,
133500 /* 1480 */ 1, 125, 123, 111, 56, 64, 37, 37, 131, 122,
133501 /* 1490 */ 1, 37, 5, 37, 22, 107, 26, 80, 140, 80,
133502 /* 1500 */ 87, 72, 107, 20, 24, 19, 112, 105, 23, 79,
133503 /* 1510 */ 22, 79, 22, 22, 22, 58, 22, 79, 23, 68,
133504 /* 1520 */ 23, 23, 26, 116, 22, 26, 23, 22, 122, 23,
133505 /* 1530 */ 23, 56, 64, 22, 124, 26, 26, 64, 64, 23,
133506 /* 1540 */ 23, 23, 23, 11, 23, 22, 26, 23, 22, 24,
133507 /* 1550 */ 1, 23, 22, 26, 251, 24, 23, 22, 122, 23,
133508 /* 1560 */ 23, 22, 15, 122, 122, 122, 23,
 
133509 };
133510 #define YY_SHIFT_USE_DFLT (1567)
133511 #define YY_SHIFT_COUNT (455)
133512 #define YY_SHIFT_MIN (-94)
133513 #define YY_SHIFT_MAX (1549)
133514 static const short yy_shift_ofst[] = {
133515 /* 0 */ 40, 599, 904, 612, 760, 760, 760, 760, 725, -19,
@@ -133507,132 +133521,132 @@
133521 /* 60 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133522 /* 70 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133523 /* 80 */ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133524 /* 90 */ 856, 760, 760, 760, 760, 760, 760, 760, 760, 760,
133525 /* 100 */ 760, 760, 760, 760, 987, 746, 746, 746, 746, 746,
133526 /* 110 */ 801, 23, 32, 949, 961, 979, 964, 964, 949, 73,
133527 /* 120 */ 113, -51, 1567, 1567, 1567, 536, 536, 536, 99, 99,
133528 /* 130 */ 813, 813, 667, 205, 240, 949, 949, 949, 949, 949,
133529 /* 140 */ 949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
133530 /* 150 */ 949, 949, 949, 949, 949, 332, 1011, 422, 422, 113,
133531 /* 160 */ 30, 30, 30, 30, 30, 30, 1567, 1567, 1567, 922,
133532 /* 170 */ -94, -94, 384, 613, 828, 420, 765, 804, 851, 949,
133533 /* 180 */ 949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
133534 /* 190 */ 949, 949, 949, 949, 949, 672, 672, 672, 949, 949,
133535 /* 200 */ 657, 949, 949, 949, -18, 949, 949, 994, 949, 949,
133536 /* 210 */ 949, 949, 949, 949, 949, 949, 949, 949, 772, 1118,
133537 /* 220 */ 712, 712, 712, 810, 45, 769, 1219, 1133, 418, 418,
133538 /* 230 */ 569, 1133, 569, 830, 607, 663, 882, 418, 693, 882,
133539 /* 240 */ 882, 848, 1152, 1065, 1286, 1238, 1238, 1287, 1287, 1238,
133540 /* 250 */ 1344, 1341, 1239, 1353, 1353, 1353, 1353, 1238, 1355, 1239,
133541 /* 260 */ 1344, 1341, 1341, 1239, 1238, 1355, 1243, 1312, 1238, 1238,
133542 /* 270 */ 1355, 1370, 1238, 1355, 1238, 1355, 1370, 1290, 1290, 1290,
133543 /* 280 */ 1327, 1370, 1290, 1301, 1290, 1327, 1290, 1290, 1284, 1304,
133544 /* 290 */ 1284, 1304, 1284, 1304, 1284, 1304, 1238, 1391, 1238, 1280,
133545 /* 300 */ 1370, 1366, 1366, 1370, 1302, 1308, 1310, 1309, 1239, 1414,
133546 /* 310 */ 1416, 1431, 1431, 1440, 1440, 1440, 1440, 1567, 1567, 1567,
133547 /* 320 */ 1567, 1567, 1567, 1567, 1567, 519, 978, 1210, 1225, 104,
133548 /* 330 */ 1141, 1189, 1246, 1248, 1251, 1252, 1253, 1257, 1258, 1273,
133549 /* 340 */ 1003, 1187, 1293, 1170, 1272, 1279, 1234, 1281, 1176, 1177,
133550 /* 350 */ 1289, 1242, 1195, 1453, 1455, 1437, 1319, 1447, 1369, 1452,
133551 /* 360 */ 1446, 1448, 1352, 1345, 1364, 1354, 1458, 1356, 1463, 1479,
133552 /* 370 */ 1359, 1357, 1449, 1450, 1454, 1456, 1372, 1428, 1421, 1367,
133553 /* 380 */ 1489, 1487, 1472, 1388, 1358, 1417, 1470, 1419, 1413, 1429,
133554 /* 390 */ 1395, 1480, 1483, 1486, 1394, 1402, 1488, 1430, 1490, 1491,
133555 /* 400 */ 1485, 1492, 1432, 1457, 1494, 1438, 1451, 1495, 1497, 1498,
133556 /* 410 */ 1496, 1407, 1502, 1503, 1505, 1499, 1406, 1506, 1507, 1475,
133557 /* 420 */ 1468, 1511, 1410, 1509, 1473, 1510, 1474, 1516, 1509, 1517,
133558 /* 430 */ 1518, 1519, 1520, 1521, 1523, 1532, 1524, 1526, 1525, 1527,
133559 /* 440 */ 1528, 1530, 1531, 1527, 1533, 1535, 1536, 1537, 1539, 1436,
133560 /* 450 */ 1441, 1442, 1443, 1543, 1547, 1549,
133561 };
133562 #define YY_REDUCE_USE_DFLT (-130)
133563 #define YY_REDUCE_COUNT (324)
133564 #define YY_REDUCE_MIN (-129)
133565 #define YY_REDUCE_MAX (1300)
133566 static const short yy_reduce_ofst[] = {
133567 /* 0 */ -29, 566, 525, 605, -49, 307, 491, 533, 668, 435,
133568 /* 10 */ 601, 644, 148, 747, 786, 795, 419, 788, 827, 790,
133569 /* 20 */ 454, 832, 889, 495, 824, 734, 76, 76, 76, 76,
133570 /* 30 */ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
133571 /* 40 */ 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
133572 /* 50 */ 76, 76, 76, 76, 76, 76, 76, 76, 783, 898,
133573 /* 60 */ 905, 907, 911, 921, 933, 936, 940, 943, 947, 950,
133574 /* 70 */ 952, 955, 958, 962, 965, 969, 974, 977, 980, 984,
133575 /* 80 */ 988, 991, 993, 996, 999, 1002, 1006, 1010, 1018, 1021,
133576 /* 90 */ 1024, 1028, 1032, 1034, 1036, 1040, 1046, 1051, 1058, 1062,
133577 /* 100 */ 1064, 1068, 1070, 1073, 76, 76, 76, 76, 76, 76,
133578 /* 110 */ 76, 76, 76, 855, 36, 523, 235, 416, 777, 76,
133579 /* 120 */ 278, 76, 76, 76, 76, 700, 700, 700, 150, 220,
133580 /* 130 */ 147, 217, 221, 306, 306, 611, 5, 535, 556, 620,
133581 /* 140 */ 720, 872, 897, 116, 864, 349, 1035, 1037, 404, 1047,
133582 /* 150 */ 992, -129, 1050, 492, 62, 722, 879, 1072, 1089, 808,
133583 /* 160 */ 1066, 1094, 1095, 1096, 1097, 1098, 776, 1054, 557, 57,
133584 /* 170 */ 112, 131, 167, 182, 250, 272, 291, 331, 364, 438,
133585 /* 180 */ 497, 517, 591, 653, 690, 739, 775, 798, 892, 908,
133586 /* 190 */ 924, 930, 1015, 1063, 1069, 355, 784, 799, 981, 1101,
133587 /* 200 */ 926, 1151, 1161, 1162, 945, 1164, 1166, 1128, 1168, 1171,
133588 /* 210 */ 1172, 250, 1173, 1174, 1175, 1178, 1180, 1181, 1088, 1102,
133589 /* 220 */ 1119, 1124, 1126, 926, 1131, 1139, 1188, 1140, 1129, 1130,
133590 /* 230 */ 1103, 1144, 1107, 1179, 1156, 1167, 1182, 1134, 1122, 1183,
133591 /* 240 */ 1184, 1150, 1153, 1197, 1111, 1202, 1203, 1123, 1125, 1205,
133592 /* 250 */ 1147, 1185, 1169, 1186, 1190, 1191, 1192, 1213, 1217, 1193,
133593 /* 260 */ 1157, 1196, 1198, 1194, 1220, 1218, 1145, 1154, 1229, 1231,
133594 /* 270 */ 1233, 1216, 1237, 1240, 1241, 1244, 1222, 1227, 1230, 1232,
133595 /* 280 */ 1223, 1235, 1236, 1245, 1249, 1226, 1250, 1254, 1199, 1201,
133596 /* 290 */ 1204, 1207, 1209, 1211, 1214, 1212, 1255, 1208, 1259, 1215,
133597 /* 300 */ 1256, 1200, 1206, 1260, 1247, 1261, 1263, 1262, 1266, 1278,
133598 /* 310 */ 1282, 1292, 1294, 1297, 1298, 1299, 1300, 1221, 1224, 1228,
133599 /* 320 */ 1288, 1291, 1276, 1277, 1295,
133600 };
133601 static const YYACTIONTYPE yy_default[] = {
133602 /* 0 */ 1281, 1271, 1271, 1271, 1203, 1203, 1203, 1203, 1271, 1096,
133603 /* 10 */ 1125, 1125, 1255, 1332, 1332, 1332, 1332, 1332, 1332, 1202,
133604 /* 20 */ 1332, 1332, 1332, 1332, 1271, 1100, 1131, 1332, 1332, 1332,
133605 /* 30 */ 1332, 1204, 1205, 1332, 1332, 1332, 1254, 1256, 1141, 1140,
133606 /* 40 */ 1139, 1138, 1237, 1112, 1136, 1129, 1133, 1204, 1198, 1199,
133607 /* 50 */ 1197, 1201, 1205, 1332, 1132, 1167, 1182, 1166, 1332, 1332,
133608 /* 60 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133609 /* 70 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133610 /* 80 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133611 /* 90 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133612 /* 100 */ 1332, 1332, 1332, 1332, 1176, 1181, 1188, 1180, 1177, 1169,
133613 /* 110 */ 1168, 1170, 1171, 1332, 1019, 1067, 1332, 1332, 1332, 1172,
133614 /* 120 */ 1332, 1173, 1185, 1184, 1183, 1262, 1289, 1288, 1332, 1332,
133615 /* 130 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133616 /* 140 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133617 /* 150 */ 1332, 1332, 1332, 1332, 1332, 1281, 1271, 1025, 1025, 1332,
133618 /* 160 */ 1271, 1271, 1271, 1271, 1271, 1271, 1267, 1100, 1091, 1332,
133619 /* 170 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133620 /* 180 */ 1259, 1257, 1332, 1218, 1332, 1332, 1332, 1332, 1332, 1332,
133621 /* 190 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133622 /* 200 */ 1332, 1332, 1332, 1332, 1096, 1332, 1332, 1332, 1332, 1332,
133623 /* 210 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1283, 1332, 1232,
133624 /* 220 */ 1096, 1096, 1096, 1098, 1080, 1090, 1004, 1135, 1114, 1114,
133625 /* 230 */ 1321, 1135, 1321, 1042, 1303, 1039, 1125, 1114, 1200, 1125,
133626 /* 240 */ 1125, 1097, 1090, 1332, 1324, 1105, 1105, 1323, 1323, 1105,
133627 /* 250 */ 1146, 1070, 1135, 1076, 1076, 1076, 1076, 1105, 1016, 1135,
133628 /* 260 */ 1146, 1070, 1070, 1135, 1105, 1016, 1236, 1318, 1105, 1105,
133629 /* 270 */ 1016, 1211, 1105, 1016, 1105, 1016, 1211, 1068, 1068, 1068,
133630 /* 280 */ 1057, 1211, 1068, 1042, 1068, 1057, 1068, 1068, 1118, 1113,
133631 /* 290 */ 1118, 1113, 1118, 1113, 1118, 1113, 1105, 1206, 1105, 1332,
133632 /* 300 */ 1211, 1215, 1215, 1211, 1130, 1119, 1128, 1126, 1135, 1022,
133633 /* 310 */ 1060, 1286, 1286, 1282, 1282, 1282, 1282, 1329, 1329, 1267,
133634 /* 320 */ 1298, 1298, 1044, 1044, 1298, 1332, 1332, 1332, 1332, 1332,
133635 /* 330 */ 1332, 1293, 1332, 1220, 1332, 1332, 1332, 1332, 1332, 1332,
133636 /* 340 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133637 /* 350 */ 1332, 1332, 1152, 1332, 1000, 1264, 1332, 1332, 1263, 1332,
133638 /* 360 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133639 /* 370 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1320,
133640 /* 380 */ 1332, 1332, 1332, 1332, 1332, 1332, 1235, 1234, 1332, 1332,
133641 /* 390 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133642 /* 400 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
133643 /* 410 */ 1332, 1082, 1332, 1332, 1332, 1307, 1332, 1332, 1332, 1332,
133644 /* 420 */ 1332, 1332, 1332, 1127, 1332, 1120, 1332, 1332, 1311, 1332,
133645 /* 430 */ 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1273,
133646 /* 440 */ 1332, 1332, 1332, 1272, 1332, 1332, 1332, 1332, 1332, 1154,
133647 /* 450 */ 1332, 1153, 1157, 1332, 1010, 1332,
133648 };
133649 /********** End of lemon-generated parsing tables *****************************/
133650
133651 /* The next table maps tokens (terminal symbols) into fallback tokens.
133652 ** If a construct like the following:
@@ -133862,11 +133876,11 @@
133876 "DEFERRABLE", "FOREIGN", "DROP", "UNION",
133877 "ALL", "EXCEPT", "INTERSECT", "SELECT",
133878 "VALUES", "DISTINCT", "DOT", "FROM",
133879 "JOIN", "USING", "ORDER", "GROUP",
133880 "HAVING", "LIMIT", "WHERE", "INTO",
133881 "FLOAT", "BLOB", "INTEGER", "VARIABLE",
133882 "CASE", "WHEN", "THEN", "ELSE",
133883 "INDEX", "ALTER", "ADD", "error",
133884 "input", "cmdlist", "ecmd", "explain",
133885 "cmdx", "cmd", "transtype", "trans_opt",
133886 "nm", "savepoint_opt", "create_table", "create_table_args",
@@ -134055,185 +134069,186 @@
134069 /* 151 */ "term ::= NULL",
134070 /* 152 */ "expr ::= ID|INDEXED",
134071 /* 153 */ "expr ::= JOIN_KW",
134072 /* 154 */ "expr ::= nm DOT nm",
134073 /* 155 */ "expr ::= nm DOT nm DOT nm",
134074 /* 156 */ "term ::= FLOAT|BLOB",
134075 /* 157 */ "term ::= STRING",
134076 /* 158 */ "term ::= INTEGER",
134077 /* 159 */ "expr ::= VARIABLE",
134078 /* 160 */ "expr ::= expr COLLATE ID|STRING",
134079 /* 161 */ "expr ::= CAST LP expr AS typetoken RP",
134080 /* 162 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
134081 /* 163 */ "expr ::= ID|INDEXED LP STAR RP",
134082 /* 164 */ "term ::= CTIME_KW",
134083 /* 165 */ "expr ::= LP nexprlist COMMA expr RP",
134084 /* 166 */ "expr ::= expr AND expr",
134085 /* 167 */ "expr ::= expr OR expr",
134086 /* 168 */ "expr ::= expr LT|GT|GE|LE expr",
134087 /* 169 */ "expr ::= expr EQ|NE expr",
134088 /* 170 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
134089 /* 171 */ "expr ::= expr PLUS|MINUS expr",
134090 /* 172 */ "expr ::= expr STAR|SLASH|REM expr",
134091 /* 173 */ "expr ::= expr CONCAT expr",
134092 /* 174 */ "likeop ::= LIKE_KW|MATCH",
134093 /* 175 */ "likeop ::= NOT LIKE_KW|MATCH",
134094 /* 176 */ "expr ::= expr likeop expr",
134095 /* 177 */ "expr ::= expr likeop expr ESCAPE expr",
134096 /* 178 */ "expr ::= expr ISNULL|NOTNULL",
134097 /* 179 */ "expr ::= expr NOT NULL",
134098 /* 180 */ "expr ::= expr IS expr",
134099 /* 181 */ "expr ::= expr IS NOT expr",
134100 /* 182 */ "expr ::= NOT expr",
134101 /* 183 */ "expr ::= BITNOT expr",
134102 /* 184 */ "expr ::= MINUS expr",
134103 /* 185 */ "expr ::= PLUS expr",
134104 /* 186 */ "between_op ::= BETWEEN",
134105 /* 187 */ "between_op ::= NOT BETWEEN",
134106 /* 188 */ "expr ::= expr between_op expr AND expr",
134107 /* 189 */ "in_op ::= IN",
134108 /* 190 */ "in_op ::= NOT IN",
134109 /* 191 */ "expr ::= expr in_op LP exprlist RP",
134110 /* 192 */ "expr ::= LP select RP",
134111 /* 193 */ "expr ::= expr in_op LP select RP",
134112 /* 194 */ "expr ::= expr in_op nm dbnm paren_exprlist",
134113 /* 195 */ "expr ::= EXISTS LP select RP",
134114 /* 196 */ "expr ::= CASE case_operand case_exprlist case_else END",
134115 /* 197 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
134116 /* 198 */ "case_exprlist ::= WHEN expr THEN expr",
134117 /* 199 */ "case_else ::= ELSE expr",
134118 /* 200 */ "case_else ::=",
134119 /* 201 */ "case_operand ::= expr",
134120 /* 202 */ "case_operand ::=",
134121 /* 203 */ "exprlist ::=",
134122 /* 204 */ "nexprlist ::= nexprlist COMMA expr",
134123 /* 205 */ "nexprlist ::= expr",
134124 /* 206 */ "paren_exprlist ::=",
134125 /* 207 */ "paren_exprlist ::= LP exprlist RP",
134126 /* 208 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
134127 /* 209 */ "uniqueflag ::= UNIQUE",
134128 /* 210 */ "uniqueflag ::=",
134129 /* 211 */ "eidlist_opt ::=",
134130 /* 212 */ "eidlist_opt ::= LP eidlist RP",
134131 /* 213 */ "eidlist ::= eidlist COMMA nm collate sortorder",
134132 /* 214 */ "eidlist ::= nm collate sortorder",
134133 /* 215 */ "collate ::=",
134134 /* 216 */ "collate ::= COLLATE ID|STRING",
134135 /* 217 */ "cmd ::= DROP INDEX ifexists fullname",
134136 /* 218 */ "cmd ::= VACUUM",
134137 /* 219 */ "cmd ::= VACUUM nm",
134138 /* 220 */ "cmd ::= PRAGMA nm dbnm",
134139 /* 221 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
134140 /* 222 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
134141 /* 223 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
134142 /* 224 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
134143 /* 225 */ "plus_num ::= PLUS INTEGER|FLOAT",
134144 /* 226 */ "minus_num ::= MINUS INTEGER|FLOAT",
134145 /* 227 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
134146 /* 228 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
134147 /* 229 */ "trigger_time ::= BEFORE",
134148 /* 230 */ "trigger_time ::= AFTER",
134149 /* 231 */ "trigger_time ::= INSTEAD OF",
134150 /* 232 */ "trigger_time ::=",
134151 /* 233 */ "trigger_event ::= DELETE|INSERT",
134152 /* 234 */ "trigger_event ::= UPDATE",
134153 /* 235 */ "trigger_event ::= UPDATE OF idlist",
134154 /* 236 */ "when_clause ::=",
134155 /* 237 */ "when_clause ::= WHEN expr",
134156 /* 238 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
134157 /* 239 */ "trigger_cmd_list ::= trigger_cmd SEMI",
134158 /* 240 */ "trnm ::= nm DOT nm",
134159 /* 241 */ "tridxby ::= INDEXED BY nm",
134160 /* 242 */ "tridxby ::= NOT INDEXED",
134161 /* 243 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
134162 /* 244 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
134163 /* 245 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
134164 /* 246 */ "trigger_cmd ::= select",
134165 /* 247 */ "expr ::= RAISE LP IGNORE RP",
134166 /* 248 */ "expr ::= RAISE LP raisetype COMMA nm RP",
134167 /* 249 */ "raisetype ::= ROLLBACK",
134168 /* 250 */ "raisetype ::= ABORT",
134169 /* 251 */ "raisetype ::= FAIL",
134170 /* 252 */ "cmd ::= DROP TRIGGER ifexists fullname",
134171 /* 253 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
134172 /* 254 */ "cmd ::= DETACH database_kw_opt expr",
134173 /* 255 */ "key_opt ::=",
134174 /* 256 */ "key_opt ::= KEY expr",
134175 /* 257 */ "cmd ::= REINDEX",
134176 /* 258 */ "cmd ::= REINDEX nm dbnm",
134177 /* 259 */ "cmd ::= ANALYZE",
134178 /* 260 */ "cmd ::= ANALYZE nm dbnm",
134179 /* 261 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
134180 /* 262 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
134181 /* 263 */ "add_column_fullname ::= fullname",
134182 /* 264 */ "cmd ::= create_vtab",
134183 /* 265 */ "cmd ::= create_vtab LP vtabarglist RP",
134184 /* 266 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
134185 /* 267 */ "vtabarg ::=",
134186 /* 268 */ "vtabargtoken ::= ANY",
134187 /* 269 */ "vtabargtoken ::= lp anylist RP",
134188 /* 270 */ "lp ::= LP",
134189 /* 271 */ "with ::=",
134190 /* 272 */ "with ::= WITH wqlist",
134191 /* 273 */ "with ::= WITH RECURSIVE wqlist",
134192 /* 274 */ "wqlist ::= nm eidlist_opt AS LP select RP",
134193 /* 275 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
134194 /* 276 */ "input ::= cmdlist",
134195 /* 277 */ "cmdlist ::= cmdlist ecmd",
134196 /* 278 */ "cmdlist ::= ecmd",
134197 /* 279 */ "ecmd ::= SEMI",
134198 /* 280 */ "ecmd ::= explain cmdx SEMI",
134199 /* 281 */ "explain ::=",
134200 /* 282 */ "trans_opt ::=",
134201 /* 283 */ "trans_opt ::= TRANSACTION",
134202 /* 284 */ "trans_opt ::= TRANSACTION nm",
134203 /* 285 */ "savepoint_opt ::= SAVEPOINT",
134204 /* 286 */ "savepoint_opt ::=",
134205 /* 287 */ "cmd ::= create_table create_table_args",
134206 /* 288 */ "columnlist ::= columnlist COMMA columnname carglist",
134207 /* 289 */ "columnlist ::= columnname carglist",
134208 /* 290 */ "nm ::= ID|INDEXED",
134209 /* 291 */ "nm ::= STRING",
134210 /* 292 */ "nm ::= JOIN_KW",
134211 /* 293 */ "typetoken ::= typename",
134212 /* 294 */ "typename ::= ID|STRING",
134213 /* 295 */ "signed ::= plus_num",
134214 /* 296 */ "signed ::= minus_num",
134215 /* 297 */ "carglist ::= carglist ccons",
134216 /* 298 */ "carglist ::=",
134217 /* 299 */ "ccons ::= NULL onconf",
134218 /* 300 */ "conslist_opt ::= COMMA conslist",
134219 /* 301 */ "conslist ::= conslist tconscomma tcons",
134220 /* 302 */ "conslist ::= tcons",
134221 /* 303 */ "tconscomma ::=",
134222 /* 304 */ "defer_subclause_opt ::= defer_subclause",
134223 /* 305 */ "resolvetype ::= raisetype",
134224 /* 306 */ "selectnowith ::= oneselect",
134225 /* 307 */ "oneselect ::= values",
134226 /* 308 */ "sclp ::= selcollist COMMA",
134227 /* 309 */ "as ::= ID|STRING",
134228 /* 310 */ "expr ::= term",
134229 /* 311 */ "exprlist ::= nexprlist",
134230 /* 312 */ "nmnum ::= plus_num",
134231 /* 313 */ "nmnum ::= nm",
134232 /* 314 */ "nmnum ::= ON",
134233 /* 315 */ "nmnum ::= DELETE",
134234 /* 316 */ "nmnum ::= DEFAULT",
134235 /* 317 */ "plus_num ::= INTEGER|FLOAT",
134236 /* 318 */ "foreach_clause ::=",
134237 /* 319 */ "foreach_clause ::= FOR EACH ROW",
134238 /* 320 */ "trnm ::= nm",
134239 /* 321 */ "tridxby ::=",
134240 /* 322 */ "database_kw_opt ::= DATABASE",
134241 /* 323 */ "database_kw_opt ::=",
134242 /* 324 */ "kwcolumn_opt ::=",
134243 /* 325 */ "kwcolumn_opt ::= COLUMNKW",
134244 /* 326 */ "vtabarglist ::= vtabarg",
134245 /* 327 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
134246 /* 328 */ "vtabarg ::= vtabarg vtabargtoken",
134247 /* 329 */ "anylist ::=",
134248 /* 330 */ "anylist ::= anylist LP anylist RP",
134249 /* 331 */ "anylist ::= anylist ANY",
134250 };
134251 #endif /* NDEBUG */
134252
134253
134254 #if YYSTACKDEPTH<=0
@@ -134811,10 +134826,11 @@
134826 { 173, 1 },
134827 { 173, 3 },
134828 { 173, 5 },
134829 { 172, 1 },
134830 { 172, 1 },
134831 { 172, 1 },
134832 { 173, 1 },
134833 { 173, 3 },
134834 { 173, 6 },
134835 { 173, 5 },
134836 { 173, 4 },
@@ -135105,11 +135121,11 @@
135121 case 42: /* autoinc ::= */ yytestcase(yyruleno==42);
135122 case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
135123 case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
135124 case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
135125 case 90: /* distinct ::= */ yytestcase(yyruleno==90);
135126 case 215: /* collate ::= */ yytestcase(yyruleno==215);
135127 {yymsp[1].minor.yy194 = 0;}
135128 break;
135129 case 17: /* ifnotexists ::= IF NOT EXISTS */
135130 {yymsp[-2].minor.yy194 = 1;}
135131 break;
@@ -135249,13 +135265,13 @@
135265 case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144);
135266 {yymsp[-1].minor.yy194 = yymsp[0].minor.yy194;}
135267 break;
135268 case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
135269 case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
135270 case 187: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==187);
135271 case 190: /* in_op ::= NOT IN */ yytestcase(yyruleno==190);
135272 case 216: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==216);
135273 {yymsp[-1].minor.yy194 = 1;}
135274 break;
135275 case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
135276 {yymsp[-1].minor.yy194 = 0;}
135277 break;
@@ -135415,13 +135431,13 @@
135431 {yymsp[0].minor.yy194 = SF_All;}
135432 break;
135433 case 91: /* sclp ::= */
135434 case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119);
135435 case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126);
135436 case 203: /* exprlist ::= */ yytestcase(yyruleno==203);
135437 case 206: /* paren_exprlist ::= */ yytestcase(yyruleno==206);
135438 case 211: /* eidlist_opt ::= */ yytestcase(yyruleno==211);
135439 {yymsp[1].minor.yy148 = 0;}
135440 break;
135441 case 92: /* selcollist ::= sclp expr as */
135442 {
135443 yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy148, yymsp[-1].minor.yy190.pExpr);
@@ -135435,20 +135451,20 @@
135451 yymsp[-1].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy148, p);
135452 }
135453 break;
135454 case 94: /* selcollist ::= sclp nm DOT STAR */
135455 {
135456 Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0, 0);
135457 Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
135458 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
135459 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, pDot);
135460 }
135461 break;
135462 case 95: /* as ::= AS nm */
135463 case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106);
135464 case 225: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==225);
135465 case 226: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==226);
135466 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
135467 break;
135468 case 97: /* from ::= */
135469 {yymsp[1].minor.yy185 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy185));}
135470 break;
@@ -135527,18 +135543,18 @@
135543 {yymsp[-3].minor.yy194 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
135544 break;
135545 case 112: /* on_opt ::= ON expr */
135546 case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129);
135547 case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136);
135548 case 199: /* case_else ::= ELSE expr */ yytestcase(yyruleno==199);
135549 {yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr;}
135550 break;
135551 case 113: /* on_opt ::= */
135552 case 128: /* having_opt ::= */ yytestcase(yyruleno==128);
135553 case 135: /* where_opt ::= */ yytestcase(yyruleno==135);
135554 case 200: /* case_else ::= */ yytestcase(yyruleno==200);
135555 case 202: /* case_operand ::= */ yytestcase(yyruleno==202);
135556 {yymsp[1].minor.yy72 = 0;}
135557 break;
135558 case 115: /* indexed_opt ::= INDEXED BY nm */
135559 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
135560 break;
@@ -135650,37 +135666,46 @@
135666 break;
135667 case 150: /* expr ::= LP expr RP */
135668 {spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/ yymsp[-2].minor.yy190.pExpr = yymsp[-1].minor.yy190.pExpr;}
135669 break;
135670 case 151: /* term ::= NULL */
135671 case 156: /* term ::= FLOAT|BLOB */ yytestcase(yyruleno==156);
135672 case 157: /* term ::= STRING */ yytestcase(yyruleno==157);
135673 {spanExpr(&yymsp[0].minor.yy190,pParse,yymsp[0].major,yymsp[0].minor.yy0);/*A-overwrites-X*/}
135674 break;
135675 case 152: /* expr ::= ID|INDEXED */
135676 case 153: /* expr ::= JOIN_KW */ yytestcase(yyruleno==153);
135677 {spanExpr(&yymsp[0].minor.yy190,pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
135678 break;
135679 case 154: /* expr ::= nm DOT nm */
135680 {
135681 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
135682 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
135683 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135684 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
135685 }
135686 break;
135687 case 155: /* expr ::= nm DOT nm DOT nm */
135688 {
135689 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
135690 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
135691 Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
135692 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
135693 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135694 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
135695 }
135696 break;
135697 case 158: /* term ::= INTEGER */
135698 {
135699 yylhsminor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
135700 yylhsminor.yy190.zStart = yymsp[0].minor.yy0.z;
135701 yylhsminor.yy190.zEnd = yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n;
135702 if( yylhsminor.yy190.pExpr ) yylhsminor.yy190.pExpr->flags |= EP_Leaf;
135703 }
135704 yymsp[0].minor.yy190 = yylhsminor.yy190;
135705 break;
135706 case 159: /* expr ::= VARIABLE */
135707 {
135708 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
135709 spanExpr(&yymsp[0].minor.yy190, pParse, TK_VARIABLE, yymsp[0].minor.yy0);
135710 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy190.pExpr);
135711 }else{
@@ -135692,29 +135717,29 @@
135717 spanSet(&yymsp[0].minor.yy190, &t, &t);
135718 if( pParse->nested==0 ){
135719 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
135720 yymsp[0].minor.yy190.pExpr = 0;
135721 }else{
135722 yymsp[0].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, 0);
135723 if( yymsp[0].minor.yy190.pExpr ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy190.pExpr->iTable);
135724 }
135725 }
135726 }
135727 break;
135728 case 160: /* expr ::= expr COLLATE ID|STRING */
135729 {
135730 yymsp[-2].minor.yy190.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy190.pExpr, &yymsp[0].minor.yy0, 1);
135731 yymsp[-2].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135732 }
135733 break;
135734 case 161: /* expr ::= CAST LP expr AS typetoken RP */
135735 {
135736 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
135737 yymsp[-5].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy190.pExpr, 0, &yymsp[-1].minor.yy0);
135738 }
135739 break;
135740 case 162: /* expr ::= ID|INDEXED LP distinct exprlist RP */
135741 {
135742 if( yymsp[-1].minor.yy148 && yymsp[-1].minor.yy148->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
135743 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
135744 }
135745 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy148, &yymsp[-4].minor.yy0);
@@ -135723,25 +135748,25 @@
135748 yylhsminor.yy190.pExpr->flags |= EP_Distinct;
135749 }
135750 }
135751 yymsp[-4].minor.yy190 = yylhsminor.yy190;
135752 break;
135753 case 163: /* expr ::= ID|INDEXED LP STAR RP */
135754 {
135755 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
135756 spanSet(&yylhsminor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
135757 }
135758 yymsp[-3].minor.yy190 = yylhsminor.yy190;
135759 break;
135760 case 164: /* term ::= CTIME_KW */
135761 {
135762 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
135763 spanSet(&yylhsminor.yy190, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
135764 }
135765 yymsp[0].minor.yy190 = yylhsminor.yy190;
135766 break;
135767 case 165: /* expr ::= LP nexprlist COMMA expr RP */
135768 {
135769 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy148, yymsp[-1].minor.yy190.pExpr);
135770 yylhsminor.yy190.pExpr = sqlite3PExpr(pParse, TK_VECTOR, 0, 0, 0);
135771 if( yylhsminor.yy190.pExpr ){
135772 yylhsminor.yy190.pExpr->x.pList = pList;
@@ -135750,82 +135775,86 @@
135775 sqlite3ExprListDelete(pParse->db, pList);
135776 }
135777 }
135778 yymsp[-4].minor.yy190 = yylhsminor.yy190;
135779 break;
135780 case 166: /* expr ::= expr AND expr */
135781 case 167: /* expr ::= expr OR expr */ yytestcase(yyruleno==167);
135782 case 168: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==168);
135783 case 169: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==169);
135784 case 170: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==170);
135785 case 171: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==171);
135786 case 172: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==172);
135787 case 173: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==173);
135788 {spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);}
135789 break;
135790 case 174: /* likeop ::= LIKE_KW|MATCH */
135791 {yymsp[0].minor.yy0=yymsp[0].minor.yy0;/*A-overwrites-X*/}
135792 break;
135793 case 175: /* likeop ::= NOT LIKE_KW|MATCH */
135794 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
135795 break;
135796 case 176: /* expr ::= expr likeop expr */
135797 {
135798 ExprList *pList;
135799 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
135800 yymsp[-1].minor.yy0.n &= 0x7fffffff;
135801 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy190.pExpr);
135802 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy190.pExpr);
135803 yymsp[-2].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0);
135804 exprNot(pParse, bNot, &yymsp[-2].minor.yy190);
135805 yymsp[-2].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135806 if( yymsp[-2].minor.yy190.pExpr ) yymsp[-2].minor.yy190.pExpr->flags |= EP_InfixFunc;
135807 }
135808 break;
135809 case 177: /* expr ::= expr likeop expr ESCAPE expr */
135810 {
135811 ExprList *pList;
135812 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
135813 yymsp[-3].minor.yy0.n &= 0x7fffffff;
135814 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135815 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy190.pExpr);
135816 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
135817 yymsp[-4].minor.yy190.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0);
135818 exprNot(pParse, bNot, &yymsp[-4].minor.yy190);
135819 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135820 if( yymsp[-4].minor.yy190.pExpr ) yymsp[-4].minor.yy190.pExpr->flags |= EP_InfixFunc;
135821 }
135822 break;
135823 case 178: /* expr ::= expr ISNULL|NOTNULL */
135824 {spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy190,&yymsp[0].minor.yy0);}
135825 break;
135826 case 179: /* expr ::= expr NOT NULL */
135827 {spanUnaryPostfix(pParse,TK_NOTNULL,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy0);}
135828 break;
135829 case 180: /* expr ::= expr IS expr */
135830 {
135831 spanBinaryExpr(pParse,TK_IS,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);
135832 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-2].minor.yy190.pExpr, TK_ISNULL);
135833 }
135834 break;
135835 case 181: /* expr ::= expr IS NOT expr */
135836 {
135837 spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy190,&yymsp[0].minor.yy190);
135838 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, TK_NOTNULL);
135839 }
135840 break;
135841 case 182: /* expr ::= NOT expr */
135842 case 183: /* expr ::= BITNOT expr */ yytestcase(yyruleno==183);
135843 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,yymsp[-1].major,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135844 break;
135845 case 184: /* expr ::= MINUS expr */
135846 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UMINUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135847 break;
135848 case 185: /* expr ::= PLUS expr */
135849 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UPLUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
135850 break;
135851 case 186: /* between_op ::= BETWEEN */
135852 case 189: /* in_op ::= IN */ yytestcase(yyruleno==189);
135853 {yymsp[0].minor.yy194 = 0;}
135854 break;
135855 case 188: /* expr ::= expr between_op expr AND expr */
135856 {
135857 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135858 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
135859 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy190.pExpr, 0, 0);
135860 if( yymsp[-4].minor.yy190.pExpr ){
@@ -135835,11 +135864,11 @@
135864 }
135865 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135866 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
135867 }
135868 break;
135869 case 191: /* expr ::= expr in_op LP exprlist RP */
135870 {
135871 if( yymsp[-1].minor.yy148==0 ){
135872 /* Expressions of the form
135873 **
135874 ** expr1 IN ()
@@ -135888,26 +135917,26 @@
135917 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135918 }
135919 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135920 }
135921 break;
135922 case 192: /* expr ::= LP select RP */
135923 {
135924 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
135925 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
135926 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy190.pExpr, yymsp[-1].minor.yy243);
135927 }
135928 break;
135929 case 193: /* expr ::= expr in_op LP select RP */
135930 {
135931 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0, 0);
135932 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, yymsp[-1].minor.yy243);
135933 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135934 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
135935 }
135936 break;
135937 case 194: /* expr ::= expr in_op nm dbnm paren_exprlist */
135938 {
135939 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
135940 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
135941 if( yymsp[0].minor.yy148 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy148);
135942 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0, 0);
@@ -135914,19 +135943,19 @@
135943 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, pSelect);
135944 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
135945 yymsp[-4].minor.yy190.zEnd = yymsp[-1].minor.yy0.z ? &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n] : &yymsp[-2].minor.yy0.z[yymsp[-2].minor.yy0.n];
135946 }
135947 break;
135948 case 195: /* expr ::= EXISTS LP select RP */
135949 {
135950 Expr *p;
135951 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
135952 p = yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0);
135953 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy243);
135954 }
135955 break;
135956 case 196: /* expr ::= CASE case_operand case_exprlist case_else END */
135957 {
135958 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-C*/
135959 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy72, 0, 0);
135960 if( yymsp[-4].minor.yy190.pExpr ){
135961 yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy72 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[-1].minor.yy72) : yymsp[-2].minor.yy148;
@@ -135935,334 +135964,334 @@
135964 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy148);
135965 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy72);
135966 }
135967 }
135968 break;
135969 case 197: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
135970 {
135971 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[-2].minor.yy190.pExpr);
135972 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[0].minor.yy190.pExpr);
135973 }
135974 break;
135975 case 198: /* case_exprlist ::= WHEN expr THEN expr */
135976 {
135977 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
135978 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, yymsp[0].minor.yy190.pExpr);
135979 }
135980 break;
135981 case 201: /* case_operand ::= expr */
135982 {yymsp[0].minor.yy72 = yymsp[0].minor.yy190.pExpr; /*A-overwrites-X*/}
135983 break;
135984 case 204: /* nexprlist ::= nexprlist COMMA expr */
135985 {yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[0].minor.yy190.pExpr);}
135986 break;
135987 case 205: /* nexprlist ::= expr */
135988 {yymsp[0].minor.yy148 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy190.pExpr); /*A-overwrites-Y*/}
135989 break;
135990 case 207: /* paren_exprlist ::= LP exprlist RP */
135991 case 212: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==212);
135992 {yymsp[-2].minor.yy148 = yymsp[-1].minor.yy148;}
135993 break;
135994 case 208: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
135995 {
135996 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
135997 sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy148, yymsp[-10].minor.yy194,
135998 &yymsp[-11].minor.yy0, yymsp[0].minor.yy72, SQLITE_SO_ASC, yymsp[-8].minor.yy194, SQLITE_IDXTYPE_APPDEF);
135999 }
136000 break;
136001 case 209: /* uniqueflag ::= UNIQUE */
136002 case 250: /* raisetype ::= ABORT */ yytestcase(yyruleno==250);
136003 {yymsp[0].minor.yy194 = OE_Abort;}
136004 break;
136005 case 210: /* uniqueflag ::= */
136006 {yymsp[1].minor.yy194 = OE_None;}
136007 break;
136008 case 213: /* eidlist ::= eidlist COMMA nm collate sortorder */
136009 {
136010 yymsp[-4].minor.yy148 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy148, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194);
136011 }
136012 break;
136013 case 214: /* eidlist ::= nm collate sortorder */
136014 {
136015 yymsp[-2].minor.yy148 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194); /*A-overwrites-Y*/
136016 }
136017 break;
136018 case 217: /* cmd ::= DROP INDEX ifexists fullname */
136019 {sqlite3DropIndex(pParse, yymsp[0].minor.yy185, yymsp[-1].minor.yy194);}
136020 break;
136021 case 218: /* cmd ::= VACUUM */
136022 {sqlite3Vacuum(pParse,0);}
136023 break;
136024 case 219: /* cmd ::= VACUUM nm */
136025 {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
136026 break;
136027 case 220: /* cmd ::= PRAGMA nm dbnm */
136028 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
136029 break;
136030 case 221: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
136031 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
136032 break;
136033 case 222: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
136034 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
136035 break;
136036 case 223: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
136037 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
136038 break;
136039 case 224: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
136040 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
136041 break;
136042 case 227: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
136043 {
136044 Token all;
136045 all.z = yymsp[-3].minor.yy0.z;
136046 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
136047 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy145, &all);
136048 }
136049 break;
136050 case 228: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
136051 {
136052 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy194, yymsp[-4].minor.yy332.a, yymsp[-4].minor.yy332.b, yymsp[-2].minor.yy185, yymsp[0].minor.yy72, yymsp[-10].minor.yy194, yymsp[-8].minor.yy194);
136053 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
136054 }
136055 break;
136056 case 229: /* trigger_time ::= BEFORE */
136057 { yymsp[0].minor.yy194 = TK_BEFORE; }
136058 break;
136059 case 230: /* trigger_time ::= AFTER */
136060 { yymsp[0].minor.yy194 = TK_AFTER; }
136061 break;
136062 case 231: /* trigger_time ::= INSTEAD OF */
136063 { yymsp[-1].minor.yy194 = TK_INSTEAD;}
136064 break;
136065 case 232: /* trigger_time ::= */
136066 { yymsp[1].minor.yy194 = TK_BEFORE; }
136067 break;
136068 case 233: /* trigger_event ::= DELETE|INSERT */
136069 case 234: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==234);
136070 {yymsp[0].minor.yy332.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy332.b = 0;}
136071 break;
136072 case 235: /* trigger_event ::= UPDATE OF idlist */
136073 {yymsp[-2].minor.yy332.a = TK_UPDATE; yymsp[-2].minor.yy332.b = yymsp[0].minor.yy254;}
136074 break;
136075 case 236: /* when_clause ::= */
136076 case 255: /* key_opt ::= */ yytestcase(yyruleno==255);
136077 { yymsp[1].minor.yy72 = 0; }
136078 break;
136079 case 237: /* when_clause ::= WHEN expr */
136080 case 256: /* key_opt ::= KEY expr */ yytestcase(yyruleno==256);
136081 { yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr; }
136082 break;
136083 case 238: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
136084 {
136085 assert( yymsp[-2].minor.yy145!=0 );
136086 yymsp[-2].minor.yy145->pLast->pNext = yymsp[-1].minor.yy145;
136087 yymsp[-2].minor.yy145->pLast = yymsp[-1].minor.yy145;
136088 }
136089 break;
136090 case 239: /* trigger_cmd_list ::= trigger_cmd SEMI */
136091 {
136092 assert( yymsp[-1].minor.yy145!=0 );
136093 yymsp[-1].minor.yy145->pLast = yymsp[-1].minor.yy145;
136094 }
136095 break;
136096 case 240: /* trnm ::= nm DOT nm */
136097 {
136098 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
136099 sqlite3ErrorMsg(pParse,
136100 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
136101 "statements within triggers");
136102 }
136103 break;
136104 case 241: /* tridxby ::= INDEXED BY nm */
136105 {
136106 sqlite3ErrorMsg(pParse,
136107 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
136108 "within triggers");
136109 }
136110 break;
136111 case 242: /* tridxby ::= NOT INDEXED */
136112 {
136113 sqlite3ErrorMsg(pParse,
136114 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
136115 "within triggers");
136116 }
136117 break;
136118 case 243: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
136119 {yymsp[-6].minor.yy145 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy148, yymsp[0].minor.yy72, yymsp[-5].minor.yy194);}
136120 break;
136121 case 244: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
136122 {yymsp[-4].minor.yy145 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy254, yymsp[0].minor.yy243, yymsp[-4].minor.yy194);/*A-overwrites-R*/}
136123 break;
136124 case 245: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
136125 {yymsp[-4].minor.yy145 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy72);}
136126 break;
136127 case 246: /* trigger_cmd ::= select */
136128 {yymsp[0].minor.yy145 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy243); /*A-overwrites-X*/}
136129 break;
136130 case 247: /* expr ::= RAISE LP IGNORE RP */
136131 {
136132 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
136133 yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0);
136134 if( yymsp[-3].minor.yy190.pExpr ){
136135 yymsp[-3].minor.yy190.pExpr->affinity = OE_Ignore;
136136 }
136137 }
136138 break;
136139 case 248: /* expr ::= RAISE LP raisetype COMMA nm RP */
136140 {
136141 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
136142 yymsp[-5].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0);
136143 if( yymsp[-5].minor.yy190.pExpr ) {
136144 yymsp[-5].minor.yy190.pExpr->affinity = (char)yymsp[-3].minor.yy194;
136145 }
136146 }
136147 break;
136148 case 249: /* raisetype ::= ROLLBACK */
136149 {yymsp[0].minor.yy194 = OE_Rollback;}
136150 break;
136151 case 251: /* raisetype ::= FAIL */
136152 {yymsp[0].minor.yy194 = OE_Fail;}
136153 break;
136154 case 252: /* cmd ::= DROP TRIGGER ifexists fullname */
136155 {
136156 sqlite3DropTrigger(pParse,yymsp[0].minor.yy185,yymsp[-1].minor.yy194);
136157 }
136158 break;
136159 case 253: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
136160 {
136161 sqlite3Attach(pParse, yymsp[-3].minor.yy190.pExpr, yymsp[-1].minor.yy190.pExpr, yymsp[0].minor.yy72);
136162 }
136163 break;
136164 case 254: /* cmd ::= DETACH database_kw_opt expr */
136165 {
136166 sqlite3Detach(pParse, yymsp[0].minor.yy190.pExpr);
136167 }
136168 break;
136169 case 257: /* cmd ::= REINDEX */
136170 {sqlite3Reindex(pParse, 0, 0);}
136171 break;
136172 case 258: /* cmd ::= REINDEX nm dbnm */
136173 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
136174 break;
136175 case 259: /* cmd ::= ANALYZE */
136176 {sqlite3Analyze(pParse, 0, 0);}
136177 break;
136178 case 260: /* cmd ::= ANALYZE nm dbnm */
136179 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
136180 break;
136181 case 261: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
136182 {
136183 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy185,&yymsp[0].minor.yy0);
136184 }
136185 break;
136186 case 262: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
136187 {
136188 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
136189 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
136190 }
136191 break;
136192 case 263: /* add_column_fullname ::= fullname */
136193 {
136194 disableLookaside(pParse);
136195 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy185);
136196 }
136197 break;
136198 case 264: /* cmd ::= create_vtab */
136199 {sqlite3VtabFinishParse(pParse,0);}
136200 break;
136201 case 265: /* cmd ::= create_vtab LP vtabarglist RP */
136202 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
136203 break;
136204 case 266: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
136205 {
136206 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy194);
136207 }
136208 break;
136209 case 267: /* vtabarg ::= */
136210 {sqlite3VtabArgInit(pParse);}
136211 break;
136212 case 268: /* vtabargtoken ::= ANY */
136213 case 269: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==269);
136214 case 270: /* lp ::= LP */ yytestcase(yyruleno==270);
136215 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
136216 break;
136217 case 271: /* with ::= */
136218 {yymsp[1].minor.yy285 = 0;}
136219 break;
136220 case 272: /* with ::= WITH wqlist */
136221 { yymsp[-1].minor.yy285 = yymsp[0].minor.yy285; }
136222 break;
136223 case 273: /* with ::= WITH RECURSIVE wqlist */
136224 { yymsp[-2].minor.yy285 = yymsp[0].minor.yy285; }
136225 break;
136226 case 274: /* wqlist ::= nm eidlist_opt AS LP select RP */
136227 {
136228 yymsp[-5].minor.yy285 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243); /*A-overwrites-X*/
136229 }
136230 break;
136231 case 275: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
136232 {
136233 yymsp[-7].minor.yy285 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy285, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243);
136234 }
136235 break;
136236 default:
136237 /* (276) input ::= cmdlist */ yytestcase(yyruleno==276);
136238 /* (277) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==277);
136239 /* (278) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=278);
136240 /* (279) ecmd ::= SEMI */ yytestcase(yyruleno==279);
136241 /* (280) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==280);
136242 /* (281) explain ::= */ yytestcase(yyruleno==281);
136243 /* (282) trans_opt ::= */ yytestcase(yyruleno==282);
136244 /* (283) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==283);
136245 /* (284) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==284);
136246 /* (285) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==285);
136247 /* (286) savepoint_opt ::= */ yytestcase(yyruleno==286);
136248 /* (287) cmd ::= create_table create_table_args */ yytestcase(yyruleno==287);
136249 /* (288) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==288);
136250 /* (289) columnlist ::= columnname carglist */ yytestcase(yyruleno==289);
136251 /* (290) nm ::= ID|INDEXED */ yytestcase(yyruleno==290);
136252 /* (291) nm ::= STRING */ yytestcase(yyruleno==291);
136253 /* (292) nm ::= JOIN_KW */ yytestcase(yyruleno==292);
136254 /* (293) typetoken ::= typename */ yytestcase(yyruleno==293);
136255 /* (294) typename ::= ID|STRING */ yytestcase(yyruleno==294);
136256 /* (295) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
136257 /* (296) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=296);
136258 /* (297) carglist ::= carglist ccons */ yytestcase(yyruleno==297);
136259 /* (298) carglist ::= */ yytestcase(yyruleno==298);
136260 /* (299) ccons ::= NULL onconf */ yytestcase(yyruleno==299);
136261 /* (300) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==300);
136262 /* (301) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==301);
136263 /* (302) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=302);
136264 /* (303) tconscomma ::= */ yytestcase(yyruleno==303);
136265 /* (304) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=304);
136266 /* (305) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=305);
136267 /* (306) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=306);
136268 /* (307) oneselect ::= values */ yytestcase(yyruleno==307);
136269 /* (308) sclp ::= selcollist COMMA */ yytestcase(yyruleno==308);
136270 /* (309) as ::= ID|STRING */ yytestcase(yyruleno==309);
136271 /* (310) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=310);
136272 /* (311) exprlist ::= nexprlist */ yytestcase(yyruleno==311);
136273 /* (312) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=312);
136274 /* (313) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=313);
136275 /* (314) nmnum ::= ON */ yytestcase(yyruleno==314);
136276 /* (315) nmnum ::= DELETE */ yytestcase(yyruleno==315);
136277 /* (316) nmnum ::= DEFAULT */ yytestcase(yyruleno==316);
136278 /* (317) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==317);
136279 /* (318) foreach_clause ::= */ yytestcase(yyruleno==318);
136280 /* (319) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==319);
136281 /* (320) trnm ::= nm */ yytestcase(yyruleno==320);
136282 /* (321) tridxby ::= */ yytestcase(yyruleno==321);
136283 /* (322) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==322);
136284 /* (323) database_kw_opt ::= */ yytestcase(yyruleno==323);
136285 /* (324) kwcolumn_opt ::= */ yytestcase(yyruleno==324);
136286 /* (325) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==325);
136287 /* (326) vtabarglist ::= vtabarg */ yytestcase(yyruleno==326);
136288 /* (327) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==327);
136289 /* (328) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==328);
136290 /* (329) anylist ::= */ yytestcase(yyruleno==329);
136291 /* (330) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==330);
136292 /* (331) anylist ::= anylist ANY */ yytestcase(yyruleno==331);
136293 break;
136294 /********** End reduce actions ************************************************/
136295 };
136296 assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
136297 yygoto = yyRuleInfo[yyruleno].lhs;
@@ -195597,11 +195626,11 @@
195626 int nArg, /* Number of args */
195627 sqlite3_value **apUnused /* Function arguments */
195628 ){
195629 assert( nArg==0 );
195630 UNUSED_PARAM2(nArg, apUnused);
195631 sqlite3_result_text(pCtx, "fts5: 2016-09-16 17:50:57 e3d9efa2770cd789ece3f4db4941b901c8b805ad", -1, SQLITE_TRANSIENT);
195632 }
195633
195634 static int fts5Init(sqlite3 *db){
195635 static const sqlite3_module fts5Mod = {
195636 /* iVersion */ 2,
195637
+5 -5
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121121
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122122
** [sqlite_version()] and [sqlite_source_id()].
123123
*/
124124
#define SQLITE_VERSION "3.15.0"
125125
#define SQLITE_VERSION_NUMBER 3015000
126
-#define SQLITE_SOURCE_ID "2016-09-22 18:53:13 c3774c6a5fe48af91fda28e9e18c6ed9053ea992"
126
+#define SQLITE_SOURCE_ID "2016-09-28 16:05:53 40c0fb0af678797c39a99853f9f4102464c16f4b"
127127
128128
/*
129129
** CAPI3REF: Run-Time Library Version Numbers
130130
** KEYWORDS: sqlite3_version, sqlite3_sourceid
131131
**
@@ -8655,11 +8655,11 @@
86558655
86568656
/*
86578657
** CAPI3REF: Set a table filter on a Session Object.
86588658
**
86598659
** The second argument (xFilter) is the "filter callback". For changes to rows
8660
-** in tables that are not attached to the Session oject, the filter is called
8660
+** in tables that are not attached to the Session object, the filter is called
86618661
** to determine whether changes to the table's rows should be tracked or not.
86628662
** If xFilter returns 0, changes is not tracked. Note that once a table is
86638663
** attached, xFilter will not be called again.
86648664
*/
86658665
void sqlite3session_table_filter(
@@ -8921,11 +8921,11 @@
89218921
** Assuming the changeset blob was created by one of the
89228922
** [sqlite3session_changeset()], [sqlite3changeset_concat()] or
89238923
** [sqlite3changeset_invert()] functions, all changes within the changeset
89248924
** that apply to a single table are grouped together. This means that when
89258925
** an application iterates through a changeset using an iterator created by
8926
-** this function, all changes that relate to a single table are visted
8926
+** this function, all changes that relate to a single table are visited
89278927
** consecutively. There is no chance that the iterator will visit a change
89288928
** the applies to table X, then one for table Y, and then later on visit
89298929
** another change for table X.
89308930
*/
89318931
int sqlite3changeset_start(
@@ -9008,11 +9008,11 @@
90089008
** If successful, *pabPK is set to point to an array of nCol entries, where
90099009
** nCol is the number of columns in the table. Elements of *pabPK are set to
90109010
** 0x01 if the corresponding column is part of the tables primary key, or
90119011
** 0x00 if it is not.
90129012
**
9013
-** If argumet pnCol is not NULL, then *pnCol is set to the number of columns
9013
+** If argument pnCol is not NULL, then *pnCol is set to the number of columns
90149014
** in the table.
90159015
**
90169016
** If this function is called when the iterator does not point to a valid
90179017
** entry, SQLITE_MISUSE is returned and the output variables zeroed. Otherwise,
90189018
** SQLITE_OK is returned and the output variables populated as described
@@ -9283,11 +9283,11 @@
92839283
** Rows within the changeset and changegroup are identified by the values in
92849284
** their PRIMARY KEY columns. A change in the changeset is considered to
92859285
** apply to the same row as a change already present in the changegroup if
92869286
** the two rows have the same primary key.
92879287
**
9288
-** Changes to rows that that do not already appear in the changegroup are
9288
+** Changes to rows that do not already appear in the changegroup are
92899289
** simply copied into it. Or, if both the new changeset and the changegroup
92909290
** contain changes that apply to a single row, the final contents of the
92919291
** changegroup depends on the type of each change, as follows:
92929292
**
92939293
** <table border=1 style="margin-left:8ex;margin-right:8ex">
92949294
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122 ** [sqlite_version()] and [sqlite_source_id()].
123 */
124 #define SQLITE_VERSION "3.15.0"
125 #define SQLITE_VERSION_NUMBER 3015000
126 #define SQLITE_SOURCE_ID "2016-09-22 18:53:13 c3774c6a5fe48af91fda28e9e18c6ed9053ea992"
127
128 /*
129 ** CAPI3REF: Run-Time Library Version Numbers
130 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
131 **
@@ -8655,11 +8655,11 @@
8655
8656 /*
8657 ** CAPI3REF: Set a table filter on a Session Object.
8658 **
8659 ** The second argument (xFilter) is the "filter callback". For changes to rows
8660 ** in tables that are not attached to the Session oject, the filter is called
8661 ** to determine whether changes to the table's rows should be tracked or not.
8662 ** If xFilter returns 0, changes is not tracked. Note that once a table is
8663 ** attached, xFilter will not be called again.
8664 */
8665 void sqlite3session_table_filter(
@@ -8921,11 +8921,11 @@
8921 ** Assuming the changeset blob was created by one of the
8922 ** [sqlite3session_changeset()], [sqlite3changeset_concat()] or
8923 ** [sqlite3changeset_invert()] functions, all changes within the changeset
8924 ** that apply to a single table are grouped together. This means that when
8925 ** an application iterates through a changeset using an iterator created by
8926 ** this function, all changes that relate to a single table are visted
8927 ** consecutively. There is no chance that the iterator will visit a change
8928 ** the applies to table X, then one for table Y, and then later on visit
8929 ** another change for table X.
8930 */
8931 int sqlite3changeset_start(
@@ -9008,11 +9008,11 @@
9008 ** If successful, *pabPK is set to point to an array of nCol entries, where
9009 ** nCol is the number of columns in the table. Elements of *pabPK are set to
9010 ** 0x01 if the corresponding column is part of the tables primary key, or
9011 ** 0x00 if it is not.
9012 **
9013 ** If argumet pnCol is not NULL, then *pnCol is set to the number of columns
9014 ** in the table.
9015 **
9016 ** If this function is called when the iterator does not point to a valid
9017 ** entry, SQLITE_MISUSE is returned and the output variables zeroed. Otherwise,
9018 ** SQLITE_OK is returned and the output variables populated as described
@@ -9283,11 +9283,11 @@
9283 ** Rows within the changeset and changegroup are identified by the values in
9284 ** their PRIMARY KEY columns. A change in the changeset is considered to
9285 ** apply to the same row as a change already present in the changegroup if
9286 ** the two rows have the same primary key.
9287 **
9288 ** Changes to rows that that do not already appear in the changegroup are
9289 ** simply copied into it. Or, if both the new changeset and the changegroup
9290 ** contain changes that apply to a single row, the final contents of the
9291 ** changegroup depends on the type of each change, as follows:
9292 **
9293 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
9294
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122 ** [sqlite_version()] and [sqlite_source_id()].
123 */
124 #define SQLITE_VERSION "3.15.0"
125 #define SQLITE_VERSION_NUMBER 3015000
126 #define SQLITE_SOURCE_ID "2016-09-28 16:05:53 40c0fb0af678797c39a99853f9f4102464c16f4b"
127
128 /*
129 ** CAPI3REF: Run-Time Library Version Numbers
130 ** KEYWORDS: sqlite3_version, sqlite3_sourceid
131 **
@@ -8655,11 +8655,11 @@
8655
8656 /*
8657 ** CAPI3REF: Set a table filter on a Session Object.
8658 **
8659 ** The second argument (xFilter) is the "filter callback". For changes to rows
8660 ** in tables that are not attached to the Session object, the filter is called
8661 ** to determine whether changes to the table's rows should be tracked or not.
8662 ** If xFilter returns 0, changes is not tracked. Note that once a table is
8663 ** attached, xFilter will not be called again.
8664 */
8665 void sqlite3session_table_filter(
@@ -8921,11 +8921,11 @@
8921 ** Assuming the changeset blob was created by one of the
8922 ** [sqlite3session_changeset()], [sqlite3changeset_concat()] or
8923 ** [sqlite3changeset_invert()] functions, all changes within the changeset
8924 ** that apply to a single table are grouped together. This means that when
8925 ** an application iterates through a changeset using an iterator created by
8926 ** this function, all changes that relate to a single table are visited
8927 ** consecutively. There is no chance that the iterator will visit a change
8928 ** the applies to table X, then one for table Y, and then later on visit
8929 ** another change for table X.
8930 */
8931 int sqlite3changeset_start(
@@ -9008,11 +9008,11 @@
9008 ** If successful, *pabPK is set to point to an array of nCol entries, where
9009 ** nCol is the number of columns in the table. Elements of *pabPK are set to
9010 ** 0x01 if the corresponding column is part of the tables primary key, or
9011 ** 0x00 if it is not.
9012 **
9013 ** If argument pnCol is not NULL, then *pnCol is set to the number of columns
9014 ** in the table.
9015 **
9016 ** If this function is called when the iterator does not point to a valid
9017 ** entry, SQLITE_MISUSE is returned and the output variables zeroed. Otherwise,
9018 ** SQLITE_OK is returned and the output variables populated as described
@@ -9283,11 +9283,11 @@
9283 ** Rows within the changeset and changegroup are identified by the values in
9284 ** their PRIMARY KEY columns. A change in the changeset is considered to
9285 ** apply to the same row as a change already present in the changegroup if
9286 ** the two rows have the same primary key.
9287 **
9288 ** Changes to rows that do not already appear in the changegroup are
9289 ** simply copied into it. Or, if both the new changeset and the changegroup
9290 ** contain changes that apply to a single row, the final contents of the
9291 ** changegroup depends on the type of each change, as follows:
9292 **
9293 ** <table border=1 style="margin-left:8ex;margin-right:8ex">
9294

Keyboard Shortcuts

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