Fossil SCM

Update the built-in SQLite to the first 3.28.0 beta.

drh 2019-04-11 01:17 trunk
Commit cbc21e52904aac60495f2728c1964dd8504b0a467475d27ac720d17bc62e8702
2 files changed +1489 -1427 +2 -2
+1489 -1427
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1162,11 +1162,11 @@
11621162
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
11631163
** [sqlite_version()] and [sqlite_source_id()].
11641164
*/
11651165
#define SQLITE_VERSION "3.28.0"
11661166
#define SQLITE_VERSION_NUMBER 3028000
1167
-#define SQLITE_SOURCE_ID "2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2ad28f"
1167
+#define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f"
11681168
11691169
/*
11701170
** CAPI3REF: Run-Time Library Version Numbers
11711171
** KEYWORDS: sqlite3_version sqlite3_sourceid
11721172
**
@@ -6017,11 +6017,11 @@
60176017
** <td>&rarr;&nbsp;&nbsp;<td>Best numeric datatype of the value
60186018
** <tr><td><b>sqlite3_value_nochange&nbsp;&nbsp;</b>
60196019
** <td>&rarr;&nbsp;&nbsp;<td>True if the column is unchanged in an UPDATE
60206020
** against a virtual table.
60216021
** <tr><td><b>sqlite3_value_frombind&nbsp;&nbsp;</b>
6022
-** <td>&rarr;&nbsp;&nbsp;<td>True if value originated a bound parameter
6022
+** <td>&rarr;&nbsp;&nbsp;<td>True if value originated from a [bound parameter]
60236023
** </table></blockquote>
60246024
**
60256025
** <b>Details:</b>
60266026
**
60276027
** These routines extract type, size, and content information from
@@ -13643,21 +13643,12 @@
1364313643
#define TK_VECTOR 169
1364413644
#define TK_SELECT_COLUMN 170
1364513645
#define TK_IF_NULL_ROW 171
1364613646
#define TK_ASTERISK 172
1364713647
#define TK_SPAN 173
13648
-#define TK_END_OF_FILE 174
13649
-#define TK_UNCLOSED_STRING 175
13650
-#define TK_SPACE 176
13651
-#define TK_ILLEGAL 177
13652
-
13653
-/* The token codes above must all fit in 8 bits */
13654
-#define TKFLG_MASK 0xff
13655
-
13656
-/* Flags that can be added to a token code when it is not
13657
-** being stored in a u8: */
13658
-#define TKFLG_DONTFOLD 0x100 /* Omit constant folding optimizations */
13648
+#define TK_SPACE 174
13649
+#define TK_ILLEGAL 175
1365913650
1366013651
/************** End of parse.h ***********************************************/
1366113652
/************** Continuing where we left off in sqliteInt.h ******************/
1366213653
#include <stdio.h>
1366313654
#include <stdlib.h>
@@ -16495,11 +16486,12 @@
1649516486
** Allowed values for sqlite3.mDbFlags
1649616487
*/
1649716488
#define DBFLAG_SchemaChange 0x0001 /* Uncommitted Hash table changes */
1649816489
#define DBFLAG_PreferBuiltin 0x0002 /* Preference to built-in funcs */
1649916490
#define DBFLAG_Vacuum 0x0004 /* Currently in a VACUUM */
16500
-#define DBFLAG_SchemaKnownOk 0x0008 /* Schema is known to be valid */
16491
+#define DBFLAG_VacuumInto 0x0008 /* Currently running VACUUM INTO */
16492
+#define DBFLAG_SchemaKnownOk 0x0010 /* Schema is known to be valid */
1650116493
1650216494
/*
1650316495
** Bits of the sqlite3.dbOptFlags field that are used by the
1650416496
** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to
1650516497
** selectively disable various optimizations.
@@ -18763,10 +18755,11 @@
1876318755
#endif
1876418756
1876518757
1876618758
SQLITE_PRIVATE void sqlite3SetString(char **, sqlite3*, const char*);
1876718759
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse*, const char*, ...);
18760
+SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3*,int);
1876818761
SQLITE_PRIVATE void sqlite3Dequote(char*);
1876918762
SQLITE_PRIVATE void sqlite3DequoteExpr(Expr*);
1877018763
SQLITE_PRIVATE void sqlite3TokenInit(Token*,char*);
1877118764
SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char*, int);
1877218765
SQLITE_PRIVATE int sqlite3RunParser(Parse*, const char*, char **);
@@ -20222,10 +20215,16 @@
2022220215
** Clear any existing type flags from a Mem and replace them with f
2022320216
*/
2022420217
#define MemSetTypeFlag(p, f) \
2022520218
((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)
2022620219
20220
+/*
20221
+** True if Mem X is a NULL-nochng type.
20222
+*/
20223
+#define MemNullNochng(X) \
20224
+ ((X)->flags==(MEM_Null|MEM_Zero) && (X)->n==0 && (X)->u.nZero==0)
20225
+
2022720226
/*
2022820227
** Return true if a memory cell is not marked as invalid. This macro
2022920228
** is for use inside assert() statements only.
2023020229
*/
2023120230
#ifdef SQLITE_DEBUG
@@ -27368,10 +27367,11 @@
2736827367
*/
2736927368
static void setStrAccumError(StrAccum *p, u8 eError){
2737027369
assert( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG );
2737127370
p->accError = eError;
2737227371
if( p->mxAlloc ) sqlite3_str_reset(p);
27372
+ if( eError==SQLITE_TOOBIG ) sqlite3ErrorToParser(p->db, eError);
2737327373
}
2737427374
2737527375
/*
2737627376
** Extra argument values from a PrintfArguments object
2737727377
*/
@@ -30225,19 +30225,27 @@
3022530225
dummy += (unsigned)x;
3022630226
}
3022730227
#endif
3022830228
3022930229
/*
30230
-** Give a callback to the test harness that can be used to simulate faults
30231
-** in places where it is difficult or expensive to do so purely by means
30232
-** of inputs.
30233
-**
30234
-** The intent of the integer argument is to let the fault simulator know
30235
-** which of multiple sqlite3FaultSim() calls has been hit.
30236
-**
30237
-** Return whatever integer value the test callback returns, or return
30238
-** SQLITE_OK if no test callback is installed.
30230
+** Calls to sqlite3FaultSim() are used to simulate a failure during testing,
30231
+** or to bypass normal error detection during testing in order to let
30232
+** execute proceed futher downstream.
30233
+**
30234
+** In deployment, sqlite3FaultSim() *always* return SQLITE_OK (0). The
30235
+** sqlite3FaultSim() function only returns non-zero during testing.
30236
+**
30237
+** During testing, if the test harness has set a fault-sim callback using
30238
+** a call to sqlite3_test_control(SQLITE_TESTCTRL_FAULT_INSTALL), then
30239
+** each call to sqlite3FaultSim() is relayed to that application-supplied
30240
+** callback and the integer return value form the application-supplied
30241
+** callback is returned by sqlite3FaultSim().
30242
+**
30243
+** The integer argument to sqlite3FaultSim() is a code to identify which
30244
+** sqlite3FaultSim() instance is being invoked. Each call to sqlite3FaultSim()
30245
+** should have a unique code. To prevent legacy testing applications from
30246
+** breaking, the codes should not be changed or reused.
3023930247
*/
3024030248
#ifndef SQLITE_UNTESTABLE
3024130249
SQLITE_PRIVATE int sqlite3FaultSim(int iTest){
3024230250
int (*xCallback)(int) = sqlite3GlobalConfig.xTestCallback;
3024330251
return xCallback ? xCallback(iTest) : SQLITE_OK;
@@ -30417,10 +30425,23 @@
3041730425
sqlite3DbFree(db, pParse->zErrMsg);
3041830426
pParse->zErrMsg = zMsg;
3041930427
pParse->rc = SQLITE_ERROR;
3042030428
}
3042130429
}
30430
+
30431
+/*
30432
+** If database connection db is currently parsing SQL, then transfer
30433
+** error code errCode to that parser if the parser has not already
30434
+** encountered some other kind of error.
30435
+*/
30436
+SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3 *db, int errCode){
30437
+ Parse *pParse;
30438
+ if( db==0 || (pParse = db->pParse)==0 ) return errCode;
30439
+ pParse->rc = errCode;
30440
+ pParse->nErr++;
30441
+ return errCode;
30442
+}
3042230443
3042330444
/*
3042430445
** Convert an SQL-style quoted string into a normal string by removing
3042530446
** the quote characters. The conversion is done in-place. If the
3042630447
** input does not begin with a quote character, then this routine
@@ -69336,11 +69357,11 @@
6933669357
MemPage *pTrunk = 0; /* Free-list trunk page */
6933769358
Pgno iTrunk = 0; /* Page number of free-list trunk page */
6933869359
MemPage *pPage1 = pBt->pPage1; /* Local reference to page 1 */
6933969360
MemPage *pPage; /* Page being freed. May be NULL. */
6934069361
int rc; /* Return Code */
69341
- int nFree; /* Initial number of pages on free-list */
69362
+ u32 nFree; /* Initial number of pages on free-list */
6934269363
6934369364
assert( sqlite3_mutex_held(pBt->mutex) );
6934469365
assert( CORRUPT_DB || iPage>1 );
6934569366
assert( !pMemPage || pMemPage->pgno==iPage );
6934669367
@@ -74697,17 +74718,19 @@
7469774718
*/
7469874719
#ifndef SQLITE_OMIT_INCRBLOB
7469974720
SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *pMem){
7470074721
int nByte;
7470174722
assert( pMem->flags & MEM_Zero );
74702
- assert( pMem->flags&MEM_Blob );
74723
+ assert( (pMem->flags&MEM_Blob)!=0 || MemNullNochng(pMem) );
74724
+ testcase( sqlite3_value_nochange(pMem) );
7470374725
assert( !sqlite3VdbeMemIsRowSet(pMem) );
7470474726
assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
7470574727
7470674728
/* Set nByte to the number of bytes required to store the expanded blob. */
7470774729
nByte = pMem->n + pMem->u.nZero;
7470874730
if( nByte<=0 ){
74731
+ if( (pMem->flags & MEM_Blob)==0 ) return SQLITE_OK;
7470974732
nByte = 1;
7471074733
}
7471174734
if( sqlite3VdbeMemGrow(pMem, nByte, 1) ){
7471274735
return SQLITE_NOMEM_BKPT;
7471374736
}
@@ -75460,11 +75483,11 @@
7546075483
u32 nAlloc = nByte;
7546175484
if( flags&MEM_Term ){
7546275485
nAlloc += (enc==SQLITE_UTF8?1:2);
7546375486
}
7546475487
if( nByte>iLimit ){
75465
- return SQLITE_TOOBIG;
75488
+ return sqlite3ErrorToParser(pMem->db, SQLITE_TOOBIG);
7546675489
}
7546775490
testcase( nAlloc==0 );
7546875491
testcase( nAlloc==31 );
7546975492
testcase( nAlloc==32 );
7547075493
if( sqlite3VdbeMemClearAndResize(pMem, (int)MAX(nAlloc,32)) ){
@@ -97716,11 +97739,11 @@
9771697739
p = sqlite3ExprAnd(pParse->db, pLeft, pRight);
9771797740
}else{
9771897741
p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr));
9771997742
if( p ){
9772097743
memset(p, 0, sizeof(Expr));
97721
- p->op = op & TKFLG_MASK;
97744
+ p->op = op & 0xff;
9772297745
p->iAgg = -1;
9772397746
}
9772497747
sqlite3ExprAttachSubtrees(pParse->db, p, pLeft, pRight);
9772597748
}
9772697749
if( p ) {
@@ -111209,11 +111232,12 @@
111209111232
char *zErr;
111210111233
int j;
111211111234
StrAccum errMsg;
111212111235
Table *pTab = pIdx->pTable;
111213111236
111214
- sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, 200);
111237
+ sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0,
111238
+ pParse->db->aLimit[SQLITE_LIMIT_LENGTH]);
111215111239
if( pIdx->aColExpr ){
111216111240
sqlite3_str_appendf(&errMsg, "index '%q'", pIdx->zName);
111217111241
}else{
111218111242
for(j=0; j<pIdx->nKeyCol; j++){
111219111243
char *zCol;
@@ -118698,10 +118722,17 @@
118698118722
if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break;
118699118723
}
118700118724
if( pSrcIdx==0 ){
118701118725
return 0; /* pDestIdx has no corresponding index in pSrc */
118702118726
}
118727
+ if( pSrcIdx->tnum==pDestIdx->tnum && pSrc->pSchema==pDest->pSchema
118728
+ && sqlite3FaultSim(411)==SQLITE_OK ){
118729
+ /* The sqlite3FaultSim() call allows this corruption test to be
118730
+ ** bypassed during testing, in order to exercise other corruption tests
118731
+ ** further downstream. */
118732
+ return 0; /* Corrupt schema - two indexes on the same btree */
118733
+ }
118703118734
}
118704118735
#ifndef SQLITE_OMIT_CHECK
118705118736
if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){
118706118737
return 0; /* Tables have different CHECK constraints. Ticket #2252 */
118707118738
}
@@ -118775,11 +118806,11 @@
118775118806
addr2 = sqlite3VdbeAddOp3(v, OP_NotExists, iDest, 0, regRowid);
118776118807
VdbeCoverage(v);
118777118808
sqlite3RowidConstraint(pParse, onError, pDest);
118778118809
sqlite3VdbeJumpHere(v, addr2);
118779118810
autoIncStep(pParse, regAutoinc, regRowid);
118780
- }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_Vacuum) ){
118811
+ }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_VacuumInto) ){
118781118812
addr1 = sqlite3VdbeAddOp2(v, OP_NewRowid, iDest, regRowid);
118782118813
}else{
118783118814
addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid);
118784118815
assert( (pDest->tabFlags & TF_Autoincrement)==0 );
118785118816
}
@@ -120104,14 +120135,17 @@
120104120135
sqlite3_str_value,
120105120136
/* Version 3.25.0 and later */
120106120137
sqlite3_create_window_function,
120107120138
/* Version 3.26.0 and later */
120108120139
#ifdef SQLITE_ENABLE_NORMALIZE
120109
- sqlite3_normalized_sql
120140
+ sqlite3_normalized_sql,
120110120141
#else
120111
- 0
120142
+ 0,
120112120143
#endif
120144
+ /* Version 3.28.0 and later */
120145
+ sqlite3_stmt_isexplain,
120146
+ sqlite3_value_frombind
120113120147
};
120114120148
120115120149
/*
120116120150
** Attempt to load an SQLite extension library contained in the file
120117120151
** zFile. The entry point is zProc. zProc may be 0 in which case a
@@ -133979,11 +134013,11 @@
133979134013
}
133980134014
133981134015
/*
133982134016
** This routine implements the OP_Vacuum opcode of the VDBE.
133983134017
*/
133984
-SQLITE_PRIVATE int sqlite3RunVacuum(
134018
+SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3RunVacuum(
133985134019
char **pzErrMsg, /* Write error message here */
133986134020
sqlite3 *db, /* Database connection */
133987134021
int iDb, /* Which attached DB to vacuum */
133988134022
sqlite3_value *pOut /* Write results here, if not NULL. VACUUM INTO */
133989134023
){
@@ -134003,15 +134037,15 @@
134003134037
const char *zDbMain; /* Schema name of database to vacuum */
134004134038
const char *zOut; /* Name of output file */
134005134039
134006134040
if( !db->autoCommit ){
134007134041
sqlite3SetString(pzErrMsg, db, "cannot VACUUM from within a transaction");
134008
- return SQLITE_ERROR;
134042
+ return SQLITE_ERROR; /* IMP: R-12218-18073 */
134009134043
}
134010134044
if( db->nVdbeActive>1 ){
134011134045
sqlite3SetString(pzErrMsg, db,"cannot VACUUM - SQL statements in progress");
134012
- return SQLITE_ERROR;
134046
+ return SQLITE_ERROR; /* IMP: R-15610-35227 */
134013134047
}
134014134048
saved_openFlags = db->openFlags;
134015134049
if( pOut ){
134016134050
if( sqlite3_value_type(pOut)!=SQLITE_TEXT ){
134017134051
sqlite3SetString(pzErrMsg, db, "non-text filename");
@@ -134070,10 +134104,11 @@
134070134104
if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){
134071134105
rc = SQLITE_ERROR;
134072134106
sqlite3SetString(pzErrMsg, db, "output file already exists");
134073134107
goto end_of_vacuum;
134074134108
}
134109
+ db->mDbFlags |= DBFLAG_VacuumInto;
134075134110
}
134076134111
nRes = sqlite3BtreeGetOptimalReserve(pMain);
134077134112
134078134113
/* A VACUUM cannot change the pagesize of an encrypted database. */
134079134114
#ifdef SQLITE_HAS_CODEC
@@ -138063,11 +138098,16 @@
138063138098
testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO );
138064138099
pExpr = sqlite3ExprDup(db, pExpr, 0);
138065138100
pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr);
138066138101
}
138067138102
if( pAndExpr ){
138068
- pAndExpr = sqlite3PExpr(pParse, TK_AND|TKFLG_DONTFOLD, 0, pAndExpr);
138103
+ /* The extra 0x10000 bit on the opcode is masked off and does not
138104
+ ** become part of the new Expr.op. However, it does make the
138105
+ ** op==TK_AND comparison inside of sqlite3PExpr() false, and this
138106
+ ** prevents sqlite3PExpr() from implementing AND short-circuit
138107
+ ** optimization, which we do not want here. */
138108
+ pAndExpr = sqlite3PExpr(pParse, TK_AND|0x10000, 0, pAndExpr);
138069138109
}
138070138110
}
138071138111
138072138112
/* Run a separate WHERE clause for each term of the OR clause. After
138073138113
** eliminating duplicates from other WHERE clauses, the action for each
@@ -148247,10 +148287,14 @@
148247148287
pIdToken->n, pIdToken->z);
148248148288
}
148249148289
sqlite3ExprListSetName(pParse, p, pIdToken, 1);
148250148290
return p;
148251148291
}
148292
+
148293
+#if TK_SPAN>255
148294
+# error too many tokens in the grammar
148295
+#endif
148252148296
/**************** End of %include directives **********************************/
148253148297
/* These constants specify the various numeric values for terminal symbols
148254148298
** in a format understandable to "makeheaders". This section is blank unless
148255148299
** "lemon" is run with the "-m" command-line option.
148256148300
***************** Begin makeheaders token definitions *************************/
@@ -148310,32 +148354,32 @@
148310148354
#ifndef INTERFACE
148311148355
# define INTERFACE 1
148312148356
#endif
148313148357
/************* Begin control #defines *****************************************/
148314148358
#define YYCODETYPE unsigned short int
148315
-#define YYNOCODE 284
148359
+#define YYNOCODE 301
148316148360
#define YYACTIONTYPE unsigned short int
148317148361
#define YYWILDCARD 95
148318148362
#define sqlite3ParserTOKENTYPE Token
148319148363
typedef union {
148320148364
int yyinit;
148321148365
sqlite3ParserTOKENTYPE yy0;
148322
- u8 yy10;
148323
- const char* yy104;
148324
- Expr* yy130;
148325
- SrcList* yy147;
148326
- IdList* yy200;
148327
- struct FrameBound yy273;
148328
- Window* yy395;
148329
- int yy420;
148330
- Upsert* yy426;
148331
- ExprList* yy442;
148332
- Select* yy491;
148333
- struct TrigEvent yy498;
148334
- With* yy523;
148335
- TriggerStep* yy524;
148336
- struct {int value; int mask;} yy527;
148366
+ With* yy59;
148367
+ IdList* yy62;
148368
+ struct TrigEvent yy90;
148369
+ Upsert* yy136;
148370
+ struct FrameBound yy201;
148371
+ u8 yy238;
148372
+ const char* yy294;
148373
+ Window* yy295;
148374
+ struct {int value; int mask;} yy355;
148375
+ ExprList* yy434;
148376
+ TriggerStep* yy455;
148377
+ Select* yy457;
148378
+ SrcList* yy483;
148379
+ int yy494;
148380
+ Expr* yy524;
148337148381
} YYMINORTYPE;
148338148382
#ifndef YYSTACKDEPTH
148339148383
#define YYSTACKDEPTH 100
148340148384
#endif
148341148385
#define sqlite3ParserARG_SDECL
@@ -148349,11 +148393,11 @@
148349148393
#define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse;
148350148394
#define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
148351148395
#define YYFALLBACK 1
148352148396
#define YYNSTATE 541
148353148397
#define YYNRULE 375
148354
-#define YYNTOKEN 159
148398
+#define YYNTOKEN 176
148355148399
#define YY_MAX_SHIFT 540
148356148400
#define YY_MIN_SHIFTREDUCE 784
148357148401
#define YY_MAX_SHIFTREDUCE 1158
148358148402
#define YY_ERROR_ACTION 1159
148359148403
#define YY_ACCEPT_ACTION 1160
@@ -148426,190 +148470,190 @@
148426148470
** yy_default[] Default action for each state.
148427148471
**
148428148472
*********** Begin parsing tables **********************************************/
148429148473
#define YY_ACTTAB_COUNT (2142)
148430148474
static const YYACTIONTYPE yy_action[] = {
148431
- /* 0 */ 388, 112, 109, 209, 535, 190, 442, 259, 1160, 1,
148432
- /* 10 */ 1, 540, 2, 1164, 535, 1292, 1500, 371, 289, 384,
148433
- /* 20 */ 134, 1484, 1427, 1164, 1202, 69, 69, 1241, 289, 492,
148434
- /* 30 */ 134, 915, 382, 296, 175, 42, 42, 1241, 242, 916,
148435
- /* 40 */ 112, 109, 209, 119, 120, 110, 1136, 1136, 981, 984,
148436
- /* 50 */ 974, 974, 117, 117, 118, 118, 118, 118, 1291, 264,
148437
- /* 60 */ 264, 264, 264, 112, 109, 209, 112, 109, 209, 264,
148438
- /* 70 */ 264, 1115, 532, 1134, 532, 176, 270, 453, 239, 206,
148439
- /* 80 */ 379, 450, 532, 356, 380, 219, 118, 118, 118, 118,
148440
- /* 90 */ 111, 444, 535, 1233, 1233, 219, 116, 116, 116, 116,
148441
- /* 100 */ 115, 115, 114, 114, 114, 113, 415, 258, 258, 112,
148442
- /* 110 */ 109, 209, 1115, 42, 42, 419, 384, 1391, 1504, 1115,
148443
- /* 120 */ 532, 1115, 1116, 1117, 1134, 419, 1463, 351, 116, 116,
148475
+ /* 0 */ 535, 1323, 112, 109, 209, 112, 109, 209, 1160, 1,
148476
+ /* 10 */ 1, 540, 2, 1164, 535, 1292, 1228, 1207, 289, 384,
148477
+ /* 20 */ 134, 42, 42, 1427, 382, 1228, 9, 1241, 242, 492,
148478
+ /* 30 */ 1291, 915, 373, 379, 1026, 70, 70, 427, 1026, 916,
148479
+ /* 40 */ 529, 529, 529, 119, 120, 110, 1136, 1136, 981, 984,
148480
+ /* 50 */ 974, 974, 117, 117, 118, 118, 118, 118, 380, 264,
148481
+ /* 60 */ 264, 264, 264, 1134, 264, 264, 112, 109, 209, 397,
148482
+ /* 70 */ 454, 517, 532, 491, 532, 1233, 1233, 532, 239, 206,
148483
+ /* 80 */ 493, 112, 109, 209, 464, 219, 118, 118, 118, 118,
148484
+ /* 90 */ 111, 393, 440, 444, 16, 16, 116, 116, 116, 116,
148485
+ /* 100 */ 115, 115, 114, 114, 114, 113, 415, 971, 971, 982,
148486
+ /* 110 */ 985, 235, 1463, 351, 1134, 419, 384, 116, 116, 116,
148487
+ /* 120 */ 116, 115, 115, 114, 114, 114, 113, 415, 116, 116,
148444148488
/* 130 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 961,
148445148489
/* 140 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117,
148446
- /* 150 */ 117, 118, 118, 118, 118, 952, 1228, 1207, 1115, 951,
148447
- /* 160 */ 412, 411, 1115, 1116, 1117, 1228, 535, 876, 1140, 1115,
148448
- /* 170 */ 1116, 1117, 875, 1142, 941, 114, 114, 114, 113, 415,
148449
- /* 180 */ 1089, 1141, 1089, 118, 118, 118, 118, 42, 42, 202,
148490
+ /* 150 */ 117, 118, 118, 118, 118, 952, 415, 941, 298, 951,
148491
+ /* 160 */ 941, 1480, 540, 2, 1164, 1115, 535, 1458, 160, 289,
148492
+ /* 170 */ 6, 134, 1504, 389, 406, 975, 338, 1024, 1241, 337,
148493
+ /* 180 */ 1089, 1476, 1089, 118, 118, 118, 118, 42, 42, 329,
148450148494
/* 190 */ 951, 951, 953, 116, 116, 116, 116, 115, 115, 114,
148451
- /* 200 */ 114, 114, 113, 415, 1465, 1143, 350, 1143, 1115, 1116,
148452
- /* 210 */ 1117, 231, 415, 384, 472, 469, 468, 412, 411, 442,
148453
- /* 220 */ 96, 311, 430, 299, 467, 116, 116, 116, 116, 115,
148454
- /* 230 */ 115, 114, 114, 114, 113, 415, 160, 119, 120, 110,
148495
+ /* 200 */ 114, 114, 113, 415, 311, 430, 299, 311, 881, 160,
148496
+ /* 210 */ 264, 264, 401, 384, 324, 1115, 1116, 1117, 288, 526,
148497
+ /* 220 */ 96, 159, 1441, 532, 141, 116, 116, 116, 116, 115,
148498
+ /* 230 */ 115, 114, 114, 114, 113, 415, 219, 119, 120, 110,
148455148499
/* 240 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148456
- /* 250 */ 118, 118, 115, 115, 114, 114, 114, 113, 415, 529,
148457
- /* 260 */ 529, 529, 1143, 121, 1143, 116, 116, 116, 116, 115,
148458
- /* 270 */ 115, 114, 114, 114, 113, 415, 941, 337, 1463, 506,
148459
- /* 280 */ 491, 1067, 1530, 384, 160, 1530, 288, 526, 1115, 274,
148500
+ /* 250 */ 118, 118, 115, 115, 114, 114, 114, 113, 415, 288,
148501
+ /* 260 */ 526, 403, 533, 121, 870, 870, 419, 250, 267, 336,
148502
+ /* 270 */ 475, 331, 474, 236, 160, 319, 1084, 322, 1465, 329,
148503
+ /* 280 */ 350, 12, 535, 384, 502, 1115, 1084, 435, 312, 1084,
148460148504
/* 290 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148461
- /* 300 */ 415, 16, 16, 406, 535, 93, 512, 119, 120, 110,
148505
+ /* 300 */ 415, 535, 836, 42, 42, 138, 426, 119, 120, 110,
148462148506
/* 310 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148463
- /* 320 */ 118, 118, 141, 311, 231, 54, 54, 472, 469, 468,
148464
- /* 330 */ 427, 79, 368, 1156, 288, 526, 32, 467, 1115, 1116,
148465
- /* 340 */ 1117, 1323, 1480, 540, 2, 1164, 971, 971, 982, 985,
148466
- /* 350 */ 289, 384, 134, 459, 1065, 533, 80, 870, 870, 1241,
148507
+ /* 320 */ 118, 118, 70, 70, 288, 526, 412, 411, 480, 1457,
148508
+ /* 330 */ 335, 79, 6, 473, 1140, 1115, 1116, 1117, 501, 1142,
148509
+ /* 340 */ 334, 837, 811, 1484, 512, 1164, 534, 1141, 123, 187,
148510
+ /* 350 */ 289, 384, 134, 448, 434, 1115, 80, 349, 498, 1241,
148467148511
/* 360 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148468
- /* 370 */ 415, 818, 82, 1115, 1476, 119, 120, 110, 1136, 1136,
148512
+ /* 370 */ 415, 1143, 1115, 1143, 459, 119, 120, 110, 1136, 1136,
148469148513
/* 380 */ 981, 984, 974, 974, 117, 117, 118, 118, 118, 118,
148470
- /* 390 */ 403, 264, 264, 238, 535, 1426, 250, 267, 336, 475,
148471
- /* 400 */ 331, 474, 236, 459, 532, 1157, 961, 459, 329, 397,
148472
- /* 410 */ 373, 513, 1450, 159, 975, 70, 70, 219, 413, 413,
148473
- /* 420 */ 413, 818, 952, 1115, 1116, 1117, 951, 534, 116, 116,
148474
- /* 430 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 1115,
148475
- /* 440 */ 535, 442, 264, 264, 1115, 1390, 535, 419, 384, 422,
148476
- /* 450 */ 1115, 517, 326, 1245, 304, 532, 1084, 951, 951, 953,
148477
- /* 460 */ 493, 70, 70, 167, 509, 532, 1084, 70, 70, 1084,
148478
- /* 470 */ 440, 535, 119, 120, 110, 1136, 1136, 981, 984, 974,
148479
- /* 480 */ 974, 117, 117, 118, 118, 118, 118, 881, 535, 1115,
148480
- /* 490 */ 1116, 1117, 55, 55, 1115, 1116, 1117, 517, 288, 526,
148481
- /* 500 */ 1115, 1116, 1117, 517, 420, 494, 516, 113, 415, 13,
148482
- /* 510 */ 13, 275, 482, 836, 349, 301, 535, 303, 500, 5,
148483
- /* 520 */ 480, 1457, 138, 395, 6, 116, 116, 116, 116, 115,
148484
- /* 530 */ 115, 114, 114, 114, 113, 415, 1458, 13, 13, 6,
148485
- /* 540 */ 535, 1024, 1115, 535, 473, 384, 535, 435, 312, 822,
148486
- /* 550 */ 1084, 400, 837, 159, 518, 181, 1115, 483, 502, 811,
148487
- /* 560 */ 1084, 70, 70, 1084, 70, 70, 1115, 50, 50, 119,
148514
+ /* 390 */ 404, 264, 264, 811, 1463, 506, 368, 1156, 535, 114,
148515
+ /* 400 */ 114, 114, 113, 415, 532, 1115, 1116, 1117, 231, 518,
148516
+ /* 410 */ 1500, 472, 469, 468, 175, 497, 422, 219, 1202, 70,
148517
+ /* 420 */ 70, 467, 1115, 1116, 1117, 176, 201, 200, 116, 116,
148518
+ /* 430 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 535,
148519
+ /* 440 */ 1115, 264, 264, 435, 312, 1115, 273, 419, 384, 513,
148520
+ /* 450 */ 1450, 1115, 326, 1084, 532, 517, 82, 1084, 167, 388,
148521
+ /* 460 */ 69, 69, 1115, 1084, 519, 509, 1084, 1084, 12, 1157,
148522
+ /* 470 */ 1084, 420, 119, 120, 110, 1136, 1136, 981, 984, 974,
148523
+ /* 480 */ 974, 117, 117, 118, 118, 118, 118, 258, 258, 535,
148524
+ /* 490 */ 1115, 1116, 1117, 1045, 535, 1115, 1116, 1117, 1323, 535,
148525
+ /* 500 */ 532, 1115, 1116, 1117, 296, 483, 1211, 818, 1046, 448,
148526
+ /* 510 */ 70, 70, 1115, 1116, 1117, 50, 50, 448, 356, 500,
148527
+ /* 520 */ 70, 70, 207, 1047, 32, 116, 116, 116, 116, 115,
148528
+ /* 530 */ 115, 114, 114, 114, 113, 415, 453, 264, 264, 1115,
148529
+ /* 540 */ 450, 449, 961, 508, 856, 384, 517, 5, 900, 822,
148530
+ /* 550 */ 532, 484, 181, 1115, 857, 516, 517, 818, 952, 507,
148531
+ /* 560 */ 3, 1115, 951, 1231, 1231, 482, 398, 1115, 1095, 119,
148488148532
/* 570 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148489
- /* 580 */ 118, 118, 118, 118, 95, 338, 264, 264, 1115, 264,
148490
- /* 590 */ 264, 302, 1115, 1116, 1117, 495, 3, 498, 535, 532,
148491
- /* 600 */ 517, 404, 532, 484, 801, 287, 1115, 1116, 1117, 519,
148492
- /* 610 */ 811, 337, 501, 12, 535, 381, 1115, 1116, 1117, 70,
148493
- /* 620 */ 70, 401, 116, 116, 116, 116, 115, 115, 114, 114,
148494
- /* 630 */ 114, 113, 415, 1115, 1084, 13, 13, 535, 1115, 1116,
148495
- /* 640 */ 1117, 1115, 384, 902, 1084, 1211, 815, 1084, 393, 402,
148496
- /* 650 */ 160, 435, 312, 1532, 369, 284, 143, 297, 70, 70,
148497
- /* 660 */ 510, 1457, 337, 433, 6, 901, 119, 120, 110, 1136,
148533
+ /* 580 */ 118, 118, 118, 118, 1115, 535, 238, 1115, 1391, 1115,
148534
+ /* 590 */ 1116, 1117, 159, 951, 951, 953, 231, 1115, 259, 472,
148535
+ /* 600 */ 469, 468, 310, 1115, 1116, 1117, 13, 13, 297, 467,
148536
+ /* 610 */ 276, 1115, 1116, 1117, 412, 411, 1095, 1115, 1116, 1117,
148537
+ /* 620 */ 395, 355, 116, 116, 116, 116, 115, 115, 114, 114,
148538
+ /* 630 */ 114, 113, 415, 208, 1115, 1116, 1117, 1115, 1116, 1117,
148539
+ /* 640 */ 264, 264, 384, 337, 902, 393, 815, 1115, 1116, 1117,
148540
+ /* 650 */ 413, 413, 413, 532, 112, 109, 209, 309, 900, 1143,
148541
+ /* 660 */ 535, 1143, 535, 393, 901, 1210, 119, 120, 110, 1136,
148498148542
/* 670 */ 1136, 981, 984, 974, 974, 117, 117, 118, 118, 118,
148499
- /* 680 */ 118, 1045, 426, 1115, 1116, 1117, 449, 535, 12, 264,
148500
- /* 690 */ 264, 1115, 1116, 1117, 285, 535, 1046, 265, 265, 1004,
148501
- /* 700 */ 288, 526, 532, 789, 790, 791, 190, 140, 70, 70,
148502
- /* 710 */ 532, 1047, 1323, 535, 309, 298, 13, 13, 383, 116,
148543
+ /* 680 */ 118, 13, 13, 13, 13, 265, 265, 535, 143, 264,
148544
+ /* 690 */ 264, 288, 526, 535, 1119, 400, 535, 402, 532, 510,
148545
+ /* 700 */ 1457, 512, 532, 6, 113, 415, 1067, 1530, 70, 70,
148546
+ /* 710 */ 1530, 535, 271, 535, 70, 70, 535, 13, 13, 116,
148503148547
/* 720 */ 116, 116, 116, 115, 115, 114, 114, 114, 113, 415,
148504
- /* 730 */ 277, 535, 856, 190, 13, 13, 1383, 497, 278, 384,
148505
- /* 740 */ 278, 362, 857, 1100, 410, 376, 264, 264, 184, 900,
148506
- /* 750 */ 1210, 1239, 70, 70, 1182, 1455, 187, 535, 6, 532,
148507
- /* 760 */ 535, 434, 207, 119, 120, 110, 1136, 1136, 981, 984,
148508
- /* 770 */ 974, 974, 117, 117, 118, 118, 118, 118, 13, 13,
148509
- /* 780 */ 398, 13, 13, 264, 264, 393, 264, 264, 414, 1185,
148510
- /* 790 */ 390, 425, 185, 1396, 1084, 514, 532, 485, 9, 532,
148511
- /* 800 */ 242, 464, 1067, 1531, 1084, 488, 1531, 1084, 425, 424,
148512
- /* 810 */ 1396, 1398, 520, 1029, 1029, 456, 116, 116, 116, 116,
148513
- /* 820 */ 115, 115, 114, 114, 114, 113, 415, 535, 235, 264,
148514
- /* 830 */ 264, 508, 535, 393, 208, 1134, 384, 264, 264, 448,
148515
- /* 840 */ 962, 448, 532, 261, 264, 264, 900, 507, 15, 15,
148516
- /* 850 */ 532, 1026, 271, 44, 44, 1026, 1095, 532, 535, 900,
148548
+ /* 730 */ 272, 277, 13, 13, 13, 13, 535, 13, 13, 384,
148549
+ /* 740 */ 535, 304, 425, 1100, 284, 1119, 184, 801, 185, 338,
148550
+ /* 750 */ 285, 514, 1532, 369, 1239, 1438, 1182, 70, 70, 425,
148551
+ /* 760 */ 424, 70, 70, 119, 120, 110, 1136, 1136, 981, 984,
148552
+ /* 770 */ 974, 974, 117, 117, 118, 118, 118, 118, 190, 1065,
148553
+ /* 780 */ 1067, 1531, 442, 107, 1531, 408, 264, 264, 264, 264,
148554
+ /* 790 */ 383, 1396, 261, 410, 95, 900, 485, 414, 421, 532,
148555
+ /* 800 */ 1045, 532, 301, 1133, 303, 488, 433, 1451, 1396, 1398,
148556
+ /* 810 */ 278, 535, 278, 520, 1435, 1046, 116, 116, 116, 116,
148557
+ /* 820 */ 115, 115, 114, 114, 114, 113, 415, 425, 264, 264,
148558
+ /* 830 */ 1047, 190, 54, 54, 535, 291, 384, 264, 264, 362,
148559
+ /* 840 */ 962, 532, 1004, 376, 1084, 264, 264, 1029, 1029, 456,
148560
+ /* 850 */ 532, 523, 270, 1065, 1084, 55, 55, 1084, 532, 442,
148517148561
/* 860 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117,
148518
- /* 870 */ 117, 118, 118, 118, 118, 1065, 425, 1045, 1396, 56,
148519
- /* 880 */ 56, 535, 368, 1066, 1231, 1231, 1134, 454, 535, 324,
148520
- /* 890 */ 389, 355, 1046, 234, 233, 232, 512, 459, 459, 459,
148521
- /* 900 */ 272, 448, 57, 57, 1095, 1438, 329, 1047, 535, 58,
148522
- /* 910 */ 58, 421, 477, 116, 116, 116, 116, 115, 115, 114,
148523
- /* 920 */ 114, 114, 113, 415, 1323, 535, 515, 535, 523, 59,
148524
- /* 930 */ 59, 208, 273, 384, 310, 1435, 1323, 946, 876, 1240,
148525
- /* 940 */ 1236, 317, 1456, 875, 136, 6, 60, 60, 61, 61,
148526
- /* 950 */ 319, 535, 322, 384, 535, 1157, 900, 119, 120, 110,
148562
+ /* 870 */ 117, 118, 118, 118, 118, 535, 1396, 190, 302, 1383,
148563
+ /* 880 */ 208, 535, 789, 790, 791, 535, 515, 535, 1323, 371,
148564
+ /* 890 */ 337, 234, 233, 232, 459, 515, 15, 15, 459, 477,
148565
+ /* 900 */ 459, 459, 44, 44, 136, 900, 56, 56, 57, 57,
148566
+ /* 910 */ 1185, 390, 197, 116, 116, 116, 116, 115, 115, 114,
148567
+ /* 920 */ 114, 114, 113, 415, 535, 876, 535, 442, 535, 274,
148568
+ /* 930 */ 875, 1323, 357, 384, 353, 140, 1426, 946, 1455, 1323,
148569
+ /* 940 */ 1390, 6, 1240, 1236, 292, 58, 58, 59, 59, 60,
148570
+ /* 950 */ 60, 535, 1456, 384, 535, 6, 399, 119, 120, 110,
148527148571
/* 960 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148528
- /* 970 */ 118, 118, 45, 45, 535, 46, 46, 119, 120, 110,
148572
+ /* 970 */ 118, 118, 61, 61, 535, 45, 45, 119, 120, 110,
148529148573
/* 980 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148530
- /* 990 */ 118, 118, 399, 338, 276, 48, 48, 337, 1477, 479,
148531
- /* 1000 */ 535, 107, 1451, 535, 455, 535, 1119, 95, 1338, 235,
148574
+ /* 990 */ 118, 118, 1477, 479, 202, 46, 46, 275, 95, 455,
148575
+ /* 1000 */ 535, 212, 535, 337, 535, 1454, 535, 409, 6, 242,
148532148576
/* 1010 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148533
- /* 1020 */ 415, 49, 49, 123, 62, 62, 63, 63, 535, 408,
148577
+ /* 1020 */ 415, 48, 48, 49, 49, 62, 62, 63, 63, 535,
148534148578
/* 1030 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148535
- /* 1040 */ 415, 535, 142, 535, 481, 535, 1323, 535, 1503, 64,
148536
- /* 1050 */ 64, 845, 1454, 1337, 535, 6, 535, 1119, 535, 357,
148537
- /* 1060 */ 535, 353, 14, 14, 65, 65, 125, 125, 66, 66,
148538
- /* 1070 */ 535, 389, 535, 291, 535, 51, 51, 67, 67, 68,
148539
- /* 1080 */ 68, 52, 52, 292, 1453, 98, 535, 6, 535, 481,
148540
- /* 1090 */ 535, 147, 147, 148, 148, 75, 75, 535, 915, 535,
148541
- /* 1100 */ 827, 201, 200, 528, 390, 384, 916, 53, 53, 71,
148542
- /* 1110 */ 71, 126, 126, 515, 409, 288, 526, 216, 72, 72,
148543
- /* 1120 */ 127, 127, 391, 161, 535, 384, 535, 263, 206, 119,
148579
+ /* 1040 */ 415, 535, 459, 535, 1134, 535, 1151, 535, 142, 535,
148580
+ /* 1050 */ 64, 64, 535, 1338, 535, 494, 535, 446, 535, 1264,
148581
+ /* 1060 */ 535, 1337, 14, 14, 65, 65, 125, 125, 66, 66,
148582
+ /* 1070 */ 51, 51, 535, 67, 67, 68, 68, 52, 52, 147,
148583
+ /* 1080 */ 147, 148, 148, 1453, 317, 98, 6, 535, 1245, 481,
148584
+ /* 1090 */ 535, 827, 535, 75, 75, 1134, 102, 481, 100, 535,
148585
+ /* 1100 */ 532, 535, 368, 1066, 1503, 384, 535, 845, 53, 53,
148586
+ /* 1110 */ 93, 71, 71, 126, 126, 295, 528, 390, 288, 526,
148587
+ /* 1120 */ 72, 72, 127, 127, 139, 384, 38, 128, 128, 119,
148544148588
/* 1130 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148545
- /* 1140 */ 118, 118, 118, 118, 535, 128, 128, 124, 124, 119,
148589
+ /* 1140 */ 118, 118, 118, 118, 535, 495, 535, 447, 535, 119,
148546148590
/* 1150 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148547
- /* 1160 */ 118, 118, 118, 118, 446, 146, 146, 102, 1209, 100,
148548
- /* 1170 */ 1133, 212, 139, 535, 38, 437, 1062, 308, 535, 370,
148549
- /* 1180 */ 95, 295, 116, 116, 116, 116, 115, 115, 114, 114,
148550
- /* 1190 */ 114, 113, 415, 535, 145, 145, 535, 938, 535, 132,
148551
- /* 1200 */ 132, 535, 116, 116, 116, 116, 115, 115, 114, 114,
148552
- /* 1210 */ 114, 113, 415, 535, 131, 131, 1151, 129, 129, 130,
148553
- /* 1220 */ 130, 30, 74, 74, 535, 17, 535, 218, 535, 943,
148554
- /* 1230 */ 441, 1277, 241, 241, 76, 76, 443, 101, 313, 241,
148555
- /* 1240 */ 465, 95, 1023, 237, 1023, 73, 73, 43, 43, 47,
148556
- /* 1250 */ 47, 335, 31, 327, 447, 266, 95, 384, 1276, 835,
148557
- /* 1260 */ 834, 334, 193, 1007, 436, 429, 237, 825, 842, 843,
148558
- /* 1270 */ 1011, 909, 873, 955, 241, 107, 1022, 384, 1022, 197,
148559
- /* 1280 */ 1441, 119, 120, 110, 1136, 1136, 981, 984, 974, 974,
148560
- /* 1290 */ 117, 117, 118, 118, 118, 118, 809, 305, 1264, 137,
148561
- /* 1300 */ 1415, 119, 108, 110, 1136, 1136, 981, 984, 974, 974,
148562
- /* 1310 */ 117, 117, 118, 118, 118, 118, 874, 522, 825, 107,
148563
- /* 1320 */ 283, 1011, 1414, 1470, 955, 451, 314, 1273, 318, 321,
148564
- /* 1330 */ 323, 325, 1224, 1208, 116, 116, 116, 116, 115, 115,
148565
- /* 1340 */ 114, 114, 114, 113, 415, 330, 339, 340, 1285, 1322,
148566
- /* 1350 */ 1260, 1271, 521, 1328, 116, 116, 116, 116, 115, 115,
148567
- /* 1360 */ 114, 114, 114, 113, 415, 1191, 256, 1493, 1184, 1173,
148568
- /* 1370 */ 460, 1172, 1174, 1257, 384, 342, 1487, 344, 346, 199,
148569
- /* 1380 */ 195, 367, 11, 211, 307, 445, 1307, 428, 1315, 375,
148570
- /* 1390 */ 203, 1207, 470, 188, 384, 189, 525, 1490, 1151, 120,
148591
+ /* 1160 */ 118, 118, 118, 118, 235, 124, 124, 146, 146, 145,
148592
+ /* 1170 */ 145, 287, 535, 1277, 535, 1157, 535, 391, 161, 263,
148593
+ /* 1180 */ 206, 381, 116, 116, 116, 116, 115, 115, 114, 114,
148594
+ /* 1190 */ 114, 113, 415, 132, 132, 131, 131, 129, 129, 535,
148595
+ /* 1200 */ 30, 535, 116, 116, 116, 116, 115, 115, 114, 114,
148596
+ /* 1210 */ 114, 113, 415, 535, 216, 1062, 1276, 535, 370, 535,
148597
+ /* 1220 */ 130, 130, 74, 74, 535, 915, 389, 876, 17, 437,
148598
+ /* 1230 */ 429, 31, 875, 916, 76, 76, 266, 101, 73, 73,
148599
+ /* 1240 */ 43, 43, 835, 834, 308, 47, 47, 95, 825, 943,
148600
+ /* 1250 */ 441, 938, 241, 241, 305, 443, 313, 384, 241, 95,
148601
+ /* 1260 */ 842, 843, 193, 465, 1209, 327, 237, 436, 95, 1011,
148602
+ /* 1270 */ 1007, 909, 873, 237, 241, 107, 1023, 384, 1023, 955,
148603
+ /* 1280 */ 1415, 119, 120, 110, 1136, 1136, 981, 984, 974, 974,
148604
+ /* 1290 */ 117, 117, 118, 118, 118, 118, 1022, 809, 1022, 825,
148605
+ /* 1300 */ 137, 119, 108, 110, 1136, 1136, 981, 984, 974, 974,
148606
+ /* 1310 */ 117, 117, 118, 118, 118, 118, 874, 1414, 451, 107,
148607
+ /* 1320 */ 1011, 314, 1273, 318, 218, 321, 323, 325, 1224, 1208,
148608
+ /* 1330 */ 955, 330, 339, 340, 116, 116, 116, 116, 115, 115,
148609
+ /* 1340 */ 114, 114, 114, 113, 415, 1285, 1322, 1260, 1493, 1470,
148610
+ /* 1350 */ 1271, 283, 521, 1328, 116, 116, 116, 116, 115, 115,
148611
+ /* 1360 */ 114, 114, 114, 113, 415, 1191, 1184, 1173, 1172, 1174,
148612
+ /* 1370 */ 522, 1487, 211, 460, 384, 256, 199, 367, 1257, 342,
148613
+ /* 1380 */ 195, 470, 307, 344, 11, 333, 525, 445, 1307, 1315,
148614
+ /* 1390 */ 375, 203, 1207, 1151, 384, 346, 1387, 188, 360, 120,
148571148615
/* 1400 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118,
148572
- /* 1410 */ 118, 118, 118, 333, 1387, 1386, 245, 300, 348, 1434,
148616
+ /* 1410 */ 118, 118, 118, 1386, 428, 1490, 245, 300, 348, 1148,
148573148617
/* 1420 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118,
148574
- /* 1430 */ 118, 118, 118, 198, 360, 163, 1432, 1148, 78, 81,
148575
- /* 1440 */ 392, 82, 1392, 439, 173, 105, 527, 157, 4, 165,
148618
+ /* 1430 */ 118, 118, 118, 189, 198, 1434, 1432, 78, 81, 163,
148619
+ /* 1440 */ 82, 392, 439, 1392, 173, 105, 527, 35, 4, 157,
148576148620
/* 1450 */ 1312, 116, 116, 116, 116, 115, 115, 114, 114, 114,
148577
- /* 1460 */ 113, 415, 530, 93, 35, 431, 432, 1304, 168, 463,
148621
+ /* 1460 */ 113, 415, 530, 165, 93, 1304, 431, 432, 168, 463,
148578148622
/* 1470 */ 221, 116, 116, 116, 116, 115, 115, 114, 114, 114,
148579
- /* 1480 */ 113, 415, 169, 170, 171, 416, 372, 438, 1318, 177,
148580
- /* 1490 */ 452, 374, 36, 225, 1381, 87, 458, 524, 257, 1403,
148581
- /* 1500 */ 316, 105, 527, 227, 4, 182, 461, 160, 320, 228,
148582
- /* 1510 */ 377, 1175, 229, 476, 405, 1227, 1226, 1225, 530, 827,
148583
- /* 1520 */ 961, 1218, 378, 1199, 1198, 407, 103, 103, 281, 1217,
148584
- /* 1530 */ 8, 332, 1197, 104, 1502, 416, 537, 536, 282, 487,
148585
- /* 1540 */ 951, 416, 490, 496, 1268, 92, 341, 243, 244, 1461,
148586
- /* 1550 */ 1269, 1267, 122, 524, 1266, 515, 10, 288, 526, 343,
148587
- /* 1560 */ 352, 1460, 354, 99, 504, 94, 499, 251, 1181, 503,
148588
- /* 1570 */ 194, 951, 951, 953, 954, 27, 961, 1250, 345, 347,
148589
- /* 1580 */ 1249, 358, 103, 103, 359, 34, 538, 1110, 1367, 104,
148590
- /* 1590 */ 255, 416, 537, 536, 539, 1170, 951, 286, 252, 254,
148591
- /* 1600 */ 149, 1165, 1419, 135, 1420, 785, 279, 1418, 417, 1417,
148592
- /* 1610 */ 1195, 196, 150, 290, 210, 269, 151, 1021, 133, 1194,
148593
- /* 1620 */ 1019, 935, 162, 386, 387, 77, 1192, 951, 951, 953,
148623
+ /* 1480 */ 113, 415, 169, 452, 170, 416, 171, 374, 372, 438,
148624
+ /* 1490 */ 36, 1318, 177, 225, 1381, 87, 458, 524, 1403, 316,
148625
+ /* 1500 */ 257, 105, 527, 227, 4, 182, 461, 160, 320, 228,
148626
+ /* 1510 */ 377, 1175, 476, 229, 1227, 1226, 405, 1225, 530, 1218,
148627
+ /* 1520 */ 961, 378, 1199, 1198, 827, 332, 103, 103, 1197, 407,
148628
+ /* 1530 */ 8, 1217, 1502, 104, 487, 416, 537, 536, 281, 282,
148629
+ /* 1540 */ 951, 416, 490, 1268, 496, 92, 341, 243, 1269, 343,
148630
+ /* 1550 */ 244, 1267, 122, 524, 345, 1461, 515, 288, 526, 10,
148631
+ /* 1560 */ 354, 1266, 1460, 352, 504, 1250, 99, 1367, 94, 503,
148632
+ /* 1570 */ 499, 951, 951, 953, 954, 27, 961, 347, 1249, 194,
148633
+ /* 1580 */ 251, 358, 103, 103, 359, 1181, 34, 538, 1110, 104,
148634
+ /* 1590 */ 255, 416, 537, 536, 286, 252, 951, 254, 539, 149,
148635
+ /* 1600 */ 1170, 1419, 1165, 1420, 1418, 150, 1417, 135, 279, 785,
148636
+ /* 1610 */ 151, 417, 1195, 196, 290, 210, 386, 1194, 269, 387,
148637
+ /* 1620 */ 162, 1021, 133, 77, 1192, 1019, 935, 951, 951, 953,
148594148638
/* 1630 */ 954, 27, 1479, 1104, 418, 164, 153, 268, 217, 166,
148595148639
/* 1640 */ 859, 306, 366, 366, 365, 253, 363, 220, 1035, 798,
148596
- /* 1650 */ 172, 939, 105, 527, 155, 4, 394, 174, 396, 83,
148597
- /* 1660 */ 84, 85, 213, 86, 294, 1038, 156, 223, 222, 530,
148598
- /* 1670 */ 1034, 144, 293, 18, 224, 241, 315, 1027, 1145, 178,
148599
- /* 1680 */ 457, 226, 37, 179, 800, 334, 462, 230, 328, 466,
148640
+ /* 1650 */ 172, 939, 105, 527, 155, 4, 394, 174, 396, 156,
148641
+ /* 1660 */ 83, 1038, 213, 84, 294, 85, 86, 223, 222, 530,
148642
+ /* 1670 */ 1034, 144, 293, 18, 224, 315, 241, 1027, 1145, 178,
148643
+ /* 1680 */ 457, 226, 179, 37, 800, 334, 462, 230, 328, 466,
148600148644
/* 1690 */ 180, 471, 416, 88, 19, 20, 89, 280, 838, 158,
148601
- /* 1700 */ 191, 478, 215, 1097, 524, 90, 204, 192, 987, 91,
148645
+ /* 1700 */ 191, 90, 215, 478, 524, 1097, 204, 192, 987, 91,
148602148646
/* 1710 */ 152, 1070, 39, 154, 1071, 504, 486, 40, 489, 205,
148603148647
/* 1720 */ 505, 260, 105, 527, 214, 4, 908, 961, 262, 183,
148604148648
/* 1730 */ 240, 21, 903, 103, 103, 107, 22, 1086, 23, 530,
148605
- /* 1740 */ 104, 1074, 416, 537, 536, 24, 1088, 951, 25, 1093,
148649
+ /* 1740 */ 104, 1088, 416, 537, 536, 24, 1093, 951, 25, 1074,
148606148650
/* 1750 */ 1090, 1094, 7, 33, 511, 186, 26, 1002, 385, 95,
148607148651
/* 1760 */ 988, 986, 416, 288, 526, 990, 1044, 246, 1043, 247,
148608148652
/* 1770 */ 991, 28, 41, 106, 524, 956, 810, 29, 951, 951,
148609
- /* 1780 */ 953, 954, 27, 531, 869, 504, 423, 248, 249, 1495,
148610
- /* 1790 */ 503, 1494, 361, 364, 1105, 1161, 1161, 961, 1161, 1161,
148653
+ /* 1780 */ 953, 954, 27, 531, 361, 504, 423, 248, 869, 249,
148654
+ /* 1790 */ 503, 1495, 364, 1105, 1161, 1494, 1161, 961, 1161, 1161,
148611148655
/* 1800 */ 1161, 1161, 1161, 103, 103, 1161, 1161, 1161, 1161, 1161,
148612148656
/* 1810 */ 104, 1161, 416, 537, 536, 1104, 418, 951, 1161, 268,
148613148657
/* 1820 */ 1161, 1161, 1161, 1161, 366, 366, 365, 253, 363, 1161,
148614148658
/* 1830 */ 1161, 798, 1161, 1161, 1161, 1161, 105, 527, 1161, 4,
148615148659
/* 1840 */ 1161, 1161, 1161, 1161, 213, 1161, 294, 1161, 951, 951,
@@ -148643,330 +148687,331 @@
148643148687
/* 2120 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
148644148688
/* 2130 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
148645148689
/* 2140 */ 1161, 423,
148646148690
};
148647148691
static const YYCODETYPE yy_lookahead[] = {
148648
- /* 0 */ 172, 242, 243, 244, 167, 167, 167, 186, 159, 160,
148649
- /* 10 */ 161, 162, 163, 164, 167, 191, 187, 179, 169, 19,
148650
- /* 20 */ 171, 162, 263, 164, 195, 188, 189, 178, 169, 178,
148651
- /* 30 */ 171, 31, 188, 167, 22, 188, 189, 178, 24, 39,
148652
- /* 40 */ 242, 243, 244, 43, 44, 45, 46, 47, 48, 49,
148653
- /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 191, 210,
148654
- /* 60 */ 211, 210, 211, 242, 243, 244, 242, 243, 244, 210,
148655
- /* 70 */ 211, 59, 223, 59, 223, 22, 237, 249, 227, 228,
148656
- /* 80 */ 188, 253, 223, 246, 188, 236, 54, 55, 56, 57,
148657
- /* 90 */ 58, 167, 167, 206, 207, 236, 96, 97, 98, 99,
148658
- /* 100 */ 100, 101, 102, 103, 104, 105, 106, 210, 211, 242,
148659
- /* 110 */ 243, 244, 59, 188, 189, 266, 19, 251, 201, 59,
148660
- /* 120 */ 223, 109, 110, 111, 110, 266, 279, 280, 96, 97,
148692
+ /* 0 */ 184, 184, 259, 260, 261, 259, 260, 261, 176, 177,
148693
+ /* 10 */ 178, 179, 180, 181, 184, 208, 212, 213, 186, 19,
148694
+ /* 20 */ 188, 205, 206, 280, 205, 221, 22, 195, 24, 195,
148695
+ /* 30 */ 208, 31, 195, 205, 29, 205, 206, 255, 33, 39,
148696
+ /* 40 */ 200, 201, 202, 43, 44, 45, 46, 47, 48, 49,
148697
+ /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 205, 227,
148698
+ /* 60 */ 228, 227, 228, 59, 227, 228, 259, 260, 261, 252,
148699
+ /* 70 */ 65, 241, 240, 184, 240, 223, 224, 240, 244, 245,
148700
+ /* 80 */ 250, 259, 260, 261, 19, 253, 54, 55, 56, 57,
148701
+ /* 90 */ 58, 184, 255, 184, 205, 206, 96, 97, 98, 99,
148702
+ /* 100 */ 100, 101, 102, 103, 104, 105, 106, 46, 47, 48,
148703
+ /* 110 */ 49, 46, 296, 297, 110, 283, 19, 96, 97, 98,
148704
+ /* 120 */ 99, 100, 101, 102, 103, 104, 105, 106, 96, 97,
148661148705
/* 130 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 94,
148662148706
/* 140 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
148663
- /* 150 */ 53, 54, 55, 56, 57, 110, 195, 196, 59, 114,
148664
- /* 160 */ 100, 101, 109, 110, 111, 204, 167, 128, 108, 109,
148665
- /* 170 */ 110, 111, 133, 113, 73, 102, 103, 104, 105, 106,
148666
- /* 180 */ 83, 121, 85, 54, 55, 56, 57, 188, 189, 26,
148707
+ /* 150 */ 53, 54, 55, 56, 57, 110, 106, 73, 251, 114,
148708
+ /* 160 */ 73, 178, 179, 180, 181, 59, 184, 292, 81, 186,
148709
+ /* 170 */ 295, 188, 218, 108, 19, 114, 184, 11, 195, 184,
148710
+ /* 180 */ 83, 184, 85, 54, 55, 56, 57, 205, 206, 124,
148667148711
/* 190 */ 145, 146, 147, 96, 97, 98, 99, 100, 101, 102,
148668
- /* 200 */ 103, 104, 105, 106, 279, 145, 281, 147, 109, 110,
148669
- /* 210 */ 111, 112, 106, 19, 115, 116, 117, 100, 101, 167,
148670
- /* 220 */ 26, 120, 121, 122, 125, 96, 97, 98, 99, 100,
148671
- /* 230 */ 101, 102, 103, 104, 105, 106, 81, 43, 44, 45,
148712
+ /* 200 */ 103, 104, 105, 106, 120, 121, 122, 120, 102, 81,
148713
+ /* 210 */ 227, 228, 220, 19, 16, 109, 110, 111, 131, 132,
148714
+ /* 220 */ 26, 184, 184, 240, 229, 96, 97, 98, 99, 100,
148715
+ /* 230 */ 101, 102, 103, 104, 105, 106, 253, 43, 44, 45,
148672148716
/* 240 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148673
- /* 250 */ 56, 57, 100, 101, 102, 103, 104, 105, 106, 183,
148674
- /* 260 */ 184, 185, 145, 69, 147, 96, 97, 98, 99, 100,
148675
- /* 270 */ 101, 102, 103, 104, 105, 106, 73, 167, 279, 280,
148676
- /* 280 */ 167, 22, 23, 19, 81, 26, 131, 132, 59, 237,
148717
+ /* 250 */ 56, 57, 100, 101, 102, 103, 104, 105, 106, 131,
148718
+ /* 260 */ 132, 106, 127, 69, 129, 130, 283, 112, 113, 114,
148719
+ /* 270 */ 115, 116, 117, 118, 81, 77, 76, 79, 296, 124,
148720
+ /* 280 */ 298, 203, 184, 19, 84, 59, 86, 121, 122, 89,
148677148721
/* 290 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148678
- /* 300 */ 106, 188, 189, 19, 167, 142, 167, 43, 44, 45,
148722
+ /* 300 */ 106, 184, 35, 205, 206, 22, 113, 43, 44, 45,
148679148723
/* 310 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148680
- /* 320 */ 56, 57, 212, 120, 112, 188, 189, 115, 116, 117,
148681
- /* 330 */ 238, 67, 22, 23, 131, 132, 22, 125, 109, 110,
148682
- /* 340 */ 111, 167, 161, 162, 163, 164, 46, 47, 48, 49,
148683
- /* 350 */ 169, 19, 171, 167, 95, 127, 24, 129, 130, 178,
148724
+ /* 320 */ 56, 57, 205, 206, 131, 132, 100, 101, 291, 292,
148725
+ /* 330 */ 114, 67, 295, 66, 108, 109, 110, 111, 138, 113,
148726
+ /* 340 */ 124, 74, 59, 179, 184, 181, 184, 121, 22, 271,
148727
+ /* 350 */ 186, 19, 188, 184, 276, 59, 24, 184, 241, 195,
148684148728
/* 360 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148685
- /* 370 */ 106, 59, 143, 59, 167, 43, 44, 45, 46, 47,
148729
+ /* 370 */ 106, 145, 59, 147, 184, 43, 44, 45, 46, 47,
148686148730
/* 380 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
148687
- /* 390 */ 106, 210, 211, 26, 167, 209, 112, 113, 114, 115,
148688
- /* 400 */ 116, 117, 118, 167, 223, 95, 94, 167, 124, 235,
148689
- /* 410 */ 178, 272, 273, 167, 114, 188, 189, 236, 183, 184,
148690
- /* 420 */ 185, 109, 110, 109, 110, 111, 114, 167, 96, 97,
148691
- /* 430 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 59,
148692
- /* 440 */ 167, 167, 210, 211, 59, 209, 167, 266, 19, 209,
148693
- /* 450 */ 59, 224, 23, 211, 16, 223, 76, 145, 146, 147,
148694
- /* 460 */ 233, 188, 189, 72, 84, 223, 86, 188, 189, 89,
148695
- /* 470 */ 238, 167, 43, 44, 45, 46, 47, 48, 49, 50,
148696
- /* 480 */ 51, 52, 53, 54, 55, 56, 57, 102, 167, 109,
148697
- /* 490 */ 110, 111, 188, 189, 109, 110, 111, 224, 131, 132,
148698
- /* 500 */ 109, 110, 111, 224, 264, 19, 233, 105, 106, 188,
148699
- /* 510 */ 189, 237, 233, 35, 167, 77, 167, 79, 138, 22,
148700
- /* 520 */ 274, 275, 22, 202, 278, 96, 97, 98, 99, 100,
148701
- /* 530 */ 101, 102, 103, 104, 105, 106, 275, 188, 189, 278,
148702
- /* 540 */ 167, 11, 59, 167, 66, 19, 167, 121, 122, 23,
148703
- /* 550 */ 76, 202, 74, 167, 178, 72, 59, 178, 84, 59,
148704
- /* 560 */ 86, 188, 189, 89, 188, 189, 59, 188, 189, 43,
148731
+ /* 390 */ 123, 227, 228, 110, 296, 297, 22, 23, 184, 102,
148732
+ /* 400 */ 103, 104, 105, 106, 240, 109, 110, 111, 112, 195,
148733
+ /* 410 */ 204, 115, 116, 117, 22, 184, 226, 253, 212, 205,
148734
+ /* 420 */ 206, 125, 109, 110, 111, 22, 100, 101, 96, 97,
148735
+ /* 430 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 184,
148736
+ /* 440 */ 59, 227, 228, 121, 122, 59, 277, 283, 19, 289,
148737
+ /* 450 */ 290, 59, 23, 76, 240, 241, 143, 76, 72, 189,
148738
+ /* 460 */ 205, 206, 59, 86, 250, 84, 89, 86, 203, 95,
148739
+ /* 470 */ 89, 281, 43, 44, 45, 46, 47, 48, 49, 50,
148740
+ /* 480 */ 51, 52, 53, 54, 55, 56, 57, 227, 228, 184,
148741
+ /* 490 */ 109, 110, 111, 12, 184, 109, 110, 111, 184, 184,
148742
+ /* 500 */ 240, 109, 110, 111, 184, 195, 214, 59, 27, 184,
148743
+ /* 510 */ 205, 206, 109, 110, 111, 205, 206, 184, 263, 138,
148744
+ /* 520 */ 205, 206, 184, 42, 22, 96, 97, 98, 99, 100,
148745
+ /* 530 */ 101, 102, 103, 104, 105, 106, 266, 227, 228, 59,
148746
+ /* 540 */ 270, 276, 94, 66, 63, 19, 241, 22, 26, 23,
148747
+ /* 550 */ 240, 241, 72, 59, 73, 250, 241, 109, 110, 82,
148748
+ /* 560 */ 22, 59, 114, 223, 224, 250, 252, 59, 91, 43,
148705148749
/* 570 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148706
- /* 580 */ 54, 55, 56, 57, 26, 167, 210, 211, 59, 210,
148707
- /* 590 */ 211, 153, 109, 110, 111, 109, 22, 224, 167, 223,
148708
- /* 600 */ 224, 123, 223, 224, 21, 215, 109, 110, 111, 233,
148709
- /* 610 */ 110, 167, 138, 186, 167, 225, 109, 110, 111, 188,
148710
- /* 620 */ 189, 203, 96, 97, 98, 99, 100, 101, 102, 103,
148711
- /* 630 */ 104, 105, 106, 59, 76, 188, 189, 167, 109, 110,
148712
- /* 640 */ 111, 59, 19, 136, 86, 197, 23, 89, 167, 202,
148713
- /* 650 */ 81, 121, 122, 269, 270, 224, 212, 178, 188, 189,
148714
- /* 660 */ 274, 275, 167, 80, 278, 136, 43, 44, 45, 46,
148750
+ /* 580 */ 54, 55, 56, 57, 59, 184, 26, 59, 268, 109,
148751
+ /* 590 */ 110, 111, 184, 145, 146, 147, 112, 59, 203, 115,
148752
+ /* 600 */ 116, 117, 277, 109, 110, 111, 205, 206, 195, 125,
148753
+ /* 610 */ 277, 109, 110, 111, 100, 101, 139, 109, 110, 111,
148754
+ /* 620 */ 219, 184, 96, 97, 98, 99, 100, 101, 102, 103,
148755
+ /* 630 */ 104, 105, 106, 111, 109, 110, 111, 109, 110, 111,
148756
+ /* 640 */ 227, 228, 19, 184, 136, 184, 23, 109, 110, 111,
148757
+ /* 650 */ 200, 201, 202, 240, 259, 260, 261, 195, 136, 145,
148758
+ /* 660 */ 184, 147, 184, 184, 136, 214, 43, 44, 45, 46,
148715148759
/* 670 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
148716
- /* 680 */ 57, 12, 113, 109, 110, 111, 259, 167, 186, 210,
148717
- /* 690 */ 211, 109, 110, 111, 224, 167, 27, 210, 211, 116,
148718
- /* 700 */ 131, 132, 223, 7, 8, 9, 167, 212, 188, 189,
148719
- /* 710 */ 223, 42, 167, 167, 178, 234, 188, 189, 179, 96,
148760
+ /* 680 */ 57, 205, 206, 205, 206, 227, 228, 184, 229, 227,
148761
+ /* 690 */ 228, 131, 132, 184, 59, 219, 184, 219, 240, 291,
148762
+ /* 700 */ 292, 184, 240, 295, 105, 106, 22, 23, 205, 206,
148763
+ /* 710 */ 26, 184, 251, 184, 205, 206, 184, 205, 206, 96,
148720148764
/* 720 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
148721
- /* 730 */ 202, 167, 63, 167, 188, 189, 153, 167, 199, 19,
148722
- /* 740 */ 201, 175, 73, 23, 224, 179, 210, 211, 202, 26,
148723
- /* 750 */ 197, 178, 188, 189, 178, 275, 254, 167, 278, 223,
148724
- /* 760 */ 167, 259, 167, 43, 44, 45, 46, 47, 48, 49,
148725
- /* 770 */ 50, 51, 52, 53, 54, 55, 56, 57, 188, 189,
148726
- /* 780 */ 235, 188, 189, 210, 211, 167, 210, 211, 224, 181,
148727
- /* 790 */ 182, 167, 202, 167, 76, 202, 223, 178, 22, 223,
148728
- /* 800 */ 24, 19, 22, 23, 86, 178, 26, 89, 184, 185,
148729
- /* 810 */ 184, 185, 178, 120, 121, 122, 96, 97, 98, 99,
148730
- /* 820 */ 100, 101, 102, 103, 104, 105, 106, 167, 46, 210,
148731
- /* 830 */ 211, 66, 167, 167, 111, 59, 19, 210, 211, 167,
148732
- /* 840 */ 23, 167, 223, 23, 210, 211, 26, 82, 188, 189,
148733
- /* 850 */ 223, 29, 234, 188, 189, 33, 91, 223, 167, 136,
148765
+ /* 730 */ 251, 219, 205, 206, 205, 206, 184, 205, 206, 19,
148766
+ /* 740 */ 184, 16, 184, 23, 241, 110, 219, 21, 219, 184,
148767
+ /* 750 */ 241, 219, 286, 287, 195, 184, 195, 205, 206, 201,
148768
+ /* 760 */ 202, 205, 206, 43, 44, 45, 46, 47, 48, 49,
148769
+ /* 770 */ 50, 51, 52, 53, 54, 55, 56, 57, 184, 95,
148770
+ /* 780 */ 22, 23, 184, 26, 26, 220, 227, 228, 227, 228,
148771
+ /* 790 */ 196, 184, 23, 241, 26, 26, 195, 241, 184, 240,
148772
+ /* 800 */ 12, 240, 77, 26, 79, 195, 80, 290, 201, 202,
148773
+ /* 810 */ 216, 184, 218, 195, 184, 27, 96, 97, 98, 99,
148774
+ /* 820 */ 100, 101, 102, 103, 104, 105, 106, 269, 227, 228,
148775
+ /* 830 */ 42, 184, 205, 206, 184, 184, 19, 227, 228, 192,
148776
+ /* 840 */ 23, 240, 116, 196, 76, 227, 228, 120, 121, 122,
148777
+ /* 850 */ 240, 63, 254, 95, 86, 205, 206, 89, 240, 184,
148734148778
/* 860 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
148735
- /* 870 */ 53, 54, 55, 56, 57, 95, 252, 12, 252, 188,
148736
- /* 880 */ 189, 167, 22, 23, 206, 207, 110, 65, 167, 16,
148737
- /* 890 */ 108, 167, 27, 120, 121, 122, 167, 167, 167, 167,
148738
- /* 900 */ 234, 167, 188, 189, 139, 167, 124, 42, 167, 188,
148739
- /* 910 */ 189, 167, 102, 96, 97, 98, 99, 100, 101, 102,
148740
- /* 920 */ 103, 104, 105, 106, 167, 167, 138, 167, 63, 188,
148741
- /* 930 */ 189, 111, 260, 19, 260, 167, 167, 23, 128, 209,
148742
- /* 940 */ 209, 209, 275, 133, 156, 278, 188, 189, 188, 189,
148743
- /* 950 */ 77, 167, 79, 19, 167, 95, 136, 43, 44, 45,
148779
+ /* 870 */ 53, 54, 55, 56, 57, 184, 269, 184, 153, 153,
148780
+ /* 880 */ 111, 184, 7, 8, 9, 184, 138, 184, 184, 196,
148781
+ /* 890 */ 184, 120, 121, 122, 184, 138, 205, 206, 184, 102,
148782
+ /* 900 */ 184, 184, 205, 206, 156, 136, 205, 206, 205, 206,
148783
+ /* 910 */ 198, 199, 135, 96, 97, 98, 99, 100, 101, 102,
148784
+ /* 920 */ 103, 104, 105, 106, 184, 128, 184, 184, 184, 254,
148785
+ /* 930 */ 133, 184, 237, 19, 239, 229, 226, 23, 292, 184,
148786
+ /* 940 */ 226, 295, 226, 226, 184, 205, 206, 205, 206, 205,
148787
+ /* 950 */ 206, 184, 292, 19, 184, 295, 252, 43, 44, 45,
148744148788
/* 960 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148745
- /* 970 */ 56, 57, 188, 189, 167, 188, 189, 43, 44, 45,
148789
+ /* 970 */ 56, 57, 205, 206, 184, 205, 206, 43, 44, 45,
148746148790
/* 980 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148747
- /* 990 */ 56, 57, 235, 167, 260, 188, 189, 167, 157, 158,
148748
- /* 1000 */ 167, 26, 273, 167, 235, 167, 59, 26, 241, 46,
148791
+ /* 990 */ 56, 57, 157, 158, 26, 205, 206, 254, 26, 252,
148792
+ /* 1000 */ 184, 15, 184, 184, 184, 292, 184, 252, 295, 24,
148749148793
/* 1010 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148750
- /* 1020 */ 106, 188, 189, 22, 188, 189, 188, 189, 167, 203,
148794
+ /* 1020 */ 106, 205, 206, 205, 206, 205, 206, 205, 206, 184,
148751148795
/* 1030 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148752
- /* 1040 */ 106, 167, 212, 167, 277, 167, 167, 167, 23, 188,
148753
- /* 1050 */ 189, 26, 275, 241, 167, 278, 167, 110, 167, 220,
148754
- /* 1060 */ 167, 222, 188, 189, 188, 189, 188, 189, 188, 189,
148755
- /* 1070 */ 167, 108, 167, 167, 167, 188, 189, 188, 189, 188,
148756
- /* 1080 */ 189, 188, 189, 167, 275, 151, 167, 278, 167, 277,
148757
- /* 1090 */ 167, 188, 189, 188, 189, 188, 189, 167, 31, 167,
148758
- /* 1100 */ 119, 100, 101, 181, 182, 19, 39, 188, 189, 188,
148759
- /* 1110 */ 189, 188, 189, 138, 235, 131, 132, 24, 188, 189,
148760
- /* 1120 */ 188, 189, 267, 268, 167, 19, 167, 227, 228, 43,
148796
+ /* 1040 */ 106, 184, 184, 184, 59, 184, 60, 184, 229, 184,
148797
+ /* 1050 */ 205, 206, 184, 258, 184, 19, 184, 19, 184, 246,
148798
+ /* 1060 */ 184, 258, 205, 206, 205, 206, 205, 206, 205, 206,
148799
+ /* 1070 */ 205, 206, 184, 205, 206, 205, 206, 205, 206, 205,
148800
+ /* 1080 */ 206, 205, 206, 292, 226, 151, 295, 184, 228, 294,
148801
+ /* 1090 */ 184, 119, 184, 205, 206, 110, 150, 294, 152, 184,
148802
+ /* 1100 */ 240, 184, 22, 23, 23, 19, 184, 26, 205, 206,
148803
+ /* 1110 */ 142, 205, 206, 205, 206, 184, 198, 199, 131, 132,
148804
+ /* 1120 */ 205, 206, 205, 206, 22, 19, 24, 205, 206, 43,
148761148805
/* 1130 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148762
- /* 1140 */ 54, 55, 56, 57, 167, 188, 189, 188, 189, 43,
148806
+ /* 1140 */ 54, 55, 56, 57, 184, 109, 184, 109, 184, 43,
148763148807
/* 1150 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148764
- /* 1160 */ 54, 55, 56, 57, 19, 188, 189, 150, 197, 152,
148765
- /* 1170 */ 26, 15, 22, 167, 24, 122, 23, 23, 167, 26,
148766
- /* 1180 */ 26, 167, 96, 97, 98, 99, 100, 101, 102, 103,
148767
- /* 1190 */ 104, 105, 106, 167, 188, 189, 167, 144, 167, 188,
148768
- /* 1200 */ 189, 167, 96, 97, 98, 99, 100, 101, 102, 103,
148769
- /* 1210 */ 104, 105, 106, 167, 188, 189, 60, 188, 189, 188,
148770
- /* 1220 */ 189, 22, 188, 189, 167, 22, 167, 134, 167, 23,
148771
- /* 1230 */ 23, 167, 26, 26, 188, 189, 23, 151, 23, 26,
148772
- /* 1240 */ 23, 26, 145, 26, 147, 188, 189, 188, 189, 188,
148773
- /* 1250 */ 189, 114, 53, 23, 109, 22, 26, 19, 167, 113,
148774
- /* 1260 */ 114, 124, 24, 23, 61, 167, 26, 59, 7, 8,
148775
- /* 1270 */ 59, 23, 23, 59, 26, 26, 145, 19, 147, 135,
148776
- /* 1280 */ 167, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148777
- /* 1290 */ 52, 53, 54, 55, 56, 57, 23, 167, 229, 26,
148778
- /* 1300 */ 167, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148779
- /* 1310 */ 52, 53, 54, 55, 56, 57, 23, 207, 110, 26,
148780
- /* 1320 */ 226, 110, 167, 283, 110, 167, 167, 167, 167, 167,
148781
- /* 1330 */ 167, 167, 167, 167, 96, 97, 98, 99, 100, 101,
148782
- /* 1340 */ 102, 103, 104, 105, 106, 167, 167, 167, 167, 167,
148783
- /* 1350 */ 167, 167, 167, 167, 96, 97, 98, 99, 100, 101,
148784
- /* 1360 */ 102, 103, 104, 105, 106, 167, 255, 134, 167, 167,
148785
- /* 1370 */ 256, 167, 167, 226, 19, 226, 167, 226, 226, 186,
148786
- /* 1380 */ 213, 165, 214, 265, 261, 261, 217, 230, 217, 217,
148787
- /* 1390 */ 200, 196, 192, 220, 19, 220, 248, 170, 60, 44,
148808
+ /* 1160 */ 54, 55, 56, 57, 46, 205, 206, 205, 206, 205,
148809
+ /* 1170 */ 206, 232, 184, 184, 184, 95, 184, 284, 285, 244,
148810
+ /* 1180 */ 245, 242, 96, 97, 98, 99, 100, 101, 102, 103,
148811
+ /* 1190 */ 104, 105, 106, 205, 206, 205, 206, 205, 206, 184,
148812
+ /* 1200 */ 22, 184, 96, 97, 98, 99, 100, 101, 102, 103,
148813
+ /* 1210 */ 104, 105, 106, 184, 24, 23, 184, 184, 26, 184,
148814
+ /* 1220 */ 205, 206, 205, 206, 184, 31, 108, 128, 22, 122,
148815
+ /* 1230 */ 184, 53, 133, 39, 205, 206, 22, 151, 205, 206,
148816
+ /* 1240 */ 205, 206, 113, 114, 23, 205, 206, 26, 59, 23,
148817
+ /* 1250 */ 23, 144, 26, 26, 184, 23, 23, 19, 26, 26,
148818
+ /* 1260 */ 7, 8, 24, 23, 214, 23, 26, 61, 26, 59,
148819
+ /* 1270 */ 23, 23, 23, 26, 26, 26, 145, 19, 147, 59,
148820
+ /* 1280 */ 184, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148821
+ /* 1290 */ 52, 53, 54, 55, 56, 57, 145, 23, 147, 110,
148822
+ /* 1300 */ 26, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148823
+ /* 1310 */ 52, 53, 54, 55, 56, 57, 23, 184, 184, 26,
148824
+ /* 1320 */ 110, 184, 184, 184, 134, 184, 184, 184, 184, 184,
148825
+ /* 1330 */ 110, 184, 184, 184, 96, 97, 98, 99, 100, 101,
148826
+ /* 1340 */ 102, 103, 104, 105, 106, 184, 184, 184, 134, 300,
148827
+ /* 1350 */ 184, 243, 184, 184, 96, 97, 98, 99, 100, 101,
148828
+ /* 1360 */ 102, 103, 104, 105, 106, 184, 184, 184, 184, 184,
148829
+ /* 1370 */ 224, 184, 282, 273, 19, 272, 203, 182, 243, 243,
148830
+ /* 1380 */ 230, 209, 278, 243, 231, 208, 265, 278, 234, 234,
148831
+ /* 1390 */ 234, 217, 213, 60, 19, 243, 208, 237, 233, 44,
148788148832
/* 1400 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
148789
- /* 1410 */ 55, 56, 57, 191, 191, 191, 134, 230, 230, 174,
148833
+ /* 1410 */ 55, 56, 57, 208, 247, 187, 134, 247, 247, 38,
148790148834
/* 1420 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
148791
- /* 1430 */ 55, 56, 57, 214, 216, 265, 174, 38, 262, 262,
148792
- /* 1440 */ 174, 143, 251, 108, 22, 19, 20, 43, 22, 205,
148793
- /* 1450 */ 240, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148794
- /* 1460 */ 105, 106, 36, 142, 239, 18, 174, 217, 208, 18,
148795
- /* 1470 */ 173, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148796
- /* 1480 */ 105, 106, 208, 208, 208, 59, 217, 217, 205, 205,
148797
- /* 1490 */ 174, 240, 239, 173, 217, 150, 62, 71, 174, 258,
148798
- /* 1500 */ 257, 19, 20, 173, 22, 22, 193, 81, 174, 173,
148799
- /* 1510 */ 193, 174, 173, 108, 64, 190, 190, 190, 36, 119,
148800
- /* 1520 */ 94, 198, 193, 190, 192, 106, 100, 101, 250, 198,
148801
- /* 1530 */ 48, 190, 190, 107, 190, 109, 110, 111, 250, 193,
148802
- /* 1540 */ 114, 59, 193, 137, 232, 108, 231, 174, 88, 282,
148803
- /* 1550 */ 232, 232, 141, 71, 232, 138, 22, 131, 132, 231,
148804
- /* 1560 */ 220, 282, 174, 150, 82, 140, 139, 25, 177, 87,
148805
- /* 1570 */ 219, 145, 146, 147, 148, 149, 94, 221, 231, 231,
148806
- /* 1580 */ 221, 218, 100, 101, 217, 26, 176, 13, 245, 107,
148807
- /* 1590 */ 6, 109, 110, 111, 166, 166, 114, 247, 168, 168,
148808
- /* 1600 */ 180, 166, 186, 194, 186, 4, 194, 186, 3, 186,
148809
- /* 1610 */ 186, 22, 180, 155, 15, 93, 180, 23, 16, 186,
148810
- /* 1620 */ 23, 132, 268, 271, 271, 186, 186, 145, 146, 147,
148835
+ /* 1430 */ 55, 56, 57, 237, 231, 191, 191, 279, 279, 282,
148836
+ /* 1440 */ 143, 191, 108, 268, 22, 19, 20, 256, 22, 43,
148837
+ /* 1450 */ 257, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148838
+ /* 1460 */ 105, 106, 36, 222, 142, 234, 18, 191, 225, 18,
148839
+ /* 1470 */ 190, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148840
+ /* 1480 */ 105, 106, 225, 191, 225, 59, 225, 257, 234, 234,
148841
+ /* 1490 */ 256, 222, 222, 190, 234, 150, 62, 71, 275, 274,
148842
+ /* 1500 */ 191, 19, 20, 190, 22, 22, 210, 81, 191, 190,
148843
+ /* 1510 */ 210, 191, 108, 190, 207, 207, 64, 207, 36, 215,
148844
+ /* 1520 */ 94, 210, 207, 209, 119, 207, 100, 101, 207, 106,
148845
+ /* 1530 */ 48, 215, 207, 107, 210, 109, 110, 111, 267, 267,
148846
+ /* 1540 */ 114, 59, 210, 249, 137, 108, 248, 191, 249, 248,
148847
+ /* 1550 */ 88, 249, 141, 71, 248, 299, 138, 131, 132, 22,
148848
+ /* 1560 */ 191, 249, 299, 237, 82, 238, 150, 262, 140, 87,
148849
+ /* 1570 */ 139, 145, 146, 147, 148, 149, 94, 248, 238, 236,
148850
+ /* 1580 */ 25, 235, 100, 101, 234, 194, 26, 193, 13, 107,
148851
+ /* 1590 */ 6, 109, 110, 111, 264, 185, 114, 185, 183, 197,
148852
+ /* 1600 */ 183, 203, 183, 203, 203, 197, 203, 211, 211, 4,
148853
+ /* 1610 */ 197, 3, 203, 22, 155, 15, 288, 203, 93, 288,
148854
+ /* 1620 */ 285, 23, 16, 203, 203, 23, 132, 145, 146, 147,
148811148855
/* 1630 */ 148, 149, 0, 1, 2, 143, 123, 5, 24, 135,
148812148856
/* 1640 */ 20, 16, 10, 11, 12, 13, 14, 137, 1, 17,
148813
- /* 1650 */ 135, 144, 19, 20, 123, 22, 61, 143, 37, 53,
148814
- /* 1660 */ 53, 53, 30, 53, 32, 109, 123, 134, 34, 36,
148815
- /* 1670 */ 1, 5, 40, 22, 108, 26, 153, 68, 75, 68,
148816
- /* 1680 */ 41, 134, 24, 108, 20, 124, 19, 118, 23, 67,
148857
+ /* 1650 */ 135, 144, 19, 20, 123, 22, 61, 143, 37, 123,
148858
+ /* 1660 */ 53, 109, 30, 53, 32, 53, 53, 134, 34, 36,
148859
+ /* 1670 */ 1, 5, 40, 22, 108, 153, 26, 68, 75, 68,
148860
+ /* 1680 */ 41, 134, 108, 24, 20, 124, 19, 118, 23, 67,
148817148861
/* 1690 */ 22, 67, 59, 22, 22, 22, 22, 67, 28, 37,
148818
- /* 1700 */ 23, 22, 70, 23, 71, 142, 157, 23, 23, 26,
148862
+ /* 1700 */ 23, 142, 70, 22, 71, 23, 157, 23, 23, 26,
148819148863
/* 1710 */ 78, 23, 22, 81, 23, 82, 24, 22, 24, 134,
148820148864
/* 1720 */ 87, 23, 19, 20, 92, 22, 109, 94, 23, 22,
148821148865
/* 1730 */ 34, 34, 136, 100, 101, 26, 34, 85, 34, 36,
148822
- /* 1740 */ 107, 23, 109, 110, 111, 34, 83, 114, 34, 90,
148866
+ /* 1740 */ 107, 83, 109, 110, 111, 34, 90, 114, 34, 23,
148823148867
/* 1750 */ 75, 75, 44, 22, 24, 26, 34, 23, 126, 26,
148824148868
/* 1760 */ 23, 23, 59, 131, 132, 23, 23, 26, 23, 22,
148825148869
/* 1770 */ 11, 22, 22, 22, 71, 23, 23, 22, 145, 146,
148826
- /* 1780 */ 147, 148, 149, 26, 128, 82, 154, 134, 134, 134,
148827
- /* 1790 */ 87, 134, 23, 15, 1, 284, 284, 94, 284, 284,
148828
- /* 1800 */ 284, 284, 284, 100, 101, 284, 284, 284, 284, 284,
148829
- /* 1810 */ 107, 284, 109, 110, 111, 1, 2, 114, 284, 5,
148830
- /* 1820 */ 284, 284, 284, 284, 10, 11, 12, 13, 14, 284,
148831
- /* 1830 */ 284, 17, 284, 284, 284, 284, 19, 20, 284, 22,
148832
- /* 1840 */ 284, 284, 284, 284, 30, 284, 32, 284, 145, 146,
148833
- /* 1850 */ 147, 148, 149, 36, 40, 284, 284, 284, 284, 284,
148834
- /* 1860 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148835
- /* 1870 */ 284, 284, 284, 284, 284, 284, 59, 284, 284, 284,
148836
- /* 1880 */ 284, 284, 284, 284, 70, 284, 284, 284, 71, 284,
148837
- /* 1890 */ 284, 284, 78, 284, 284, 81, 19, 20, 284, 22,
148838
- /* 1900 */ 284, 284, 284, 284, 284, 284, 92, 284, 284, 284,
148839
- /* 1910 */ 284, 94, 284, 36, 284, 284, 284, 100, 101, 102,
148840
- /* 1920 */ 284, 284, 284, 284, 107, 284, 109, 110, 111, 284,
148841
- /* 1930 */ 284, 114, 284, 284, 284, 284, 59, 284, 284, 284,
148842
- /* 1940 */ 126, 284, 284, 284, 284, 131, 132, 284, 71, 284,
148843
- /* 1950 */ 284, 284, 284, 284, 284, 284, 19, 20, 284, 22,
148844
- /* 1960 */ 284, 284, 145, 146, 147, 148, 149, 284, 154, 284,
148845
- /* 1970 */ 284, 94, 284, 36, 284, 284, 284, 100, 101, 284,
148846
- /* 1980 */ 284, 284, 284, 284, 107, 284, 109, 110, 111, 284,
148847
- /* 1990 */ 284, 114, 5, 284, 284, 284, 59, 10, 11, 12,
148848
- /* 2000 */ 13, 14, 284, 284, 17, 284, 284, 284, 71, 284,
148849
- /* 2010 */ 284, 284, 284, 284, 284, 284, 284, 30, 284, 32,
148850
- /* 2020 */ 284, 284, 145, 146, 147, 148, 149, 40, 284, 284,
148851
- /* 2030 */ 284, 94, 284, 284, 284, 284, 284, 100, 101, 284,
148852
- /* 2040 */ 284, 284, 284, 284, 107, 284, 109, 110, 111, 284,
148853
- /* 2050 */ 284, 114, 284, 284, 284, 284, 284, 70, 284, 284,
148854
- /* 2060 */ 284, 284, 284, 284, 284, 78, 284, 284, 81, 284,
148855
- /* 2070 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 92,
148856
- /* 2080 */ 284, 284, 145, 146, 147, 148, 149, 284, 284, 284,
148857
- /* 2090 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148858
- /* 2100 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148859
- /* 2110 */ 284, 284, 284, 126, 284, 284, 284, 284, 131, 132,
148860
- /* 2120 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148861
- /* 2130 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148862
- /* 2140 */ 284, 154, 284, 284, 284, 284, 284, 284, 284, 284,
148863
- /* 2150 */ 284, 284,
148870
+ /* 1780 */ 147, 148, 149, 26, 23, 82, 154, 134, 128, 134,
148871
+ /* 1790 */ 87, 134, 15, 1, 301, 134, 301, 94, 301, 301,
148872
+ /* 1800 */ 301, 301, 301, 100, 101, 301, 301, 301, 301, 301,
148873
+ /* 1810 */ 107, 301, 109, 110, 111, 1, 2, 114, 301, 5,
148874
+ /* 1820 */ 301, 301, 301, 301, 10, 11, 12, 13, 14, 301,
148875
+ /* 1830 */ 301, 17, 301, 301, 301, 301, 19, 20, 301, 22,
148876
+ /* 1840 */ 301, 301, 301, 301, 30, 301, 32, 301, 145, 146,
148877
+ /* 1850 */ 147, 148, 149, 36, 40, 301, 301, 301, 301, 301,
148878
+ /* 1860 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148879
+ /* 1870 */ 301, 301, 301, 301, 301, 301, 59, 301, 301, 301,
148880
+ /* 1880 */ 301, 301, 301, 301, 70, 301, 301, 301, 71, 301,
148881
+ /* 1890 */ 301, 301, 78, 301, 301, 81, 19, 20, 301, 22,
148882
+ /* 1900 */ 301, 301, 301, 301, 301, 301, 92, 301, 301, 301,
148883
+ /* 1910 */ 301, 94, 301, 36, 301, 301, 301, 100, 101, 102,
148884
+ /* 1920 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301,
148885
+ /* 1930 */ 301, 114, 301, 301, 301, 301, 59, 301, 301, 301,
148886
+ /* 1940 */ 126, 301, 301, 301, 301, 131, 132, 301, 71, 301,
148887
+ /* 1950 */ 301, 301, 301, 301, 301, 301, 19, 20, 301, 22,
148888
+ /* 1960 */ 301, 301, 145, 146, 147, 148, 149, 301, 154, 301,
148889
+ /* 1970 */ 301, 94, 301, 36, 301, 301, 301, 100, 101, 301,
148890
+ /* 1980 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301,
148891
+ /* 1990 */ 301, 114, 5, 301, 301, 301, 59, 10, 11, 12,
148892
+ /* 2000 */ 13, 14, 301, 301, 17, 301, 301, 301, 71, 301,
148893
+ /* 2010 */ 301, 301, 301, 301, 301, 301, 301, 30, 301, 32,
148894
+ /* 2020 */ 301, 301, 145, 146, 147, 148, 149, 40, 301, 301,
148895
+ /* 2030 */ 301, 94, 301, 301, 301, 301, 301, 100, 101, 301,
148896
+ /* 2040 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301,
148897
+ /* 2050 */ 301, 114, 301, 301, 301, 301, 301, 70, 301, 301,
148898
+ /* 2060 */ 301, 301, 301, 301, 301, 78, 301, 301, 81, 301,
148899
+ /* 2070 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 92,
148900
+ /* 2080 */ 301, 301, 145, 146, 147, 148, 149, 301, 301, 301,
148901
+ /* 2090 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148902
+ /* 2100 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148903
+ /* 2110 */ 301, 301, 301, 126, 301, 301, 301, 301, 131, 132,
148904
+ /* 2120 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148905
+ /* 2130 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148906
+ /* 2140 */ 301, 154, 301, 301, 301, 301, 301, 301, 301, 301,
148907
+ /* 2150 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148908
+ /* 2160 */ 301, 301, 301, 301, 301, 301, 301, 301, 301,
148864148909
};
148865148910
#define YY_SHIFT_COUNT (540)
148866148911
#define YY_SHIFT_MIN (0)
148867148912
#define YY_SHIFT_MAX (1987)
148868148913
static const unsigned short int yy_shift_ofst[] = {
148869
- /* 0 */ 1814, 1632, 1987, 1426, 1426, 155, 1482, 1633, 1703, 1877,
148870
- /* 10 */ 1877, 1877, 203, 0, 0, 264, 1106, 1877, 1877, 1877,
148914
+ /* 0 */ 1814, 1632, 1987, 1426, 1426, 128, 1482, 1633, 1703, 1877,
148915
+ /* 10 */ 1877, 1877, 87, 0, 0, 264, 1106, 1877, 1877, 1877,
148871148916
/* 20 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148872
- /* 30 */ 60, 60, 380, 380, 99, 569, 155, 155, 155, 155,
148873
- /* 40 */ 155, 155, 97, 194, 332, 429, 526, 623, 720, 817,
148917
+ /* 30 */ 226, 226, 381, 381, 296, 193, 128, 128, 128, 128,
148918
+ /* 40 */ 128, 128, 97, 194, 332, 429, 526, 623, 720, 817,
148874148919
/* 50 */ 914, 934, 1086, 1238, 1106, 1106, 1106, 1106, 1106, 1106,
148875148920
/* 60 */ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
148876148921
/* 70 */ 1106, 1106, 1258, 1106, 1355, 1375, 1375, 1817, 1877, 1877,
148877148922
/* 80 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148878148923
/* 90 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148879148924
/* 100 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148880148925
/* 110 */ 1937, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148881148926
/* 120 */ 1877, 1877, 1877, 1877, 32, 129, 129, 129, 129, 129,
148882
- /* 130 */ 169, 152, 73, 582, 583, 782, 582, 117, 117, 582,
148883
- /* 140 */ 367, 367, 367, 367, 426, 402, 106, 2142, 2142, 284,
148884
- /* 150 */ 284, 284, 229, 12, 391, 12, 12, 669, 669, 474,
148885
- /* 160 */ 483, 259, 780, 582, 582, 582, 582, 582, 582, 582,
148886
- /* 170 */ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
148887
- /* 180 */ 582, 582, 582, 582, 558, 558, 582, 530, 718, 718,
148888
- /* 190 */ 947, 841, 841, 947, 788, 984, 2142, 2142, 2142, 312,
148889
- /* 200 */ 45, 45, 53, 212, 314, 385, 497, 507, 529, 574,
148890
- /* 210 */ 582, 582, 582, 582, 582, 582, 582, 582, 582, 101,
148891
- /* 220 */ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
148892
- /* 230 */ 582, 582, 478, 478, 478, 582, 582, 582, 582, 820,
148893
- /* 240 */ 582, 582, 582, 776, 765, 582, 582, 865, 582, 582,
148894
- /* 250 */ 582, 582, 582, 582, 582, 582, 693, 822, 228, 14,
148895
- /* 260 */ 14, 14, 14, 723, 228, 228, 810, 1001, 696, 1156,
148896
- /* 270 */ 163, 486, 486, 1145, 163, 163, 1145, 981, 1025, 963,
148897
- /* 280 */ 1067, 1067, 1067, 486, 975, 975, 1017, 1144, 39, 1150,
148898
- /* 290 */ 1338, 1282, 1282, 1399, 1399, 1282, 1298, 1335, 1422, 1404,
148899
- /* 300 */ 1321, 1447, 1447, 1447, 1447, 1282, 1451, 1321, 1321, 1335,
148900
- /* 310 */ 1422, 1404, 1404, 1321, 1282, 1451, 1345, 1434, 1282, 1451,
148901
- /* 320 */ 1483, 1282, 1451, 1282, 1451, 1483, 1405, 1405, 1405, 1450,
148902
- /* 330 */ 1483, 1405, 1400, 1405, 1450, 1405, 1405, 1483, 1419, 1419,
148903
- /* 340 */ 1483, 1406, 1437, 1406, 1437, 1406, 1437, 1406, 1437, 1282,
148904
- /* 350 */ 1460, 1460, 1411, 1417, 1534, 1282, 1413, 1411, 1425, 1427,
148905
- /* 360 */ 1321, 1542, 1559, 1574, 1574, 1584, 1584, 1584, 2142, 2142,
148927
+ /* 130 */ 21, 152, 297, 494, 726, 65, 494, 514, 514, 494,
148928
+ /* 140 */ 560, 560, 560, 560, 322, 599, 50, 2142, 2142, 155,
148929
+ /* 150 */ 155, 155, 313, 392, 386, 392, 392, 481, 481, 200,
148930
+ /* 160 */ 480, 684, 758, 494, 494, 494, 494, 494, 494, 494,
148931
+ /* 170 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
148932
+ /* 180 */ 494, 494, 494, 494, 768, 768, 494, 166, 377, 377,
148933
+ /* 190 */ 635, 835, 835, 635, 748, 987, 2142, 2142, 2142, 448,
148934
+ /* 200 */ 45, 45, 403, 484, 502, 106, 525, 508, 528, 538,
148935
+ /* 210 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 84,
148936
+ /* 220 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
148937
+ /* 230 */ 494, 494, 267, 267, 267, 494, 494, 494, 494, 769,
148938
+ /* 240 */ 494, 494, 494, 4, 477, 494, 494, 788, 494, 494,
148939
+ /* 250 */ 494, 494, 494, 494, 494, 494, 727, 5, 135, 985,
148940
+ /* 260 */ 985, 985, 985, 522, 135, 135, 797, 326, 875, 986,
148941
+ /* 270 */ 968, 1036, 1036, 1038, 968, 968, 1038, 972, 1081, 1118,
148942
+ /* 280 */ 1194, 1194, 1194, 1036, 757, 757, 946, 777, 1099, 1102,
148943
+ /* 290 */ 1333, 1282, 1282, 1381, 1381, 1282, 1297, 1334, 1422, 1406,
148944
+ /* 300 */ 1322, 1448, 1448, 1448, 1448, 1282, 1451, 1322, 1322, 1334,
148945
+ /* 310 */ 1422, 1406, 1406, 1322, 1282, 1451, 1345, 1434, 1282, 1451,
148946
+ /* 320 */ 1483, 1282, 1451, 1282, 1451, 1483, 1404, 1404, 1404, 1452,
148947
+ /* 330 */ 1483, 1404, 1405, 1404, 1452, 1404, 1404, 1483, 1423, 1423,
148948
+ /* 340 */ 1483, 1407, 1437, 1407, 1437, 1407, 1437, 1407, 1437, 1282,
148949
+ /* 350 */ 1462, 1462, 1411, 1418, 1537, 1282, 1416, 1411, 1428, 1431,
148950
+ /* 360 */ 1322, 1555, 1560, 1575, 1575, 1584, 1584, 1584, 2142, 2142,
148906148951
/* 370 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142,
148907
- /* 380 */ 2142, 2142, 2142, 2142, 300, 438, 310, 860, 873, 773,
148908
- /* 390 */ 500, 1153, 1199, 1093, 1053, 1154, 1203, 1206, 1207, 1213,
148909
- /* 400 */ 1215, 1217, 1230, 1208, 1146, 1261, 1137, 1211, 1240, 1248,
148910
- /* 410 */ 1249, 1097, 1131, 1273, 1293, 1214, 1233, 1601, 1605, 1589,
148911
- /* 420 */ 1458, 1599, 1522, 1602, 1594, 1597, 1489, 1492, 1513, 1614,
148952
+ /* 380 */ 2142, 2142, 2142, 2142, 61, 725, 374, 1080, 198, 771,
148953
+ /* 390 */ 283, 1192, 1178, 1190, 1107, 1221, 1206, 1226, 1227, 1232,
148954
+ /* 400 */ 1233, 1240, 1242, 1189, 1129, 1253, 216, 1210, 1247, 1248,
148955
+ /* 410 */ 1249, 1131, 1151, 1274, 1293, 1220, 1214, 1605, 1608, 1591,
148956
+ /* 420 */ 1459, 1600, 1525, 1606, 1598, 1602, 1494, 1492, 1513, 1614,
148912148957
/* 430 */ 1504, 1620, 1510, 1625, 1647, 1515, 1507, 1531, 1595, 1621,
148913
- /* 440 */ 1514, 1606, 1607, 1608, 1610, 1543, 1556, 1634, 1533, 1669,
148914
- /* 450 */ 1666, 1651, 1566, 1523, 1609, 1649, 1611, 1603, 1639, 1547,
148915
- /* 460 */ 1575, 1658, 1664, 1667, 1561, 1569, 1668, 1622, 1671, 1672,
148916
- /* 470 */ 1665, 1673, 1624, 1670, 1674, 1630, 1662, 1677, 1563, 1679,
148917
- /* 480 */ 1680, 1549, 1684, 1685, 1683, 1688, 1690, 1692, 1691, 1695,
148958
+ /* 440 */ 1514, 1607, 1610, 1612, 1613, 1536, 1552, 1634, 1533, 1669,
148959
+ /* 450 */ 1666, 1651, 1566, 1522, 1609, 1650, 1611, 1603, 1639, 1547,
148960
+ /* 460 */ 1574, 1659, 1664, 1667, 1561, 1569, 1668, 1622, 1671, 1672,
148961
+ /* 470 */ 1665, 1673, 1624, 1670, 1674, 1630, 1662, 1677, 1559, 1681,
148962
+ /* 480 */ 1682, 1549, 1684, 1685, 1683, 1688, 1690, 1692, 1691, 1695,
148918148963
/* 490 */ 1694, 1585, 1698, 1705, 1617, 1696, 1707, 1596, 1709, 1697,
148919
- /* 500 */ 1702, 1704, 1711, 1652, 1675, 1663, 1708, 1676, 1659, 1714,
148920
- /* 510 */ 1718, 1731, 1730, 1729, 1733, 1722, 1734, 1709, 1737, 1738,
148964
+ /* 500 */ 1702, 1704, 1711, 1652, 1675, 1658, 1708, 1676, 1656, 1714,
148965
+ /* 510 */ 1726, 1731, 1730, 1729, 1733, 1722, 1734, 1709, 1737, 1738,
148921148966
/* 520 */ 1742, 1743, 1741, 1745, 1747, 1759, 1749, 1750, 1752, 1753,
148922
- /* 530 */ 1751, 1755, 1757, 1656, 1653, 1654, 1655, 1657, 1769, 1778,
148923
- /* 540 */ 1793,
148967
+ /* 530 */ 1751, 1755, 1757, 1660, 1653, 1655, 1657, 1661, 1761, 1777,
148968
+ /* 540 */ 1792,
148924148969
};
148925148970
#define YY_REDUCE_COUNT (383)
148926
-#define YY_REDUCE_MIN (-241)
148927
-#define YY_REDUCE_MAX (1440)
148971
+#define YY_REDUCE_MIN (-257)
148972
+#define YY_REDUCE_MAX (1421)
148928148973
static const short yy_reduce_ofst[] = {
148929
- /* 0 */ -151, 181, -141, 376, 379, -149, -153, -75, -1, 227,
148930
- /* 10 */ 273, 279, 232, -176, -133, -241, -179, 321, 349, 447,
148931
- /* 20 */ 528, 373, 546, 590, 431, 470, 593, -163, 520, 564,
148932
- /* 30 */ 624, 626, 246, 386, 539, 479, 536, 573, 576, 619,
148933
- /* 40 */ 627, 634, -202, -202, -202, -202, -202, -202, -202, -202,
148934
- /* 50 */ -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
148935
- /* 60 */ -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
148936
- /* 70 */ -202, -202, -202, -202, -202, -202, -202, 113, 137, 304,
148937
- /* 80 */ 660, 665, 691, 714, 721, 741, 758, 760, 784, 787,
148938
- /* 90 */ 807, 833, 836, 838, 861, 874, 876, 878, 880, 887,
148939
- /* 100 */ 889, 891, 893, 903, 905, 907, 919, 921, 923, 930,
148940
- /* 110 */ 932, 957, 959, 977, 1006, 1011, 1026, 1029, 1031, 1034,
148941
- /* 120 */ 1046, 1057, 1059, 1061, -202, -202, -202, -202, -202, -202,
148942
- /* 130 */ -202, -202, -202, 240, -172, -39, 139, 76, 235, 566,
148943
- /* 140 */ -103, 487, -103, 487, 502, -202, -202, -202, -202, -171,
148944
- /* 150 */ -171, -171, -134, -161, 110, 52, 274, -113, 678, 261,
148945
- /* 160 */ 444, 384, 384, -162, 481, 618, 666, 495, 186, 236,
148946
- /* 170 */ 730, 731, 672, 174, 674, 545, 757, 734, 769, 732,
148947
- /* 180 */ 418, 830, 826, 879, 480, 667, 729, 427, 777, 809,
148948
- /* 190 */ 608, 767, 812, 922, 839, 242, 855, 900, 390, -156,
148949
- /* 200 */ -108, -104, -76, -83, 207, 260, 347, 570, 595, 724,
148950
- /* 210 */ 738, 744, 768, 906, 916, 1014, 1064, 1091, 1098, 92,
148951
- /* 220 */ 1113, 1130, 1133, 1155, 1158, 1159, 1160, 1161, 1162, 1163,
148952
- /* 230 */ 1164, 1165, 448, 553, 971, 1166, 1178, 1179, 1180, 1069,
148953
- /* 240 */ 1181, 1182, 1183, 1094, 1040, 1184, 1185, 1110, 1186, 260,
148954
- /* 250 */ 1198, 1201, 1202, 1204, 1205, 1209, 1114, 1111, 1167, 1147,
148955
- /* 260 */ 1149, 1151, 1152, 1069, 1167, 1167, 1168, 1193, 1216, 1118,
148956
- /* 270 */ 1169, 1157, 1187, 1123, 1171, 1172, 1124, 1200, 1190, 1195,
148957
- /* 280 */ 1222, 1223, 1224, 1188, 1173, 1175, 1148, 1218, 1219, 1227,
148958
- /* 290 */ 1170, 1245, 1262, 1176, 1177, 1266, 1191, 1210, 1225, 1244,
148959
- /* 300 */ 1250, 1260, 1274, 1275, 1276, 1292, 1297, 1269, 1270, 1251,
148960
- /* 310 */ 1253, 1283, 1284, 1277, 1316, 1320, 1241, 1243, 1324, 1330,
148961
- /* 320 */ 1313, 1334, 1336, 1337, 1339, 1317, 1325, 1326, 1327, 1323,
148962
- /* 330 */ 1329, 1333, 1332, 1341, 1331, 1342, 1344, 1346, 1278, 1288,
148963
- /* 340 */ 1349, 1312, 1315, 1318, 1328, 1319, 1347, 1322, 1348, 1373,
148964
- /* 350 */ 1267, 1279, 1356, 1340, 1343, 1388, 1350, 1359, 1351, 1363,
148965
- /* 360 */ 1367, 1391, 1410, 1430, 1431, 1428, 1429, 1435, 1352, 1353,
148966
- /* 370 */ 1354, 1420, 1416, 1418, 1421, 1423, 1432, 1409, 1412, 1424,
148967
- /* 380 */ 1433, 1439, 1440, 1436,
148974
+ /* 0 */ -168, -17, 164, 214, 310, -166, -184, -18, 98, -170,
148975
+ /* 10 */ 305, 315, -163, -193, -178, -257, 395, 401, 476, 478,
148976
+ /* 20 */ 512, 117, 527, 529, 503, 509, 532, 255, 552, 556,
148977
+ /* 30 */ 558, 607, 37, 408, 594, 413, 462, 559, 561, 601,
148978
+ /* 40 */ 610, 618, -254, -254, -254, -254, -254, -254, -254, -254,
148979
+ /* 50 */ -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
148980
+ /* 60 */ -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
148981
+ /* 70 */ -254, -254, -254, -254, -254, -254, -254, -111, 627, 650,
148982
+ /* 80 */ 691, 697, 701, 703, 740, 742, 744, 767, 770, 790,
148983
+ /* 90 */ 816, 818, 820, 822, 845, 857, 859, 861, 863, 865,
148984
+ /* 100 */ 868, 870, 872, 874, 876, 888, 903, 906, 908, 915,
148985
+ /* 110 */ 917, 922, 960, 962, 964, 988, 990, 992, 1015, 1017,
148986
+ /* 120 */ 1029, 1033, 1035, 1040, -254, -254, -254, -254, -254, -254,
148987
+ /* 130 */ -254, -254, -254, 190, 270, -196, 160, -160, 450, 647,
148988
+ /* 140 */ 260, 458, 260, 458, 78, -254, -254, -254, -254, 206,
148989
+ /* 150 */ 206, 206, 320, 598, -5, 675, 743, -148, 340, -125,
148990
+ /* 160 */ 459, 466, 466, 693, -93, 461, 479, 706, 710, 714,
148991
+ /* 170 */ 716, 717, 169, -183, 325, 314, 704, 333, 747, 858,
148992
+ /* 180 */ -8, 819, 565, 755, 646, 660, 517, 265, 713, 791,
148993
+ /* 190 */ 712, 795, 803, 918, 695, 860, 893, 935, 939, -181,
148994
+ /* 200 */ -172, -147, -91, -46, -3, 162, 173, 231, 338, 437,
148995
+ /* 210 */ 571, 614, 630, 651, 760, 931, 989, 1032, 1046, -218,
148996
+ /* 220 */ 38, 1070, 1096, 1133, 1134, 1137, 1138, 1139, 1141, 1142,
148997
+ /* 230 */ 1143, 1144, 292, 451, 1050, 1145, 1147, 1148, 1149, 813,
148998
+ /* 240 */ 1161, 1162, 1163, 1108, 1049, 1166, 1168, 1146, 1169, 162,
148999
+ /* 250 */ 1181, 1182, 1183, 1184, 1185, 1187, 1100, 1103, 1150, 1135,
149000
+ /* 260 */ 1136, 1140, 1152, 813, 1150, 1150, 1153, 1173, 1195, 1090,
149001
+ /* 270 */ 1154, 1167, 1170, 1104, 1155, 1156, 1109, 1172, 1174, 1179,
149002
+ /* 280 */ 1177, 1188, 1205, 1171, 1160, 1196, 1121, 1165, 1203, 1228,
149003
+ /* 290 */ 1157, 1244, 1245, 1158, 1159, 1250, 1175, 1193, 1191, 1241,
149004
+ /* 300 */ 1231, 1243, 1257, 1259, 1261, 1276, 1280, 1254, 1255, 1230,
149005
+ /* 310 */ 1234, 1269, 1270, 1260, 1292, 1303, 1223, 1225, 1309, 1313,
149006
+ /* 320 */ 1296, 1317, 1319, 1320, 1323, 1300, 1307, 1308, 1310, 1304,
149007
+ /* 330 */ 1311, 1315, 1314, 1318, 1316, 1321, 1325, 1324, 1271, 1272,
149008
+ /* 340 */ 1332, 1294, 1298, 1299, 1301, 1302, 1306, 1312, 1329, 1356,
149009
+ /* 350 */ 1256, 1263, 1327, 1326, 1305, 1369, 1330, 1340, 1343, 1346,
149010
+ /* 360 */ 1350, 1391, 1394, 1410, 1412, 1415, 1417, 1419, 1328, 1331,
149011
+ /* 370 */ 1335, 1402, 1398, 1400, 1401, 1403, 1408, 1396, 1397, 1409,
149012
+ /* 380 */ 1414, 1420, 1421, 1413,
148968149013
};
148969149014
static const YYACTIONTYPE yy_default[] = {
148970149015
/* 0 */ 1536, 1536, 1536, 1376, 1159, 1265, 1159, 1159, 1159, 1376,
148971149016
/* 10 */ 1376, 1376, 1159, 1295, 1295, 1429, 1190, 1159, 1159, 1159,
148972149017
/* 20 */ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1375, 1159, 1159,
@@ -149380,135 +149425,152 @@
149380149425
/* 154 */ "ALTER",
149381149426
/* 155 */ "ADD",
149382149427
/* 156 */ "WINDOW",
149383149428
/* 157 */ "OVER",
149384149429
/* 158 */ "FILTER",
149385
- /* 159 */ "input",
149386
- /* 160 */ "cmdlist",
149387
- /* 161 */ "ecmd",
149388
- /* 162 */ "cmdx",
149389
- /* 163 */ "explain",
149390
- /* 164 */ "cmd",
149391
- /* 165 */ "transtype",
149392
- /* 166 */ "trans_opt",
149393
- /* 167 */ "nm",
149394
- /* 168 */ "savepoint_opt",
149395
- /* 169 */ "create_table",
149396
- /* 170 */ "create_table_args",
149397
- /* 171 */ "createkw",
149398
- /* 172 */ "temp",
149399
- /* 173 */ "ifnotexists",
149400
- /* 174 */ "dbnm",
149401
- /* 175 */ "columnlist",
149402
- /* 176 */ "conslist_opt",
149403
- /* 177 */ "table_options",
149404
- /* 178 */ "select",
149405
- /* 179 */ "columnname",
149406
- /* 180 */ "carglist",
149407
- /* 181 */ "typetoken",
149408
- /* 182 */ "typename",
149409
- /* 183 */ "signed",
149410
- /* 184 */ "plus_num",
149411
- /* 185 */ "minus_num",
149412
- /* 186 */ "scanpt",
149413
- /* 187 */ "ccons",
149414
- /* 188 */ "term",
149415
- /* 189 */ "expr",
149416
- /* 190 */ "onconf",
149417
- /* 191 */ "sortorder",
149418
- /* 192 */ "autoinc",
149419
- /* 193 */ "eidlist_opt",
149420
- /* 194 */ "refargs",
149421
- /* 195 */ "defer_subclause",
149422
- /* 196 */ "refarg",
149423
- /* 197 */ "refact",
149424
- /* 198 */ "init_deferred_pred_opt",
149425
- /* 199 */ "conslist",
149426
- /* 200 */ "tconscomma",
149427
- /* 201 */ "tcons",
149428
- /* 202 */ "sortlist",
149429
- /* 203 */ "eidlist",
149430
- /* 204 */ "defer_subclause_opt",
149431
- /* 205 */ "orconf",
149432
- /* 206 */ "resolvetype",
149433
- /* 207 */ "raisetype",
149434
- /* 208 */ "ifexists",
149435
- /* 209 */ "fullname",
149436
- /* 210 */ "selectnowith",
149437
- /* 211 */ "oneselect",
149438
- /* 212 */ "wqlist",
149439
- /* 213 */ "multiselect_op",
149440
- /* 214 */ "distinct",
149441
- /* 215 */ "selcollist",
149442
- /* 216 */ "from",
149443
- /* 217 */ "where_opt",
149444
- /* 218 */ "groupby_opt",
149445
- /* 219 */ "having_opt",
149446
- /* 220 */ "orderby_opt",
149447
- /* 221 */ "limit_opt",
149448
- /* 222 */ "window_clause",
149449
- /* 223 */ "values",
149450
- /* 224 */ "nexprlist",
149451
- /* 225 */ "sclp",
149452
- /* 226 */ "as",
149453
- /* 227 */ "seltablist",
149454
- /* 228 */ "stl_prefix",
149455
- /* 229 */ "joinop",
149456
- /* 230 */ "indexed_opt",
149457
- /* 231 */ "on_opt",
149458
- /* 232 */ "using_opt",
149459
- /* 233 */ "exprlist",
149460
- /* 234 */ "xfullname",
149461
- /* 235 */ "idlist",
149462
- /* 236 */ "with",
149463
- /* 237 */ "setlist",
149464
- /* 238 */ "insert_cmd",
149465
- /* 239 */ "idlist_opt",
149466
- /* 240 */ "upsert",
149467
- /* 241 */ "over_clause",
149468
- /* 242 */ "likeop",
149469
- /* 243 */ "between_op",
149470
- /* 244 */ "in_op",
149471
- /* 245 */ "paren_exprlist",
149472
- /* 246 */ "case_operand",
149473
- /* 247 */ "case_exprlist",
149474
- /* 248 */ "case_else",
149475
- /* 249 */ "uniqueflag",
149476
- /* 250 */ "collate",
149477
- /* 251 */ "vinto",
149478
- /* 252 */ "nmnum",
149479
- /* 253 */ "trigger_decl",
149480
- /* 254 */ "trigger_cmd_list",
149481
- /* 255 */ "trigger_time",
149482
- /* 256 */ "trigger_event",
149483
- /* 257 */ "foreach_clause",
149484
- /* 258 */ "when_clause",
149485
- /* 259 */ "trigger_cmd",
149486
- /* 260 */ "trnm",
149487
- /* 261 */ "tridxby",
149488
- /* 262 */ "database_kw_opt",
149489
- /* 263 */ "key_opt",
149490
- /* 264 */ "add_column_fullname",
149491
- /* 265 */ "kwcolumn_opt",
149492
- /* 266 */ "create_vtab",
149493
- /* 267 */ "vtabarglist",
149494
- /* 268 */ "vtabarg",
149495
- /* 269 */ "vtabargtoken",
149496
- /* 270 */ "lp",
149497
- /* 271 */ "anylist",
149498
- /* 272 */ "windowdefn_list",
149499
- /* 273 */ "windowdefn",
149500
- /* 274 */ "window",
149501
- /* 275 */ "frame_opt",
149502
- /* 276 */ "part_opt",
149503
- /* 277 */ "filter_opt",
149504
- /* 278 */ "range_or_rows",
149505
- /* 279 */ "frame_bound",
149506
- /* 280 */ "frame_bound_s",
149507
- /* 281 */ "frame_bound_e",
149508
- /* 282 */ "frame_exclude_opt",
149509
- /* 283 */ "frame_exclude",
149430
+ /* 159 */ "TRUEFALSE",
149431
+ /* 160 */ "ISNOT",
149432
+ /* 161 */ "FUNCTION",
149433
+ /* 162 */ "COLUMN",
149434
+ /* 163 */ "AGG_FUNCTION",
149435
+ /* 164 */ "AGG_COLUMN",
149436
+ /* 165 */ "UMINUS",
149437
+ /* 166 */ "UPLUS",
149438
+ /* 167 */ "TRUTH",
149439
+ /* 168 */ "REGISTER",
149440
+ /* 169 */ "VECTOR",
149441
+ /* 170 */ "SELECT_COLUMN",
149442
+ /* 171 */ "IF_NULL_ROW",
149443
+ /* 172 */ "ASTERISK",
149444
+ /* 173 */ "SPAN",
149445
+ /* 174 */ "SPACE",
149446
+ /* 175 */ "ILLEGAL",
149447
+ /* 176 */ "input",
149448
+ /* 177 */ "cmdlist",
149449
+ /* 178 */ "ecmd",
149450
+ /* 179 */ "cmdx",
149451
+ /* 180 */ "explain",
149452
+ /* 181 */ "cmd",
149453
+ /* 182 */ "transtype",
149454
+ /* 183 */ "trans_opt",
149455
+ /* 184 */ "nm",
149456
+ /* 185 */ "savepoint_opt",
149457
+ /* 186 */ "create_table",
149458
+ /* 187 */ "create_table_args",
149459
+ /* 188 */ "createkw",
149460
+ /* 189 */ "temp",
149461
+ /* 190 */ "ifnotexists",
149462
+ /* 191 */ "dbnm",
149463
+ /* 192 */ "columnlist",
149464
+ /* 193 */ "conslist_opt",
149465
+ /* 194 */ "table_options",
149466
+ /* 195 */ "select",
149467
+ /* 196 */ "columnname",
149468
+ /* 197 */ "carglist",
149469
+ /* 198 */ "typetoken",
149470
+ /* 199 */ "typename",
149471
+ /* 200 */ "signed",
149472
+ /* 201 */ "plus_num",
149473
+ /* 202 */ "minus_num",
149474
+ /* 203 */ "scanpt",
149475
+ /* 204 */ "ccons",
149476
+ /* 205 */ "term",
149477
+ /* 206 */ "expr",
149478
+ /* 207 */ "onconf",
149479
+ /* 208 */ "sortorder",
149480
+ /* 209 */ "autoinc",
149481
+ /* 210 */ "eidlist_opt",
149482
+ /* 211 */ "refargs",
149483
+ /* 212 */ "defer_subclause",
149484
+ /* 213 */ "refarg",
149485
+ /* 214 */ "refact",
149486
+ /* 215 */ "init_deferred_pred_opt",
149487
+ /* 216 */ "conslist",
149488
+ /* 217 */ "tconscomma",
149489
+ /* 218 */ "tcons",
149490
+ /* 219 */ "sortlist",
149491
+ /* 220 */ "eidlist",
149492
+ /* 221 */ "defer_subclause_opt",
149493
+ /* 222 */ "orconf",
149494
+ /* 223 */ "resolvetype",
149495
+ /* 224 */ "raisetype",
149496
+ /* 225 */ "ifexists",
149497
+ /* 226 */ "fullname",
149498
+ /* 227 */ "selectnowith",
149499
+ /* 228 */ "oneselect",
149500
+ /* 229 */ "wqlist",
149501
+ /* 230 */ "multiselect_op",
149502
+ /* 231 */ "distinct",
149503
+ /* 232 */ "selcollist",
149504
+ /* 233 */ "from",
149505
+ /* 234 */ "where_opt",
149506
+ /* 235 */ "groupby_opt",
149507
+ /* 236 */ "having_opt",
149508
+ /* 237 */ "orderby_opt",
149509
+ /* 238 */ "limit_opt",
149510
+ /* 239 */ "window_clause",
149511
+ /* 240 */ "values",
149512
+ /* 241 */ "nexprlist",
149513
+ /* 242 */ "sclp",
149514
+ /* 243 */ "as",
149515
+ /* 244 */ "seltablist",
149516
+ /* 245 */ "stl_prefix",
149517
+ /* 246 */ "joinop",
149518
+ /* 247 */ "indexed_opt",
149519
+ /* 248 */ "on_opt",
149520
+ /* 249 */ "using_opt",
149521
+ /* 250 */ "exprlist",
149522
+ /* 251 */ "xfullname",
149523
+ /* 252 */ "idlist",
149524
+ /* 253 */ "with",
149525
+ /* 254 */ "setlist",
149526
+ /* 255 */ "insert_cmd",
149527
+ /* 256 */ "idlist_opt",
149528
+ /* 257 */ "upsert",
149529
+ /* 258 */ "over_clause",
149530
+ /* 259 */ "likeop",
149531
+ /* 260 */ "between_op",
149532
+ /* 261 */ "in_op",
149533
+ /* 262 */ "paren_exprlist",
149534
+ /* 263 */ "case_operand",
149535
+ /* 264 */ "case_exprlist",
149536
+ /* 265 */ "case_else",
149537
+ /* 266 */ "uniqueflag",
149538
+ /* 267 */ "collate",
149539
+ /* 268 */ "vinto",
149540
+ /* 269 */ "nmnum",
149541
+ /* 270 */ "trigger_decl",
149542
+ /* 271 */ "trigger_cmd_list",
149543
+ /* 272 */ "trigger_time",
149544
+ /* 273 */ "trigger_event",
149545
+ /* 274 */ "foreach_clause",
149546
+ /* 275 */ "when_clause",
149547
+ /* 276 */ "trigger_cmd",
149548
+ /* 277 */ "trnm",
149549
+ /* 278 */ "tridxby",
149550
+ /* 279 */ "database_kw_opt",
149551
+ /* 280 */ "key_opt",
149552
+ /* 281 */ "add_column_fullname",
149553
+ /* 282 */ "kwcolumn_opt",
149554
+ /* 283 */ "create_vtab",
149555
+ /* 284 */ "vtabarglist",
149556
+ /* 285 */ "vtabarg",
149557
+ /* 286 */ "vtabargtoken",
149558
+ /* 287 */ "lp",
149559
+ /* 288 */ "anylist",
149560
+ /* 289 */ "windowdefn_list",
149561
+ /* 290 */ "windowdefn",
149562
+ /* 291 */ "window",
149563
+ /* 292 */ "frame_opt",
149564
+ /* 293 */ "part_opt",
149565
+ /* 294 */ "filter_opt",
149566
+ /* 295 */ "range_or_rows",
149567
+ /* 296 */ "frame_bound",
149568
+ /* 297 */ "frame_bound_s",
149569
+ /* 298 */ "frame_bound_e",
149570
+ /* 299 */ "frame_exclude_opt",
149571
+ /* 300 */ "frame_exclude",
149510149572
};
149511149573
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
149512149574
149513149575
#ifndef NDEBUG
149514149576
/* For tracing reduce actions, the names of all rules are required.
@@ -150012,101 +150074,101 @@
150012150074
** Note: during a reduce, the only symbols destroyed are those
150013150075
** which appear on the RHS of the rule, but which are *not* used
150014150076
** inside the C code.
150015150077
*/
150016150078
/********* Begin destructor definitions ***************************************/
150017
- case 178: /* select */
150018
- case 210: /* selectnowith */
150019
- case 211: /* oneselect */
150020
- case 223: /* values */
150021
-{
150022
-sqlite3SelectDelete(pParse->db, (yypminor->yy491));
150023
-}
150024
- break;
150025
- case 188: /* term */
150026
- case 189: /* expr */
150027
- case 217: /* where_opt */
150028
- case 219: /* having_opt */
150029
- case 231: /* on_opt */
150030
- case 246: /* case_operand */
150031
- case 248: /* case_else */
150032
- case 251: /* vinto */
150033
- case 258: /* when_clause */
150034
- case 263: /* key_opt */
150035
- case 277: /* filter_opt */
150036
-{
150037
-sqlite3ExprDelete(pParse->db, (yypminor->yy130));
150038
-}
150039
- break;
150040
- case 193: /* eidlist_opt */
150041
- case 202: /* sortlist */
150042
- case 203: /* eidlist */
150043
- case 215: /* selcollist */
150044
- case 218: /* groupby_opt */
150045
- case 220: /* orderby_opt */
150046
- case 224: /* nexprlist */
150047
- case 225: /* sclp */
150048
- case 233: /* exprlist */
150049
- case 237: /* setlist */
150050
- case 245: /* paren_exprlist */
150051
- case 247: /* case_exprlist */
150052
- case 276: /* part_opt */
150053
-{
150054
-sqlite3ExprListDelete(pParse->db, (yypminor->yy442));
150055
-}
150056
- break;
150057
- case 209: /* fullname */
150058
- case 216: /* from */
150059
- case 227: /* seltablist */
150060
- case 228: /* stl_prefix */
150061
- case 234: /* xfullname */
150062
-{
150063
-sqlite3SrcListDelete(pParse->db, (yypminor->yy147));
150064
-}
150065
- break;
150066
- case 212: /* wqlist */
150067
-{
150068
-sqlite3WithDelete(pParse->db, (yypminor->yy523));
150069
-}
150070
- break;
150071
- case 222: /* window_clause */
150072
- case 272: /* windowdefn_list */
150073
-{
150074
-sqlite3WindowListDelete(pParse->db, (yypminor->yy395));
150075
-}
150076
- break;
150077
- case 232: /* using_opt */
150078
- case 235: /* idlist */
150079
- case 239: /* idlist_opt */
150080
-{
150081
-sqlite3IdListDelete(pParse->db, (yypminor->yy200));
150082
-}
150083
- break;
150084
- case 241: /* over_clause */
150085
- case 273: /* windowdefn */
150086
- case 274: /* window */
150087
- case 275: /* frame_opt */
150088
-{
150089
-sqlite3WindowDelete(pParse->db, (yypminor->yy395));
150090
-}
150091
- break;
150092
- case 254: /* trigger_cmd_list */
150093
- case 259: /* trigger_cmd */
150094
-{
150095
-sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy524));
150096
-}
150097
- break;
150098
- case 256: /* trigger_event */
150099
-{
150100
-sqlite3IdListDelete(pParse->db, (yypminor->yy498).b);
150101
-}
150102
- break;
150103
- case 279: /* frame_bound */
150104
- case 280: /* frame_bound_s */
150105
- case 281: /* frame_bound_e */
150106
-{
150107
-sqlite3ExprDelete(pParse->db, (yypminor->yy273).pExpr);
150079
+ case 195: /* select */
150080
+ case 227: /* selectnowith */
150081
+ case 228: /* oneselect */
150082
+ case 240: /* values */
150083
+{
150084
+sqlite3SelectDelete(pParse->db, (yypminor->yy457));
150085
+}
150086
+ break;
150087
+ case 205: /* term */
150088
+ case 206: /* expr */
150089
+ case 234: /* where_opt */
150090
+ case 236: /* having_opt */
150091
+ case 248: /* on_opt */
150092
+ case 263: /* case_operand */
150093
+ case 265: /* case_else */
150094
+ case 268: /* vinto */
150095
+ case 275: /* when_clause */
150096
+ case 280: /* key_opt */
150097
+ case 294: /* filter_opt */
150098
+{
150099
+sqlite3ExprDelete(pParse->db, (yypminor->yy524));
150100
+}
150101
+ break;
150102
+ case 210: /* eidlist_opt */
150103
+ case 219: /* sortlist */
150104
+ case 220: /* eidlist */
150105
+ case 232: /* selcollist */
150106
+ case 235: /* groupby_opt */
150107
+ case 237: /* orderby_opt */
150108
+ case 241: /* nexprlist */
150109
+ case 242: /* sclp */
150110
+ case 250: /* exprlist */
150111
+ case 254: /* setlist */
150112
+ case 262: /* paren_exprlist */
150113
+ case 264: /* case_exprlist */
150114
+ case 293: /* part_opt */
150115
+{
150116
+sqlite3ExprListDelete(pParse->db, (yypminor->yy434));
150117
+}
150118
+ break;
150119
+ case 226: /* fullname */
150120
+ case 233: /* from */
150121
+ case 244: /* seltablist */
150122
+ case 245: /* stl_prefix */
150123
+ case 251: /* xfullname */
150124
+{
150125
+sqlite3SrcListDelete(pParse->db, (yypminor->yy483));
150126
+}
150127
+ break;
150128
+ case 229: /* wqlist */
150129
+{
150130
+sqlite3WithDelete(pParse->db, (yypminor->yy59));
150131
+}
150132
+ break;
150133
+ case 239: /* window_clause */
150134
+ case 289: /* windowdefn_list */
150135
+{
150136
+sqlite3WindowListDelete(pParse->db, (yypminor->yy295));
150137
+}
150138
+ break;
150139
+ case 249: /* using_opt */
150140
+ case 252: /* idlist */
150141
+ case 256: /* idlist_opt */
150142
+{
150143
+sqlite3IdListDelete(pParse->db, (yypminor->yy62));
150144
+}
150145
+ break;
150146
+ case 258: /* over_clause */
150147
+ case 290: /* windowdefn */
150148
+ case 291: /* window */
150149
+ case 292: /* frame_opt */
150150
+{
150151
+sqlite3WindowDelete(pParse->db, (yypminor->yy295));
150152
+}
150153
+ break;
150154
+ case 271: /* trigger_cmd_list */
150155
+ case 276: /* trigger_cmd */
150156
+{
150157
+sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy455));
150158
+}
150159
+ break;
150160
+ case 273: /* trigger_event */
150161
+{
150162
+sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
150163
+}
150164
+ break;
150165
+ case 296: /* frame_bound */
150166
+ case 297: /* frame_bound_s */
150167
+ case 298: /* frame_bound_e */
150168
+{
150169
+sqlite3ExprDelete(pParse->db, (yypminor->yy201).pExpr);
150108150170
}
150109150171
break;
150110150172
/********* End destructor definitions *****************************************/
150111150173
default: break; /* If no destructor action specified: do nothing */
150112150174
}
@@ -150397,385 +150459,385 @@
150397150459
}
150398150460
150399150461
/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
150400150462
** of that rule */
150401150463
static const YYCODETYPE yyRuleInfoLhs[] = {
150402
- 163, /* (0) explain ::= EXPLAIN */
150403
- 163, /* (1) explain ::= EXPLAIN QUERY PLAN */
150404
- 162, /* (2) cmdx ::= cmd */
150405
- 164, /* (3) cmd ::= BEGIN transtype trans_opt */
150406
- 165, /* (4) transtype ::= */
150407
- 165, /* (5) transtype ::= DEFERRED */
150408
- 165, /* (6) transtype ::= IMMEDIATE */
150409
- 165, /* (7) transtype ::= EXCLUSIVE */
150410
- 164, /* (8) cmd ::= COMMIT|END trans_opt */
150411
- 164, /* (9) cmd ::= ROLLBACK trans_opt */
150412
- 164, /* (10) cmd ::= SAVEPOINT nm */
150413
- 164, /* (11) cmd ::= RELEASE savepoint_opt nm */
150414
- 164, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
150415
- 169, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
150416
- 171, /* (14) createkw ::= CREATE */
150417
- 173, /* (15) ifnotexists ::= */
150418
- 173, /* (16) ifnotexists ::= IF NOT EXISTS */
150419
- 172, /* (17) temp ::= TEMP */
150420
- 172, /* (18) temp ::= */
150421
- 170, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */
150422
- 170, /* (20) create_table_args ::= AS select */
150423
- 177, /* (21) table_options ::= */
150424
- 177, /* (22) table_options ::= WITHOUT nm */
150425
- 179, /* (23) columnname ::= nm typetoken */
150426
- 181, /* (24) typetoken ::= */
150427
- 181, /* (25) typetoken ::= typename LP signed RP */
150428
- 181, /* (26) typetoken ::= typename LP signed COMMA signed RP */
150429
- 182, /* (27) typename ::= typename ID|STRING */
150430
- 186, /* (28) scanpt ::= */
150431
- 187, /* (29) ccons ::= CONSTRAINT nm */
150432
- 187, /* (30) ccons ::= DEFAULT scanpt term scanpt */
150433
- 187, /* (31) ccons ::= DEFAULT LP expr RP */
150434
- 187, /* (32) ccons ::= DEFAULT PLUS term scanpt */
150435
- 187, /* (33) ccons ::= DEFAULT MINUS term scanpt */
150436
- 187, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */
150437
- 187, /* (35) ccons ::= NOT NULL onconf */
150438
- 187, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */
150439
- 187, /* (37) ccons ::= UNIQUE onconf */
150440
- 187, /* (38) ccons ::= CHECK LP expr RP */
150441
- 187, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */
150442
- 187, /* (40) ccons ::= defer_subclause */
150443
- 187, /* (41) ccons ::= COLLATE ID|STRING */
150444
- 192, /* (42) autoinc ::= */
150445
- 192, /* (43) autoinc ::= AUTOINCR */
150446
- 194, /* (44) refargs ::= */
150447
- 194, /* (45) refargs ::= refargs refarg */
150448
- 196, /* (46) refarg ::= MATCH nm */
150449
- 196, /* (47) refarg ::= ON INSERT refact */
150450
- 196, /* (48) refarg ::= ON DELETE refact */
150451
- 196, /* (49) refarg ::= ON UPDATE refact */
150452
- 197, /* (50) refact ::= SET NULL */
150453
- 197, /* (51) refact ::= SET DEFAULT */
150454
- 197, /* (52) refact ::= CASCADE */
150455
- 197, /* (53) refact ::= RESTRICT */
150456
- 197, /* (54) refact ::= NO ACTION */
150457
- 195, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
150458
- 195, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
150459
- 198, /* (57) init_deferred_pred_opt ::= */
150460
- 198, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */
150461
- 198, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
150462
- 176, /* (60) conslist_opt ::= */
150463
- 200, /* (61) tconscomma ::= COMMA */
150464
- 201, /* (62) tcons ::= CONSTRAINT nm */
150465
- 201, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
150466
- 201, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */
150467
- 201, /* (65) tcons ::= CHECK LP expr RP onconf */
150468
- 201, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
150469
- 204, /* (67) defer_subclause_opt ::= */
150470
- 190, /* (68) onconf ::= */
150471
- 190, /* (69) onconf ::= ON CONFLICT resolvetype */
150472
- 205, /* (70) orconf ::= */
150473
- 205, /* (71) orconf ::= OR resolvetype */
150474
- 206, /* (72) resolvetype ::= IGNORE */
150475
- 206, /* (73) resolvetype ::= REPLACE */
150476
- 164, /* (74) cmd ::= DROP TABLE ifexists fullname */
150477
- 208, /* (75) ifexists ::= IF EXISTS */
150478
- 208, /* (76) ifexists ::= */
150479
- 164, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
150480
- 164, /* (78) cmd ::= DROP VIEW ifexists fullname */
150481
- 164, /* (79) cmd ::= select */
150482
- 178, /* (80) select ::= WITH wqlist selectnowith */
150483
- 178, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
150484
- 178, /* (82) select ::= selectnowith */
150485
- 210, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
150486
- 213, /* (84) multiselect_op ::= UNION */
150487
- 213, /* (85) multiselect_op ::= UNION ALL */
150488
- 213, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
150489
- 211, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
150490
- 211, /* (88) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
150491
- 223, /* (89) values ::= VALUES LP nexprlist RP */
150492
- 223, /* (90) values ::= values COMMA LP nexprlist RP */
150493
- 214, /* (91) distinct ::= DISTINCT */
150494
- 214, /* (92) distinct ::= ALL */
150495
- 214, /* (93) distinct ::= */
150496
- 225, /* (94) sclp ::= */
150497
- 215, /* (95) selcollist ::= sclp scanpt expr scanpt as */
150498
- 215, /* (96) selcollist ::= sclp scanpt STAR */
150499
- 215, /* (97) selcollist ::= sclp scanpt nm DOT STAR */
150500
- 226, /* (98) as ::= AS nm */
150501
- 226, /* (99) as ::= */
150502
- 216, /* (100) from ::= */
150503
- 216, /* (101) from ::= FROM seltablist */
150504
- 228, /* (102) stl_prefix ::= seltablist joinop */
150505
- 228, /* (103) stl_prefix ::= */
150506
- 227, /* (104) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
150507
- 227, /* (105) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
150508
- 227, /* (106) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
150509
- 227, /* (107) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
150510
- 174, /* (108) dbnm ::= */
150511
- 174, /* (109) dbnm ::= DOT nm */
150512
- 209, /* (110) fullname ::= nm */
150513
- 209, /* (111) fullname ::= nm DOT nm */
150514
- 234, /* (112) xfullname ::= nm */
150515
- 234, /* (113) xfullname ::= nm DOT nm */
150516
- 234, /* (114) xfullname ::= nm DOT nm AS nm */
150517
- 234, /* (115) xfullname ::= nm AS nm */
150518
- 229, /* (116) joinop ::= COMMA|JOIN */
150519
- 229, /* (117) joinop ::= JOIN_KW JOIN */
150520
- 229, /* (118) joinop ::= JOIN_KW nm JOIN */
150521
- 229, /* (119) joinop ::= JOIN_KW nm nm JOIN */
150522
- 231, /* (120) on_opt ::= ON expr */
150523
- 231, /* (121) on_opt ::= */
150524
- 230, /* (122) indexed_opt ::= */
150525
- 230, /* (123) indexed_opt ::= INDEXED BY nm */
150526
- 230, /* (124) indexed_opt ::= NOT INDEXED */
150527
- 232, /* (125) using_opt ::= USING LP idlist RP */
150528
- 232, /* (126) using_opt ::= */
150529
- 220, /* (127) orderby_opt ::= */
150530
- 220, /* (128) orderby_opt ::= ORDER BY sortlist */
150531
- 202, /* (129) sortlist ::= sortlist COMMA expr sortorder */
150532
- 202, /* (130) sortlist ::= expr sortorder */
150533
- 191, /* (131) sortorder ::= ASC */
150534
- 191, /* (132) sortorder ::= DESC */
150535
- 191, /* (133) sortorder ::= */
150536
- 218, /* (134) groupby_opt ::= */
150537
- 218, /* (135) groupby_opt ::= GROUP BY nexprlist */
150538
- 219, /* (136) having_opt ::= */
150539
- 219, /* (137) having_opt ::= HAVING expr */
150540
- 221, /* (138) limit_opt ::= */
150541
- 221, /* (139) limit_opt ::= LIMIT expr */
150542
- 221, /* (140) limit_opt ::= LIMIT expr OFFSET expr */
150543
- 221, /* (141) limit_opt ::= LIMIT expr COMMA expr */
150544
- 164, /* (142) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
150545
- 217, /* (143) where_opt ::= */
150546
- 217, /* (144) where_opt ::= WHERE expr */
150547
- 164, /* (145) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
150548
- 237, /* (146) setlist ::= setlist COMMA nm EQ expr */
150549
- 237, /* (147) setlist ::= setlist COMMA LP idlist RP EQ expr */
150550
- 237, /* (148) setlist ::= nm EQ expr */
150551
- 237, /* (149) setlist ::= LP idlist RP EQ expr */
150552
- 164, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
150553
- 164, /* (151) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
150554
- 240, /* (152) upsert ::= */
150555
- 240, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
150556
- 240, /* (154) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
150557
- 240, /* (155) upsert ::= ON CONFLICT DO NOTHING */
150558
- 238, /* (156) insert_cmd ::= INSERT orconf */
150559
- 238, /* (157) insert_cmd ::= REPLACE */
150560
- 239, /* (158) idlist_opt ::= */
150561
- 239, /* (159) idlist_opt ::= LP idlist RP */
150562
- 235, /* (160) idlist ::= idlist COMMA nm */
150563
- 235, /* (161) idlist ::= nm */
150564
- 189, /* (162) expr ::= LP expr RP */
150565
- 189, /* (163) expr ::= ID|INDEXED */
150566
- 189, /* (164) expr ::= JOIN_KW */
150567
- 189, /* (165) expr ::= nm DOT nm */
150568
- 189, /* (166) expr ::= nm DOT nm DOT nm */
150569
- 188, /* (167) term ::= NULL|FLOAT|BLOB */
150570
- 188, /* (168) term ::= STRING */
150571
- 188, /* (169) term ::= INTEGER */
150572
- 189, /* (170) expr ::= VARIABLE */
150573
- 189, /* (171) expr ::= expr COLLATE ID|STRING */
150574
- 189, /* (172) expr ::= CAST LP expr AS typetoken RP */
150575
- 189, /* (173) expr ::= ID|INDEXED LP distinct exprlist RP */
150576
- 189, /* (174) expr ::= ID|INDEXED LP STAR RP */
150577
- 189, /* (175) expr ::= ID|INDEXED LP distinct exprlist RP over_clause */
150578
- 189, /* (176) expr ::= ID|INDEXED LP STAR RP over_clause */
150579
- 188, /* (177) term ::= CTIME_KW */
150580
- 189, /* (178) expr ::= LP nexprlist COMMA expr RP */
150581
- 189, /* (179) expr ::= expr AND expr */
150582
- 189, /* (180) expr ::= expr OR expr */
150583
- 189, /* (181) expr ::= expr LT|GT|GE|LE expr */
150584
- 189, /* (182) expr ::= expr EQ|NE expr */
150585
- 189, /* (183) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
150586
- 189, /* (184) expr ::= expr PLUS|MINUS expr */
150587
- 189, /* (185) expr ::= expr STAR|SLASH|REM expr */
150588
- 189, /* (186) expr ::= expr CONCAT expr */
150589
- 242, /* (187) likeop ::= NOT LIKE_KW|MATCH */
150590
- 189, /* (188) expr ::= expr likeop expr */
150591
- 189, /* (189) expr ::= expr likeop expr ESCAPE expr */
150592
- 189, /* (190) expr ::= expr ISNULL|NOTNULL */
150593
- 189, /* (191) expr ::= expr NOT NULL */
150594
- 189, /* (192) expr ::= expr IS expr */
150595
- 189, /* (193) expr ::= expr IS NOT expr */
150596
- 189, /* (194) expr ::= NOT expr */
150597
- 189, /* (195) expr ::= BITNOT expr */
150598
- 189, /* (196) expr ::= PLUS|MINUS expr */
150599
- 243, /* (197) between_op ::= BETWEEN */
150600
- 243, /* (198) between_op ::= NOT BETWEEN */
150601
- 189, /* (199) expr ::= expr between_op expr AND expr */
150602
- 244, /* (200) in_op ::= IN */
150603
- 244, /* (201) in_op ::= NOT IN */
150604
- 189, /* (202) expr ::= expr in_op LP exprlist RP */
150605
- 189, /* (203) expr ::= LP select RP */
150606
- 189, /* (204) expr ::= expr in_op LP select RP */
150607
- 189, /* (205) expr ::= expr in_op nm dbnm paren_exprlist */
150608
- 189, /* (206) expr ::= EXISTS LP select RP */
150609
- 189, /* (207) expr ::= CASE case_operand case_exprlist case_else END */
150610
- 247, /* (208) case_exprlist ::= case_exprlist WHEN expr THEN expr */
150611
- 247, /* (209) case_exprlist ::= WHEN expr THEN expr */
150612
- 248, /* (210) case_else ::= ELSE expr */
150613
- 248, /* (211) case_else ::= */
150614
- 246, /* (212) case_operand ::= expr */
150615
- 246, /* (213) case_operand ::= */
150616
- 233, /* (214) exprlist ::= */
150617
- 224, /* (215) nexprlist ::= nexprlist COMMA expr */
150618
- 224, /* (216) nexprlist ::= expr */
150619
- 245, /* (217) paren_exprlist ::= */
150620
- 245, /* (218) paren_exprlist ::= LP exprlist RP */
150621
- 164, /* (219) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
150622
- 249, /* (220) uniqueflag ::= UNIQUE */
150623
- 249, /* (221) uniqueflag ::= */
150624
- 193, /* (222) eidlist_opt ::= */
150625
- 193, /* (223) eidlist_opt ::= LP eidlist RP */
150626
- 203, /* (224) eidlist ::= eidlist COMMA nm collate sortorder */
150627
- 203, /* (225) eidlist ::= nm collate sortorder */
150628
- 250, /* (226) collate ::= */
150629
- 250, /* (227) collate ::= COLLATE ID|STRING */
150630
- 164, /* (228) cmd ::= DROP INDEX ifexists fullname */
150631
- 164, /* (229) cmd ::= VACUUM vinto */
150632
- 164, /* (230) cmd ::= VACUUM nm vinto */
150633
- 251, /* (231) vinto ::= INTO expr */
150634
- 251, /* (232) vinto ::= */
150635
- 164, /* (233) cmd ::= PRAGMA nm dbnm */
150636
- 164, /* (234) cmd ::= PRAGMA nm dbnm EQ nmnum */
150637
- 164, /* (235) cmd ::= PRAGMA nm dbnm LP nmnum RP */
150638
- 164, /* (236) cmd ::= PRAGMA nm dbnm EQ minus_num */
150639
- 164, /* (237) cmd ::= PRAGMA nm dbnm LP minus_num RP */
150640
- 184, /* (238) plus_num ::= PLUS INTEGER|FLOAT */
150641
- 185, /* (239) minus_num ::= MINUS INTEGER|FLOAT */
150642
- 164, /* (240) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
150643
- 253, /* (241) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
150644
- 255, /* (242) trigger_time ::= BEFORE|AFTER */
150645
- 255, /* (243) trigger_time ::= INSTEAD OF */
150646
- 255, /* (244) trigger_time ::= */
150647
- 256, /* (245) trigger_event ::= DELETE|INSERT */
150648
- 256, /* (246) trigger_event ::= UPDATE */
150649
- 256, /* (247) trigger_event ::= UPDATE OF idlist */
150650
- 258, /* (248) when_clause ::= */
150651
- 258, /* (249) when_clause ::= WHEN expr */
150652
- 254, /* (250) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
150653
- 254, /* (251) trigger_cmd_list ::= trigger_cmd SEMI */
150654
- 260, /* (252) trnm ::= nm DOT nm */
150655
- 261, /* (253) tridxby ::= INDEXED BY nm */
150656
- 261, /* (254) tridxby ::= NOT INDEXED */
150657
- 259, /* (255) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
150658
- 259, /* (256) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
150659
- 259, /* (257) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
150660
- 259, /* (258) trigger_cmd ::= scanpt select scanpt */
150661
- 189, /* (259) expr ::= RAISE LP IGNORE RP */
150662
- 189, /* (260) expr ::= RAISE LP raisetype COMMA nm RP */
150663
- 207, /* (261) raisetype ::= ROLLBACK */
150664
- 207, /* (262) raisetype ::= ABORT */
150665
- 207, /* (263) raisetype ::= FAIL */
150666
- 164, /* (264) cmd ::= DROP TRIGGER ifexists fullname */
150667
- 164, /* (265) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
150668
- 164, /* (266) cmd ::= DETACH database_kw_opt expr */
150669
- 263, /* (267) key_opt ::= */
150670
- 263, /* (268) key_opt ::= KEY expr */
150671
- 164, /* (269) cmd ::= REINDEX */
150672
- 164, /* (270) cmd ::= REINDEX nm dbnm */
150673
- 164, /* (271) cmd ::= ANALYZE */
150674
- 164, /* (272) cmd ::= ANALYZE nm dbnm */
150675
- 164, /* (273) cmd ::= ALTER TABLE fullname RENAME TO nm */
150676
- 164, /* (274) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
150677
- 264, /* (275) add_column_fullname ::= fullname */
150678
- 164, /* (276) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
150679
- 164, /* (277) cmd ::= create_vtab */
150680
- 164, /* (278) cmd ::= create_vtab LP vtabarglist RP */
150681
- 266, /* (279) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
150682
- 268, /* (280) vtabarg ::= */
150683
- 269, /* (281) vtabargtoken ::= ANY */
150684
- 269, /* (282) vtabargtoken ::= lp anylist RP */
150685
- 270, /* (283) lp ::= LP */
150686
- 236, /* (284) with ::= WITH wqlist */
150687
- 236, /* (285) with ::= WITH RECURSIVE wqlist */
150688
- 212, /* (286) wqlist ::= nm eidlist_opt AS LP select RP */
150689
- 212, /* (287) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
150690
- 272, /* (288) windowdefn_list ::= windowdefn */
150691
- 272, /* (289) windowdefn_list ::= windowdefn_list COMMA windowdefn */
150692
- 273, /* (290) windowdefn ::= nm AS LP window RP */
150693
- 274, /* (291) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
150694
- 274, /* (292) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
150695
- 274, /* (293) window ::= ORDER BY sortlist frame_opt */
150696
- 274, /* (294) window ::= nm ORDER BY sortlist frame_opt */
150697
- 274, /* (295) window ::= frame_opt */
150698
- 274, /* (296) window ::= nm frame_opt */
150699
- 275, /* (297) frame_opt ::= */
150700
- 275, /* (298) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
150701
- 275, /* (299) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
150702
- 278, /* (300) range_or_rows ::= RANGE|ROWS|GROUPS */
150703
- 280, /* (301) frame_bound_s ::= frame_bound */
150704
- 280, /* (302) frame_bound_s ::= UNBOUNDED PRECEDING */
150705
- 281, /* (303) frame_bound_e ::= frame_bound */
150706
- 281, /* (304) frame_bound_e ::= UNBOUNDED FOLLOWING */
150707
- 279, /* (305) frame_bound ::= expr PRECEDING|FOLLOWING */
150708
- 279, /* (306) frame_bound ::= CURRENT ROW */
150709
- 282, /* (307) frame_exclude_opt ::= */
150710
- 282, /* (308) frame_exclude_opt ::= EXCLUDE frame_exclude */
150711
- 283, /* (309) frame_exclude ::= NO OTHERS */
150712
- 283, /* (310) frame_exclude ::= CURRENT ROW */
150713
- 283, /* (311) frame_exclude ::= GROUP|TIES */
150714
- 222, /* (312) window_clause ::= WINDOW windowdefn_list */
150715
- 241, /* (313) over_clause ::= filter_opt OVER LP window RP */
150716
- 241, /* (314) over_clause ::= filter_opt OVER nm */
150717
- 277, /* (315) filter_opt ::= */
150718
- 277, /* (316) filter_opt ::= FILTER LP WHERE expr RP */
150719
- 159, /* (317) input ::= cmdlist */
150720
- 160, /* (318) cmdlist ::= cmdlist ecmd */
150721
- 160, /* (319) cmdlist ::= ecmd */
150722
- 161, /* (320) ecmd ::= SEMI */
150723
- 161, /* (321) ecmd ::= cmdx SEMI */
150724
- 161, /* (322) ecmd ::= explain cmdx */
150725
- 166, /* (323) trans_opt ::= */
150726
- 166, /* (324) trans_opt ::= TRANSACTION */
150727
- 166, /* (325) trans_opt ::= TRANSACTION nm */
150728
- 168, /* (326) savepoint_opt ::= SAVEPOINT */
150729
- 168, /* (327) savepoint_opt ::= */
150730
- 164, /* (328) cmd ::= create_table create_table_args */
150731
- 175, /* (329) columnlist ::= columnlist COMMA columnname carglist */
150732
- 175, /* (330) columnlist ::= columnname carglist */
150733
- 167, /* (331) nm ::= ID|INDEXED */
150734
- 167, /* (332) nm ::= STRING */
150735
- 167, /* (333) nm ::= JOIN_KW */
150736
- 181, /* (334) typetoken ::= typename */
150737
- 182, /* (335) typename ::= ID|STRING */
150738
- 183, /* (336) signed ::= plus_num */
150739
- 183, /* (337) signed ::= minus_num */
150740
- 180, /* (338) carglist ::= carglist ccons */
150741
- 180, /* (339) carglist ::= */
150742
- 187, /* (340) ccons ::= NULL onconf */
150743
- 176, /* (341) conslist_opt ::= COMMA conslist */
150744
- 199, /* (342) conslist ::= conslist tconscomma tcons */
150745
- 199, /* (343) conslist ::= tcons */
150746
- 200, /* (344) tconscomma ::= */
150747
- 204, /* (345) defer_subclause_opt ::= defer_subclause */
150748
- 206, /* (346) resolvetype ::= raisetype */
150749
- 210, /* (347) selectnowith ::= oneselect */
150750
- 211, /* (348) oneselect ::= values */
150751
- 225, /* (349) sclp ::= selcollist COMMA */
150752
- 226, /* (350) as ::= ID|STRING */
150753
- 189, /* (351) expr ::= term */
150754
- 242, /* (352) likeop ::= LIKE_KW|MATCH */
150755
- 233, /* (353) exprlist ::= nexprlist */
150756
- 252, /* (354) nmnum ::= plus_num */
150757
- 252, /* (355) nmnum ::= nm */
150758
- 252, /* (356) nmnum ::= ON */
150759
- 252, /* (357) nmnum ::= DELETE */
150760
- 252, /* (358) nmnum ::= DEFAULT */
150761
- 184, /* (359) plus_num ::= INTEGER|FLOAT */
150762
- 257, /* (360) foreach_clause ::= */
150763
- 257, /* (361) foreach_clause ::= FOR EACH ROW */
150764
- 260, /* (362) trnm ::= nm */
150765
- 261, /* (363) tridxby ::= */
150766
- 262, /* (364) database_kw_opt ::= DATABASE */
150767
- 262, /* (365) database_kw_opt ::= */
150768
- 265, /* (366) kwcolumn_opt ::= */
150769
- 265, /* (367) kwcolumn_opt ::= COLUMNKW */
150770
- 267, /* (368) vtabarglist ::= vtabarg */
150771
- 267, /* (369) vtabarglist ::= vtabarglist COMMA vtabarg */
150772
- 268, /* (370) vtabarg ::= vtabarg vtabargtoken */
150773
- 271, /* (371) anylist ::= */
150774
- 271, /* (372) anylist ::= anylist LP anylist RP */
150775
- 271, /* (373) anylist ::= anylist ANY */
150776
- 236, /* (374) with ::= */
150464
+ 180, /* (0) explain ::= EXPLAIN */
150465
+ 180, /* (1) explain ::= EXPLAIN QUERY PLAN */
150466
+ 179, /* (2) cmdx ::= cmd */
150467
+ 181, /* (3) cmd ::= BEGIN transtype trans_opt */
150468
+ 182, /* (4) transtype ::= */
150469
+ 182, /* (5) transtype ::= DEFERRED */
150470
+ 182, /* (6) transtype ::= IMMEDIATE */
150471
+ 182, /* (7) transtype ::= EXCLUSIVE */
150472
+ 181, /* (8) cmd ::= COMMIT|END trans_opt */
150473
+ 181, /* (9) cmd ::= ROLLBACK trans_opt */
150474
+ 181, /* (10) cmd ::= SAVEPOINT nm */
150475
+ 181, /* (11) cmd ::= RELEASE savepoint_opt nm */
150476
+ 181, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
150477
+ 186, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
150478
+ 188, /* (14) createkw ::= CREATE */
150479
+ 190, /* (15) ifnotexists ::= */
150480
+ 190, /* (16) ifnotexists ::= IF NOT EXISTS */
150481
+ 189, /* (17) temp ::= TEMP */
150482
+ 189, /* (18) temp ::= */
150483
+ 187, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */
150484
+ 187, /* (20) create_table_args ::= AS select */
150485
+ 194, /* (21) table_options ::= */
150486
+ 194, /* (22) table_options ::= WITHOUT nm */
150487
+ 196, /* (23) columnname ::= nm typetoken */
150488
+ 198, /* (24) typetoken ::= */
150489
+ 198, /* (25) typetoken ::= typename LP signed RP */
150490
+ 198, /* (26) typetoken ::= typename LP signed COMMA signed RP */
150491
+ 199, /* (27) typename ::= typename ID|STRING */
150492
+ 203, /* (28) scanpt ::= */
150493
+ 204, /* (29) ccons ::= CONSTRAINT nm */
150494
+ 204, /* (30) ccons ::= DEFAULT scanpt term scanpt */
150495
+ 204, /* (31) ccons ::= DEFAULT LP expr RP */
150496
+ 204, /* (32) ccons ::= DEFAULT PLUS term scanpt */
150497
+ 204, /* (33) ccons ::= DEFAULT MINUS term scanpt */
150498
+ 204, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */
150499
+ 204, /* (35) ccons ::= NOT NULL onconf */
150500
+ 204, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */
150501
+ 204, /* (37) ccons ::= UNIQUE onconf */
150502
+ 204, /* (38) ccons ::= CHECK LP expr RP */
150503
+ 204, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */
150504
+ 204, /* (40) ccons ::= defer_subclause */
150505
+ 204, /* (41) ccons ::= COLLATE ID|STRING */
150506
+ 209, /* (42) autoinc ::= */
150507
+ 209, /* (43) autoinc ::= AUTOINCR */
150508
+ 211, /* (44) refargs ::= */
150509
+ 211, /* (45) refargs ::= refargs refarg */
150510
+ 213, /* (46) refarg ::= MATCH nm */
150511
+ 213, /* (47) refarg ::= ON INSERT refact */
150512
+ 213, /* (48) refarg ::= ON DELETE refact */
150513
+ 213, /* (49) refarg ::= ON UPDATE refact */
150514
+ 214, /* (50) refact ::= SET NULL */
150515
+ 214, /* (51) refact ::= SET DEFAULT */
150516
+ 214, /* (52) refact ::= CASCADE */
150517
+ 214, /* (53) refact ::= RESTRICT */
150518
+ 214, /* (54) refact ::= NO ACTION */
150519
+ 212, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
150520
+ 212, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
150521
+ 215, /* (57) init_deferred_pred_opt ::= */
150522
+ 215, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */
150523
+ 215, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
150524
+ 193, /* (60) conslist_opt ::= */
150525
+ 217, /* (61) tconscomma ::= COMMA */
150526
+ 218, /* (62) tcons ::= CONSTRAINT nm */
150527
+ 218, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
150528
+ 218, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */
150529
+ 218, /* (65) tcons ::= CHECK LP expr RP onconf */
150530
+ 218, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
150531
+ 221, /* (67) defer_subclause_opt ::= */
150532
+ 207, /* (68) onconf ::= */
150533
+ 207, /* (69) onconf ::= ON CONFLICT resolvetype */
150534
+ 222, /* (70) orconf ::= */
150535
+ 222, /* (71) orconf ::= OR resolvetype */
150536
+ 223, /* (72) resolvetype ::= IGNORE */
150537
+ 223, /* (73) resolvetype ::= REPLACE */
150538
+ 181, /* (74) cmd ::= DROP TABLE ifexists fullname */
150539
+ 225, /* (75) ifexists ::= IF EXISTS */
150540
+ 225, /* (76) ifexists ::= */
150541
+ 181, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
150542
+ 181, /* (78) cmd ::= DROP VIEW ifexists fullname */
150543
+ 181, /* (79) cmd ::= select */
150544
+ 195, /* (80) select ::= WITH wqlist selectnowith */
150545
+ 195, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
150546
+ 195, /* (82) select ::= selectnowith */
150547
+ 227, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
150548
+ 230, /* (84) multiselect_op ::= UNION */
150549
+ 230, /* (85) multiselect_op ::= UNION ALL */
150550
+ 230, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
150551
+ 228, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
150552
+ 228, /* (88) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
150553
+ 240, /* (89) values ::= VALUES LP nexprlist RP */
150554
+ 240, /* (90) values ::= values COMMA LP nexprlist RP */
150555
+ 231, /* (91) distinct ::= DISTINCT */
150556
+ 231, /* (92) distinct ::= ALL */
150557
+ 231, /* (93) distinct ::= */
150558
+ 242, /* (94) sclp ::= */
150559
+ 232, /* (95) selcollist ::= sclp scanpt expr scanpt as */
150560
+ 232, /* (96) selcollist ::= sclp scanpt STAR */
150561
+ 232, /* (97) selcollist ::= sclp scanpt nm DOT STAR */
150562
+ 243, /* (98) as ::= AS nm */
150563
+ 243, /* (99) as ::= */
150564
+ 233, /* (100) from ::= */
150565
+ 233, /* (101) from ::= FROM seltablist */
150566
+ 245, /* (102) stl_prefix ::= seltablist joinop */
150567
+ 245, /* (103) stl_prefix ::= */
150568
+ 244, /* (104) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
150569
+ 244, /* (105) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
150570
+ 244, /* (106) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
150571
+ 244, /* (107) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
150572
+ 191, /* (108) dbnm ::= */
150573
+ 191, /* (109) dbnm ::= DOT nm */
150574
+ 226, /* (110) fullname ::= nm */
150575
+ 226, /* (111) fullname ::= nm DOT nm */
150576
+ 251, /* (112) xfullname ::= nm */
150577
+ 251, /* (113) xfullname ::= nm DOT nm */
150578
+ 251, /* (114) xfullname ::= nm DOT nm AS nm */
150579
+ 251, /* (115) xfullname ::= nm AS nm */
150580
+ 246, /* (116) joinop ::= COMMA|JOIN */
150581
+ 246, /* (117) joinop ::= JOIN_KW JOIN */
150582
+ 246, /* (118) joinop ::= JOIN_KW nm JOIN */
150583
+ 246, /* (119) joinop ::= JOIN_KW nm nm JOIN */
150584
+ 248, /* (120) on_opt ::= ON expr */
150585
+ 248, /* (121) on_opt ::= */
150586
+ 247, /* (122) indexed_opt ::= */
150587
+ 247, /* (123) indexed_opt ::= INDEXED BY nm */
150588
+ 247, /* (124) indexed_opt ::= NOT INDEXED */
150589
+ 249, /* (125) using_opt ::= USING LP idlist RP */
150590
+ 249, /* (126) using_opt ::= */
150591
+ 237, /* (127) orderby_opt ::= */
150592
+ 237, /* (128) orderby_opt ::= ORDER BY sortlist */
150593
+ 219, /* (129) sortlist ::= sortlist COMMA expr sortorder */
150594
+ 219, /* (130) sortlist ::= expr sortorder */
150595
+ 208, /* (131) sortorder ::= ASC */
150596
+ 208, /* (132) sortorder ::= DESC */
150597
+ 208, /* (133) sortorder ::= */
150598
+ 235, /* (134) groupby_opt ::= */
150599
+ 235, /* (135) groupby_opt ::= GROUP BY nexprlist */
150600
+ 236, /* (136) having_opt ::= */
150601
+ 236, /* (137) having_opt ::= HAVING expr */
150602
+ 238, /* (138) limit_opt ::= */
150603
+ 238, /* (139) limit_opt ::= LIMIT expr */
150604
+ 238, /* (140) limit_opt ::= LIMIT expr OFFSET expr */
150605
+ 238, /* (141) limit_opt ::= LIMIT expr COMMA expr */
150606
+ 181, /* (142) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
150607
+ 234, /* (143) where_opt ::= */
150608
+ 234, /* (144) where_opt ::= WHERE expr */
150609
+ 181, /* (145) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
150610
+ 254, /* (146) setlist ::= setlist COMMA nm EQ expr */
150611
+ 254, /* (147) setlist ::= setlist COMMA LP idlist RP EQ expr */
150612
+ 254, /* (148) setlist ::= nm EQ expr */
150613
+ 254, /* (149) setlist ::= LP idlist RP EQ expr */
150614
+ 181, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
150615
+ 181, /* (151) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
150616
+ 257, /* (152) upsert ::= */
150617
+ 257, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
150618
+ 257, /* (154) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
150619
+ 257, /* (155) upsert ::= ON CONFLICT DO NOTHING */
150620
+ 255, /* (156) insert_cmd ::= INSERT orconf */
150621
+ 255, /* (157) insert_cmd ::= REPLACE */
150622
+ 256, /* (158) idlist_opt ::= */
150623
+ 256, /* (159) idlist_opt ::= LP idlist RP */
150624
+ 252, /* (160) idlist ::= idlist COMMA nm */
150625
+ 252, /* (161) idlist ::= nm */
150626
+ 206, /* (162) expr ::= LP expr RP */
150627
+ 206, /* (163) expr ::= ID|INDEXED */
150628
+ 206, /* (164) expr ::= JOIN_KW */
150629
+ 206, /* (165) expr ::= nm DOT nm */
150630
+ 206, /* (166) expr ::= nm DOT nm DOT nm */
150631
+ 205, /* (167) term ::= NULL|FLOAT|BLOB */
150632
+ 205, /* (168) term ::= STRING */
150633
+ 205, /* (169) term ::= INTEGER */
150634
+ 206, /* (170) expr ::= VARIABLE */
150635
+ 206, /* (171) expr ::= expr COLLATE ID|STRING */
150636
+ 206, /* (172) expr ::= CAST LP expr AS typetoken RP */
150637
+ 206, /* (173) expr ::= ID|INDEXED LP distinct exprlist RP */
150638
+ 206, /* (174) expr ::= ID|INDEXED LP STAR RP */
150639
+ 206, /* (175) expr ::= ID|INDEXED LP distinct exprlist RP over_clause */
150640
+ 206, /* (176) expr ::= ID|INDEXED LP STAR RP over_clause */
150641
+ 205, /* (177) term ::= CTIME_KW */
150642
+ 206, /* (178) expr ::= LP nexprlist COMMA expr RP */
150643
+ 206, /* (179) expr ::= expr AND expr */
150644
+ 206, /* (180) expr ::= expr OR expr */
150645
+ 206, /* (181) expr ::= expr LT|GT|GE|LE expr */
150646
+ 206, /* (182) expr ::= expr EQ|NE expr */
150647
+ 206, /* (183) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
150648
+ 206, /* (184) expr ::= expr PLUS|MINUS expr */
150649
+ 206, /* (185) expr ::= expr STAR|SLASH|REM expr */
150650
+ 206, /* (186) expr ::= expr CONCAT expr */
150651
+ 259, /* (187) likeop ::= NOT LIKE_KW|MATCH */
150652
+ 206, /* (188) expr ::= expr likeop expr */
150653
+ 206, /* (189) expr ::= expr likeop expr ESCAPE expr */
150654
+ 206, /* (190) expr ::= expr ISNULL|NOTNULL */
150655
+ 206, /* (191) expr ::= expr NOT NULL */
150656
+ 206, /* (192) expr ::= expr IS expr */
150657
+ 206, /* (193) expr ::= expr IS NOT expr */
150658
+ 206, /* (194) expr ::= NOT expr */
150659
+ 206, /* (195) expr ::= BITNOT expr */
150660
+ 206, /* (196) expr ::= PLUS|MINUS expr */
150661
+ 260, /* (197) between_op ::= BETWEEN */
150662
+ 260, /* (198) between_op ::= NOT BETWEEN */
150663
+ 206, /* (199) expr ::= expr between_op expr AND expr */
150664
+ 261, /* (200) in_op ::= IN */
150665
+ 261, /* (201) in_op ::= NOT IN */
150666
+ 206, /* (202) expr ::= expr in_op LP exprlist RP */
150667
+ 206, /* (203) expr ::= LP select RP */
150668
+ 206, /* (204) expr ::= expr in_op LP select RP */
150669
+ 206, /* (205) expr ::= expr in_op nm dbnm paren_exprlist */
150670
+ 206, /* (206) expr ::= EXISTS LP select RP */
150671
+ 206, /* (207) expr ::= CASE case_operand case_exprlist case_else END */
150672
+ 264, /* (208) case_exprlist ::= case_exprlist WHEN expr THEN expr */
150673
+ 264, /* (209) case_exprlist ::= WHEN expr THEN expr */
150674
+ 265, /* (210) case_else ::= ELSE expr */
150675
+ 265, /* (211) case_else ::= */
150676
+ 263, /* (212) case_operand ::= expr */
150677
+ 263, /* (213) case_operand ::= */
150678
+ 250, /* (214) exprlist ::= */
150679
+ 241, /* (215) nexprlist ::= nexprlist COMMA expr */
150680
+ 241, /* (216) nexprlist ::= expr */
150681
+ 262, /* (217) paren_exprlist ::= */
150682
+ 262, /* (218) paren_exprlist ::= LP exprlist RP */
150683
+ 181, /* (219) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
150684
+ 266, /* (220) uniqueflag ::= UNIQUE */
150685
+ 266, /* (221) uniqueflag ::= */
150686
+ 210, /* (222) eidlist_opt ::= */
150687
+ 210, /* (223) eidlist_opt ::= LP eidlist RP */
150688
+ 220, /* (224) eidlist ::= eidlist COMMA nm collate sortorder */
150689
+ 220, /* (225) eidlist ::= nm collate sortorder */
150690
+ 267, /* (226) collate ::= */
150691
+ 267, /* (227) collate ::= COLLATE ID|STRING */
150692
+ 181, /* (228) cmd ::= DROP INDEX ifexists fullname */
150693
+ 181, /* (229) cmd ::= VACUUM vinto */
150694
+ 181, /* (230) cmd ::= VACUUM nm vinto */
150695
+ 268, /* (231) vinto ::= INTO expr */
150696
+ 268, /* (232) vinto ::= */
150697
+ 181, /* (233) cmd ::= PRAGMA nm dbnm */
150698
+ 181, /* (234) cmd ::= PRAGMA nm dbnm EQ nmnum */
150699
+ 181, /* (235) cmd ::= PRAGMA nm dbnm LP nmnum RP */
150700
+ 181, /* (236) cmd ::= PRAGMA nm dbnm EQ minus_num */
150701
+ 181, /* (237) cmd ::= PRAGMA nm dbnm LP minus_num RP */
150702
+ 201, /* (238) plus_num ::= PLUS INTEGER|FLOAT */
150703
+ 202, /* (239) minus_num ::= MINUS INTEGER|FLOAT */
150704
+ 181, /* (240) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
150705
+ 270, /* (241) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
150706
+ 272, /* (242) trigger_time ::= BEFORE|AFTER */
150707
+ 272, /* (243) trigger_time ::= INSTEAD OF */
150708
+ 272, /* (244) trigger_time ::= */
150709
+ 273, /* (245) trigger_event ::= DELETE|INSERT */
150710
+ 273, /* (246) trigger_event ::= UPDATE */
150711
+ 273, /* (247) trigger_event ::= UPDATE OF idlist */
150712
+ 275, /* (248) when_clause ::= */
150713
+ 275, /* (249) when_clause ::= WHEN expr */
150714
+ 271, /* (250) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
150715
+ 271, /* (251) trigger_cmd_list ::= trigger_cmd SEMI */
150716
+ 277, /* (252) trnm ::= nm DOT nm */
150717
+ 278, /* (253) tridxby ::= INDEXED BY nm */
150718
+ 278, /* (254) tridxby ::= NOT INDEXED */
150719
+ 276, /* (255) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
150720
+ 276, /* (256) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
150721
+ 276, /* (257) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
150722
+ 276, /* (258) trigger_cmd ::= scanpt select scanpt */
150723
+ 206, /* (259) expr ::= RAISE LP IGNORE RP */
150724
+ 206, /* (260) expr ::= RAISE LP raisetype COMMA nm RP */
150725
+ 224, /* (261) raisetype ::= ROLLBACK */
150726
+ 224, /* (262) raisetype ::= ABORT */
150727
+ 224, /* (263) raisetype ::= FAIL */
150728
+ 181, /* (264) cmd ::= DROP TRIGGER ifexists fullname */
150729
+ 181, /* (265) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
150730
+ 181, /* (266) cmd ::= DETACH database_kw_opt expr */
150731
+ 280, /* (267) key_opt ::= */
150732
+ 280, /* (268) key_opt ::= KEY expr */
150733
+ 181, /* (269) cmd ::= REINDEX */
150734
+ 181, /* (270) cmd ::= REINDEX nm dbnm */
150735
+ 181, /* (271) cmd ::= ANALYZE */
150736
+ 181, /* (272) cmd ::= ANALYZE nm dbnm */
150737
+ 181, /* (273) cmd ::= ALTER TABLE fullname RENAME TO nm */
150738
+ 181, /* (274) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
150739
+ 281, /* (275) add_column_fullname ::= fullname */
150740
+ 181, /* (276) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
150741
+ 181, /* (277) cmd ::= create_vtab */
150742
+ 181, /* (278) cmd ::= create_vtab LP vtabarglist RP */
150743
+ 283, /* (279) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
150744
+ 285, /* (280) vtabarg ::= */
150745
+ 286, /* (281) vtabargtoken ::= ANY */
150746
+ 286, /* (282) vtabargtoken ::= lp anylist RP */
150747
+ 287, /* (283) lp ::= LP */
150748
+ 253, /* (284) with ::= WITH wqlist */
150749
+ 253, /* (285) with ::= WITH RECURSIVE wqlist */
150750
+ 229, /* (286) wqlist ::= nm eidlist_opt AS LP select RP */
150751
+ 229, /* (287) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
150752
+ 289, /* (288) windowdefn_list ::= windowdefn */
150753
+ 289, /* (289) windowdefn_list ::= windowdefn_list COMMA windowdefn */
150754
+ 290, /* (290) windowdefn ::= nm AS LP window RP */
150755
+ 291, /* (291) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
150756
+ 291, /* (292) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
150757
+ 291, /* (293) window ::= ORDER BY sortlist frame_opt */
150758
+ 291, /* (294) window ::= nm ORDER BY sortlist frame_opt */
150759
+ 291, /* (295) window ::= frame_opt */
150760
+ 291, /* (296) window ::= nm frame_opt */
150761
+ 292, /* (297) frame_opt ::= */
150762
+ 292, /* (298) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
150763
+ 292, /* (299) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
150764
+ 295, /* (300) range_or_rows ::= RANGE|ROWS|GROUPS */
150765
+ 297, /* (301) frame_bound_s ::= frame_bound */
150766
+ 297, /* (302) frame_bound_s ::= UNBOUNDED PRECEDING */
150767
+ 298, /* (303) frame_bound_e ::= frame_bound */
150768
+ 298, /* (304) frame_bound_e ::= UNBOUNDED FOLLOWING */
150769
+ 296, /* (305) frame_bound ::= expr PRECEDING|FOLLOWING */
150770
+ 296, /* (306) frame_bound ::= CURRENT ROW */
150771
+ 299, /* (307) frame_exclude_opt ::= */
150772
+ 299, /* (308) frame_exclude_opt ::= EXCLUDE frame_exclude */
150773
+ 300, /* (309) frame_exclude ::= NO OTHERS */
150774
+ 300, /* (310) frame_exclude ::= CURRENT ROW */
150775
+ 300, /* (311) frame_exclude ::= GROUP|TIES */
150776
+ 239, /* (312) window_clause ::= WINDOW windowdefn_list */
150777
+ 258, /* (313) over_clause ::= filter_opt OVER LP window RP */
150778
+ 258, /* (314) over_clause ::= filter_opt OVER nm */
150779
+ 294, /* (315) filter_opt ::= */
150780
+ 294, /* (316) filter_opt ::= FILTER LP WHERE expr RP */
150781
+ 176, /* (317) input ::= cmdlist */
150782
+ 177, /* (318) cmdlist ::= cmdlist ecmd */
150783
+ 177, /* (319) cmdlist ::= ecmd */
150784
+ 178, /* (320) ecmd ::= SEMI */
150785
+ 178, /* (321) ecmd ::= cmdx SEMI */
150786
+ 178, /* (322) ecmd ::= explain cmdx */
150787
+ 183, /* (323) trans_opt ::= */
150788
+ 183, /* (324) trans_opt ::= TRANSACTION */
150789
+ 183, /* (325) trans_opt ::= TRANSACTION nm */
150790
+ 185, /* (326) savepoint_opt ::= SAVEPOINT */
150791
+ 185, /* (327) savepoint_opt ::= */
150792
+ 181, /* (328) cmd ::= create_table create_table_args */
150793
+ 192, /* (329) columnlist ::= columnlist COMMA columnname carglist */
150794
+ 192, /* (330) columnlist ::= columnname carglist */
150795
+ 184, /* (331) nm ::= ID|INDEXED */
150796
+ 184, /* (332) nm ::= STRING */
150797
+ 184, /* (333) nm ::= JOIN_KW */
150798
+ 198, /* (334) typetoken ::= typename */
150799
+ 199, /* (335) typename ::= ID|STRING */
150800
+ 200, /* (336) signed ::= plus_num */
150801
+ 200, /* (337) signed ::= minus_num */
150802
+ 197, /* (338) carglist ::= carglist ccons */
150803
+ 197, /* (339) carglist ::= */
150804
+ 204, /* (340) ccons ::= NULL onconf */
150805
+ 193, /* (341) conslist_opt ::= COMMA conslist */
150806
+ 216, /* (342) conslist ::= conslist tconscomma tcons */
150807
+ 216, /* (343) conslist ::= tcons */
150808
+ 217, /* (344) tconscomma ::= */
150809
+ 221, /* (345) defer_subclause_opt ::= defer_subclause */
150810
+ 223, /* (346) resolvetype ::= raisetype */
150811
+ 227, /* (347) selectnowith ::= oneselect */
150812
+ 228, /* (348) oneselect ::= values */
150813
+ 242, /* (349) sclp ::= selcollist COMMA */
150814
+ 243, /* (350) as ::= ID|STRING */
150815
+ 206, /* (351) expr ::= term */
150816
+ 259, /* (352) likeop ::= LIKE_KW|MATCH */
150817
+ 250, /* (353) exprlist ::= nexprlist */
150818
+ 269, /* (354) nmnum ::= plus_num */
150819
+ 269, /* (355) nmnum ::= nm */
150820
+ 269, /* (356) nmnum ::= ON */
150821
+ 269, /* (357) nmnum ::= DELETE */
150822
+ 269, /* (358) nmnum ::= DEFAULT */
150823
+ 201, /* (359) plus_num ::= INTEGER|FLOAT */
150824
+ 274, /* (360) foreach_clause ::= */
150825
+ 274, /* (361) foreach_clause ::= FOR EACH ROW */
150826
+ 277, /* (362) trnm ::= nm */
150827
+ 278, /* (363) tridxby ::= */
150828
+ 279, /* (364) database_kw_opt ::= DATABASE */
150829
+ 279, /* (365) database_kw_opt ::= */
150830
+ 282, /* (366) kwcolumn_opt ::= */
150831
+ 282, /* (367) kwcolumn_opt ::= COLUMNKW */
150832
+ 284, /* (368) vtabarglist ::= vtabarg */
150833
+ 284, /* (369) vtabarglist ::= vtabarglist COMMA vtabarg */
150834
+ 285, /* (370) vtabarg ::= vtabarg vtabargtoken */
150835
+ 288, /* (371) anylist ::= */
150836
+ 288, /* (372) anylist ::= anylist LP anylist RP */
150837
+ 288, /* (373) anylist ::= anylist ANY */
150838
+ 253, /* (374) with ::= */
150777150839
};
150778150840
150779150841
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
150780150842
** of symbols on the right-hand side of that rule. */
150781150843
static const signed char yyRuleInfoNRhs[] = {
@@ -151248,20 +151310,20 @@
151248151310
break;
151249151311
case 2: /* cmdx ::= cmd */
151250151312
{ sqlite3FinishCoding(pParse); }
151251151313
break;
151252151314
case 3: /* cmd ::= BEGIN transtype trans_opt */
151253
-{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy420);}
151315
+{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy494);}
151254151316
break;
151255151317
case 4: /* transtype ::= */
151256
-{yymsp[1].minor.yy420 = TK_DEFERRED;}
151318
+{yymsp[1].minor.yy494 = TK_DEFERRED;}
151257151319
break;
151258151320
case 5: /* transtype ::= DEFERRED */
151259151321
case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6);
151260151322
case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7);
151261151323
case 300: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==300);
151262
-{yymsp[0].minor.yy420 = yymsp[0].major; /*A-overwrites-X*/}
151324
+{yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-X*/}
151263151325
break;
151264151326
case 8: /* cmd ::= COMMIT|END trans_opt */
151265151327
case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9);
151266151328
{sqlite3EndTransaction(pParse,yymsp[-1].major);}
151267151329
break;
@@ -151280,11 +151342,11 @@
151280151342
sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
151281151343
}
151282151344
break;
151283151345
case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
151284151346
{
151285
- sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy420,0,0,yymsp[-2].minor.yy420);
151347
+ sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy494,0,0,yymsp[-2].minor.yy494);
151286151348
}
151287151349
break;
151288151350
case 14: /* createkw ::= CREATE */
151289151351
{disableLookaside(pParse);}
151290151352
break;
@@ -151295,36 +151357,36 @@
151295151357
case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
151296151358
case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
151297151359
case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
151298151360
case 93: /* distinct ::= */ yytestcase(yyruleno==93);
151299151361
case 226: /* collate ::= */ yytestcase(yyruleno==226);
151300
-{yymsp[1].minor.yy420 = 0;}
151362
+{yymsp[1].minor.yy494 = 0;}
151301151363
break;
151302151364
case 16: /* ifnotexists ::= IF NOT EXISTS */
151303
-{yymsp[-2].minor.yy420 = 1;}
151365
+{yymsp[-2].minor.yy494 = 1;}
151304151366
break;
151305151367
case 17: /* temp ::= TEMP */
151306151368
case 43: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==43);
151307
-{yymsp[0].minor.yy420 = 1;}
151369
+{yymsp[0].minor.yy494 = 1;}
151308151370
break;
151309151371
case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_options */
151310151372
{
151311
- sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy420,0);
151373
+ sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy494,0);
151312151374
}
151313151375
break;
151314151376
case 20: /* create_table_args ::= AS select */
151315151377
{
151316
- sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy491);
151317
- sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy491);
151378
+ sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy457);
151379
+ sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy457);
151318151380
}
151319151381
break;
151320151382
case 22: /* table_options ::= WITHOUT nm */
151321151383
{
151322151384
if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
151323
- yymsp[-1].minor.yy420 = TF_WithoutRowid | TF_NoVisibleRowid;
151385
+ yymsp[-1].minor.yy494 = TF_WithoutRowid | TF_NoVisibleRowid;
151324151386
}else{
151325
- yymsp[-1].minor.yy420 = 0;
151387
+ yymsp[-1].minor.yy494 = 0;
151326151388
sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
151327151389
}
151328151390
}
151329151391
break;
151330151392
case 23: /* columnname ::= nm typetoken */
@@ -151349,30 +151411,30 @@
151349151411
{yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
151350151412
break;
151351151413
case 28: /* scanpt ::= */
151352151414
{
151353151415
assert( yyLookahead!=YYNOCODE );
151354
- yymsp[1].minor.yy104 = yyLookaheadToken.z;
151416
+ yymsp[1].minor.yy294 = yyLookaheadToken.z;
151355151417
}
151356151418
break;
151357151419
case 29: /* ccons ::= CONSTRAINT nm */
151358151420
case 62: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==62);
151359151421
{pParse->constraintName = yymsp[0].minor.yy0;}
151360151422
break;
151361151423
case 30: /* ccons ::= DEFAULT scanpt term scanpt */
151362
-{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy130,yymsp[-2].minor.yy104,yymsp[0].minor.yy104);}
151424
+{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy294,yymsp[0].minor.yy294);}
151363151425
break;
151364151426
case 31: /* ccons ::= DEFAULT LP expr RP */
151365
-{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy130,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
151427
+{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
151366151428
break;
151367151429
case 32: /* ccons ::= DEFAULT PLUS term scanpt */
151368
-{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy130,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy104);}
151430
+{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy294);}
151369151431
break;
151370151432
case 33: /* ccons ::= DEFAULT MINUS term scanpt */
151371151433
{
151372
- Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy130, 0);
151373
- sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy104);
151434
+ Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy524, 0);
151435
+ sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy294);
151374151436
}
151375151437
break;
151376151438
case 34: /* ccons ::= DEFAULT scanpt ID|INDEXED */
151377151439
{
151378151440
Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0);
@@ -151382,319 +151444,319 @@
151382151444
}
151383151445
sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n);
151384151446
}
151385151447
break;
151386151448
case 35: /* ccons ::= NOT NULL onconf */
151387
-{sqlite3AddNotNull(pParse, yymsp[0].minor.yy420);}
151449
+{sqlite3AddNotNull(pParse, yymsp[0].minor.yy494);}
151388151450
break;
151389151451
case 36: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
151390
-{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy420,yymsp[0].minor.yy420,yymsp[-2].minor.yy420);}
151452
+{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy494,yymsp[0].minor.yy494,yymsp[-2].minor.yy494);}
151391151453
break;
151392151454
case 37: /* ccons ::= UNIQUE onconf */
151393
-{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy420,0,0,0,0,
151455
+{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy494,0,0,0,0,
151394151456
SQLITE_IDXTYPE_UNIQUE);}
151395151457
break;
151396151458
case 38: /* ccons ::= CHECK LP expr RP */
151397
-{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy130);}
151459
+{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy524);}
151398151460
break;
151399151461
case 39: /* ccons ::= REFERENCES nm eidlist_opt refargs */
151400
-{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy442,yymsp[0].minor.yy420);}
151462
+{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy434,yymsp[0].minor.yy494);}
151401151463
break;
151402151464
case 40: /* ccons ::= defer_subclause */
151403
-{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy420);}
151465
+{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy494);}
151404151466
break;
151405151467
case 41: /* ccons ::= COLLATE ID|STRING */
151406151468
{sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
151407151469
break;
151408151470
case 44: /* refargs ::= */
151409
-{ yymsp[1].minor.yy420 = OE_None*0x0101; /* EV: R-19803-45884 */}
151471
+{ yymsp[1].minor.yy494 = OE_None*0x0101; /* EV: R-19803-45884 */}
151410151472
break;
151411151473
case 45: /* refargs ::= refargs refarg */
151412
-{ yymsp[-1].minor.yy420 = (yymsp[-1].minor.yy420 & ~yymsp[0].minor.yy527.mask) | yymsp[0].minor.yy527.value; }
151474
+{ yymsp[-1].minor.yy494 = (yymsp[-1].minor.yy494 & ~yymsp[0].minor.yy355.mask) | yymsp[0].minor.yy355.value; }
151413151475
break;
151414151476
case 46: /* refarg ::= MATCH nm */
151415
-{ yymsp[-1].minor.yy527.value = 0; yymsp[-1].minor.yy527.mask = 0x000000; }
151477
+{ yymsp[-1].minor.yy355.value = 0; yymsp[-1].minor.yy355.mask = 0x000000; }
151416151478
break;
151417151479
case 47: /* refarg ::= ON INSERT refact */
151418
-{ yymsp[-2].minor.yy527.value = 0; yymsp[-2].minor.yy527.mask = 0x000000; }
151480
+{ yymsp[-2].minor.yy355.value = 0; yymsp[-2].minor.yy355.mask = 0x000000; }
151419151481
break;
151420151482
case 48: /* refarg ::= ON DELETE refact */
151421
-{ yymsp[-2].minor.yy527.value = yymsp[0].minor.yy420; yymsp[-2].minor.yy527.mask = 0x0000ff; }
151483
+{ yymsp[-2].minor.yy355.value = yymsp[0].minor.yy494; yymsp[-2].minor.yy355.mask = 0x0000ff; }
151422151484
break;
151423151485
case 49: /* refarg ::= ON UPDATE refact */
151424
-{ yymsp[-2].minor.yy527.value = yymsp[0].minor.yy420<<8; yymsp[-2].minor.yy527.mask = 0x00ff00; }
151486
+{ yymsp[-2].minor.yy355.value = yymsp[0].minor.yy494<<8; yymsp[-2].minor.yy355.mask = 0x00ff00; }
151425151487
break;
151426151488
case 50: /* refact ::= SET NULL */
151427
-{ yymsp[-1].minor.yy420 = OE_SetNull; /* EV: R-33326-45252 */}
151489
+{ yymsp[-1].minor.yy494 = OE_SetNull; /* EV: R-33326-45252 */}
151428151490
break;
151429151491
case 51: /* refact ::= SET DEFAULT */
151430
-{ yymsp[-1].minor.yy420 = OE_SetDflt; /* EV: R-33326-45252 */}
151492
+{ yymsp[-1].minor.yy494 = OE_SetDflt; /* EV: R-33326-45252 */}
151431151493
break;
151432151494
case 52: /* refact ::= CASCADE */
151433
-{ yymsp[0].minor.yy420 = OE_Cascade; /* EV: R-33326-45252 */}
151495
+{ yymsp[0].minor.yy494 = OE_Cascade; /* EV: R-33326-45252 */}
151434151496
break;
151435151497
case 53: /* refact ::= RESTRICT */
151436
-{ yymsp[0].minor.yy420 = OE_Restrict; /* EV: R-33326-45252 */}
151498
+{ yymsp[0].minor.yy494 = OE_Restrict; /* EV: R-33326-45252 */}
151437151499
break;
151438151500
case 54: /* refact ::= NO ACTION */
151439
-{ yymsp[-1].minor.yy420 = OE_None; /* EV: R-33326-45252 */}
151501
+{ yymsp[-1].minor.yy494 = OE_None; /* EV: R-33326-45252 */}
151440151502
break;
151441151503
case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
151442
-{yymsp[-2].minor.yy420 = 0;}
151504
+{yymsp[-2].minor.yy494 = 0;}
151443151505
break;
151444151506
case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
151445151507
case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
151446151508
case 156: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==156);
151447
-{yymsp[-1].minor.yy420 = yymsp[0].minor.yy420;}
151509
+{yymsp[-1].minor.yy494 = yymsp[0].minor.yy494;}
151448151510
break;
151449151511
case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
151450151512
case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
151451151513
case 198: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==198);
151452151514
case 201: /* in_op ::= NOT IN */ yytestcase(yyruleno==201);
151453151515
case 227: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==227);
151454
-{yymsp[-1].minor.yy420 = 1;}
151516
+{yymsp[-1].minor.yy494 = 1;}
151455151517
break;
151456151518
case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
151457
-{yymsp[-1].minor.yy420 = 0;}
151519
+{yymsp[-1].minor.yy494 = 0;}
151458151520
break;
151459151521
case 61: /* tconscomma ::= COMMA */
151460151522
{pParse->constraintName.n = 0;}
151461151523
break;
151462151524
case 63: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
151463
-{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy420,yymsp[-2].minor.yy420,0);}
151525
+{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy434,yymsp[0].minor.yy494,yymsp[-2].minor.yy494,0);}
151464151526
break;
151465151527
case 64: /* tcons ::= UNIQUE LP sortlist RP onconf */
151466
-{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy420,0,0,0,0,
151528
+{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy434,yymsp[0].minor.yy494,0,0,0,0,
151467151529
SQLITE_IDXTYPE_UNIQUE);}
151468151530
break;
151469151531
case 65: /* tcons ::= CHECK LP expr RP onconf */
151470
-{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy130);}
151532
+{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy524);}
151471151533
break;
151472151534
case 66: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
151473151535
{
151474
- sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy442, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy420);
151475
- sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy420);
151536
+ sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy434, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy434, yymsp[-1].minor.yy494);
151537
+ sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy494);
151476151538
}
151477151539
break;
151478151540
case 68: /* onconf ::= */
151479151541
case 70: /* orconf ::= */ yytestcase(yyruleno==70);
151480
-{yymsp[1].minor.yy420 = OE_Default;}
151542
+{yymsp[1].minor.yy494 = OE_Default;}
151481151543
break;
151482151544
case 69: /* onconf ::= ON CONFLICT resolvetype */
151483
-{yymsp[-2].minor.yy420 = yymsp[0].minor.yy420;}
151545
+{yymsp[-2].minor.yy494 = yymsp[0].minor.yy494;}
151484151546
break;
151485151547
case 72: /* resolvetype ::= IGNORE */
151486
-{yymsp[0].minor.yy420 = OE_Ignore;}
151548
+{yymsp[0].minor.yy494 = OE_Ignore;}
151487151549
break;
151488151550
case 73: /* resolvetype ::= REPLACE */
151489151551
case 157: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==157);
151490
-{yymsp[0].minor.yy420 = OE_Replace;}
151552
+{yymsp[0].minor.yy494 = OE_Replace;}
151491151553
break;
151492151554
case 74: /* cmd ::= DROP TABLE ifexists fullname */
151493151555
{
151494
- sqlite3DropTable(pParse, yymsp[0].minor.yy147, 0, yymsp[-1].minor.yy420);
151556
+ sqlite3DropTable(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy494);
151495151557
}
151496151558
break;
151497151559
case 77: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
151498151560
{
151499
- sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[0].minor.yy491, yymsp[-7].minor.yy420, yymsp[-5].minor.yy420);
151561
+ sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy434, yymsp[0].minor.yy457, yymsp[-7].minor.yy494, yymsp[-5].minor.yy494);
151500151562
}
151501151563
break;
151502151564
case 78: /* cmd ::= DROP VIEW ifexists fullname */
151503151565
{
151504
- sqlite3DropTable(pParse, yymsp[0].minor.yy147, 1, yymsp[-1].minor.yy420);
151566
+ sqlite3DropTable(pParse, yymsp[0].minor.yy483, 1, yymsp[-1].minor.yy494);
151505151567
}
151506151568
break;
151507151569
case 79: /* cmd ::= select */
151508151570
{
151509151571
SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
151510
- sqlite3Select(pParse, yymsp[0].minor.yy491, &dest);
151511
- sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy491);
151572
+ sqlite3Select(pParse, yymsp[0].minor.yy457, &dest);
151573
+ sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy457);
151512151574
}
151513151575
break;
151514151576
case 80: /* select ::= WITH wqlist selectnowith */
151515151577
{
151516
- Select *p = yymsp[0].minor.yy491;
151578
+ Select *p = yymsp[0].minor.yy457;
151517151579
if( p ){
151518
- p->pWith = yymsp[-1].minor.yy523;
151580
+ p->pWith = yymsp[-1].minor.yy59;
151519151581
parserDoubleLinkSelect(pParse, p);
151520151582
}else{
151521
- sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy523);
151583
+ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy59);
151522151584
}
151523
- yymsp[-2].minor.yy491 = p;
151585
+ yymsp[-2].minor.yy457 = p;
151524151586
}
151525151587
break;
151526151588
case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
151527151589
{
151528
- Select *p = yymsp[0].minor.yy491;
151590
+ Select *p = yymsp[0].minor.yy457;
151529151591
if( p ){
151530
- p->pWith = yymsp[-1].minor.yy523;
151592
+ p->pWith = yymsp[-1].minor.yy59;
151531151593
parserDoubleLinkSelect(pParse, p);
151532151594
}else{
151533
- sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy523);
151595
+ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy59);
151534151596
}
151535
- yymsp[-3].minor.yy491 = p;
151597
+ yymsp[-3].minor.yy457 = p;
151536151598
}
151537151599
break;
151538151600
case 82: /* select ::= selectnowith */
151539151601
{
151540
- Select *p = yymsp[0].minor.yy491;
151602
+ Select *p = yymsp[0].minor.yy457;
151541151603
if( p ){
151542151604
parserDoubleLinkSelect(pParse, p);
151543151605
}
151544
- yymsp[0].minor.yy491 = p; /*A-overwrites-X*/
151606
+ yymsp[0].minor.yy457 = p; /*A-overwrites-X*/
151545151607
}
151546151608
break;
151547151609
case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
151548151610
{
151549
- Select *pRhs = yymsp[0].minor.yy491;
151550
- Select *pLhs = yymsp[-2].minor.yy491;
151611
+ Select *pRhs = yymsp[0].minor.yy457;
151612
+ Select *pLhs = yymsp[-2].minor.yy457;
151551151613
if( pRhs && pRhs->pPrior ){
151552151614
SrcList *pFrom;
151553151615
Token x;
151554151616
x.n = 0;
151555151617
parserDoubleLinkSelect(pParse, pRhs);
151556151618
pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0);
151557151619
pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
151558151620
}
151559151621
if( pRhs ){
151560
- pRhs->op = (u8)yymsp[-1].minor.yy420;
151622
+ pRhs->op = (u8)yymsp[-1].minor.yy494;
151561151623
pRhs->pPrior = pLhs;
151562151624
if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
151563151625
pRhs->selFlags &= ~SF_MultiValue;
151564
- if( yymsp[-1].minor.yy420!=TK_ALL ) pParse->hasCompound = 1;
151626
+ if( yymsp[-1].minor.yy494!=TK_ALL ) pParse->hasCompound = 1;
151565151627
}else{
151566151628
sqlite3SelectDelete(pParse->db, pLhs);
151567151629
}
151568
- yymsp[-2].minor.yy491 = pRhs;
151630
+ yymsp[-2].minor.yy457 = pRhs;
151569151631
}
151570151632
break;
151571151633
case 84: /* multiselect_op ::= UNION */
151572151634
case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
151573
-{yymsp[0].minor.yy420 = yymsp[0].major; /*A-overwrites-OP*/}
151635
+{yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-OP*/}
151574151636
break;
151575151637
case 85: /* multiselect_op ::= UNION ALL */
151576
-{yymsp[-1].minor.yy420 = TK_ALL;}
151638
+{yymsp[-1].minor.yy494 = TK_ALL;}
151577151639
break;
151578151640
case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
151579151641
{
151580
- yymsp[-8].minor.yy491 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy442,yymsp[-5].minor.yy147,yymsp[-4].minor.yy130,yymsp[-3].minor.yy442,yymsp[-2].minor.yy130,yymsp[-1].minor.yy442,yymsp[-7].minor.yy420,yymsp[0].minor.yy130);
151642
+ yymsp[-8].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy434,yymsp[-5].minor.yy483,yymsp[-4].minor.yy524,yymsp[-3].minor.yy434,yymsp[-2].minor.yy524,yymsp[-1].minor.yy434,yymsp[-7].minor.yy494,yymsp[0].minor.yy524);
151581151643
}
151582151644
break;
151583151645
case 88: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
151584151646
{
151585
- yymsp[-9].minor.yy491 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy442,yymsp[-6].minor.yy147,yymsp[-5].minor.yy130,yymsp[-4].minor.yy442,yymsp[-3].minor.yy130,yymsp[-1].minor.yy442,yymsp[-8].minor.yy420,yymsp[0].minor.yy130);
151586
- if( yymsp[-9].minor.yy491 ){
151587
- yymsp[-9].minor.yy491->pWinDefn = yymsp[-2].minor.yy395;
151647
+ yymsp[-9].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy434,yymsp[-6].minor.yy483,yymsp[-5].minor.yy524,yymsp[-4].minor.yy434,yymsp[-3].minor.yy524,yymsp[-1].minor.yy434,yymsp[-8].minor.yy494,yymsp[0].minor.yy524);
151648
+ if( yymsp[-9].minor.yy457 ){
151649
+ yymsp[-9].minor.yy457->pWinDefn = yymsp[-2].minor.yy295;
151588151650
}else{
151589
- sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy395);
151651
+ sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy295);
151590151652
}
151591151653
}
151592151654
break;
151593151655
case 89: /* values ::= VALUES LP nexprlist RP */
151594151656
{
151595
- yymsp[-3].minor.yy491 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy442,0,0,0,0,0,SF_Values,0);
151657
+ yymsp[-3].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy434,0,0,0,0,0,SF_Values,0);
151596151658
}
151597151659
break;
151598151660
case 90: /* values ::= values COMMA LP nexprlist RP */
151599151661
{
151600
- Select *pRight, *pLeft = yymsp[-4].minor.yy491;
151601
- pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy442,0,0,0,0,0,SF_Values|SF_MultiValue,0);
151662
+ Select *pRight, *pLeft = yymsp[-4].minor.yy457;
151663
+ pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy434,0,0,0,0,0,SF_Values|SF_MultiValue,0);
151602151664
if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
151603151665
if( pRight ){
151604151666
pRight->op = TK_ALL;
151605151667
pRight->pPrior = pLeft;
151606
- yymsp[-4].minor.yy491 = pRight;
151668
+ yymsp[-4].minor.yy457 = pRight;
151607151669
}else{
151608
- yymsp[-4].minor.yy491 = pLeft;
151670
+ yymsp[-4].minor.yy457 = pLeft;
151609151671
}
151610151672
}
151611151673
break;
151612151674
case 91: /* distinct ::= DISTINCT */
151613
-{yymsp[0].minor.yy420 = SF_Distinct;}
151675
+{yymsp[0].minor.yy494 = SF_Distinct;}
151614151676
break;
151615151677
case 92: /* distinct ::= ALL */
151616
-{yymsp[0].minor.yy420 = SF_All;}
151678
+{yymsp[0].minor.yy494 = SF_All;}
151617151679
break;
151618151680
case 94: /* sclp ::= */
151619151681
case 127: /* orderby_opt ::= */ yytestcase(yyruleno==127);
151620151682
case 134: /* groupby_opt ::= */ yytestcase(yyruleno==134);
151621151683
case 214: /* exprlist ::= */ yytestcase(yyruleno==214);
151622151684
case 217: /* paren_exprlist ::= */ yytestcase(yyruleno==217);
151623151685
case 222: /* eidlist_opt ::= */ yytestcase(yyruleno==222);
151624
-{yymsp[1].minor.yy442 = 0;}
151686
+{yymsp[1].minor.yy434 = 0;}
151625151687
break;
151626151688
case 95: /* selcollist ::= sclp scanpt expr scanpt as */
151627151689
{
151628
- yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy442, yymsp[-2].minor.yy130);
151629
- if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy442, &yymsp[0].minor.yy0, 1);
151630
- sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy442,yymsp[-3].minor.yy104,yymsp[-1].minor.yy104);
151690
+ yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy434, yymsp[-2].minor.yy524);
151691
+ if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy434, &yymsp[0].minor.yy0, 1);
151692
+ sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy434,yymsp[-3].minor.yy294,yymsp[-1].minor.yy294);
151631151693
}
151632151694
break;
151633151695
case 96: /* selcollist ::= sclp scanpt STAR */
151634151696
{
151635151697
Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
151636
- yymsp[-2].minor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy442, p);
151698
+ yymsp[-2].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy434, p);
151637151699
}
151638151700
break;
151639151701
case 97: /* selcollist ::= sclp scanpt nm DOT STAR */
151640151702
{
151641151703
Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
151642151704
Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
151643151705
Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
151644
- yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, pDot);
151706
+ yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, pDot);
151645151707
}
151646151708
break;
151647151709
case 98: /* as ::= AS nm */
151648151710
case 109: /* dbnm ::= DOT nm */ yytestcase(yyruleno==109);
151649151711
case 238: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==238);
151650151712
case 239: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==239);
151651151713
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
151652151714
break;
151653151715
case 100: /* from ::= */
151654
-{yymsp[1].minor.yy147 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy147));}
151716
+{yymsp[1].minor.yy483 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy483));}
151655151717
break;
151656151718
case 101: /* from ::= FROM seltablist */
151657151719
{
151658
- yymsp[-1].minor.yy147 = yymsp[0].minor.yy147;
151659
- sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy147);
151720
+ yymsp[-1].minor.yy483 = yymsp[0].minor.yy483;
151721
+ sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy483);
151660151722
}
151661151723
break;
151662151724
case 102: /* stl_prefix ::= seltablist joinop */
151663151725
{
151664
- if( ALWAYS(yymsp[-1].minor.yy147 && yymsp[-1].minor.yy147->nSrc>0) ) yymsp[-1].minor.yy147->a[yymsp[-1].minor.yy147->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy420;
151726
+ if( ALWAYS(yymsp[-1].minor.yy483 && yymsp[-1].minor.yy483->nSrc>0) ) yymsp[-1].minor.yy483->a[yymsp[-1].minor.yy483->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy494;
151665151727
}
151666151728
break;
151667151729
case 103: /* stl_prefix ::= */
151668
-{yymsp[1].minor.yy147 = 0;}
151730
+{yymsp[1].minor.yy483 = 0;}
151669151731
break;
151670151732
case 104: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
151671151733
{
151672
- yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151673
- sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy147, &yymsp[-2].minor.yy0);
151734
+ yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151735
+ sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy483, &yymsp[-2].minor.yy0);
151674151736
}
151675151737
break;
151676151738
case 105: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
151677151739
{
151678
- yymsp[-8].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy147,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151679
- sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy147, yymsp[-4].minor.yy442);
151740
+ yymsp[-8].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy483,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151741
+ sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy483, yymsp[-4].minor.yy434);
151680151742
}
151681151743
break;
151682151744
case 106: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
151683151745
{
151684
- yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy491,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151746
+ yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy457,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151685151747
}
151686151748
break;
151687151749
case 107: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
151688151750
{
151689
- if( yymsp[-6].minor.yy147==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy130==0 && yymsp[0].minor.yy200==0 ){
151690
- yymsp[-6].minor.yy147 = yymsp[-4].minor.yy147;
151691
- }else if( yymsp[-4].minor.yy147->nSrc==1 ){
151692
- yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151693
- if( yymsp[-6].minor.yy147 ){
151694
- struct SrcList_item *pNew = &yymsp[-6].minor.yy147->a[yymsp[-6].minor.yy147->nSrc-1];
151695
- struct SrcList_item *pOld = yymsp[-4].minor.yy147->a;
151751
+ if( yymsp[-6].minor.yy483==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy524==0 && yymsp[0].minor.yy62==0 ){
151752
+ yymsp[-6].minor.yy483 = yymsp[-4].minor.yy483;
151753
+ }else if( yymsp[-4].minor.yy483->nSrc==1 ){
151754
+ yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151755
+ if( yymsp[-6].minor.yy483 ){
151756
+ struct SrcList_item *pNew = &yymsp[-6].minor.yy483->a[yymsp[-6].minor.yy483->nSrc-1];
151757
+ struct SrcList_item *pOld = yymsp[-4].minor.yy483->a;
151696151758
pNew->zName = pOld->zName;
151697151759
pNew->zDatabase = pOld->zDatabase;
151698151760
pNew->pSelect = pOld->pSelect;
151699151761
if( pOld->fg.isTabFunc ){
151700151762
pNew->u1.pFuncArg = pOld->u1.pFuncArg;
@@ -151703,215 +151765,215 @@
151703151765
pNew->fg.isTabFunc = 1;
151704151766
}
151705151767
pOld->zName = pOld->zDatabase = 0;
151706151768
pOld->pSelect = 0;
151707151769
}
151708
- sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy147);
151770
+ sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy483);
151709151771
}else{
151710151772
Select *pSubquery;
151711
- sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy147);
151712
- pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy147,0,0,0,0,SF_NestedFrom,0);
151713
- yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151773
+ sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy483);
151774
+ pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy483,0,0,0,0,SF_NestedFrom,0);
151775
+ yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151714151776
}
151715151777
}
151716151778
break;
151717151779
case 108: /* dbnm ::= */
151718151780
case 122: /* indexed_opt ::= */ yytestcase(yyruleno==122);
151719151781
{yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
151720151782
break;
151721151783
case 110: /* fullname ::= nm */
151722151784
{
151723
- yylhsminor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
151724
- if( IN_RENAME_OBJECT && yylhsminor.yy147 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy147->a[0].zName, &yymsp[0].minor.yy0);
151785
+ yylhsminor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
151786
+ if( IN_RENAME_OBJECT && yylhsminor.yy483 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy483->a[0].zName, &yymsp[0].minor.yy0);
151725151787
}
151726
- yymsp[0].minor.yy147 = yylhsminor.yy147;
151788
+ yymsp[0].minor.yy483 = yylhsminor.yy483;
151727151789
break;
151728151790
case 111: /* fullname ::= nm DOT nm */
151729151791
{
151730
- yylhsminor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
151731
- if( IN_RENAME_OBJECT && yylhsminor.yy147 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy147->a[0].zName, &yymsp[0].minor.yy0);
151792
+ yylhsminor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
151793
+ if( IN_RENAME_OBJECT && yylhsminor.yy483 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy483->a[0].zName, &yymsp[0].minor.yy0);
151732151794
}
151733
- yymsp[-2].minor.yy147 = yylhsminor.yy147;
151795
+ yymsp[-2].minor.yy483 = yylhsminor.yy483;
151734151796
break;
151735151797
case 112: /* xfullname ::= nm */
151736
-{yymsp[0].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
151798
+{yymsp[0].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
151737151799
break;
151738151800
case 113: /* xfullname ::= nm DOT nm */
151739
-{yymsp[-2].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
151801
+{yymsp[-2].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
151740151802
break;
151741151803
case 114: /* xfullname ::= nm DOT nm AS nm */
151742151804
{
151743
- yymsp[-4].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
151744
- if( yymsp[-4].minor.yy147 ) yymsp[-4].minor.yy147->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151805
+ yymsp[-4].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
151806
+ if( yymsp[-4].minor.yy483 ) yymsp[-4].minor.yy483->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151745151807
}
151746151808
break;
151747151809
case 115: /* xfullname ::= nm AS nm */
151748151810
{
151749
- yymsp[-2].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
151750
- if( yymsp[-2].minor.yy147 ) yymsp[-2].minor.yy147->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151811
+ yymsp[-2].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
151812
+ if( yymsp[-2].minor.yy483 ) yymsp[-2].minor.yy483->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151751151813
}
151752151814
break;
151753151815
case 116: /* joinop ::= COMMA|JOIN */
151754
-{ yymsp[0].minor.yy420 = JT_INNER; }
151816
+{ yymsp[0].minor.yy494 = JT_INNER; }
151755151817
break;
151756151818
case 117: /* joinop ::= JOIN_KW JOIN */
151757
-{yymsp[-1].minor.yy420 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
151819
+{yymsp[-1].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
151758151820
break;
151759151821
case 118: /* joinop ::= JOIN_KW nm JOIN */
151760
-{yymsp[-2].minor.yy420 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
151822
+{yymsp[-2].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
151761151823
break;
151762151824
case 119: /* joinop ::= JOIN_KW nm nm JOIN */
151763
-{yymsp[-3].minor.yy420 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
151825
+{yymsp[-3].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
151764151826
break;
151765151827
case 120: /* on_opt ::= ON expr */
151766151828
case 137: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==137);
151767151829
case 144: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==144);
151768151830
case 210: /* case_else ::= ELSE expr */ yytestcase(yyruleno==210);
151769151831
case 231: /* vinto ::= INTO expr */ yytestcase(yyruleno==231);
151770
-{yymsp[-1].minor.yy130 = yymsp[0].minor.yy130;}
151832
+{yymsp[-1].minor.yy524 = yymsp[0].minor.yy524;}
151771151833
break;
151772151834
case 121: /* on_opt ::= */
151773151835
case 136: /* having_opt ::= */ yytestcase(yyruleno==136);
151774151836
case 138: /* limit_opt ::= */ yytestcase(yyruleno==138);
151775151837
case 143: /* where_opt ::= */ yytestcase(yyruleno==143);
151776151838
case 211: /* case_else ::= */ yytestcase(yyruleno==211);
151777151839
case 213: /* case_operand ::= */ yytestcase(yyruleno==213);
151778151840
case 232: /* vinto ::= */ yytestcase(yyruleno==232);
151779
-{yymsp[1].minor.yy130 = 0;}
151841
+{yymsp[1].minor.yy524 = 0;}
151780151842
break;
151781151843
case 123: /* indexed_opt ::= INDEXED BY nm */
151782151844
{yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
151783151845
break;
151784151846
case 124: /* indexed_opt ::= NOT INDEXED */
151785151847
{yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
151786151848
break;
151787151849
case 125: /* using_opt ::= USING LP idlist RP */
151788
-{yymsp[-3].minor.yy200 = yymsp[-1].minor.yy200;}
151850
+{yymsp[-3].minor.yy62 = yymsp[-1].minor.yy62;}
151789151851
break;
151790151852
case 126: /* using_opt ::= */
151791151853
case 158: /* idlist_opt ::= */ yytestcase(yyruleno==158);
151792
-{yymsp[1].minor.yy200 = 0;}
151854
+{yymsp[1].minor.yy62 = 0;}
151793151855
break;
151794151856
case 128: /* orderby_opt ::= ORDER BY sortlist */
151795151857
case 135: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==135);
151796
-{yymsp[-2].minor.yy442 = yymsp[0].minor.yy442;}
151858
+{yymsp[-2].minor.yy434 = yymsp[0].minor.yy434;}
151797151859
break;
151798151860
case 129: /* sortlist ::= sortlist COMMA expr sortorder */
151799151861
{
151800
- yymsp[-3].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442,yymsp[-1].minor.yy130);
151801
- sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy442,yymsp[0].minor.yy420);
151862
+ yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy434,yymsp[-1].minor.yy524);
151863
+ sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy434,yymsp[0].minor.yy494);
151802151864
}
151803151865
break;
151804151866
case 130: /* sortlist ::= expr sortorder */
151805151867
{
151806
- yymsp[-1].minor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy130); /*A-overwrites-Y*/
151807
- sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy442,yymsp[0].minor.yy420);
151868
+ yymsp[-1].minor.yy434 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy524); /*A-overwrites-Y*/
151869
+ sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy434,yymsp[0].minor.yy494);
151808151870
}
151809151871
break;
151810151872
case 131: /* sortorder ::= ASC */
151811
-{yymsp[0].minor.yy420 = SQLITE_SO_ASC;}
151873
+{yymsp[0].minor.yy494 = SQLITE_SO_ASC;}
151812151874
break;
151813151875
case 132: /* sortorder ::= DESC */
151814
-{yymsp[0].minor.yy420 = SQLITE_SO_DESC;}
151876
+{yymsp[0].minor.yy494 = SQLITE_SO_DESC;}
151815151877
break;
151816151878
case 133: /* sortorder ::= */
151817
-{yymsp[1].minor.yy420 = SQLITE_SO_UNDEFINED;}
151879
+{yymsp[1].minor.yy494 = SQLITE_SO_UNDEFINED;}
151818151880
break;
151819151881
case 139: /* limit_opt ::= LIMIT expr */
151820
-{yymsp[-1].minor.yy130 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy130,0);}
151882
+{yymsp[-1].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy524,0);}
151821151883
break;
151822151884
case 140: /* limit_opt ::= LIMIT expr OFFSET expr */
151823
-{yymsp[-3].minor.yy130 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy130,yymsp[0].minor.yy130);}
151885
+{yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);}
151824151886
break;
151825151887
case 141: /* limit_opt ::= LIMIT expr COMMA expr */
151826
-{yymsp[-3].minor.yy130 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy130,yymsp[-2].minor.yy130);}
151888
+{yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy524,yymsp[-2].minor.yy524);}
151827151889
break;
151828151890
case 142: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
151829151891
{
151830
- sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy147, &yymsp[-1].minor.yy0);
151831
- sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy147,yymsp[0].minor.yy130,0,0);
151892
+ sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy483, &yymsp[-1].minor.yy0);
151893
+ sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy483,yymsp[0].minor.yy524,0,0);
151832151894
}
151833151895
break;
151834151896
case 145: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
151835151897
{
151836
- sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy147, &yymsp[-3].minor.yy0);
151837
- sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy442,"set list");
151838
- sqlite3Update(pParse,yymsp[-4].minor.yy147,yymsp[-1].minor.yy442,yymsp[0].minor.yy130,yymsp[-5].minor.yy420,0,0,0);
151898
+ sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy483, &yymsp[-3].minor.yy0);
151899
+ sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy434,"set list");
151900
+ sqlite3Update(pParse,yymsp[-4].minor.yy483,yymsp[-1].minor.yy434,yymsp[0].minor.yy524,yymsp[-5].minor.yy494,0,0,0);
151839151901
}
151840151902
break;
151841151903
case 146: /* setlist ::= setlist COMMA nm EQ expr */
151842151904
{
151843
- yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy442, yymsp[0].minor.yy130);
151844
- sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy442, &yymsp[-2].minor.yy0, 1);
151905
+ yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy434, yymsp[0].minor.yy524);
151906
+ sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy434, &yymsp[-2].minor.yy0, 1);
151845151907
}
151846151908
break;
151847151909
case 147: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
151848151910
{
151849
- yymsp[-6].minor.yy442 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy442, yymsp[-3].minor.yy200, yymsp[0].minor.yy130);
151911
+ yymsp[-6].minor.yy434 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy434, yymsp[-3].minor.yy62, yymsp[0].minor.yy524);
151850151912
}
151851151913
break;
151852151914
case 148: /* setlist ::= nm EQ expr */
151853151915
{
151854
- yylhsminor.yy442 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy130);
151855
- sqlite3ExprListSetName(pParse, yylhsminor.yy442, &yymsp[-2].minor.yy0, 1);
151916
+ yylhsminor.yy434 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy524);
151917
+ sqlite3ExprListSetName(pParse, yylhsminor.yy434, &yymsp[-2].minor.yy0, 1);
151856151918
}
151857
- yymsp[-2].minor.yy442 = yylhsminor.yy442;
151919
+ yymsp[-2].minor.yy434 = yylhsminor.yy434;
151858151920
break;
151859151921
case 149: /* setlist ::= LP idlist RP EQ expr */
151860151922
{
151861
- yymsp[-4].minor.yy442 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy200, yymsp[0].minor.yy130);
151923
+ yymsp[-4].minor.yy434 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy62, yymsp[0].minor.yy524);
151862151924
}
151863151925
break;
151864151926
case 150: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
151865151927
{
151866
- sqlite3Insert(pParse, yymsp[-3].minor.yy147, yymsp[-1].minor.yy491, yymsp[-2].minor.yy200, yymsp[-5].minor.yy420, yymsp[0].minor.yy426);
151928
+ sqlite3Insert(pParse, yymsp[-3].minor.yy483, yymsp[-1].minor.yy457, yymsp[-2].minor.yy62, yymsp[-5].minor.yy494, yymsp[0].minor.yy136);
151867151929
}
151868151930
break;
151869151931
case 151: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
151870151932
{
151871
- sqlite3Insert(pParse, yymsp[-3].minor.yy147, 0, yymsp[-2].minor.yy200, yymsp[-5].minor.yy420, 0);
151933
+ sqlite3Insert(pParse, yymsp[-3].minor.yy483, 0, yymsp[-2].minor.yy62, yymsp[-5].minor.yy494, 0);
151872151934
}
151873151935
break;
151874151936
case 152: /* upsert ::= */
151875
-{ yymsp[1].minor.yy426 = 0; }
151937
+{ yymsp[1].minor.yy136 = 0; }
151876151938
break;
151877151939
case 153: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
151878
-{ yymsp[-10].minor.yy426 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy442,yymsp[-5].minor.yy130,yymsp[-1].minor.yy442,yymsp[0].minor.yy130);}
151940
+{ yymsp[-10].minor.yy136 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy434,yymsp[-5].minor.yy524,yymsp[-1].minor.yy434,yymsp[0].minor.yy524);}
151879151941
break;
151880151942
case 154: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
151881
-{ yymsp[-7].minor.yy426 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy442,yymsp[-2].minor.yy130,0,0); }
151943
+{ yymsp[-7].minor.yy136 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy434,yymsp[-2].minor.yy524,0,0); }
151882151944
break;
151883151945
case 155: /* upsert ::= ON CONFLICT DO NOTHING */
151884
-{ yymsp[-3].minor.yy426 = sqlite3UpsertNew(pParse->db,0,0,0,0); }
151946
+{ yymsp[-3].minor.yy136 = sqlite3UpsertNew(pParse->db,0,0,0,0); }
151885151947
break;
151886151948
case 159: /* idlist_opt ::= LP idlist RP */
151887
-{yymsp[-2].minor.yy200 = yymsp[-1].minor.yy200;}
151949
+{yymsp[-2].minor.yy62 = yymsp[-1].minor.yy62;}
151888151950
break;
151889151951
case 160: /* idlist ::= idlist COMMA nm */
151890
-{yymsp[-2].minor.yy200 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy200,&yymsp[0].minor.yy0);}
151952
+{yymsp[-2].minor.yy62 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy62,&yymsp[0].minor.yy0);}
151891151953
break;
151892151954
case 161: /* idlist ::= nm */
151893
-{yymsp[0].minor.yy200 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
151955
+{yymsp[0].minor.yy62 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
151894151956
break;
151895151957
case 162: /* expr ::= LP expr RP */
151896
-{yymsp[-2].minor.yy130 = yymsp[-1].minor.yy130;}
151958
+{yymsp[-2].minor.yy524 = yymsp[-1].minor.yy524;}
151897151959
break;
151898151960
case 163: /* expr ::= ID|INDEXED */
151899151961
case 164: /* expr ::= JOIN_KW */ yytestcase(yyruleno==164);
151900
-{yymsp[0].minor.yy130=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151962
+{yymsp[0].minor.yy524=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151901151963
break;
151902151964
case 165: /* expr ::= nm DOT nm */
151903151965
{
151904151966
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
151905151967
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
151906151968
if( IN_RENAME_OBJECT ){
151907151969
sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0);
151908151970
sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0);
151909151971
}
151910
- yylhsminor.yy130 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
151972
+ yylhsminor.yy524 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
151911151973
}
151912
- yymsp[-2].minor.yy130 = yylhsminor.yy130;
151974
+ yymsp[-2].minor.yy524 = yylhsminor.yy524;
151913151975
break;
151914151976
case 166: /* expr ::= nm DOT nm DOT nm */
151915151977
{
151916151978
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
151917151979
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
@@ -151919,95 +151981,95 @@
151919151981
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
151920151982
if( IN_RENAME_OBJECT ){
151921151983
sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0);
151922151984
sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0);
151923151985
}
151924
- yylhsminor.yy130 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
151986
+ yylhsminor.yy524 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
151925151987
}
151926
- yymsp[-4].minor.yy130 = yylhsminor.yy130;
151988
+ yymsp[-4].minor.yy524 = yylhsminor.yy524;
151927151989
break;
151928151990
case 167: /* term ::= NULL|FLOAT|BLOB */
151929151991
case 168: /* term ::= STRING */ yytestcase(yyruleno==168);
151930
-{yymsp[0].minor.yy130=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151992
+{yymsp[0].minor.yy524=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151931151993
break;
151932151994
case 169: /* term ::= INTEGER */
151933151995
{
151934
- yylhsminor.yy130 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
151996
+ yylhsminor.yy524 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
151935151997
}
151936
- yymsp[0].minor.yy130 = yylhsminor.yy130;
151998
+ yymsp[0].minor.yy524 = yylhsminor.yy524;
151937151999
break;
151938152000
case 170: /* expr ::= VARIABLE */
151939152001
{
151940152002
if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
151941152003
u32 n = yymsp[0].minor.yy0.n;
151942
- yymsp[0].minor.yy130 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
151943
- sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy130, n);
152004
+ yymsp[0].minor.yy524 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
152005
+ sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy524, n);
151944152006
}else{
151945152007
/* When doing a nested parse, one can include terms in an expression
151946152008
** that look like this: #1 #2 ... These terms refer to registers
151947152009
** in the virtual machine. #N is the N-th register. */
151948152010
Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/
151949152011
assert( t.n>=2 );
151950152012
if( pParse->nested==0 ){
151951152013
sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
151952
- yymsp[0].minor.yy130 = 0;
152014
+ yymsp[0].minor.yy524 = 0;
151953152015
}else{
151954
- yymsp[0].minor.yy130 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
151955
- if( yymsp[0].minor.yy130 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy130->iTable);
152016
+ yymsp[0].minor.yy524 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
152017
+ if( yymsp[0].minor.yy524 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy524->iTable);
151956152018
}
151957152019
}
151958152020
}
151959152021
break;
151960152022
case 171: /* expr ::= expr COLLATE ID|STRING */
151961152023
{
151962
- yymsp[-2].minor.yy130 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy130, &yymsp[0].minor.yy0, 1);
152024
+ yymsp[-2].minor.yy524 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy524, &yymsp[0].minor.yy0, 1);
151963152025
}
151964152026
break;
151965152027
case 172: /* expr ::= CAST LP expr AS typetoken RP */
151966152028
{
151967
- yymsp[-5].minor.yy130 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
151968
- sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy130, yymsp[-3].minor.yy130, 0);
152029
+ yymsp[-5].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
152030
+ sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy524, yymsp[-3].minor.yy524, 0);
151969152031
}
151970152032
break;
151971152033
case 173: /* expr ::= ID|INDEXED LP distinct exprlist RP */
151972152034
{
151973
- yylhsminor.yy130 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy420);
152035
+ yylhsminor.yy524 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy434, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy494);
151974152036
}
151975
- yymsp[-4].minor.yy130 = yylhsminor.yy130;
152037
+ yymsp[-4].minor.yy524 = yylhsminor.yy524;
151976152038
break;
151977152039
case 174: /* expr ::= ID|INDEXED LP STAR RP */
151978152040
{
151979
- yylhsminor.yy130 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
152041
+ yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
151980152042
}
151981
- yymsp[-3].minor.yy130 = yylhsminor.yy130;
152043
+ yymsp[-3].minor.yy524 = yylhsminor.yy524;
151982152044
break;
151983152045
case 175: /* expr ::= ID|INDEXED LP distinct exprlist RP over_clause */
151984152046
{
151985
- yylhsminor.yy130 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy442, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy420);
151986
- sqlite3WindowAttach(pParse, yylhsminor.yy130, yymsp[0].minor.yy395);
152047
+ yylhsminor.yy524 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy434, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy494);
152048
+ sqlite3WindowAttach(pParse, yylhsminor.yy524, yymsp[0].minor.yy295);
151987152049
}
151988
- yymsp[-5].minor.yy130 = yylhsminor.yy130;
152050
+ yymsp[-5].minor.yy524 = yylhsminor.yy524;
151989152051
break;
151990152052
case 176: /* expr ::= ID|INDEXED LP STAR RP over_clause */
151991152053
{
151992
- yylhsminor.yy130 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
151993
- sqlite3WindowAttach(pParse, yylhsminor.yy130, yymsp[0].minor.yy395);
152054
+ yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
152055
+ sqlite3WindowAttach(pParse, yylhsminor.yy524, yymsp[0].minor.yy295);
151994152056
}
151995
- yymsp[-4].minor.yy130 = yylhsminor.yy130;
152057
+ yymsp[-4].minor.yy524 = yylhsminor.yy524;
151996152058
break;
151997152059
case 177: /* term ::= CTIME_KW */
151998152060
{
151999
- yylhsminor.yy130 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
152061
+ yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
152000152062
}
152001
- yymsp[0].minor.yy130 = yylhsminor.yy130;
152063
+ yymsp[0].minor.yy524 = yylhsminor.yy524;
152002152064
break;
152003152065
case 178: /* expr ::= LP nexprlist COMMA expr RP */
152004152066
{
152005
- ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy442, yymsp[-1].minor.yy130);
152006
- yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
152007
- if( yymsp[-4].minor.yy130 ){
152008
- yymsp[-4].minor.yy130->x.pList = pList;
152067
+ ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy434, yymsp[-1].minor.yy524);
152068
+ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
152069
+ if( yymsp[-4].minor.yy524 ){
152070
+ yymsp[-4].minor.yy524->x.pList = pList;
152009152071
}else{
152010152072
sqlite3ExprListDelete(pParse->db, pList);
152011152073
}
152012152074
}
152013152075
break;
@@ -152017,101 +152079,101 @@
152017152079
case 182: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==182);
152018152080
case 183: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==183);
152019152081
case 184: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==184);
152020152082
case 185: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==185);
152021152083
case 186: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==186);
152022
-{yymsp[-2].minor.yy130=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy130,yymsp[0].minor.yy130);}
152084
+{yymsp[-2].minor.yy524=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);}
152023152085
break;
152024152086
case 187: /* likeop ::= NOT LIKE_KW|MATCH */
152025152087
{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
152026152088
break;
152027152089
case 188: /* expr ::= expr likeop expr */
152028152090
{
152029152091
ExprList *pList;
152030152092
int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
152031152093
yymsp[-1].minor.yy0.n &= 0x7fffffff;
152032
- pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy130);
152033
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy130);
152034
- yymsp[-2].minor.yy130 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
152035
- if( bNot ) yymsp[-2].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy130, 0);
152036
- if( yymsp[-2].minor.yy130 ) yymsp[-2].minor.yy130->flags |= EP_InfixFunc;
152094
+ pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy524);
152095
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy524);
152096
+ yymsp[-2].minor.yy524 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
152097
+ if( bNot ) yymsp[-2].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy524, 0);
152098
+ if( yymsp[-2].minor.yy524 ) yymsp[-2].minor.yy524->flags |= EP_InfixFunc;
152037152099
}
152038152100
break;
152039152101
case 189: /* expr ::= expr likeop expr ESCAPE expr */
152040152102
{
152041152103
ExprList *pList;
152042152104
int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
152043152105
yymsp[-3].minor.yy0.n &= 0x7fffffff;
152044
- pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy130);
152045
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy130);
152046
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy130);
152047
- yymsp[-4].minor.yy130 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
152048
- if( bNot ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152049
- if( yymsp[-4].minor.yy130 ) yymsp[-4].minor.yy130->flags |= EP_InfixFunc;
152106
+ pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524);
152107
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy524);
152108
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy524);
152109
+ yymsp[-4].minor.yy524 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
152110
+ if( bNot ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152111
+ if( yymsp[-4].minor.yy524 ) yymsp[-4].minor.yy524->flags |= EP_InfixFunc;
152050152112
}
152051152113
break;
152052152114
case 190: /* expr ::= expr ISNULL|NOTNULL */
152053
-{yymsp[-1].minor.yy130 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy130,0);}
152115
+{yymsp[-1].minor.yy524 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy524,0);}
152054152116
break;
152055152117
case 191: /* expr ::= expr NOT NULL */
152056
-{yymsp[-2].minor.yy130 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy130,0);}
152118
+{yymsp[-2].minor.yy524 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy524,0);}
152057152119
break;
152058152120
case 192: /* expr ::= expr IS expr */
152059152121
{
152060
- yymsp[-2].minor.yy130 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy130,yymsp[0].minor.yy130);
152061
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy130, yymsp[-2].minor.yy130, TK_ISNULL);
152122
+ yymsp[-2].minor.yy524 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);
152123
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy524, yymsp[-2].minor.yy524, TK_ISNULL);
152062152124
}
152063152125
break;
152064152126
case 193: /* expr ::= expr IS NOT expr */
152065152127
{
152066
- yymsp[-3].minor.yy130 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy130,yymsp[0].minor.yy130);
152067
- binaryToUnaryIfNull(pParse, yymsp[0].minor.yy130, yymsp[-3].minor.yy130, TK_NOTNULL);
152128
+ yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy524,yymsp[0].minor.yy524);
152129
+ binaryToUnaryIfNull(pParse, yymsp[0].minor.yy524, yymsp[-3].minor.yy524, TK_NOTNULL);
152068152130
}
152069152131
break;
152070152132
case 194: /* expr ::= NOT expr */
152071152133
case 195: /* expr ::= BITNOT expr */ yytestcase(yyruleno==195);
152072
-{yymsp[-1].minor.yy130 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy130, 0);/*A-overwrites-B*/}
152134
+{yymsp[-1].minor.yy524 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy524, 0);/*A-overwrites-B*/}
152073152135
break;
152074152136
case 196: /* expr ::= PLUS|MINUS expr */
152075152137
{
152076
- yymsp[-1].minor.yy130 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy130, 0);
152138
+ yymsp[-1].minor.yy524 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy524, 0);
152077152139
/*A-overwrites-B*/
152078152140
}
152079152141
break;
152080152142
case 197: /* between_op ::= BETWEEN */
152081152143
case 200: /* in_op ::= IN */ yytestcase(yyruleno==200);
152082
-{yymsp[0].minor.yy420 = 0;}
152144
+{yymsp[0].minor.yy494 = 0;}
152083152145
break;
152084152146
case 199: /* expr ::= expr between_op expr AND expr */
152085152147
{
152086
- ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy130);
152087
- pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy130);
152088
- yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy130, 0);
152089
- if( yymsp[-4].minor.yy130 ){
152090
- yymsp[-4].minor.yy130->x.pList = pList;
152148
+ ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524);
152149
+ pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy524);
152150
+ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy524, 0);
152151
+ if( yymsp[-4].minor.yy524 ){
152152
+ yymsp[-4].minor.yy524->x.pList = pList;
152091152153
}else{
152092152154
sqlite3ExprListDelete(pParse->db, pList);
152093152155
}
152094
- if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152156
+ if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152095152157
}
152096152158
break;
152097152159
case 202: /* expr ::= expr in_op LP exprlist RP */
152098152160
{
152099
- if( yymsp[-1].minor.yy442==0 ){
152161
+ if( yymsp[-1].minor.yy434==0 ){
152100152162
/* Expressions of the form
152101152163
**
152102152164
** expr1 IN ()
152103152165
** expr1 NOT IN ()
152104152166
**
152105152167
** simplify to constants 0 (false) and 1 (true), respectively,
152106152168
** regardless of the value of expr1.
152107152169
*/
152108152170
if( IN_RENAME_OBJECT==0 ){
152109
- sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy130);
152110
- yymsp[-4].minor.yy130 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy420],1);
152171
+ sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy524);
152172
+ yymsp[-4].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy494],1);
152111152173
}
152112
- }else if( yymsp[-1].minor.yy442->nExpr==1 ){
152174
+ }else if( yymsp[-1].minor.yy434->nExpr==1 ){
152113152175
/* Expressions of the form:
152114152176
**
152115152177
** expr1 IN (?1)
152116152178
** expr1 NOT IN (?2)
152117152179
**
@@ -152124,134 +152186,134 @@
152124152186
** But, the RHS of the == or <> is marked with the EP_Generic flag
152125152187
** so that it may not contribute to the computation of comparison
152126152188
** affinity or the collating sequence to use for comparison. Otherwise,
152127152189
** the semantics would be subtly different from IN or NOT IN.
152128152190
*/
152129
- Expr *pRHS = yymsp[-1].minor.yy442->a[0].pExpr;
152130
- yymsp[-1].minor.yy442->a[0].pExpr = 0;
152131
- sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy442);
152191
+ Expr *pRHS = yymsp[-1].minor.yy434->a[0].pExpr;
152192
+ yymsp[-1].minor.yy434->a[0].pExpr = 0;
152193
+ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy434);
152132152194
/* pRHS cannot be NULL because a malloc error would have been detected
152133152195
** before now and control would have never reached this point */
152134152196
if( ALWAYS(pRHS) ){
152135152197
pRHS->flags &= ~EP_Collate;
152136152198
pRHS->flags |= EP_Generic;
152137152199
}
152138
- yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, yymsp[-3].minor.yy420 ? TK_NE : TK_EQ, yymsp[-4].minor.yy130, pRHS);
152139
- }else{
152140
- yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy130, 0);
152141
- if( yymsp[-4].minor.yy130 ){
152142
- yymsp[-4].minor.yy130->x.pList = yymsp[-1].minor.yy442;
152143
- sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy130);
152144
- }else{
152145
- sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy442);
152146
- }
152147
- if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152200
+ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, yymsp[-3].minor.yy494 ? TK_NE : TK_EQ, yymsp[-4].minor.yy524, pRHS);
152201
+ }else{
152202
+ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0);
152203
+ if( yymsp[-4].minor.yy524 ){
152204
+ yymsp[-4].minor.yy524->x.pList = yymsp[-1].minor.yy434;
152205
+ sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy524);
152206
+ }else{
152207
+ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy434);
152208
+ }
152209
+ if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152148152210
}
152149152211
}
152150152212
break;
152151152213
case 203: /* expr ::= LP select RP */
152152152214
{
152153
- yymsp[-2].minor.yy130 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
152154
- sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy130, yymsp[-1].minor.yy491);
152215
+ yymsp[-2].minor.yy524 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
152216
+ sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy524, yymsp[-1].minor.yy457);
152155152217
}
152156152218
break;
152157152219
case 204: /* expr ::= expr in_op LP select RP */
152158152220
{
152159
- yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy130, 0);
152160
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy130, yymsp[-1].minor.yy491);
152161
- if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152221
+ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0);
152222
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy524, yymsp[-1].minor.yy457);
152223
+ if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152162152224
}
152163152225
break;
152164152226
case 205: /* expr ::= expr in_op nm dbnm paren_exprlist */
152165152227
{
152166152228
SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
152167152229
Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
152168
- if( yymsp[0].minor.yy442 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy442);
152169
- yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy130, 0);
152170
- sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy130, pSelect);
152171
- if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152230
+ if( yymsp[0].minor.yy434 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy434);
152231
+ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0);
152232
+ sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy524, pSelect);
152233
+ if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152172152234
}
152173152235
break;
152174152236
case 206: /* expr ::= EXISTS LP select RP */
152175152237
{
152176152238
Expr *p;
152177
- p = yymsp[-3].minor.yy130 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
152178
- sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy491);
152239
+ p = yymsp[-3].minor.yy524 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
152240
+ sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy457);
152179152241
}
152180152242
break;
152181152243
case 207: /* expr ::= CASE case_operand case_exprlist case_else END */
152182152244
{
152183
- yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy130, 0);
152184
- if( yymsp[-4].minor.yy130 ){
152185
- yymsp[-4].minor.yy130->x.pList = yymsp[-1].minor.yy130 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[-1].minor.yy130) : yymsp[-2].minor.yy442;
152186
- sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy130);
152245
+ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy524, 0);
152246
+ if( yymsp[-4].minor.yy524 ){
152247
+ yymsp[-4].minor.yy524->x.pList = yymsp[-1].minor.yy524 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy434,yymsp[-1].minor.yy524) : yymsp[-2].minor.yy434;
152248
+ sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy524);
152187152249
}else{
152188
- sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy442);
152189
- sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy130);
152250
+ sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy434);
152251
+ sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy524);
152190152252
}
152191152253
}
152192152254
break;
152193152255
case 208: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
152194152256
{
152195
- yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[-2].minor.yy130);
152196
- yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[0].minor.yy130);
152257
+ yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, yymsp[-2].minor.yy524);
152258
+ yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, yymsp[0].minor.yy524);
152197152259
}
152198152260
break;
152199152261
case 209: /* case_exprlist ::= WHEN expr THEN expr */
152200152262
{
152201
- yymsp[-3].minor.yy442 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy130);
152202
- yymsp[-3].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442, yymsp[0].minor.yy130);
152263
+ yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524);
152264
+ yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy434, yymsp[0].minor.yy524);
152203152265
}
152204152266
break;
152205152267
case 212: /* case_operand ::= expr */
152206
-{yymsp[0].minor.yy130 = yymsp[0].minor.yy130; /*A-overwrites-X*/}
152268
+{yymsp[0].minor.yy524 = yymsp[0].minor.yy524; /*A-overwrites-X*/}
152207152269
break;
152208152270
case 215: /* nexprlist ::= nexprlist COMMA expr */
152209
-{yymsp[-2].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[0].minor.yy130);}
152271
+{yymsp[-2].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy434,yymsp[0].minor.yy524);}
152210152272
break;
152211152273
case 216: /* nexprlist ::= expr */
152212
-{yymsp[0].minor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy130); /*A-overwrites-Y*/}
152274
+{yymsp[0].minor.yy434 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy524); /*A-overwrites-Y*/}
152213152275
break;
152214152276
case 218: /* paren_exprlist ::= LP exprlist RP */
152215152277
case 223: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==223);
152216
-{yymsp[-2].minor.yy442 = yymsp[-1].minor.yy442;}
152278
+{yymsp[-2].minor.yy434 = yymsp[-1].minor.yy434;}
152217152279
break;
152218152280
case 219: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
152219152281
{
152220152282
sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
152221
- sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy442, yymsp[-10].minor.yy420,
152222
- &yymsp[-11].minor.yy0, yymsp[0].minor.yy130, SQLITE_SO_ASC, yymsp[-8].minor.yy420, SQLITE_IDXTYPE_APPDEF);
152283
+ sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy434, yymsp[-10].minor.yy494,
152284
+ &yymsp[-11].minor.yy0, yymsp[0].minor.yy524, SQLITE_SO_ASC, yymsp[-8].minor.yy494, SQLITE_IDXTYPE_APPDEF);
152223152285
if( IN_RENAME_OBJECT && pParse->pNewIndex ){
152224152286
sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0);
152225152287
}
152226152288
}
152227152289
break;
152228152290
case 220: /* uniqueflag ::= UNIQUE */
152229152291
case 262: /* raisetype ::= ABORT */ yytestcase(yyruleno==262);
152230
-{yymsp[0].minor.yy420 = OE_Abort;}
152292
+{yymsp[0].minor.yy494 = OE_Abort;}
152231152293
break;
152232152294
case 221: /* uniqueflag ::= */
152233
-{yymsp[1].minor.yy420 = OE_None;}
152295
+{yymsp[1].minor.yy494 = OE_None;}
152234152296
break;
152235152297
case 224: /* eidlist ::= eidlist COMMA nm collate sortorder */
152236152298
{
152237
- yymsp[-4].minor.yy442 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy442, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy420, yymsp[0].minor.yy420);
152299
+ yymsp[-4].minor.yy434 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy434, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy494, yymsp[0].minor.yy494);
152238152300
}
152239152301
break;
152240152302
case 225: /* eidlist ::= nm collate sortorder */
152241152303
{
152242
- yymsp[-2].minor.yy442 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy420, yymsp[0].minor.yy420); /*A-overwrites-Y*/
152304
+ yymsp[-2].minor.yy434 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy494, yymsp[0].minor.yy494); /*A-overwrites-Y*/
152243152305
}
152244152306
break;
152245152307
case 228: /* cmd ::= DROP INDEX ifexists fullname */
152246
-{sqlite3DropIndex(pParse, yymsp[0].minor.yy147, yymsp[-1].minor.yy420);}
152308
+{sqlite3DropIndex(pParse, yymsp[0].minor.yy483, yymsp[-1].minor.yy494);}
152247152309
break;
152248152310
case 229: /* cmd ::= VACUUM vinto */
152249
-{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy130);}
152311
+{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy524);}
152250152312
break;
152251152313
case 230: /* cmd ::= VACUUM nm vinto */
152252
-{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy130);}
152314
+{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy524);}
152253152315
break;
152254152316
case 233: /* cmd ::= PRAGMA nm dbnm */
152255152317
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
152256152318
break;
152257152319
case 234: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
@@ -152269,55 +152331,55 @@
152269152331
case 240: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
152270152332
{
152271152333
Token all;
152272152334
all.z = yymsp[-3].minor.yy0.z;
152273152335
all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
152274
- sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy524, &all);
152336
+ sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy455, &all);
152275152337
}
152276152338
break;
152277152339
case 241: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
152278152340
{
152279
- sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy420, yymsp[-4].minor.yy498.a, yymsp[-4].minor.yy498.b, yymsp[-2].minor.yy147, yymsp[0].minor.yy130, yymsp[-10].minor.yy420, yymsp[-8].minor.yy420);
152341
+ sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy494, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.yy483, yymsp[0].minor.yy524, yymsp[-10].minor.yy494, yymsp[-8].minor.yy494);
152280152342
yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
152281152343
}
152282152344
break;
152283152345
case 242: /* trigger_time ::= BEFORE|AFTER */
152284
-{ yymsp[0].minor.yy420 = yymsp[0].major; /*A-overwrites-X*/ }
152346
+{ yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-X*/ }
152285152347
break;
152286152348
case 243: /* trigger_time ::= INSTEAD OF */
152287
-{ yymsp[-1].minor.yy420 = TK_INSTEAD;}
152349
+{ yymsp[-1].minor.yy494 = TK_INSTEAD;}
152288152350
break;
152289152351
case 244: /* trigger_time ::= */
152290
-{ yymsp[1].minor.yy420 = TK_BEFORE; }
152352
+{ yymsp[1].minor.yy494 = TK_BEFORE; }
152291152353
break;
152292152354
case 245: /* trigger_event ::= DELETE|INSERT */
152293152355
case 246: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==246);
152294
-{yymsp[0].minor.yy498.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy498.b = 0;}
152356
+{yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;}
152295152357
break;
152296152358
case 247: /* trigger_event ::= UPDATE OF idlist */
152297
-{yymsp[-2].minor.yy498.a = TK_UPDATE; yymsp[-2].minor.yy498.b = yymsp[0].minor.yy200;}
152359
+{yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy62;}
152298152360
break;
152299152361
case 248: /* when_clause ::= */
152300152362
case 267: /* key_opt ::= */ yytestcase(yyruleno==267);
152301152363
case 315: /* filter_opt ::= */ yytestcase(yyruleno==315);
152302
-{ yymsp[1].minor.yy130 = 0; }
152364
+{ yymsp[1].minor.yy524 = 0; }
152303152365
break;
152304152366
case 249: /* when_clause ::= WHEN expr */
152305152367
case 268: /* key_opt ::= KEY expr */ yytestcase(yyruleno==268);
152306
-{ yymsp[-1].minor.yy130 = yymsp[0].minor.yy130; }
152368
+{ yymsp[-1].minor.yy524 = yymsp[0].minor.yy524; }
152307152369
break;
152308152370
case 250: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
152309152371
{
152310
- assert( yymsp[-2].minor.yy524!=0 );
152311
- yymsp[-2].minor.yy524->pLast->pNext = yymsp[-1].minor.yy524;
152312
- yymsp[-2].minor.yy524->pLast = yymsp[-1].minor.yy524;
152372
+ assert( yymsp[-2].minor.yy455!=0 );
152373
+ yymsp[-2].minor.yy455->pLast->pNext = yymsp[-1].minor.yy455;
152374
+ yymsp[-2].minor.yy455->pLast = yymsp[-1].minor.yy455;
152313152375
}
152314152376
break;
152315152377
case 251: /* trigger_cmd_list ::= trigger_cmd SEMI */
152316152378
{
152317
- assert( yymsp[-1].minor.yy524!=0 );
152318
- yymsp[-1].minor.yy524->pLast = yymsp[-1].minor.yy524;
152379
+ assert( yymsp[-1].minor.yy455!=0 );
152380
+ yymsp[-1].minor.yy455->pLast = yymsp[-1].minor.yy455;
152319152381
}
152320152382
break;
152321152383
case 252: /* trnm ::= nm DOT nm */
152322152384
{
152323152385
yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
@@ -152339,62 +152401,62 @@
152339152401
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
152340152402
"within triggers");
152341152403
}
152342152404
break;
152343152405
case 255: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
152344
-{yylhsminor.yy524 = sqlite3TriggerUpdateStep(pParse, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy130, yymsp[-6].minor.yy420, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy104);}
152345
- yymsp[-7].minor.yy524 = yylhsminor.yy524;
152406
+{yylhsminor.yy455 = sqlite3TriggerUpdateStep(pParse, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy434, yymsp[-1].minor.yy524, yymsp[-6].minor.yy494, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy294);}
152407
+ yymsp[-7].minor.yy455 = yylhsminor.yy455;
152346152408
break;
152347152409
case 256: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
152348152410
{
152349
- yylhsminor.yy524 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy200,yymsp[-2].minor.yy491,yymsp[-6].minor.yy420,yymsp[-1].minor.yy426,yymsp[-7].minor.yy104,yymsp[0].minor.yy104);/*yylhsminor.yy524-overwrites-yymsp[-6].minor.yy420*/
152411
+ yylhsminor.yy455 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy62,yymsp[-2].minor.yy457,yymsp[-6].minor.yy494,yymsp[-1].minor.yy136,yymsp[-7].minor.yy294,yymsp[0].minor.yy294);/*yylhsminor.yy455-overwrites-yymsp[-6].minor.yy494*/
152350152412
}
152351
- yymsp[-7].minor.yy524 = yylhsminor.yy524;
152413
+ yymsp[-7].minor.yy455 = yylhsminor.yy455;
152352152414
break;
152353152415
case 257: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
152354
-{yylhsminor.yy524 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy130, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy104);}
152355
- yymsp[-5].minor.yy524 = yylhsminor.yy524;
152416
+{yylhsminor.yy455 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy524, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy294);}
152417
+ yymsp[-5].minor.yy455 = yylhsminor.yy455;
152356152418
break;
152357152419
case 258: /* trigger_cmd ::= scanpt select scanpt */
152358
-{yylhsminor.yy524 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy491, yymsp[-2].minor.yy104, yymsp[0].minor.yy104); /*yylhsminor.yy524-overwrites-yymsp[-1].minor.yy491*/}
152359
- yymsp[-2].minor.yy524 = yylhsminor.yy524;
152420
+{yylhsminor.yy455 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy457, yymsp[-2].minor.yy294, yymsp[0].minor.yy294); /*yylhsminor.yy455-overwrites-yymsp[-1].minor.yy457*/}
152421
+ yymsp[-2].minor.yy455 = yylhsminor.yy455;
152360152422
break;
152361152423
case 259: /* expr ::= RAISE LP IGNORE RP */
152362152424
{
152363
- yymsp[-3].minor.yy130 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
152364
- if( yymsp[-3].minor.yy130 ){
152365
- yymsp[-3].minor.yy130->affinity = OE_Ignore;
152425
+ yymsp[-3].minor.yy524 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
152426
+ if( yymsp[-3].minor.yy524 ){
152427
+ yymsp[-3].minor.yy524->affinity = OE_Ignore;
152366152428
}
152367152429
}
152368152430
break;
152369152431
case 260: /* expr ::= RAISE LP raisetype COMMA nm RP */
152370152432
{
152371
- yymsp[-5].minor.yy130 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
152372
- if( yymsp[-5].minor.yy130 ) {
152373
- yymsp[-5].minor.yy130->affinity = (char)yymsp[-3].minor.yy420;
152433
+ yymsp[-5].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
152434
+ if( yymsp[-5].minor.yy524 ) {
152435
+ yymsp[-5].minor.yy524->affinity = (char)yymsp[-3].minor.yy494;
152374152436
}
152375152437
}
152376152438
break;
152377152439
case 261: /* raisetype ::= ROLLBACK */
152378
-{yymsp[0].minor.yy420 = OE_Rollback;}
152440
+{yymsp[0].minor.yy494 = OE_Rollback;}
152379152441
break;
152380152442
case 263: /* raisetype ::= FAIL */
152381
-{yymsp[0].minor.yy420 = OE_Fail;}
152443
+{yymsp[0].minor.yy494 = OE_Fail;}
152382152444
break;
152383152445
case 264: /* cmd ::= DROP TRIGGER ifexists fullname */
152384152446
{
152385
- sqlite3DropTrigger(pParse,yymsp[0].minor.yy147,yymsp[-1].minor.yy420);
152447
+ sqlite3DropTrigger(pParse,yymsp[0].minor.yy483,yymsp[-1].minor.yy494);
152386152448
}
152387152449
break;
152388152450
case 265: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
152389152451
{
152390
- sqlite3Attach(pParse, yymsp[-3].minor.yy130, yymsp[-1].minor.yy130, yymsp[0].minor.yy130);
152452
+ sqlite3Attach(pParse, yymsp[-3].minor.yy524, yymsp[-1].minor.yy524, yymsp[0].minor.yy524);
152391152453
}
152392152454
break;
152393152455
case 266: /* cmd ::= DETACH database_kw_opt expr */
152394152456
{
152395
- sqlite3Detach(pParse, yymsp[0].minor.yy130);
152457
+ sqlite3Detach(pParse, yymsp[0].minor.yy524);
152396152458
}
152397152459
break;
152398152460
case 269: /* cmd ::= REINDEX */
152399152461
{sqlite3Reindex(pParse, 0, 0);}
152400152462
break;
@@ -152407,11 +152469,11 @@
152407152469
case 272: /* cmd ::= ANALYZE nm dbnm */
152408152470
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
152409152471
break;
152410152472
case 273: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
152411152473
{
152412
- sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy147,&yymsp[0].minor.yy0);
152474
+ sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy483,&yymsp[0].minor.yy0);
152413152475
}
152414152476
break;
152415152477
case 274: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
152416152478
{
152417152479
yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
@@ -152419,16 +152481,16 @@
152419152481
}
152420152482
break;
152421152483
case 275: /* add_column_fullname ::= fullname */
152422152484
{
152423152485
disableLookaside(pParse);
152424
- sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy147);
152486
+ sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy483);
152425152487
}
152426152488
break;
152427152489
case 276: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
152428152490
{
152429
- sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy147, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
152491
+ sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy483, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
152430152492
}
152431152493
break;
152432152494
case 277: /* cmd ::= create_vtab */
152433152495
{sqlite3VtabFinishParse(pParse,0);}
152434152496
break;
@@ -152435,11 +152497,11 @@
152435152497
case 278: /* cmd ::= create_vtab LP vtabarglist RP */
152436152498
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
152437152499
break;
152438152500
case 279: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
152439152501
{
152440
- sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy420);
152502
+ sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy494);
152441152503
}
152442152504
break;
152443152505
case 280: /* vtabarg ::= */
152444152506
{sqlite3VtabArgInit(pParse);}
152445152507
break;
@@ -152448,148 +152510,148 @@
152448152510
case 283: /* lp ::= LP */ yytestcase(yyruleno==283);
152449152511
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
152450152512
break;
152451152513
case 284: /* with ::= WITH wqlist */
152452152514
case 285: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==285);
152453
-{ sqlite3WithPush(pParse, yymsp[0].minor.yy523, 1); }
152515
+{ sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); }
152454152516
break;
152455152517
case 286: /* wqlist ::= nm eidlist_opt AS LP select RP */
152456152518
{
152457
- yymsp[-5].minor.yy523 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy442, yymsp[-1].minor.yy491); /*A-overwrites-X*/
152519
+ yymsp[-5].minor.yy59 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy434, yymsp[-1].minor.yy457); /*A-overwrites-X*/
152458152520
}
152459152521
break;
152460152522
case 287: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
152461152523
{
152462
- yymsp[-7].minor.yy523 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy523, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy442, yymsp[-1].minor.yy491);
152524
+ yymsp[-7].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy59, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy434, yymsp[-1].minor.yy457);
152463152525
}
152464152526
break;
152465152527
case 288: /* windowdefn_list ::= windowdefn */
152466
-{ yylhsminor.yy395 = yymsp[0].minor.yy395; }
152467
- yymsp[0].minor.yy395 = yylhsminor.yy395;
152528
+{ yylhsminor.yy295 = yymsp[0].minor.yy295; }
152529
+ yymsp[0].minor.yy295 = yylhsminor.yy295;
152468152530
break;
152469152531
case 289: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */
152470152532
{
152471
- assert( yymsp[0].minor.yy395!=0 );
152472
- sqlite3WindowChain(pParse, yymsp[0].minor.yy395, yymsp[-2].minor.yy395);
152473
- yymsp[0].minor.yy395->pNextWin = yymsp[-2].minor.yy395;
152474
- yylhsminor.yy395 = yymsp[0].minor.yy395;
152533
+ assert( yymsp[0].minor.yy295!=0 );
152534
+ sqlite3WindowChain(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy295);
152535
+ yymsp[0].minor.yy295->pNextWin = yymsp[-2].minor.yy295;
152536
+ yylhsminor.yy295 = yymsp[0].minor.yy295;
152475152537
}
152476
- yymsp[-2].minor.yy395 = yylhsminor.yy395;
152538
+ yymsp[-2].minor.yy295 = yylhsminor.yy295;
152477152539
break;
152478152540
case 290: /* windowdefn ::= nm AS LP window RP */
152479152541
{
152480
- if( ALWAYS(yymsp[-1].minor.yy395) ){
152481
- yymsp[-1].minor.yy395->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
152542
+ if( ALWAYS(yymsp[-1].minor.yy295) ){
152543
+ yymsp[-1].minor.yy295->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
152482152544
}
152483
- yylhsminor.yy395 = yymsp[-1].minor.yy395;
152545
+ yylhsminor.yy295 = yymsp[-1].minor.yy295;
152484152546
}
152485
- yymsp[-4].minor.yy395 = yylhsminor.yy395;
152547
+ yymsp[-4].minor.yy295 = yylhsminor.yy295;
152486152548
break;
152487152549
case 291: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */
152488152550
{
152489
- yymsp[-4].minor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, yymsp[-2].minor.yy442, yymsp[-1].minor.yy442, 0);
152551
+ yymsp[-4].minor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy434, yymsp[-1].minor.yy434, 0);
152490152552
}
152491152553
break;
152492152554
case 292: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
152493152555
{
152494
- yylhsminor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, yymsp[-2].minor.yy442, yymsp[-1].minor.yy442, &yymsp[-5].minor.yy0);
152556
+ yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy434, yymsp[-1].minor.yy434, &yymsp[-5].minor.yy0);
152495152557
}
152496
- yymsp[-5].minor.yy395 = yylhsminor.yy395;
152558
+ yymsp[-5].minor.yy295 = yylhsminor.yy295;
152497152559
break;
152498152560
case 293: /* window ::= ORDER BY sortlist frame_opt */
152499152561
{
152500
- yymsp[-3].minor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, 0, yymsp[-1].minor.yy442, 0);
152562
+ yymsp[-3].minor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, yymsp[-1].minor.yy434, 0);
152501152563
}
152502152564
break;
152503152565
case 294: /* window ::= nm ORDER BY sortlist frame_opt */
152504152566
{
152505
- yylhsminor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, 0, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0);
152567
+ yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, yymsp[-1].minor.yy434, &yymsp[-4].minor.yy0);
152506152568
}
152507
- yymsp[-4].minor.yy395 = yylhsminor.yy395;
152569
+ yymsp[-4].minor.yy295 = yylhsminor.yy295;
152508152570
break;
152509152571
case 295: /* window ::= frame_opt */
152510152572
{
152511
- yylhsminor.yy395 = yymsp[0].minor.yy395;
152573
+ yylhsminor.yy295 = yymsp[0].minor.yy295;
152512152574
}
152513
- yymsp[0].minor.yy395 = yylhsminor.yy395;
152575
+ yymsp[0].minor.yy295 = yylhsminor.yy295;
152514152576
break;
152515152577
case 296: /* window ::= nm frame_opt */
152516152578
{
152517
- yylhsminor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, 0, 0, &yymsp[-1].minor.yy0);
152579
+ yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, 0, &yymsp[-1].minor.yy0);
152518152580
}
152519
- yymsp[-1].minor.yy395 = yylhsminor.yy395;
152581
+ yymsp[-1].minor.yy295 = yylhsminor.yy295;
152520152582
break;
152521152583
case 297: /* frame_opt ::= */
152522152584
{
152523
- yymsp[1].minor.yy395 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
152585
+ yymsp[1].minor.yy295 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
152524152586
}
152525152587
break;
152526152588
case 298: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
152527152589
{
152528
- yylhsminor.yy395 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy420, yymsp[-1].minor.yy273.eType, yymsp[-1].minor.yy273.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy10);
152590
+ yylhsminor.yy295 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy494, yymsp[-1].minor.yy201.eType, yymsp[-1].minor.yy201.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy238);
152529152591
}
152530
- yymsp[-2].minor.yy395 = yylhsminor.yy395;
152592
+ yymsp[-2].minor.yy295 = yylhsminor.yy295;
152531152593
break;
152532152594
case 299: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
152533152595
{
152534
- yylhsminor.yy395 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy420, yymsp[-3].minor.yy273.eType, yymsp[-3].minor.yy273.pExpr, yymsp[-1].minor.yy273.eType, yymsp[-1].minor.yy273.pExpr, yymsp[0].minor.yy10);
152596
+ yylhsminor.yy295 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy494, yymsp[-3].minor.yy201.eType, yymsp[-3].minor.yy201.pExpr, yymsp[-1].minor.yy201.eType, yymsp[-1].minor.yy201.pExpr, yymsp[0].minor.yy238);
152535152597
}
152536
- yymsp[-5].minor.yy395 = yylhsminor.yy395;
152598
+ yymsp[-5].minor.yy295 = yylhsminor.yy295;
152537152599
break;
152538152600
case 301: /* frame_bound_s ::= frame_bound */
152539152601
case 303: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==303);
152540
-{yylhsminor.yy273 = yymsp[0].minor.yy273;}
152541
- yymsp[0].minor.yy273 = yylhsminor.yy273;
152602
+{yylhsminor.yy201 = yymsp[0].minor.yy201;}
152603
+ yymsp[0].minor.yy201 = yylhsminor.yy201;
152542152604
break;
152543152605
case 302: /* frame_bound_s ::= UNBOUNDED PRECEDING */
152544152606
case 304: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==304);
152545152607
case 306: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==306);
152546
-{yylhsminor.yy273.eType = yymsp[-1].major; yylhsminor.yy273.pExpr = 0;}
152547
- yymsp[-1].minor.yy273 = yylhsminor.yy273;
152608
+{yylhsminor.yy201.eType = yymsp[-1].major; yylhsminor.yy201.pExpr = 0;}
152609
+ yymsp[-1].minor.yy201 = yylhsminor.yy201;
152548152610
break;
152549152611
case 305: /* frame_bound ::= expr PRECEDING|FOLLOWING */
152550
-{yylhsminor.yy273.eType = yymsp[0].major; yylhsminor.yy273.pExpr = yymsp[-1].minor.yy130;}
152551
- yymsp[-1].minor.yy273 = yylhsminor.yy273;
152612
+{yylhsminor.yy201.eType = yymsp[0].major; yylhsminor.yy201.pExpr = yymsp[-1].minor.yy524;}
152613
+ yymsp[-1].minor.yy201 = yylhsminor.yy201;
152552152614
break;
152553152615
case 307: /* frame_exclude_opt ::= */
152554
-{yymsp[1].minor.yy10 = 0;}
152616
+{yymsp[1].minor.yy238 = 0;}
152555152617
break;
152556152618
case 308: /* frame_exclude_opt ::= EXCLUDE frame_exclude */
152557
-{yymsp[-1].minor.yy10 = yymsp[0].minor.yy10;}
152619
+{yymsp[-1].minor.yy238 = yymsp[0].minor.yy238;}
152558152620
break;
152559152621
case 309: /* frame_exclude ::= NO OTHERS */
152560152622
case 310: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==310);
152561
-{yymsp[-1].minor.yy10 = yymsp[-1].major; /*A-overwrites-X*/}
152623
+{yymsp[-1].minor.yy238 = yymsp[-1].major; /*A-overwrites-X*/}
152562152624
break;
152563152625
case 311: /* frame_exclude ::= GROUP|TIES */
152564
-{yymsp[0].minor.yy10 = yymsp[0].major; /*A-overwrites-X*/}
152626
+{yymsp[0].minor.yy238 = yymsp[0].major; /*A-overwrites-X*/}
152565152627
break;
152566152628
case 312: /* window_clause ::= WINDOW windowdefn_list */
152567
-{ yymsp[-1].minor.yy395 = yymsp[0].minor.yy395; }
152629
+{ yymsp[-1].minor.yy295 = yymsp[0].minor.yy295; }
152568152630
break;
152569152631
case 313: /* over_clause ::= filter_opt OVER LP window RP */
152570152632
{
152571
- yylhsminor.yy395 = yymsp[-1].minor.yy395;
152572
- assert( yylhsminor.yy395!=0 );
152573
- yylhsminor.yy395->pFilter = yymsp[-4].minor.yy130;
152633
+ yylhsminor.yy295 = yymsp[-1].minor.yy295;
152634
+ assert( yylhsminor.yy295!=0 );
152635
+ yylhsminor.yy295->pFilter = yymsp[-4].minor.yy524;
152574152636
}
152575
- yymsp[-4].minor.yy395 = yylhsminor.yy395;
152637
+ yymsp[-4].minor.yy295 = yylhsminor.yy295;
152576152638
break;
152577152639
case 314: /* over_clause ::= filter_opt OVER nm */
152578152640
{
152579
- yylhsminor.yy395 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
152580
- if( yylhsminor.yy395 ){
152581
- yylhsminor.yy395->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
152582
- yylhsminor.yy395->pFilter = yymsp[-2].minor.yy130;
152641
+ yylhsminor.yy295 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
152642
+ if( yylhsminor.yy295 ){
152643
+ yylhsminor.yy295->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
152644
+ yylhsminor.yy295->pFilter = yymsp[-2].minor.yy524;
152583152645
}else{
152584
- sqlite3ExprDelete(pParse->db, yymsp[-2].minor.yy130);
152646
+ sqlite3ExprDelete(pParse->db, yymsp[-2].minor.yy524);
152585152647
}
152586152648
}
152587
- yymsp[-2].minor.yy395 = yylhsminor.yy395;
152649
+ yymsp[-2].minor.yy295 = yylhsminor.yy295;
152588152650
break;
152589152651
case 316: /* filter_opt ::= FILTER LP WHERE expr RP */
152590
-{ yymsp[-4].minor.yy130 = yymsp[-1].minor.yy130; }
152652
+{ yymsp[-4].minor.yy524 = yymsp[-1].minor.yy524; }
152591152653
break;
152592152654
default:
152593152655
/* (317) input ::= cmdlist */ yytestcase(yyruleno==317);
152594152656
/* (318) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==318);
152595152657
/* (319) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=319);
@@ -211378,12 +211440,12 @@
211378211440
}else if( p2->pLeaf==0 ){ /* If p2 is at EOF */
211379211441
iRes = i1;
211380211442
}else{
211381211443
int res = fts5BufferCompare(&p1->term, &p2->term);
211382211444
if( res==0 ){
211383
- assert( i2>i1 );
211384
- assert( i2!=0 );
211445
+ assert_nc( i2>i1 );
211446
+ assert_nc( i2!=0 );
211385211447
pRes->bTermEq = 1;
211386211448
if( p1->iRowid==p2->iRowid ){
211387211449
p1->bDel = p2->bDel;
211388211450
return i2;
211389211451
}
@@ -217957,11 +218019,11 @@
217957218019
int nArg, /* Number of args */
217958218020
sqlite3_value **apUnused /* Function arguments */
217959218021
){
217960218022
assert( nArg==0 );
217961218023
UNUSED_PARAM2(nArg, apUnused);
217962
- sqlite3_result_text(pCtx, "fts5: 2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2ad28f", -1, SQLITE_TRANSIENT);
218024
+ sqlite3_result_text(pCtx, "fts5: 2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f", -1, SQLITE_TRANSIENT);
217963218025
}
217964218026
217965218027
/*
217966218028
** Return true if zName is the extension on one of the shadow tables used
217967218029
** by this module.
@@ -222721,12 +222783,12 @@
222721222783
}
222722222784
#endif /* SQLITE_CORE */
222723222785
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
222724222786
222725222787
/************** End of stmt.c ************************************************/
222726
-#if __LINE__!=222726
222788
+#if __LINE__!=222788
222727222789
#undef SQLITE_SOURCE_ID
222728
-#define SQLITE_SOURCE_ID "2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2aalt2"
222790
+#define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35alt2"
222729222791
#endif
222730222792
/* Return the source-id for this library */
222731222793
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
222732222794
/************************** End of sqlite3.c ******************************/
222733222795
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1162,11 +1162,11 @@
1162 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1163 ** [sqlite_version()] and [sqlite_source_id()].
1164 */
1165 #define SQLITE_VERSION "3.28.0"
1166 #define SQLITE_VERSION_NUMBER 3028000
1167 #define SQLITE_SOURCE_ID "2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2ad28f"
1168
1169 /*
1170 ** CAPI3REF: Run-Time Library Version Numbers
1171 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1172 **
@@ -6017,11 +6017,11 @@
6017 ** <td>&rarr;&nbsp;&nbsp;<td>Best numeric datatype of the value
6018 ** <tr><td><b>sqlite3_value_nochange&nbsp;&nbsp;</b>
6019 ** <td>&rarr;&nbsp;&nbsp;<td>True if the column is unchanged in an UPDATE
6020 ** against a virtual table.
6021 ** <tr><td><b>sqlite3_value_frombind&nbsp;&nbsp;</b>
6022 ** <td>&rarr;&nbsp;&nbsp;<td>True if value originated a bound parameter
6023 ** </table></blockquote>
6024 **
6025 ** <b>Details:</b>
6026 **
6027 ** These routines extract type, size, and content information from
@@ -13643,21 +13643,12 @@
13643 #define TK_VECTOR 169
13644 #define TK_SELECT_COLUMN 170
13645 #define TK_IF_NULL_ROW 171
13646 #define TK_ASTERISK 172
13647 #define TK_SPAN 173
13648 #define TK_END_OF_FILE 174
13649 #define TK_UNCLOSED_STRING 175
13650 #define TK_SPACE 176
13651 #define TK_ILLEGAL 177
13652
13653 /* The token codes above must all fit in 8 bits */
13654 #define TKFLG_MASK 0xff
13655
13656 /* Flags that can be added to a token code when it is not
13657 ** being stored in a u8: */
13658 #define TKFLG_DONTFOLD 0x100 /* Omit constant folding optimizations */
13659
13660 /************** End of parse.h ***********************************************/
13661 /************** Continuing where we left off in sqliteInt.h ******************/
13662 #include <stdio.h>
13663 #include <stdlib.h>
@@ -16495,11 +16486,12 @@
16495 ** Allowed values for sqlite3.mDbFlags
16496 */
16497 #define DBFLAG_SchemaChange 0x0001 /* Uncommitted Hash table changes */
16498 #define DBFLAG_PreferBuiltin 0x0002 /* Preference to built-in funcs */
16499 #define DBFLAG_Vacuum 0x0004 /* Currently in a VACUUM */
16500 #define DBFLAG_SchemaKnownOk 0x0008 /* Schema is known to be valid */
 
16501
16502 /*
16503 ** Bits of the sqlite3.dbOptFlags field that are used by the
16504 ** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to
16505 ** selectively disable various optimizations.
@@ -18763,10 +18755,11 @@
18763 #endif
18764
18765
18766 SQLITE_PRIVATE void sqlite3SetString(char **, sqlite3*, const char*);
18767 SQLITE_PRIVATE void sqlite3ErrorMsg(Parse*, const char*, ...);
 
18768 SQLITE_PRIVATE void sqlite3Dequote(char*);
18769 SQLITE_PRIVATE void sqlite3DequoteExpr(Expr*);
18770 SQLITE_PRIVATE void sqlite3TokenInit(Token*,char*);
18771 SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char*, int);
18772 SQLITE_PRIVATE int sqlite3RunParser(Parse*, const char*, char **);
@@ -20222,10 +20215,16 @@
20222 ** Clear any existing type flags from a Mem and replace them with f
20223 */
20224 #define MemSetTypeFlag(p, f) \
20225 ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)
20226
 
 
 
 
 
 
20227 /*
20228 ** Return true if a memory cell is not marked as invalid. This macro
20229 ** is for use inside assert() statements only.
20230 */
20231 #ifdef SQLITE_DEBUG
@@ -27368,10 +27367,11 @@
27368 */
27369 static void setStrAccumError(StrAccum *p, u8 eError){
27370 assert( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG );
27371 p->accError = eError;
27372 if( p->mxAlloc ) sqlite3_str_reset(p);
 
27373 }
27374
27375 /*
27376 ** Extra argument values from a PrintfArguments object
27377 */
@@ -30225,19 +30225,27 @@
30225 dummy += (unsigned)x;
30226 }
30227 #endif
30228
30229 /*
30230 ** Give a callback to the test harness that can be used to simulate faults
30231 ** in places where it is difficult or expensive to do so purely by means
30232 ** of inputs.
30233 **
30234 ** The intent of the integer argument is to let the fault simulator know
30235 ** which of multiple sqlite3FaultSim() calls has been hit.
30236 **
30237 ** Return whatever integer value the test callback returns, or return
30238 ** SQLITE_OK if no test callback is installed.
 
 
 
 
 
 
 
 
30239 */
30240 #ifndef SQLITE_UNTESTABLE
30241 SQLITE_PRIVATE int sqlite3FaultSim(int iTest){
30242 int (*xCallback)(int) = sqlite3GlobalConfig.xTestCallback;
30243 return xCallback ? xCallback(iTest) : SQLITE_OK;
@@ -30417,10 +30425,23 @@
30417 sqlite3DbFree(db, pParse->zErrMsg);
30418 pParse->zErrMsg = zMsg;
30419 pParse->rc = SQLITE_ERROR;
30420 }
30421 }
 
 
 
 
 
 
 
 
 
 
 
 
 
30422
30423 /*
30424 ** Convert an SQL-style quoted string into a normal string by removing
30425 ** the quote characters. The conversion is done in-place. If the
30426 ** input does not begin with a quote character, then this routine
@@ -69336,11 +69357,11 @@
69336 MemPage *pTrunk = 0; /* Free-list trunk page */
69337 Pgno iTrunk = 0; /* Page number of free-list trunk page */
69338 MemPage *pPage1 = pBt->pPage1; /* Local reference to page 1 */
69339 MemPage *pPage; /* Page being freed. May be NULL. */
69340 int rc; /* Return Code */
69341 int nFree; /* Initial number of pages on free-list */
69342
69343 assert( sqlite3_mutex_held(pBt->mutex) );
69344 assert( CORRUPT_DB || iPage>1 );
69345 assert( !pMemPage || pMemPage->pgno==iPage );
69346
@@ -74697,17 +74718,19 @@
74697 */
74698 #ifndef SQLITE_OMIT_INCRBLOB
74699 SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *pMem){
74700 int nByte;
74701 assert( pMem->flags & MEM_Zero );
74702 assert( pMem->flags&MEM_Blob );
 
74703 assert( !sqlite3VdbeMemIsRowSet(pMem) );
74704 assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
74705
74706 /* Set nByte to the number of bytes required to store the expanded blob. */
74707 nByte = pMem->n + pMem->u.nZero;
74708 if( nByte<=0 ){
 
74709 nByte = 1;
74710 }
74711 if( sqlite3VdbeMemGrow(pMem, nByte, 1) ){
74712 return SQLITE_NOMEM_BKPT;
74713 }
@@ -75460,11 +75483,11 @@
75460 u32 nAlloc = nByte;
75461 if( flags&MEM_Term ){
75462 nAlloc += (enc==SQLITE_UTF8?1:2);
75463 }
75464 if( nByte>iLimit ){
75465 return SQLITE_TOOBIG;
75466 }
75467 testcase( nAlloc==0 );
75468 testcase( nAlloc==31 );
75469 testcase( nAlloc==32 );
75470 if( sqlite3VdbeMemClearAndResize(pMem, (int)MAX(nAlloc,32)) ){
@@ -97716,11 +97739,11 @@
97716 p = sqlite3ExprAnd(pParse->db, pLeft, pRight);
97717 }else{
97718 p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr));
97719 if( p ){
97720 memset(p, 0, sizeof(Expr));
97721 p->op = op & TKFLG_MASK;
97722 p->iAgg = -1;
97723 }
97724 sqlite3ExprAttachSubtrees(pParse->db, p, pLeft, pRight);
97725 }
97726 if( p ) {
@@ -111209,11 +111232,12 @@
111209 char *zErr;
111210 int j;
111211 StrAccum errMsg;
111212 Table *pTab = pIdx->pTable;
111213
111214 sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, 200);
 
111215 if( pIdx->aColExpr ){
111216 sqlite3_str_appendf(&errMsg, "index '%q'", pIdx->zName);
111217 }else{
111218 for(j=0; j<pIdx->nKeyCol; j++){
111219 char *zCol;
@@ -118698,10 +118722,17 @@
118698 if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break;
118699 }
118700 if( pSrcIdx==0 ){
118701 return 0; /* pDestIdx has no corresponding index in pSrc */
118702 }
 
 
 
 
 
 
 
118703 }
118704 #ifndef SQLITE_OMIT_CHECK
118705 if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){
118706 return 0; /* Tables have different CHECK constraints. Ticket #2252 */
118707 }
@@ -118775,11 +118806,11 @@
118775 addr2 = sqlite3VdbeAddOp3(v, OP_NotExists, iDest, 0, regRowid);
118776 VdbeCoverage(v);
118777 sqlite3RowidConstraint(pParse, onError, pDest);
118778 sqlite3VdbeJumpHere(v, addr2);
118779 autoIncStep(pParse, regAutoinc, regRowid);
118780 }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_Vacuum) ){
118781 addr1 = sqlite3VdbeAddOp2(v, OP_NewRowid, iDest, regRowid);
118782 }else{
118783 addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid);
118784 assert( (pDest->tabFlags & TF_Autoincrement)==0 );
118785 }
@@ -120104,14 +120135,17 @@
120104 sqlite3_str_value,
120105 /* Version 3.25.0 and later */
120106 sqlite3_create_window_function,
120107 /* Version 3.26.0 and later */
120108 #ifdef SQLITE_ENABLE_NORMALIZE
120109 sqlite3_normalized_sql
120110 #else
120111 0
120112 #endif
 
 
 
120113 };
120114
120115 /*
120116 ** Attempt to load an SQLite extension library contained in the file
120117 ** zFile. The entry point is zProc. zProc may be 0 in which case a
@@ -133979,11 +134013,11 @@
133979 }
133980
133981 /*
133982 ** This routine implements the OP_Vacuum opcode of the VDBE.
133983 */
133984 SQLITE_PRIVATE int sqlite3RunVacuum(
133985 char **pzErrMsg, /* Write error message here */
133986 sqlite3 *db, /* Database connection */
133987 int iDb, /* Which attached DB to vacuum */
133988 sqlite3_value *pOut /* Write results here, if not NULL. VACUUM INTO */
133989 ){
@@ -134003,15 +134037,15 @@
134003 const char *zDbMain; /* Schema name of database to vacuum */
134004 const char *zOut; /* Name of output file */
134005
134006 if( !db->autoCommit ){
134007 sqlite3SetString(pzErrMsg, db, "cannot VACUUM from within a transaction");
134008 return SQLITE_ERROR;
134009 }
134010 if( db->nVdbeActive>1 ){
134011 sqlite3SetString(pzErrMsg, db,"cannot VACUUM - SQL statements in progress");
134012 return SQLITE_ERROR;
134013 }
134014 saved_openFlags = db->openFlags;
134015 if( pOut ){
134016 if( sqlite3_value_type(pOut)!=SQLITE_TEXT ){
134017 sqlite3SetString(pzErrMsg, db, "non-text filename");
@@ -134070,10 +134104,11 @@
134070 if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){
134071 rc = SQLITE_ERROR;
134072 sqlite3SetString(pzErrMsg, db, "output file already exists");
134073 goto end_of_vacuum;
134074 }
 
134075 }
134076 nRes = sqlite3BtreeGetOptimalReserve(pMain);
134077
134078 /* A VACUUM cannot change the pagesize of an encrypted database. */
134079 #ifdef SQLITE_HAS_CODEC
@@ -138063,11 +138098,16 @@
138063 testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO );
138064 pExpr = sqlite3ExprDup(db, pExpr, 0);
138065 pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr);
138066 }
138067 if( pAndExpr ){
138068 pAndExpr = sqlite3PExpr(pParse, TK_AND|TKFLG_DONTFOLD, 0, pAndExpr);
 
 
 
 
 
138069 }
138070 }
138071
138072 /* Run a separate WHERE clause for each term of the OR clause. After
138073 ** eliminating duplicates from other WHERE clauses, the action for each
@@ -148247,10 +148287,14 @@
148247 pIdToken->n, pIdToken->z);
148248 }
148249 sqlite3ExprListSetName(pParse, p, pIdToken, 1);
148250 return p;
148251 }
 
 
 
 
148252 /**************** End of %include directives **********************************/
148253 /* These constants specify the various numeric values for terminal symbols
148254 ** in a format understandable to "makeheaders". This section is blank unless
148255 ** "lemon" is run with the "-m" command-line option.
148256 ***************** Begin makeheaders token definitions *************************/
@@ -148310,32 +148354,32 @@
148310 #ifndef INTERFACE
148311 # define INTERFACE 1
148312 #endif
148313 /************* Begin control #defines *****************************************/
148314 #define YYCODETYPE unsigned short int
148315 #define YYNOCODE 284
148316 #define YYACTIONTYPE unsigned short int
148317 #define YYWILDCARD 95
148318 #define sqlite3ParserTOKENTYPE Token
148319 typedef union {
148320 int yyinit;
148321 sqlite3ParserTOKENTYPE yy0;
148322 u8 yy10;
148323 const char* yy104;
148324 Expr* yy130;
148325 SrcList* yy147;
148326 IdList* yy200;
148327 struct FrameBound yy273;
148328 Window* yy395;
148329 int yy420;
148330 Upsert* yy426;
148331 ExprList* yy442;
148332 Select* yy491;
148333 struct TrigEvent yy498;
148334 With* yy523;
148335 TriggerStep* yy524;
148336 struct {int value; int mask;} yy527;
148337 } YYMINORTYPE;
148338 #ifndef YYSTACKDEPTH
148339 #define YYSTACKDEPTH 100
148340 #endif
148341 #define sqlite3ParserARG_SDECL
@@ -148349,11 +148393,11 @@
148349 #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse;
148350 #define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
148351 #define YYFALLBACK 1
148352 #define YYNSTATE 541
148353 #define YYNRULE 375
148354 #define YYNTOKEN 159
148355 #define YY_MAX_SHIFT 540
148356 #define YY_MIN_SHIFTREDUCE 784
148357 #define YY_MAX_SHIFTREDUCE 1158
148358 #define YY_ERROR_ACTION 1159
148359 #define YY_ACCEPT_ACTION 1160
@@ -148426,190 +148470,190 @@
148426 ** yy_default[] Default action for each state.
148427 **
148428 *********** Begin parsing tables **********************************************/
148429 #define YY_ACTTAB_COUNT (2142)
148430 static const YYACTIONTYPE yy_action[] = {
148431 /* 0 */ 388, 112, 109, 209, 535, 190, 442, 259, 1160, 1,
148432 /* 10 */ 1, 540, 2, 1164, 535, 1292, 1500, 371, 289, 384,
148433 /* 20 */ 134, 1484, 1427, 1164, 1202, 69, 69, 1241, 289, 492,
148434 /* 30 */ 134, 915, 382, 296, 175, 42, 42, 1241, 242, 916,
148435 /* 40 */ 112, 109, 209, 119, 120, 110, 1136, 1136, 981, 984,
148436 /* 50 */ 974, 974, 117, 117, 118, 118, 118, 118, 1291, 264,
148437 /* 60 */ 264, 264, 264, 112, 109, 209, 112, 109, 209, 264,
148438 /* 70 */ 264, 1115, 532, 1134, 532, 176, 270, 453, 239, 206,
148439 /* 80 */ 379, 450, 532, 356, 380, 219, 118, 118, 118, 118,
148440 /* 90 */ 111, 444, 535, 1233, 1233, 219, 116, 116, 116, 116,
148441 /* 100 */ 115, 115, 114, 114, 114, 113, 415, 258, 258, 112,
148442 /* 110 */ 109, 209, 1115, 42, 42, 419, 384, 1391, 1504, 1115,
148443 /* 120 */ 532, 1115, 1116, 1117, 1134, 419, 1463, 351, 116, 116,
148444 /* 130 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 961,
148445 /* 140 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117,
148446 /* 150 */ 117, 118, 118, 118, 118, 952, 1228, 1207, 1115, 951,
148447 /* 160 */ 412, 411, 1115, 1116, 1117, 1228, 535, 876, 1140, 1115,
148448 /* 170 */ 1116, 1117, 875, 1142, 941, 114, 114, 114, 113, 415,
148449 /* 180 */ 1089, 1141, 1089, 118, 118, 118, 118, 42, 42, 202,
148450 /* 190 */ 951, 951, 953, 116, 116, 116, 116, 115, 115, 114,
148451 /* 200 */ 114, 114, 113, 415, 1465, 1143, 350, 1143, 1115, 1116,
148452 /* 210 */ 1117, 231, 415, 384, 472, 469, 468, 412, 411, 442,
148453 /* 220 */ 96, 311, 430, 299, 467, 116, 116, 116, 116, 115,
148454 /* 230 */ 115, 114, 114, 114, 113, 415, 160, 119, 120, 110,
148455 /* 240 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148456 /* 250 */ 118, 118, 115, 115, 114, 114, 114, 113, 415, 529,
148457 /* 260 */ 529, 529, 1143, 121, 1143, 116, 116, 116, 116, 115,
148458 /* 270 */ 115, 114, 114, 114, 113, 415, 941, 337, 1463, 506,
148459 /* 280 */ 491, 1067, 1530, 384, 160, 1530, 288, 526, 1115, 274,
148460 /* 290 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148461 /* 300 */ 415, 16, 16, 406, 535, 93, 512, 119, 120, 110,
148462 /* 310 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148463 /* 320 */ 118, 118, 141, 311, 231, 54, 54, 472, 469, 468,
148464 /* 330 */ 427, 79, 368, 1156, 288, 526, 32, 467, 1115, 1116,
148465 /* 340 */ 1117, 1323, 1480, 540, 2, 1164, 971, 971, 982, 985,
148466 /* 350 */ 289, 384, 134, 459, 1065, 533, 80, 870, 870, 1241,
148467 /* 360 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148468 /* 370 */ 415, 818, 82, 1115, 1476, 119, 120, 110, 1136, 1136,
148469 /* 380 */ 981, 984, 974, 974, 117, 117, 118, 118, 118, 118,
148470 /* 390 */ 403, 264, 264, 238, 535, 1426, 250, 267, 336, 475,
148471 /* 400 */ 331, 474, 236, 459, 532, 1157, 961, 459, 329, 397,
148472 /* 410 */ 373, 513, 1450, 159, 975, 70, 70, 219, 413, 413,
148473 /* 420 */ 413, 818, 952, 1115, 1116, 1117, 951, 534, 116, 116,
148474 /* 430 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 1115,
148475 /* 440 */ 535, 442, 264, 264, 1115, 1390, 535, 419, 384, 422,
148476 /* 450 */ 1115, 517, 326, 1245, 304, 532, 1084, 951, 951, 953,
148477 /* 460 */ 493, 70, 70, 167, 509, 532, 1084, 70, 70, 1084,
148478 /* 470 */ 440, 535, 119, 120, 110, 1136, 1136, 981, 984, 974,
148479 /* 480 */ 974, 117, 117, 118, 118, 118, 118, 881, 535, 1115,
148480 /* 490 */ 1116, 1117, 55, 55, 1115, 1116, 1117, 517, 288, 526,
148481 /* 500 */ 1115, 1116, 1117, 517, 420, 494, 516, 113, 415, 13,
148482 /* 510 */ 13, 275, 482, 836, 349, 301, 535, 303, 500, 5,
148483 /* 520 */ 480, 1457, 138, 395, 6, 116, 116, 116, 116, 115,
148484 /* 530 */ 115, 114, 114, 114, 113, 415, 1458, 13, 13, 6,
148485 /* 540 */ 535, 1024, 1115, 535, 473, 384, 535, 435, 312, 822,
148486 /* 550 */ 1084, 400, 837, 159, 518, 181, 1115, 483, 502, 811,
148487 /* 560 */ 1084, 70, 70, 1084, 70, 70, 1115, 50, 50, 119,
148488 /* 570 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148489 /* 580 */ 118, 118, 118, 118, 95, 338, 264, 264, 1115, 264,
148490 /* 590 */ 264, 302, 1115, 1116, 1117, 495, 3, 498, 535, 532,
148491 /* 600 */ 517, 404, 532, 484, 801, 287, 1115, 1116, 1117, 519,
148492 /* 610 */ 811, 337, 501, 12, 535, 381, 1115, 1116, 1117, 70,
148493 /* 620 */ 70, 401, 116, 116, 116, 116, 115, 115, 114, 114,
148494 /* 630 */ 114, 113, 415, 1115, 1084, 13, 13, 535, 1115, 1116,
148495 /* 640 */ 1117, 1115, 384, 902, 1084, 1211, 815, 1084, 393, 402,
148496 /* 650 */ 160, 435, 312, 1532, 369, 284, 143, 297, 70, 70,
148497 /* 660 */ 510, 1457, 337, 433, 6, 901, 119, 120, 110, 1136,
148498 /* 670 */ 1136, 981, 984, 974, 974, 117, 117, 118, 118, 118,
148499 /* 680 */ 118, 1045, 426, 1115, 1116, 1117, 449, 535, 12, 264,
148500 /* 690 */ 264, 1115, 1116, 1117, 285, 535, 1046, 265, 265, 1004,
148501 /* 700 */ 288, 526, 532, 789, 790, 791, 190, 140, 70, 70,
148502 /* 710 */ 532, 1047, 1323, 535, 309, 298, 13, 13, 383, 116,
148503 /* 720 */ 116, 116, 116, 115, 115, 114, 114, 114, 113, 415,
148504 /* 730 */ 277, 535, 856, 190, 13, 13, 1383, 497, 278, 384,
148505 /* 740 */ 278, 362, 857, 1100, 410, 376, 264, 264, 184, 900,
148506 /* 750 */ 1210, 1239, 70, 70, 1182, 1455, 187, 535, 6, 532,
148507 /* 760 */ 535, 434, 207, 119, 120, 110, 1136, 1136, 981, 984,
148508 /* 770 */ 974, 974, 117, 117, 118, 118, 118, 118, 13, 13,
148509 /* 780 */ 398, 13, 13, 264, 264, 393, 264, 264, 414, 1185,
148510 /* 790 */ 390, 425, 185, 1396, 1084, 514, 532, 485, 9, 532,
148511 /* 800 */ 242, 464, 1067, 1531, 1084, 488, 1531, 1084, 425, 424,
148512 /* 810 */ 1396, 1398, 520, 1029, 1029, 456, 116, 116, 116, 116,
148513 /* 820 */ 115, 115, 114, 114, 114, 113, 415, 535, 235, 264,
148514 /* 830 */ 264, 508, 535, 393, 208, 1134, 384, 264, 264, 448,
148515 /* 840 */ 962, 448, 532, 261, 264, 264, 900, 507, 15, 15,
148516 /* 850 */ 532, 1026, 271, 44, 44, 1026, 1095, 532, 535, 900,
148517 /* 860 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117,
148518 /* 870 */ 117, 118, 118, 118, 118, 1065, 425, 1045, 1396, 56,
148519 /* 880 */ 56, 535, 368, 1066, 1231, 1231, 1134, 454, 535, 324,
148520 /* 890 */ 389, 355, 1046, 234, 233, 232, 512, 459, 459, 459,
148521 /* 900 */ 272, 448, 57, 57, 1095, 1438, 329, 1047, 535, 58,
148522 /* 910 */ 58, 421, 477, 116, 116, 116, 116, 115, 115, 114,
148523 /* 920 */ 114, 114, 113, 415, 1323, 535, 515, 535, 523, 59,
148524 /* 930 */ 59, 208, 273, 384, 310, 1435, 1323, 946, 876, 1240,
148525 /* 940 */ 1236, 317, 1456, 875, 136, 6, 60, 60, 61, 61,
148526 /* 950 */ 319, 535, 322, 384, 535, 1157, 900, 119, 120, 110,
148527 /* 960 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148528 /* 970 */ 118, 118, 45, 45, 535, 46, 46, 119, 120, 110,
148529 /* 980 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148530 /* 990 */ 118, 118, 399, 338, 276, 48, 48, 337, 1477, 479,
148531 /* 1000 */ 535, 107, 1451, 535, 455, 535, 1119, 95, 1338, 235,
148532 /* 1010 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148533 /* 1020 */ 415, 49, 49, 123, 62, 62, 63, 63, 535, 408,
148534 /* 1030 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148535 /* 1040 */ 415, 535, 142, 535, 481, 535, 1323, 535, 1503, 64,
148536 /* 1050 */ 64, 845, 1454, 1337, 535, 6, 535, 1119, 535, 357,
148537 /* 1060 */ 535, 353, 14, 14, 65, 65, 125, 125, 66, 66,
148538 /* 1070 */ 535, 389, 535, 291, 535, 51, 51, 67, 67, 68,
148539 /* 1080 */ 68, 52, 52, 292, 1453, 98, 535, 6, 535, 481,
148540 /* 1090 */ 535, 147, 147, 148, 148, 75, 75, 535, 915, 535,
148541 /* 1100 */ 827, 201, 200, 528, 390, 384, 916, 53, 53, 71,
148542 /* 1110 */ 71, 126, 126, 515, 409, 288, 526, 216, 72, 72,
148543 /* 1120 */ 127, 127, 391, 161, 535, 384, 535, 263, 206, 119,
148544 /* 1130 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148545 /* 1140 */ 118, 118, 118, 118, 535, 128, 128, 124, 124, 119,
148546 /* 1150 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148547 /* 1160 */ 118, 118, 118, 118, 446, 146, 146, 102, 1209, 100,
148548 /* 1170 */ 1133, 212, 139, 535, 38, 437, 1062, 308, 535, 370,
148549 /* 1180 */ 95, 295, 116, 116, 116, 116, 115, 115, 114, 114,
148550 /* 1190 */ 114, 113, 415, 535, 145, 145, 535, 938, 535, 132,
148551 /* 1200 */ 132, 535, 116, 116, 116, 116, 115, 115, 114, 114,
148552 /* 1210 */ 114, 113, 415, 535, 131, 131, 1151, 129, 129, 130,
148553 /* 1220 */ 130, 30, 74, 74, 535, 17, 535, 218, 535, 943,
148554 /* 1230 */ 441, 1277, 241, 241, 76, 76, 443, 101, 313, 241,
148555 /* 1240 */ 465, 95, 1023, 237, 1023, 73, 73, 43, 43, 47,
148556 /* 1250 */ 47, 335, 31, 327, 447, 266, 95, 384, 1276, 835,
148557 /* 1260 */ 834, 334, 193, 1007, 436, 429, 237, 825, 842, 843,
148558 /* 1270 */ 1011, 909, 873, 955, 241, 107, 1022, 384, 1022, 197,
148559 /* 1280 */ 1441, 119, 120, 110, 1136, 1136, 981, 984, 974, 974,
148560 /* 1290 */ 117, 117, 118, 118, 118, 118, 809, 305, 1264, 137,
148561 /* 1300 */ 1415, 119, 108, 110, 1136, 1136, 981, 984, 974, 974,
148562 /* 1310 */ 117, 117, 118, 118, 118, 118, 874, 522, 825, 107,
148563 /* 1320 */ 283, 1011, 1414, 1470, 955, 451, 314, 1273, 318, 321,
148564 /* 1330 */ 323, 325, 1224, 1208, 116, 116, 116, 116, 115, 115,
148565 /* 1340 */ 114, 114, 114, 113, 415, 330, 339, 340, 1285, 1322,
148566 /* 1350 */ 1260, 1271, 521, 1328, 116, 116, 116, 116, 115, 115,
148567 /* 1360 */ 114, 114, 114, 113, 415, 1191, 256, 1493, 1184, 1173,
148568 /* 1370 */ 460, 1172, 1174, 1257, 384, 342, 1487, 344, 346, 199,
148569 /* 1380 */ 195, 367, 11, 211, 307, 445, 1307, 428, 1315, 375,
148570 /* 1390 */ 203, 1207, 470, 188, 384, 189, 525, 1490, 1151, 120,
148571 /* 1400 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118,
148572 /* 1410 */ 118, 118, 118, 333, 1387, 1386, 245, 300, 348, 1434,
148573 /* 1420 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118,
148574 /* 1430 */ 118, 118, 118, 198, 360, 163, 1432, 1148, 78, 81,
148575 /* 1440 */ 392, 82, 1392, 439, 173, 105, 527, 157, 4, 165,
148576 /* 1450 */ 1312, 116, 116, 116, 116, 115, 115, 114, 114, 114,
148577 /* 1460 */ 113, 415, 530, 93, 35, 431, 432, 1304, 168, 463,
148578 /* 1470 */ 221, 116, 116, 116, 116, 115, 115, 114, 114, 114,
148579 /* 1480 */ 113, 415, 169, 170, 171, 416, 372, 438, 1318, 177,
148580 /* 1490 */ 452, 374, 36, 225, 1381, 87, 458, 524, 257, 1403,
148581 /* 1500 */ 316, 105, 527, 227, 4, 182, 461, 160, 320, 228,
148582 /* 1510 */ 377, 1175, 229, 476, 405, 1227, 1226, 1225, 530, 827,
148583 /* 1520 */ 961, 1218, 378, 1199, 1198, 407, 103, 103, 281, 1217,
148584 /* 1530 */ 8, 332, 1197, 104, 1502, 416, 537, 536, 282, 487,
148585 /* 1540 */ 951, 416, 490, 496, 1268, 92, 341, 243, 244, 1461,
148586 /* 1550 */ 1269, 1267, 122, 524, 1266, 515, 10, 288, 526, 343,
148587 /* 1560 */ 352, 1460, 354, 99, 504, 94, 499, 251, 1181, 503,
148588 /* 1570 */ 194, 951, 951, 953, 954, 27, 961, 1250, 345, 347,
148589 /* 1580 */ 1249, 358, 103, 103, 359, 34, 538, 1110, 1367, 104,
148590 /* 1590 */ 255, 416, 537, 536, 539, 1170, 951, 286, 252, 254,
148591 /* 1600 */ 149, 1165, 1419, 135, 1420, 785, 279, 1418, 417, 1417,
148592 /* 1610 */ 1195, 196, 150, 290, 210, 269, 151, 1021, 133, 1194,
148593 /* 1620 */ 1019, 935, 162, 386, 387, 77, 1192, 951, 951, 953,
148594 /* 1630 */ 954, 27, 1479, 1104, 418, 164, 153, 268, 217, 166,
148595 /* 1640 */ 859, 306, 366, 366, 365, 253, 363, 220, 1035, 798,
148596 /* 1650 */ 172, 939, 105, 527, 155, 4, 394, 174, 396, 83,
148597 /* 1660 */ 84, 85, 213, 86, 294, 1038, 156, 223, 222, 530,
148598 /* 1670 */ 1034, 144, 293, 18, 224, 241, 315, 1027, 1145, 178,
148599 /* 1680 */ 457, 226, 37, 179, 800, 334, 462, 230, 328, 466,
148600 /* 1690 */ 180, 471, 416, 88, 19, 20, 89, 280, 838, 158,
148601 /* 1700 */ 191, 478, 215, 1097, 524, 90, 204, 192, 987, 91,
148602 /* 1710 */ 152, 1070, 39, 154, 1071, 504, 486, 40, 489, 205,
148603 /* 1720 */ 505, 260, 105, 527, 214, 4, 908, 961, 262, 183,
148604 /* 1730 */ 240, 21, 903, 103, 103, 107, 22, 1086, 23, 530,
148605 /* 1740 */ 104, 1074, 416, 537, 536, 24, 1088, 951, 25, 1093,
148606 /* 1750 */ 1090, 1094, 7, 33, 511, 186, 26, 1002, 385, 95,
148607 /* 1760 */ 988, 986, 416, 288, 526, 990, 1044, 246, 1043, 247,
148608 /* 1770 */ 991, 28, 41, 106, 524, 956, 810, 29, 951, 951,
148609 /* 1780 */ 953, 954, 27, 531, 869, 504, 423, 248, 249, 1495,
148610 /* 1790 */ 503, 1494, 361, 364, 1105, 1161, 1161, 961, 1161, 1161,
148611 /* 1800 */ 1161, 1161, 1161, 103, 103, 1161, 1161, 1161, 1161, 1161,
148612 /* 1810 */ 104, 1161, 416, 537, 536, 1104, 418, 951, 1161, 268,
148613 /* 1820 */ 1161, 1161, 1161, 1161, 366, 366, 365, 253, 363, 1161,
148614 /* 1830 */ 1161, 798, 1161, 1161, 1161, 1161, 105, 527, 1161, 4,
148615 /* 1840 */ 1161, 1161, 1161, 1161, 213, 1161, 294, 1161, 951, 951,
@@ -148643,330 +148687,331 @@
148643 /* 2120 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
148644 /* 2130 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
148645 /* 2140 */ 1161, 423,
148646 };
148647 static const YYCODETYPE yy_lookahead[] = {
148648 /* 0 */ 172, 242, 243, 244, 167, 167, 167, 186, 159, 160,
148649 /* 10 */ 161, 162, 163, 164, 167, 191, 187, 179, 169, 19,
148650 /* 20 */ 171, 162, 263, 164, 195, 188, 189, 178, 169, 178,
148651 /* 30 */ 171, 31, 188, 167, 22, 188, 189, 178, 24, 39,
148652 /* 40 */ 242, 243, 244, 43, 44, 45, 46, 47, 48, 49,
148653 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 191, 210,
148654 /* 60 */ 211, 210, 211, 242, 243, 244, 242, 243, 244, 210,
148655 /* 70 */ 211, 59, 223, 59, 223, 22, 237, 249, 227, 228,
148656 /* 80 */ 188, 253, 223, 246, 188, 236, 54, 55, 56, 57,
148657 /* 90 */ 58, 167, 167, 206, 207, 236, 96, 97, 98, 99,
148658 /* 100 */ 100, 101, 102, 103, 104, 105, 106, 210, 211, 242,
148659 /* 110 */ 243, 244, 59, 188, 189, 266, 19, 251, 201, 59,
148660 /* 120 */ 223, 109, 110, 111, 110, 266, 279, 280, 96, 97,
148661 /* 130 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 94,
148662 /* 140 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
148663 /* 150 */ 53, 54, 55, 56, 57, 110, 195, 196, 59, 114,
148664 /* 160 */ 100, 101, 109, 110, 111, 204, 167, 128, 108, 109,
148665 /* 170 */ 110, 111, 133, 113, 73, 102, 103, 104, 105, 106,
148666 /* 180 */ 83, 121, 85, 54, 55, 56, 57, 188, 189, 26,
148667 /* 190 */ 145, 146, 147, 96, 97, 98, 99, 100, 101, 102,
148668 /* 200 */ 103, 104, 105, 106, 279, 145, 281, 147, 109, 110,
148669 /* 210 */ 111, 112, 106, 19, 115, 116, 117, 100, 101, 167,
148670 /* 220 */ 26, 120, 121, 122, 125, 96, 97, 98, 99, 100,
148671 /* 230 */ 101, 102, 103, 104, 105, 106, 81, 43, 44, 45,
148672 /* 240 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148673 /* 250 */ 56, 57, 100, 101, 102, 103, 104, 105, 106, 183,
148674 /* 260 */ 184, 185, 145, 69, 147, 96, 97, 98, 99, 100,
148675 /* 270 */ 101, 102, 103, 104, 105, 106, 73, 167, 279, 280,
148676 /* 280 */ 167, 22, 23, 19, 81, 26, 131, 132, 59, 237,
148677 /* 290 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148678 /* 300 */ 106, 188, 189, 19, 167, 142, 167, 43, 44, 45,
148679 /* 310 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148680 /* 320 */ 56, 57, 212, 120, 112, 188, 189, 115, 116, 117,
148681 /* 330 */ 238, 67, 22, 23, 131, 132, 22, 125, 109, 110,
148682 /* 340 */ 111, 167, 161, 162, 163, 164, 46, 47, 48, 49,
148683 /* 350 */ 169, 19, 171, 167, 95, 127, 24, 129, 130, 178,
148684 /* 360 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148685 /* 370 */ 106, 59, 143, 59, 167, 43, 44, 45, 46, 47,
148686 /* 380 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
148687 /* 390 */ 106, 210, 211, 26, 167, 209, 112, 113, 114, 115,
148688 /* 400 */ 116, 117, 118, 167, 223, 95, 94, 167, 124, 235,
148689 /* 410 */ 178, 272, 273, 167, 114, 188, 189, 236, 183, 184,
148690 /* 420 */ 185, 109, 110, 109, 110, 111, 114, 167, 96, 97,
148691 /* 430 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 59,
148692 /* 440 */ 167, 167, 210, 211, 59, 209, 167, 266, 19, 209,
148693 /* 450 */ 59, 224, 23, 211, 16, 223, 76, 145, 146, 147,
148694 /* 460 */ 233, 188, 189, 72, 84, 223, 86, 188, 189, 89,
148695 /* 470 */ 238, 167, 43, 44, 45, 46, 47, 48, 49, 50,
148696 /* 480 */ 51, 52, 53, 54, 55, 56, 57, 102, 167, 109,
148697 /* 490 */ 110, 111, 188, 189, 109, 110, 111, 224, 131, 132,
148698 /* 500 */ 109, 110, 111, 224, 264, 19, 233, 105, 106, 188,
148699 /* 510 */ 189, 237, 233, 35, 167, 77, 167, 79, 138, 22,
148700 /* 520 */ 274, 275, 22, 202, 278, 96, 97, 98, 99, 100,
148701 /* 530 */ 101, 102, 103, 104, 105, 106, 275, 188, 189, 278,
148702 /* 540 */ 167, 11, 59, 167, 66, 19, 167, 121, 122, 23,
148703 /* 550 */ 76, 202, 74, 167, 178, 72, 59, 178, 84, 59,
148704 /* 560 */ 86, 188, 189, 89, 188, 189, 59, 188, 189, 43,
148705 /* 570 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148706 /* 580 */ 54, 55, 56, 57, 26, 167, 210, 211, 59, 210,
148707 /* 590 */ 211, 153, 109, 110, 111, 109, 22, 224, 167, 223,
148708 /* 600 */ 224, 123, 223, 224, 21, 215, 109, 110, 111, 233,
148709 /* 610 */ 110, 167, 138, 186, 167, 225, 109, 110, 111, 188,
148710 /* 620 */ 189, 203, 96, 97, 98, 99, 100, 101, 102, 103,
148711 /* 630 */ 104, 105, 106, 59, 76, 188, 189, 167, 109, 110,
148712 /* 640 */ 111, 59, 19, 136, 86, 197, 23, 89, 167, 202,
148713 /* 650 */ 81, 121, 122, 269, 270, 224, 212, 178, 188, 189,
148714 /* 660 */ 274, 275, 167, 80, 278, 136, 43, 44, 45, 46,
148715 /* 670 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
148716 /* 680 */ 57, 12, 113, 109, 110, 111, 259, 167, 186, 210,
148717 /* 690 */ 211, 109, 110, 111, 224, 167, 27, 210, 211, 116,
148718 /* 700 */ 131, 132, 223, 7, 8, 9, 167, 212, 188, 189,
148719 /* 710 */ 223, 42, 167, 167, 178, 234, 188, 189, 179, 96,
148720 /* 720 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
148721 /* 730 */ 202, 167, 63, 167, 188, 189, 153, 167, 199, 19,
148722 /* 740 */ 201, 175, 73, 23, 224, 179, 210, 211, 202, 26,
148723 /* 750 */ 197, 178, 188, 189, 178, 275, 254, 167, 278, 223,
148724 /* 760 */ 167, 259, 167, 43, 44, 45, 46, 47, 48, 49,
148725 /* 770 */ 50, 51, 52, 53, 54, 55, 56, 57, 188, 189,
148726 /* 780 */ 235, 188, 189, 210, 211, 167, 210, 211, 224, 181,
148727 /* 790 */ 182, 167, 202, 167, 76, 202, 223, 178, 22, 223,
148728 /* 800 */ 24, 19, 22, 23, 86, 178, 26, 89, 184, 185,
148729 /* 810 */ 184, 185, 178, 120, 121, 122, 96, 97, 98, 99,
148730 /* 820 */ 100, 101, 102, 103, 104, 105, 106, 167, 46, 210,
148731 /* 830 */ 211, 66, 167, 167, 111, 59, 19, 210, 211, 167,
148732 /* 840 */ 23, 167, 223, 23, 210, 211, 26, 82, 188, 189,
148733 /* 850 */ 223, 29, 234, 188, 189, 33, 91, 223, 167, 136,
148734 /* 860 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
148735 /* 870 */ 53, 54, 55, 56, 57, 95, 252, 12, 252, 188,
148736 /* 880 */ 189, 167, 22, 23, 206, 207, 110, 65, 167, 16,
148737 /* 890 */ 108, 167, 27, 120, 121, 122, 167, 167, 167, 167,
148738 /* 900 */ 234, 167, 188, 189, 139, 167, 124, 42, 167, 188,
148739 /* 910 */ 189, 167, 102, 96, 97, 98, 99, 100, 101, 102,
148740 /* 920 */ 103, 104, 105, 106, 167, 167, 138, 167, 63, 188,
148741 /* 930 */ 189, 111, 260, 19, 260, 167, 167, 23, 128, 209,
148742 /* 940 */ 209, 209, 275, 133, 156, 278, 188, 189, 188, 189,
148743 /* 950 */ 77, 167, 79, 19, 167, 95, 136, 43, 44, 45,
148744 /* 960 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148745 /* 970 */ 56, 57, 188, 189, 167, 188, 189, 43, 44, 45,
148746 /* 980 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148747 /* 990 */ 56, 57, 235, 167, 260, 188, 189, 167, 157, 158,
148748 /* 1000 */ 167, 26, 273, 167, 235, 167, 59, 26, 241, 46,
148749 /* 1010 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148750 /* 1020 */ 106, 188, 189, 22, 188, 189, 188, 189, 167, 203,
148751 /* 1030 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148752 /* 1040 */ 106, 167, 212, 167, 277, 167, 167, 167, 23, 188,
148753 /* 1050 */ 189, 26, 275, 241, 167, 278, 167, 110, 167, 220,
148754 /* 1060 */ 167, 222, 188, 189, 188, 189, 188, 189, 188, 189,
148755 /* 1070 */ 167, 108, 167, 167, 167, 188, 189, 188, 189, 188,
148756 /* 1080 */ 189, 188, 189, 167, 275, 151, 167, 278, 167, 277,
148757 /* 1090 */ 167, 188, 189, 188, 189, 188, 189, 167, 31, 167,
148758 /* 1100 */ 119, 100, 101, 181, 182, 19, 39, 188, 189, 188,
148759 /* 1110 */ 189, 188, 189, 138, 235, 131, 132, 24, 188, 189,
148760 /* 1120 */ 188, 189, 267, 268, 167, 19, 167, 227, 228, 43,
148761 /* 1130 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148762 /* 1140 */ 54, 55, 56, 57, 167, 188, 189, 188, 189, 43,
148763 /* 1150 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148764 /* 1160 */ 54, 55, 56, 57, 19, 188, 189, 150, 197, 152,
148765 /* 1170 */ 26, 15, 22, 167, 24, 122, 23, 23, 167, 26,
148766 /* 1180 */ 26, 167, 96, 97, 98, 99, 100, 101, 102, 103,
148767 /* 1190 */ 104, 105, 106, 167, 188, 189, 167, 144, 167, 188,
148768 /* 1200 */ 189, 167, 96, 97, 98, 99, 100, 101, 102, 103,
148769 /* 1210 */ 104, 105, 106, 167, 188, 189, 60, 188, 189, 188,
148770 /* 1220 */ 189, 22, 188, 189, 167, 22, 167, 134, 167, 23,
148771 /* 1230 */ 23, 167, 26, 26, 188, 189, 23, 151, 23, 26,
148772 /* 1240 */ 23, 26, 145, 26, 147, 188, 189, 188, 189, 188,
148773 /* 1250 */ 189, 114, 53, 23, 109, 22, 26, 19, 167, 113,
148774 /* 1260 */ 114, 124, 24, 23, 61, 167, 26, 59, 7, 8,
148775 /* 1270 */ 59, 23, 23, 59, 26, 26, 145, 19, 147, 135,
148776 /* 1280 */ 167, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148777 /* 1290 */ 52, 53, 54, 55, 56, 57, 23, 167, 229, 26,
148778 /* 1300 */ 167, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148779 /* 1310 */ 52, 53, 54, 55, 56, 57, 23, 207, 110, 26,
148780 /* 1320 */ 226, 110, 167, 283, 110, 167, 167, 167, 167, 167,
148781 /* 1330 */ 167, 167, 167, 167, 96, 97, 98, 99, 100, 101,
148782 /* 1340 */ 102, 103, 104, 105, 106, 167, 167, 167, 167, 167,
148783 /* 1350 */ 167, 167, 167, 167, 96, 97, 98, 99, 100, 101,
148784 /* 1360 */ 102, 103, 104, 105, 106, 167, 255, 134, 167, 167,
148785 /* 1370 */ 256, 167, 167, 226, 19, 226, 167, 226, 226, 186,
148786 /* 1380 */ 213, 165, 214, 265, 261, 261, 217, 230, 217, 217,
148787 /* 1390 */ 200, 196, 192, 220, 19, 220, 248, 170, 60, 44,
148788 /* 1400 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
148789 /* 1410 */ 55, 56, 57, 191, 191, 191, 134, 230, 230, 174,
148790 /* 1420 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
148791 /* 1430 */ 55, 56, 57, 214, 216, 265, 174, 38, 262, 262,
148792 /* 1440 */ 174, 143, 251, 108, 22, 19, 20, 43, 22, 205,
148793 /* 1450 */ 240, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148794 /* 1460 */ 105, 106, 36, 142, 239, 18, 174, 217, 208, 18,
148795 /* 1470 */ 173, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148796 /* 1480 */ 105, 106, 208, 208, 208, 59, 217, 217, 205, 205,
148797 /* 1490 */ 174, 240, 239, 173, 217, 150, 62, 71, 174, 258,
148798 /* 1500 */ 257, 19, 20, 173, 22, 22, 193, 81, 174, 173,
148799 /* 1510 */ 193, 174, 173, 108, 64, 190, 190, 190, 36, 119,
148800 /* 1520 */ 94, 198, 193, 190, 192, 106, 100, 101, 250, 198,
148801 /* 1530 */ 48, 190, 190, 107, 190, 109, 110, 111, 250, 193,
148802 /* 1540 */ 114, 59, 193, 137, 232, 108, 231, 174, 88, 282,
148803 /* 1550 */ 232, 232, 141, 71, 232, 138, 22, 131, 132, 231,
148804 /* 1560 */ 220, 282, 174, 150, 82, 140, 139, 25, 177, 87,
148805 /* 1570 */ 219, 145, 146, 147, 148, 149, 94, 221, 231, 231,
148806 /* 1580 */ 221, 218, 100, 101, 217, 26, 176, 13, 245, 107,
148807 /* 1590 */ 6, 109, 110, 111, 166, 166, 114, 247, 168, 168,
148808 /* 1600 */ 180, 166, 186, 194, 186, 4, 194, 186, 3, 186,
148809 /* 1610 */ 186, 22, 180, 155, 15, 93, 180, 23, 16, 186,
148810 /* 1620 */ 23, 132, 268, 271, 271, 186, 186, 145, 146, 147,
148811 /* 1630 */ 148, 149, 0, 1, 2, 143, 123, 5, 24, 135,
148812 /* 1640 */ 20, 16, 10, 11, 12, 13, 14, 137, 1, 17,
148813 /* 1650 */ 135, 144, 19, 20, 123, 22, 61, 143, 37, 53,
148814 /* 1660 */ 53, 53, 30, 53, 32, 109, 123, 134, 34, 36,
148815 /* 1670 */ 1, 5, 40, 22, 108, 26, 153, 68, 75, 68,
148816 /* 1680 */ 41, 134, 24, 108, 20, 124, 19, 118, 23, 67,
148817 /* 1690 */ 22, 67, 59, 22, 22, 22, 22, 67, 28, 37,
148818 /* 1700 */ 23, 22, 70, 23, 71, 142, 157, 23, 23, 26,
148819 /* 1710 */ 78, 23, 22, 81, 23, 82, 24, 22, 24, 134,
148820 /* 1720 */ 87, 23, 19, 20, 92, 22, 109, 94, 23, 22,
148821 /* 1730 */ 34, 34, 136, 100, 101, 26, 34, 85, 34, 36,
148822 /* 1740 */ 107, 23, 109, 110, 111, 34, 83, 114, 34, 90,
148823 /* 1750 */ 75, 75, 44, 22, 24, 26, 34, 23, 126, 26,
148824 /* 1760 */ 23, 23, 59, 131, 132, 23, 23, 26, 23, 22,
148825 /* 1770 */ 11, 22, 22, 22, 71, 23, 23, 22, 145, 146,
148826 /* 1780 */ 147, 148, 149, 26, 128, 82, 154, 134, 134, 134,
148827 /* 1790 */ 87, 134, 23, 15, 1, 284, 284, 94, 284, 284,
148828 /* 1800 */ 284, 284, 284, 100, 101, 284, 284, 284, 284, 284,
148829 /* 1810 */ 107, 284, 109, 110, 111, 1, 2, 114, 284, 5,
148830 /* 1820 */ 284, 284, 284, 284, 10, 11, 12, 13, 14, 284,
148831 /* 1830 */ 284, 17, 284, 284, 284, 284, 19, 20, 284, 22,
148832 /* 1840 */ 284, 284, 284, 284, 30, 284, 32, 284, 145, 146,
148833 /* 1850 */ 147, 148, 149, 36, 40, 284, 284, 284, 284, 284,
148834 /* 1860 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148835 /* 1870 */ 284, 284, 284, 284, 284, 284, 59, 284, 284, 284,
148836 /* 1880 */ 284, 284, 284, 284, 70, 284, 284, 284, 71, 284,
148837 /* 1890 */ 284, 284, 78, 284, 284, 81, 19, 20, 284, 22,
148838 /* 1900 */ 284, 284, 284, 284, 284, 284, 92, 284, 284, 284,
148839 /* 1910 */ 284, 94, 284, 36, 284, 284, 284, 100, 101, 102,
148840 /* 1920 */ 284, 284, 284, 284, 107, 284, 109, 110, 111, 284,
148841 /* 1930 */ 284, 114, 284, 284, 284, 284, 59, 284, 284, 284,
148842 /* 1940 */ 126, 284, 284, 284, 284, 131, 132, 284, 71, 284,
148843 /* 1950 */ 284, 284, 284, 284, 284, 284, 19, 20, 284, 22,
148844 /* 1960 */ 284, 284, 145, 146, 147, 148, 149, 284, 154, 284,
148845 /* 1970 */ 284, 94, 284, 36, 284, 284, 284, 100, 101, 284,
148846 /* 1980 */ 284, 284, 284, 284, 107, 284, 109, 110, 111, 284,
148847 /* 1990 */ 284, 114, 5, 284, 284, 284, 59, 10, 11, 12,
148848 /* 2000 */ 13, 14, 284, 284, 17, 284, 284, 284, 71, 284,
148849 /* 2010 */ 284, 284, 284, 284, 284, 284, 284, 30, 284, 32,
148850 /* 2020 */ 284, 284, 145, 146, 147, 148, 149, 40, 284, 284,
148851 /* 2030 */ 284, 94, 284, 284, 284, 284, 284, 100, 101, 284,
148852 /* 2040 */ 284, 284, 284, 284, 107, 284, 109, 110, 111, 284,
148853 /* 2050 */ 284, 114, 284, 284, 284, 284, 284, 70, 284, 284,
148854 /* 2060 */ 284, 284, 284, 284, 284, 78, 284, 284, 81, 284,
148855 /* 2070 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 92,
148856 /* 2080 */ 284, 284, 145, 146, 147, 148, 149, 284, 284, 284,
148857 /* 2090 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148858 /* 2100 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148859 /* 2110 */ 284, 284, 284, 126, 284, 284, 284, 284, 131, 132,
148860 /* 2120 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148861 /* 2130 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
148862 /* 2140 */ 284, 154, 284, 284, 284, 284, 284, 284, 284, 284,
148863 /* 2150 */ 284, 284,
 
148864 };
148865 #define YY_SHIFT_COUNT (540)
148866 #define YY_SHIFT_MIN (0)
148867 #define YY_SHIFT_MAX (1987)
148868 static const unsigned short int yy_shift_ofst[] = {
148869 /* 0 */ 1814, 1632, 1987, 1426, 1426, 155, 1482, 1633, 1703, 1877,
148870 /* 10 */ 1877, 1877, 203, 0, 0, 264, 1106, 1877, 1877, 1877,
148871 /* 20 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148872 /* 30 */ 60, 60, 380, 380, 99, 569, 155, 155, 155, 155,
148873 /* 40 */ 155, 155, 97, 194, 332, 429, 526, 623, 720, 817,
148874 /* 50 */ 914, 934, 1086, 1238, 1106, 1106, 1106, 1106, 1106, 1106,
148875 /* 60 */ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
148876 /* 70 */ 1106, 1106, 1258, 1106, 1355, 1375, 1375, 1817, 1877, 1877,
148877 /* 80 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148878 /* 90 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148879 /* 100 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148880 /* 110 */ 1937, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148881 /* 120 */ 1877, 1877, 1877, 1877, 32, 129, 129, 129, 129, 129,
148882 /* 130 */ 169, 152, 73, 582, 583, 782, 582, 117, 117, 582,
148883 /* 140 */ 367, 367, 367, 367, 426, 402, 106, 2142, 2142, 284,
148884 /* 150 */ 284, 284, 229, 12, 391, 12, 12, 669, 669, 474,
148885 /* 160 */ 483, 259, 780, 582, 582, 582, 582, 582, 582, 582,
148886 /* 170 */ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
148887 /* 180 */ 582, 582, 582, 582, 558, 558, 582, 530, 718, 718,
148888 /* 190 */ 947, 841, 841, 947, 788, 984, 2142, 2142, 2142, 312,
148889 /* 200 */ 45, 45, 53, 212, 314, 385, 497, 507, 529, 574,
148890 /* 210 */ 582, 582, 582, 582, 582, 582, 582, 582, 582, 101,
148891 /* 220 */ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
148892 /* 230 */ 582, 582, 478, 478, 478, 582, 582, 582, 582, 820,
148893 /* 240 */ 582, 582, 582, 776, 765, 582, 582, 865, 582, 582,
148894 /* 250 */ 582, 582, 582, 582, 582, 582, 693, 822, 228, 14,
148895 /* 260 */ 14, 14, 14, 723, 228, 228, 810, 1001, 696, 1156,
148896 /* 270 */ 163, 486, 486, 1145, 163, 163, 1145, 981, 1025, 963,
148897 /* 280 */ 1067, 1067, 1067, 486, 975, 975, 1017, 1144, 39, 1150,
148898 /* 290 */ 1338, 1282, 1282, 1399, 1399, 1282, 1298, 1335, 1422, 1404,
148899 /* 300 */ 1321, 1447, 1447, 1447, 1447, 1282, 1451, 1321, 1321, 1335,
148900 /* 310 */ 1422, 1404, 1404, 1321, 1282, 1451, 1345, 1434, 1282, 1451,
148901 /* 320 */ 1483, 1282, 1451, 1282, 1451, 1483, 1405, 1405, 1405, 1450,
148902 /* 330 */ 1483, 1405, 1400, 1405, 1450, 1405, 1405, 1483, 1419, 1419,
148903 /* 340 */ 1483, 1406, 1437, 1406, 1437, 1406, 1437, 1406, 1437, 1282,
148904 /* 350 */ 1460, 1460, 1411, 1417, 1534, 1282, 1413, 1411, 1425, 1427,
148905 /* 360 */ 1321, 1542, 1559, 1574, 1574, 1584, 1584, 1584, 2142, 2142,
148906 /* 370 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142,
148907 /* 380 */ 2142, 2142, 2142, 2142, 300, 438, 310, 860, 873, 773,
148908 /* 390 */ 500, 1153, 1199, 1093, 1053, 1154, 1203, 1206, 1207, 1213,
148909 /* 400 */ 1215, 1217, 1230, 1208, 1146, 1261, 1137, 1211, 1240, 1248,
148910 /* 410 */ 1249, 1097, 1131, 1273, 1293, 1214, 1233, 1601, 1605, 1589,
148911 /* 420 */ 1458, 1599, 1522, 1602, 1594, 1597, 1489, 1492, 1513, 1614,
148912 /* 430 */ 1504, 1620, 1510, 1625, 1647, 1515, 1507, 1531, 1595, 1621,
148913 /* 440 */ 1514, 1606, 1607, 1608, 1610, 1543, 1556, 1634, 1533, 1669,
148914 /* 450 */ 1666, 1651, 1566, 1523, 1609, 1649, 1611, 1603, 1639, 1547,
148915 /* 460 */ 1575, 1658, 1664, 1667, 1561, 1569, 1668, 1622, 1671, 1672,
148916 /* 470 */ 1665, 1673, 1624, 1670, 1674, 1630, 1662, 1677, 1563, 1679,
148917 /* 480 */ 1680, 1549, 1684, 1685, 1683, 1688, 1690, 1692, 1691, 1695,
148918 /* 490 */ 1694, 1585, 1698, 1705, 1617, 1696, 1707, 1596, 1709, 1697,
148919 /* 500 */ 1702, 1704, 1711, 1652, 1675, 1663, 1708, 1676, 1659, 1714,
148920 /* 510 */ 1718, 1731, 1730, 1729, 1733, 1722, 1734, 1709, 1737, 1738,
148921 /* 520 */ 1742, 1743, 1741, 1745, 1747, 1759, 1749, 1750, 1752, 1753,
148922 /* 530 */ 1751, 1755, 1757, 1656, 1653, 1654, 1655, 1657, 1769, 1778,
148923 /* 540 */ 1793,
148924 };
148925 #define YY_REDUCE_COUNT (383)
148926 #define YY_REDUCE_MIN (-241)
148927 #define YY_REDUCE_MAX (1440)
148928 static const short yy_reduce_ofst[] = {
148929 /* 0 */ -151, 181, -141, 376, 379, -149, -153, -75, -1, 227,
148930 /* 10 */ 273, 279, 232, -176, -133, -241, -179, 321, 349, 447,
148931 /* 20 */ 528, 373, 546, 590, 431, 470, 593, -163, 520, 564,
148932 /* 30 */ 624, 626, 246, 386, 539, 479, 536, 573, 576, 619,
148933 /* 40 */ 627, 634, -202, -202, -202, -202, -202, -202, -202, -202,
148934 /* 50 */ -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
148935 /* 60 */ -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
148936 /* 70 */ -202, -202, -202, -202, -202, -202, -202, 113, 137, 304,
148937 /* 80 */ 660, 665, 691, 714, 721, 741, 758, 760, 784, 787,
148938 /* 90 */ 807, 833, 836, 838, 861, 874, 876, 878, 880, 887,
148939 /* 100 */ 889, 891, 893, 903, 905, 907, 919, 921, 923, 930,
148940 /* 110 */ 932, 957, 959, 977, 1006, 1011, 1026, 1029, 1031, 1034,
148941 /* 120 */ 1046, 1057, 1059, 1061, -202, -202, -202, -202, -202, -202,
148942 /* 130 */ -202, -202, -202, 240, -172, -39, 139, 76, 235, 566,
148943 /* 140 */ -103, 487, -103, 487, 502, -202, -202, -202, -202, -171,
148944 /* 150 */ -171, -171, -134, -161, 110, 52, 274, -113, 678, 261,
148945 /* 160 */ 444, 384, 384, -162, 481, 618, 666, 495, 186, 236,
148946 /* 170 */ 730, 731, 672, 174, 674, 545, 757, 734, 769, 732,
148947 /* 180 */ 418, 830, 826, 879, 480, 667, 729, 427, 777, 809,
148948 /* 190 */ 608, 767, 812, 922, 839, 242, 855, 900, 390, -156,
148949 /* 200 */ -108, -104, -76, -83, 207, 260, 347, 570, 595, 724,
148950 /* 210 */ 738, 744, 768, 906, 916, 1014, 1064, 1091, 1098, 92,
148951 /* 220 */ 1113, 1130, 1133, 1155, 1158, 1159, 1160, 1161, 1162, 1163,
148952 /* 230 */ 1164, 1165, 448, 553, 971, 1166, 1178, 1179, 1180, 1069,
148953 /* 240 */ 1181, 1182, 1183, 1094, 1040, 1184, 1185, 1110, 1186, 260,
148954 /* 250 */ 1198, 1201, 1202, 1204, 1205, 1209, 1114, 1111, 1167, 1147,
148955 /* 260 */ 1149, 1151, 1152, 1069, 1167, 1167, 1168, 1193, 1216, 1118,
148956 /* 270 */ 1169, 1157, 1187, 1123, 1171, 1172, 1124, 1200, 1190, 1195,
148957 /* 280 */ 1222, 1223, 1224, 1188, 1173, 1175, 1148, 1218, 1219, 1227,
148958 /* 290 */ 1170, 1245, 1262, 1176, 1177, 1266, 1191, 1210, 1225, 1244,
148959 /* 300 */ 1250, 1260, 1274, 1275, 1276, 1292, 1297, 1269, 1270, 1251,
148960 /* 310 */ 1253, 1283, 1284, 1277, 1316, 1320, 1241, 1243, 1324, 1330,
148961 /* 320 */ 1313, 1334, 1336, 1337, 1339, 1317, 1325, 1326, 1327, 1323,
148962 /* 330 */ 1329, 1333, 1332, 1341, 1331, 1342, 1344, 1346, 1278, 1288,
148963 /* 340 */ 1349, 1312, 1315, 1318, 1328, 1319, 1347, 1322, 1348, 1373,
148964 /* 350 */ 1267, 1279, 1356, 1340, 1343, 1388, 1350, 1359, 1351, 1363,
148965 /* 360 */ 1367, 1391, 1410, 1430, 1431, 1428, 1429, 1435, 1352, 1353,
148966 /* 370 */ 1354, 1420, 1416, 1418, 1421, 1423, 1432, 1409, 1412, 1424,
148967 /* 380 */ 1433, 1439, 1440, 1436,
148968 };
148969 static const YYACTIONTYPE yy_default[] = {
148970 /* 0 */ 1536, 1536, 1536, 1376, 1159, 1265, 1159, 1159, 1159, 1376,
148971 /* 10 */ 1376, 1376, 1159, 1295, 1295, 1429, 1190, 1159, 1159, 1159,
148972 /* 20 */ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1375, 1159, 1159,
@@ -149380,135 +149425,152 @@
149380 /* 154 */ "ALTER",
149381 /* 155 */ "ADD",
149382 /* 156 */ "WINDOW",
149383 /* 157 */ "OVER",
149384 /* 158 */ "FILTER",
149385 /* 159 */ "input",
149386 /* 160 */ "cmdlist",
149387 /* 161 */ "ecmd",
149388 /* 162 */ "cmdx",
149389 /* 163 */ "explain",
149390 /* 164 */ "cmd",
149391 /* 165 */ "transtype",
149392 /* 166 */ "trans_opt",
149393 /* 167 */ "nm",
149394 /* 168 */ "savepoint_opt",
149395 /* 169 */ "create_table",
149396 /* 170 */ "create_table_args",
149397 /* 171 */ "createkw",
149398 /* 172 */ "temp",
149399 /* 173 */ "ifnotexists",
149400 /* 174 */ "dbnm",
149401 /* 175 */ "columnlist",
149402 /* 176 */ "conslist_opt",
149403 /* 177 */ "table_options",
149404 /* 178 */ "select",
149405 /* 179 */ "columnname",
149406 /* 180 */ "carglist",
149407 /* 181 */ "typetoken",
149408 /* 182 */ "typename",
149409 /* 183 */ "signed",
149410 /* 184 */ "plus_num",
149411 /* 185 */ "minus_num",
149412 /* 186 */ "scanpt",
149413 /* 187 */ "ccons",
149414 /* 188 */ "term",
149415 /* 189 */ "expr",
149416 /* 190 */ "onconf",
149417 /* 191 */ "sortorder",
149418 /* 192 */ "autoinc",
149419 /* 193 */ "eidlist_opt",
149420 /* 194 */ "refargs",
149421 /* 195 */ "defer_subclause",
149422 /* 196 */ "refarg",
149423 /* 197 */ "refact",
149424 /* 198 */ "init_deferred_pred_opt",
149425 /* 199 */ "conslist",
149426 /* 200 */ "tconscomma",
149427 /* 201 */ "tcons",
149428 /* 202 */ "sortlist",
149429 /* 203 */ "eidlist",
149430 /* 204 */ "defer_subclause_opt",
149431 /* 205 */ "orconf",
149432 /* 206 */ "resolvetype",
149433 /* 207 */ "raisetype",
149434 /* 208 */ "ifexists",
149435 /* 209 */ "fullname",
149436 /* 210 */ "selectnowith",
149437 /* 211 */ "oneselect",
149438 /* 212 */ "wqlist",
149439 /* 213 */ "multiselect_op",
149440 /* 214 */ "distinct",
149441 /* 215 */ "selcollist",
149442 /* 216 */ "from",
149443 /* 217 */ "where_opt",
149444 /* 218 */ "groupby_opt",
149445 /* 219 */ "having_opt",
149446 /* 220 */ "orderby_opt",
149447 /* 221 */ "limit_opt",
149448 /* 222 */ "window_clause",
149449 /* 223 */ "values",
149450 /* 224 */ "nexprlist",
149451 /* 225 */ "sclp",
149452 /* 226 */ "as",
149453 /* 227 */ "seltablist",
149454 /* 228 */ "stl_prefix",
149455 /* 229 */ "joinop",
149456 /* 230 */ "indexed_opt",
149457 /* 231 */ "on_opt",
149458 /* 232 */ "using_opt",
149459 /* 233 */ "exprlist",
149460 /* 234 */ "xfullname",
149461 /* 235 */ "idlist",
149462 /* 236 */ "with",
149463 /* 237 */ "setlist",
149464 /* 238 */ "insert_cmd",
149465 /* 239 */ "idlist_opt",
149466 /* 240 */ "upsert",
149467 /* 241 */ "over_clause",
149468 /* 242 */ "likeop",
149469 /* 243 */ "between_op",
149470 /* 244 */ "in_op",
149471 /* 245 */ "paren_exprlist",
149472 /* 246 */ "case_operand",
149473 /* 247 */ "case_exprlist",
149474 /* 248 */ "case_else",
149475 /* 249 */ "uniqueflag",
149476 /* 250 */ "collate",
149477 /* 251 */ "vinto",
149478 /* 252 */ "nmnum",
149479 /* 253 */ "trigger_decl",
149480 /* 254 */ "trigger_cmd_list",
149481 /* 255 */ "trigger_time",
149482 /* 256 */ "trigger_event",
149483 /* 257 */ "foreach_clause",
149484 /* 258 */ "when_clause",
149485 /* 259 */ "trigger_cmd",
149486 /* 260 */ "trnm",
149487 /* 261 */ "tridxby",
149488 /* 262 */ "database_kw_opt",
149489 /* 263 */ "key_opt",
149490 /* 264 */ "add_column_fullname",
149491 /* 265 */ "kwcolumn_opt",
149492 /* 266 */ "create_vtab",
149493 /* 267 */ "vtabarglist",
149494 /* 268 */ "vtabarg",
149495 /* 269 */ "vtabargtoken",
149496 /* 270 */ "lp",
149497 /* 271 */ "anylist",
149498 /* 272 */ "windowdefn_list",
149499 /* 273 */ "windowdefn",
149500 /* 274 */ "window",
149501 /* 275 */ "frame_opt",
149502 /* 276 */ "part_opt",
149503 /* 277 */ "filter_opt",
149504 /* 278 */ "range_or_rows",
149505 /* 279 */ "frame_bound",
149506 /* 280 */ "frame_bound_s",
149507 /* 281 */ "frame_bound_e",
149508 /* 282 */ "frame_exclude_opt",
149509 /* 283 */ "frame_exclude",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149510 };
149511 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
149512
149513 #ifndef NDEBUG
149514 /* For tracing reduce actions, the names of all rules are required.
@@ -150012,101 +150074,101 @@
150012 ** Note: during a reduce, the only symbols destroyed are those
150013 ** which appear on the RHS of the rule, but which are *not* used
150014 ** inside the C code.
150015 */
150016 /********* Begin destructor definitions ***************************************/
150017 case 178: /* select */
150018 case 210: /* selectnowith */
150019 case 211: /* oneselect */
150020 case 223: /* values */
150021 {
150022 sqlite3SelectDelete(pParse->db, (yypminor->yy491));
150023 }
150024 break;
150025 case 188: /* term */
150026 case 189: /* expr */
150027 case 217: /* where_opt */
150028 case 219: /* having_opt */
150029 case 231: /* on_opt */
150030 case 246: /* case_operand */
150031 case 248: /* case_else */
150032 case 251: /* vinto */
150033 case 258: /* when_clause */
150034 case 263: /* key_opt */
150035 case 277: /* filter_opt */
150036 {
150037 sqlite3ExprDelete(pParse->db, (yypminor->yy130));
150038 }
150039 break;
150040 case 193: /* eidlist_opt */
150041 case 202: /* sortlist */
150042 case 203: /* eidlist */
150043 case 215: /* selcollist */
150044 case 218: /* groupby_opt */
150045 case 220: /* orderby_opt */
150046 case 224: /* nexprlist */
150047 case 225: /* sclp */
150048 case 233: /* exprlist */
150049 case 237: /* setlist */
150050 case 245: /* paren_exprlist */
150051 case 247: /* case_exprlist */
150052 case 276: /* part_opt */
150053 {
150054 sqlite3ExprListDelete(pParse->db, (yypminor->yy442));
150055 }
150056 break;
150057 case 209: /* fullname */
150058 case 216: /* from */
150059 case 227: /* seltablist */
150060 case 228: /* stl_prefix */
150061 case 234: /* xfullname */
150062 {
150063 sqlite3SrcListDelete(pParse->db, (yypminor->yy147));
150064 }
150065 break;
150066 case 212: /* wqlist */
150067 {
150068 sqlite3WithDelete(pParse->db, (yypminor->yy523));
150069 }
150070 break;
150071 case 222: /* window_clause */
150072 case 272: /* windowdefn_list */
150073 {
150074 sqlite3WindowListDelete(pParse->db, (yypminor->yy395));
150075 }
150076 break;
150077 case 232: /* using_opt */
150078 case 235: /* idlist */
150079 case 239: /* idlist_opt */
150080 {
150081 sqlite3IdListDelete(pParse->db, (yypminor->yy200));
150082 }
150083 break;
150084 case 241: /* over_clause */
150085 case 273: /* windowdefn */
150086 case 274: /* window */
150087 case 275: /* frame_opt */
150088 {
150089 sqlite3WindowDelete(pParse->db, (yypminor->yy395));
150090 }
150091 break;
150092 case 254: /* trigger_cmd_list */
150093 case 259: /* trigger_cmd */
150094 {
150095 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy524));
150096 }
150097 break;
150098 case 256: /* trigger_event */
150099 {
150100 sqlite3IdListDelete(pParse->db, (yypminor->yy498).b);
150101 }
150102 break;
150103 case 279: /* frame_bound */
150104 case 280: /* frame_bound_s */
150105 case 281: /* frame_bound_e */
150106 {
150107 sqlite3ExprDelete(pParse->db, (yypminor->yy273).pExpr);
150108 }
150109 break;
150110 /********* End destructor definitions *****************************************/
150111 default: break; /* If no destructor action specified: do nothing */
150112 }
@@ -150397,385 +150459,385 @@
150397 }
150398
150399 /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
150400 ** of that rule */
150401 static const YYCODETYPE yyRuleInfoLhs[] = {
150402 163, /* (0) explain ::= EXPLAIN */
150403 163, /* (1) explain ::= EXPLAIN QUERY PLAN */
150404 162, /* (2) cmdx ::= cmd */
150405 164, /* (3) cmd ::= BEGIN transtype trans_opt */
150406 165, /* (4) transtype ::= */
150407 165, /* (5) transtype ::= DEFERRED */
150408 165, /* (6) transtype ::= IMMEDIATE */
150409 165, /* (7) transtype ::= EXCLUSIVE */
150410 164, /* (8) cmd ::= COMMIT|END trans_opt */
150411 164, /* (9) cmd ::= ROLLBACK trans_opt */
150412 164, /* (10) cmd ::= SAVEPOINT nm */
150413 164, /* (11) cmd ::= RELEASE savepoint_opt nm */
150414 164, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
150415 169, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
150416 171, /* (14) createkw ::= CREATE */
150417 173, /* (15) ifnotexists ::= */
150418 173, /* (16) ifnotexists ::= IF NOT EXISTS */
150419 172, /* (17) temp ::= TEMP */
150420 172, /* (18) temp ::= */
150421 170, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */
150422 170, /* (20) create_table_args ::= AS select */
150423 177, /* (21) table_options ::= */
150424 177, /* (22) table_options ::= WITHOUT nm */
150425 179, /* (23) columnname ::= nm typetoken */
150426 181, /* (24) typetoken ::= */
150427 181, /* (25) typetoken ::= typename LP signed RP */
150428 181, /* (26) typetoken ::= typename LP signed COMMA signed RP */
150429 182, /* (27) typename ::= typename ID|STRING */
150430 186, /* (28) scanpt ::= */
150431 187, /* (29) ccons ::= CONSTRAINT nm */
150432 187, /* (30) ccons ::= DEFAULT scanpt term scanpt */
150433 187, /* (31) ccons ::= DEFAULT LP expr RP */
150434 187, /* (32) ccons ::= DEFAULT PLUS term scanpt */
150435 187, /* (33) ccons ::= DEFAULT MINUS term scanpt */
150436 187, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */
150437 187, /* (35) ccons ::= NOT NULL onconf */
150438 187, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */
150439 187, /* (37) ccons ::= UNIQUE onconf */
150440 187, /* (38) ccons ::= CHECK LP expr RP */
150441 187, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */
150442 187, /* (40) ccons ::= defer_subclause */
150443 187, /* (41) ccons ::= COLLATE ID|STRING */
150444 192, /* (42) autoinc ::= */
150445 192, /* (43) autoinc ::= AUTOINCR */
150446 194, /* (44) refargs ::= */
150447 194, /* (45) refargs ::= refargs refarg */
150448 196, /* (46) refarg ::= MATCH nm */
150449 196, /* (47) refarg ::= ON INSERT refact */
150450 196, /* (48) refarg ::= ON DELETE refact */
150451 196, /* (49) refarg ::= ON UPDATE refact */
150452 197, /* (50) refact ::= SET NULL */
150453 197, /* (51) refact ::= SET DEFAULT */
150454 197, /* (52) refact ::= CASCADE */
150455 197, /* (53) refact ::= RESTRICT */
150456 197, /* (54) refact ::= NO ACTION */
150457 195, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
150458 195, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
150459 198, /* (57) init_deferred_pred_opt ::= */
150460 198, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */
150461 198, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
150462 176, /* (60) conslist_opt ::= */
150463 200, /* (61) tconscomma ::= COMMA */
150464 201, /* (62) tcons ::= CONSTRAINT nm */
150465 201, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
150466 201, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */
150467 201, /* (65) tcons ::= CHECK LP expr RP onconf */
150468 201, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
150469 204, /* (67) defer_subclause_opt ::= */
150470 190, /* (68) onconf ::= */
150471 190, /* (69) onconf ::= ON CONFLICT resolvetype */
150472 205, /* (70) orconf ::= */
150473 205, /* (71) orconf ::= OR resolvetype */
150474 206, /* (72) resolvetype ::= IGNORE */
150475 206, /* (73) resolvetype ::= REPLACE */
150476 164, /* (74) cmd ::= DROP TABLE ifexists fullname */
150477 208, /* (75) ifexists ::= IF EXISTS */
150478 208, /* (76) ifexists ::= */
150479 164, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
150480 164, /* (78) cmd ::= DROP VIEW ifexists fullname */
150481 164, /* (79) cmd ::= select */
150482 178, /* (80) select ::= WITH wqlist selectnowith */
150483 178, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
150484 178, /* (82) select ::= selectnowith */
150485 210, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
150486 213, /* (84) multiselect_op ::= UNION */
150487 213, /* (85) multiselect_op ::= UNION ALL */
150488 213, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
150489 211, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
150490 211, /* (88) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
150491 223, /* (89) values ::= VALUES LP nexprlist RP */
150492 223, /* (90) values ::= values COMMA LP nexprlist RP */
150493 214, /* (91) distinct ::= DISTINCT */
150494 214, /* (92) distinct ::= ALL */
150495 214, /* (93) distinct ::= */
150496 225, /* (94) sclp ::= */
150497 215, /* (95) selcollist ::= sclp scanpt expr scanpt as */
150498 215, /* (96) selcollist ::= sclp scanpt STAR */
150499 215, /* (97) selcollist ::= sclp scanpt nm DOT STAR */
150500 226, /* (98) as ::= AS nm */
150501 226, /* (99) as ::= */
150502 216, /* (100) from ::= */
150503 216, /* (101) from ::= FROM seltablist */
150504 228, /* (102) stl_prefix ::= seltablist joinop */
150505 228, /* (103) stl_prefix ::= */
150506 227, /* (104) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
150507 227, /* (105) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
150508 227, /* (106) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
150509 227, /* (107) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
150510 174, /* (108) dbnm ::= */
150511 174, /* (109) dbnm ::= DOT nm */
150512 209, /* (110) fullname ::= nm */
150513 209, /* (111) fullname ::= nm DOT nm */
150514 234, /* (112) xfullname ::= nm */
150515 234, /* (113) xfullname ::= nm DOT nm */
150516 234, /* (114) xfullname ::= nm DOT nm AS nm */
150517 234, /* (115) xfullname ::= nm AS nm */
150518 229, /* (116) joinop ::= COMMA|JOIN */
150519 229, /* (117) joinop ::= JOIN_KW JOIN */
150520 229, /* (118) joinop ::= JOIN_KW nm JOIN */
150521 229, /* (119) joinop ::= JOIN_KW nm nm JOIN */
150522 231, /* (120) on_opt ::= ON expr */
150523 231, /* (121) on_opt ::= */
150524 230, /* (122) indexed_opt ::= */
150525 230, /* (123) indexed_opt ::= INDEXED BY nm */
150526 230, /* (124) indexed_opt ::= NOT INDEXED */
150527 232, /* (125) using_opt ::= USING LP idlist RP */
150528 232, /* (126) using_opt ::= */
150529 220, /* (127) orderby_opt ::= */
150530 220, /* (128) orderby_opt ::= ORDER BY sortlist */
150531 202, /* (129) sortlist ::= sortlist COMMA expr sortorder */
150532 202, /* (130) sortlist ::= expr sortorder */
150533 191, /* (131) sortorder ::= ASC */
150534 191, /* (132) sortorder ::= DESC */
150535 191, /* (133) sortorder ::= */
150536 218, /* (134) groupby_opt ::= */
150537 218, /* (135) groupby_opt ::= GROUP BY nexprlist */
150538 219, /* (136) having_opt ::= */
150539 219, /* (137) having_opt ::= HAVING expr */
150540 221, /* (138) limit_opt ::= */
150541 221, /* (139) limit_opt ::= LIMIT expr */
150542 221, /* (140) limit_opt ::= LIMIT expr OFFSET expr */
150543 221, /* (141) limit_opt ::= LIMIT expr COMMA expr */
150544 164, /* (142) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
150545 217, /* (143) where_opt ::= */
150546 217, /* (144) where_opt ::= WHERE expr */
150547 164, /* (145) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
150548 237, /* (146) setlist ::= setlist COMMA nm EQ expr */
150549 237, /* (147) setlist ::= setlist COMMA LP idlist RP EQ expr */
150550 237, /* (148) setlist ::= nm EQ expr */
150551 237, /* (149) setlist ::= LP idlist RP EQ expr */
150552 164, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
150553 164, /* (151) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
150554 240, /* (152) upsert ::= */
150555 240, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
150556 240, /* (154) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
150557 240, /* (155) upsert ::= ON CONFLICT DO NOTHING */
150558 238, /* (156) insert_cmd ::= INSERT orconf */
150559 238, /* (157) insert_cmd ::= REPLACE */
150560 239, /* (158) idlist_opt ::= */
150561 239, /* (159) idlist_opt ::= LP idlist RP */
150562 235, /* (160) idlist ::= idlist COMMA nm */
150563 235, /* (161) idlist ::= nm */
150564 189, /* (162) expr ::= LP expr RP */
150565 189, /* (163) expr ::= ID|INDEXED */
150566 189, /* (164) expr ::= JOIN_KW */
150567 189, /* (165) expr ::= nm DOT nm */
150568 189, /* (166) expr ::= nm DOT nm DOT nm */
150569 188, /* (167) term ::= NULL|FLOAT|BLOB */
150570 188, /* (168) term ::= STRING */
150571 188, /* (169) term ::= INTEGER */
150572 189, /* (170) expr ::= VARIABLE */
150573 189, /* (171) expr ::= expr COLLATE ID|STRING */
150574 189, /* (172) expr ::= CAST LP expr AS typetoken RP */
150575 189, /* (173) expr ::= ID|INDEXED LP distinct exprlist RP */
150576 189, /* (174) expr ::= ID|INDEXED LP STAR RP */
150577 189, /* (175) expr ::= ID|INDEXED LP distinct exprlist RP over_clause */
150578 189, /* (176) expr ::= ID|INDEXED LP STAR RP over_clause */
150579 188, /* (177) term ::= CTIME_KW */
150580 189, /* (178) expr ::= LP nexprlist COMMA expr RP */
150581 189, /* (179) expr ::= expr AND expr */
150582 189, /* (180) expr ::= expr OR expr */
150583 189, /* (181) expr ::= expr LT|GT|GE|LE expr */
150584 189, /* (182) expr ::= expr EQ|NE expr */
150585 189, /* (183) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
150586 189, /* (184) expr ::= expr PLUS|MINUS expr */
150587 189, /* (185) expr ::= expr STAR|SLASH|REM expr */
150588 189, /* (186) expr ::= expr CONCAT expr */
150589 242, /* (187) likeop ::= NOT LIKE_KW|MATCH */
150590 189, /* (188) expr ::= expr likeop expr */
150591 189, /* (189) expr ::= expr likeop expr ESCAPE expr */
150592 189, /* (190) expr ::= expr ISNULL|NOTNULL */
150593 189, /* (191) expr ::= expr NOT NULL */
150594 189, /* (192) expr ::= expr IS expr */
150595 189, /* (193) expr ::= expr IS NOT expr */
150596 189, /* (194) expr ::= NOT expr */
150597 189, /* (195) expr ::= BITNOT expr */
150598 189, /* (196) expr ::= PLUS|MINUS expr */
150599 243, /* (197) between_op ::= BETWEEN */
150600 243, /* (198) between_op ::= NOT BETWEEN */
150601 189, /* (199) expr ::= expr between_op expr AND expr */
150602 244, /* (200) in_op ::= IN */
150603 244, /* (201) in_op ::= NOT IN */
150604 189, /* (202) expr ::= expr in_op LP exprlist RP */
150605 189, /* (203) expr ::= LP select RP */
150606 189, /* (204) expr ::= expr in_op LP select RP */
150607 189, /* (205) expr ::= expr in_op nm dbnm paren_exprlist */
150608 189, /* (206) expr ::= EXISTS LP select RP */
150609 189, /* (207) expr ::= CASE case_operand case_exprlist case_else END */
150610 247, /* (208) case_exprlist ::= case_exprlist WHEN expr THEN expr */
150611 247, /* (209) case_exprlist ::= WHEN expr THEN expr */
150612 248, /* (210) case_else ::= ELSE expr */
150613 248, /* (211) case_else ::= */
150614 246, /* (212) case_operand ::= expr */
150615 246, /* (213) case_operand ::= */
150616 233, /* (214) exprlist ::= */
150617 224, /* (215) nexprlist ::= nexprlist COMMA expr */
150618 224, /* (216) nexprlist ::= expr */
150619 245, /* (217) paren_exprlist ::= */
150620 245, /* (218) paren_exprlist ::= LP exprlist RP */
150621 164, /* (219) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
150622 249, /* (220) uniqueflag ::= UNIQUE */
150623 249, /* (221) uniqueflag ::= */
150624 193, /* (222) eidlist_opt ::= */
150625 193, /* (223) eidlist_opt ::= LP eidlist RP */
150626 203, /* (224) eidlist ::= eidlist COMMA nm collate sortorder */
150627 203, /* (225) eidlist ::= nm collate sortorder */
150628 250, /* (226) collate ::= */
150629 250, /* (227) collate ::= COLLATE ID|STRING */
150630 164, /* (228) cmd ::= DROP INDEX ifexists fullname */
150631 164, /* (229) cmd ::= VACUUM vinto */
150632 164, /* (230) cmd ::= VACUUM nm vinto */
150633 251, /* (231) vinto ::= INTO expr */
150634 251, /* (232) vinto ::= */
150635 164, /* (233) cmd ::= PRAGMA nm dbnm */
150636 164, /* (234) cmd ::= PRAGMA nm dbnm EQ nmnum */
150637 164, /* (235) cmd ::= PRAGMA nm dbnm LP nmnum RP */
150638 164, /* (236) cmd ::= PRAGMA nm dbnm EQ minus_num */
150639 164, /* (237) cmd ::= PRAGMA nm dbnm LP minus_num RP */
150640 184, /* (238) plus_num ::= PLUS INTEGER|FLOAT */
150641 185, /* (239) minus_num ::= MINUS INTEGER|FLOAT */
150642 164, /* (240) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
150643 253, /* (241) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
150644 255, /* (242) trigger_time ::= BEFORE|AFTER */
150645 255, /* (243) trigger_time ::= INSTEAD OF */
150646 255, /* (244) trigger_time ::= */
150647 256, /* (245) trigger_event ::= DELETE|INSERT */
150648 256, /* (246) trigger_event ::= UPDATE */
150649 256, /* (247) trigger_event ::= UPDATE OF idlist */
150650 258, /* (248) when_clause ::= */
150651 258, /* (249) when_clause ::= WHEN expr */
150652 254, /* (250) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
150653 254, /* (251) trigger_cmd_list ::= trigger_cmd SEMI */
150654 260, /* (252) trnm ::= nm DOT nm */
150655 261, /* (253) tridxby ::= INDEXED BY nm */
150656 261, /* (254) tridxby ::= NOT INDEXED */
150657 259, /* (255) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
150658 259, /* (256) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
150659 259, /* (257) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
150660 259, /* (258) trigger_cmd ::= scanpt select scanpt */
150661 189, /* (259) expr ::= RAISE LP IGNORE RP */
150662 189, /* (260) expr ::= RAISE LP raisetype COMMA nm RP */
150663 207, /* (261) raisetype ::= ROLLBACK */
150664 207, /* (262) raisetype ::= ABORT */
150665 207, /* (263) raisetype ::= FAIL */
150666 164, /* (264) cmd ::= DROP TRIGGER ifexists fullname */
150667 164, /* (265) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
150668 164, /* (266) cmd ::= DETACH database_kw_opt expr */
150669 263, /* (267) key_opt ::= */
150670 263, /* (268) key_opt ::= KEY expr */
150671 164, /* (269) cmd ::= REINDEX */
150672 164, /* (270) cmd ::= REINDEX nm dbnm */
150673 164, /* (271) cmd ::= ANALYZE */
150674 164, /* (272) cmd ::= ANALYZE nm dbnm */
150675 164, /* (273) cmd ::= ALTER TABLE fullname RENAME TO nm */
150676 164, /* (274) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
150677 264, /* (275) add_column_fullname ::= fullname */
150678 164, /* (276) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
150679 164, /* (277) cmd ::= create_vtab */
150680 164, /* (278) cmd ::= create_vtab LP vtabarglist RP */
150681 266, /* (279) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
150682 268, /* (280) vtabarg ::= */
150683 269, /* (281) vtabargtoken ::= ANY */
150684 269, /* (282) vtabargtoken ::= lp anylist RP */
150685 270, /* (283) lp ::= LP */
150686 236, /* (284) with ::= WITH wqlist */
150687 236, /* (285) with ::= WITH RECURSIVE wqlist */
150688 212, /* (286) wqlist ::= nm eidlist_opt AS LP select RP */
150689 212, /* (287) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
150690 272, /* (288) windowdefn_list ::= windowdefn */
150691 272, /* (289) windowdefn_list ::= windowdefn_list COMMA windowdefn */
150692 273, /* (290) windowdefn ::= nm AS LP window RP */
150693 274, /* (291) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
150694 274, /* (292) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
150695 274, /* (293) window ::= ORDER BY sortlist frame_opt */
150696 274, /* (294) window ::= nm ORDER BY sortlist frame_opt */
150697 274, /* (295) window ::= frame_opt */
150698 274, /* (296) window ::= nm frame_opt */
150699 275, /* (297) frame_opt ::= */
150700 275, /* (298) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
150701 275, /* (299) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
150702 278, /* (300) range_or_rows ::= RANGE|ROWS|GROUPS */
150703 280, /* (301) frame_bound_s ::= frame_bound */
150704 280, /* (302) frame_bound_s ::= UNBOUNDED PRECEDING */
150705 281, /* (303) frame_bound_e ::= frame_bound */
150706 281, /* (304) frame_bound_e ::= UNBOUNDED FOLLOWING */
150707 279, /* (305) frame_bound ::= expr PRECEDING|FOLLOWING */
150708 279, /* (306) frame_bound ::= CURRENT ROW */
150709 282, /* (307) frame_exclude_opt ::= */
150710 282, /* (308) frame_exclude_opt ::= EXCLUDE frame_exclude */
150711 283, /* (309) frame_exclude ::= NO OTHERS */
150712 283, /* (310) frame_exclude ::= CURRENT ROW */
150713 283, /* (311) frame_exclude ::= GROUP|TIES */
150714 222, /* (312) window_clause ::= WINDOW windowdefn_list */
150715 241, /* (313) over_clause ::= filter_opt OVER LP window RP */
150716 241, /* (314) over_clause ::= filter_opt OVER nm */
150717 277, /* (315) filter_opt ::= */
150718 277, /* (316) filter_opt ::= FILTER LP WHERE expr RP */
150719 159, /* (317) input ::= cmdlist */
150720 160, /* (318) cmdlist ::= cmdlist ecmd */
150721 160, /* (319) cmdlist ::= ecmd */
150722 161, /* (320) ecmd ::= SEMI */
150723 161, /* (321) ecmd ::= cmdx SEMI */
150724 161, /* (322) ecmd ::= explain cmdx */
150725 166, /* (323) trans_opt ::= */
150726 166, /* (324) trans_opt ::= TRANSACTION */
150727 166, /* (325) trans_opt ::= TRANSACTION nm */
150728 168, /* (326) savepoint_opt ::= SAVEPOINT */
150729 168, /* (327) savepoint_opt ::= */
150730 164, /* (328) cmd ::= create_table create_table_args */
150731 175, /* (329) columnlist ::= columnlist COMMA columnname carglist */
150732 175, /* (330) columnlist ::= columnname carglist */
150733 167, /* (331) nm ::= ID|INDEXED */
150734 167, /* (332) nm ::= STRING */
150735 167, /* (333) nm ::= JOIN_KW */
150736 181, /* (334) typetoken ::= typename */
150737 182, /* (335) typename ::= ID|STRING */
150738 183, /* (336) signed ::= plus_num */
150739 183, /* (337) signed ::= minus_num */
150740 180, /* (338) carglist ::= carglist ccons */
150741 180, /* (339) carglist ::= */
150742 187, /* (340) ccons ::= NULL onconf */
150743 176, /* (341) conslist_opt ::= COMMA conslist */
150744 199, /* (342) conslist ::= conslist tconscomma tcons */
150745 199, /* (343) conslist ::= tcons */
150746 200, /* (344) tconscomma ::= */
150747 204, /* (345) defer_subclause_opt ::= defer_subclause */
150748 206, /* (346) resolvetype ::= raisetype */
150749 210, /* (347) selectnowith ::= oneselect */
150750 211, /* (348) oneselect ::= values */
150751 225, /* (349) sclp ::= selcollist COMMA */
150752 226, /* (350) as ::= ID|STRING */
150753 189, /* (351) expr ::= term */
150754 242, /* (352) likeop ::= LIKE_KW|MATCH */
150755 233, /* (353) exprlist ::= nexprlist */
150756 252, /* (354) nmnum ::= plus_num */
150757 252, /* (355) nmnum ::= nm */
150758 252, /* (356) nmnum ::= ON */
150759 252, /* (357) nmnum ::= DELETE */
150760 252, /* (358) nmnum ::= DEFAULT */
150761 184, /* (359) plus_num ::= INTEGER|FLOAT */
150762 257, /* (360) foreach_clause ::= */
150763 257, /* (361) foreach_clause ::= FOR EACH ROW */
150764 260, /* (362) trnm ::= nm */
150765 261, /* (363) tridxby ::= */
150766 262, /* (364) database_kw_opt ::= DATABASE */
150767 262, /* (365) database_kw_opt ::= */
150768 265, /* (366) kwcolumn_opt ::= */
150769 265, /* (367) kwcolumn_opt ::= COLUMNKW */
150770 267, /* (368) vtabarglist ::= vtabarg */
150771 267, /* (369) vtabarglist ::= vtabarglist COMMA vtabarg */
150772 268, /* (370) vtabarg ::= vtabarg vtabargtoken */
150773 271, /* (371) anylist ::= */
150774 271, /* (372) anylist ::= anylist LP anylist RP */
150775 271, /* (373) anylist ::= anylist ANY */
150776 236, /* (374) with ::= */
150777 };
150778
150779 /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
150780 ** of symbols on the right-hand side of that rule. */
150781 static const signed char yyRuleInfoNRhs[] = {
@@ -151248,20 +151310,20 @@
151248 break;
151249 case 2: /* cmdx ::= cmd */
151250 { sqlite3FinishCoding(pParse); }
151251 break;
151252 case 3: /* cmd ::= BEGIN transtype trans_opt */
151253 {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy420);}
151254 break;
151255 case 4: /* transtype ::= */
151256 {yymsp[1].minor.yy420 = TK_DEFERRED;}
151257 break;
151258 case 5: /* transtype ::= DEFERRED */
151259 case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6);
151260 case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7);
151261 case 300: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==300);
151262 {yymsp[0].minor.yy420 = yymsp[0].major; /*A-overwrites-X*/}
151263 break;
151264 case 8: /* cmd ::= COMMIT|END trans_opt */
151265 case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9);
151266 {sqlite3EndTransaction(pParse,yymsp[-1].major);}
151267 break;
@@ -151280,11 +151342,11 @@
151280 sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
151281 }
151282 break;
151283 case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
151284 {
151285 sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy420,0,0,yymsp[-2].minor.yy420);
151286 }
151287 break;
151288 case 14: /* createkw ::= CREATE */
151289 {disableLookaside(pParse);}
151290 break;
@@ -151295,36 +151357,36 @@
151295 case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
151296 case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
151297 case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
151298 case 93: /* distinct ::= */ yytestcase(yyruleno==93);
151299 case 226: /* collate ::= */ yytestcase(yyruleno==226);
151300 {yymsp[1].minor.yy420 = 0;}
151301 break;
151302 case 16: /* ifnotexists ::= IF NOT EXISTS */
151303 {yymsp[-2].minor.yy420 = 1;}
151304 break;
151305 case 17: /* temp ::= TEMP */
151306 case 43: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==43);
151307 {yymsp[0].minor.yy420 = 1;}
151308 break;
151309 case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_options */
151310 {
151311 sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy420,0);
151312 }
151313 break;
151314 case 20: /* create_table_args ::= AS select */
151315 {
151316 sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy491);
151317 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy491);
151318 }
151319 break;
151320 case 22: /* table_options ::= WITHOUT nm */
151321 {
151322 if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
151323 yymsp[-1].minor.yy420 = TF_WithoutRowid | TF_NoVisibleRowid;
151324 }else{
151325 yymsp[-1].minor.yy420 = 0;
151326 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
151327 }
151328 }
151329 break;
151330 case 23: /* columnname ::= nm typetoken */
@@ -151349,30 +151411,30 @@
151349 {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
151350 break;
151351 case 28: /* scanpt ::= */
151352 {
151353 assert( yyLookahead!=YYNOCODE );
151354 yymsp[1].minor.yy104 = yyLookaheadToken.z;
151355 }
151356 break;
151357 case 29: /* ccons ::= CONSTRAINT nm */
151358 case 62: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==62);
151359 {pParse->constraintName = yymsp[0].minor.yy0;}
151360 break;
151361 case 30: /* ccons ::= DEFAULT scanpt term scanpt */
151362 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy130,yymsp[-2].minor.yy104,yymsp[0].minor.yy104);}
151363 break;
151364 case 31: /* ccons ::= DEFAULT LP expr RP */
151365 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy130,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
151366 break;
151367 case 32: /* ccons ::= DEFAULT PLUS term scanpt */
151368 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy130,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy104);}
151369 break;
151370 case 33: /* ccons ::= DEFAULT MINUS term scanpt */
151371 {
151372 Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy130, 0);
151373 sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy104);
151374 }
151375 break;
151376 case 34: /* ccons ::= DEFAULT scanpt ID|INDEXED */
151377 {
151378 Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0);
@@ -151382,319 +151444,319 @@
151382 }
151383 sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n);
151384 }
151385 break;
151386 case 35: /* ccons ::= NOT NULL onconf */
151387 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy420);}
151388 break;
151389 case 36: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
151390 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy420,yymsp[0].minor.yy420,yymsp[-2].minor.yy420);}
151391 break;
151392 case 37: /* ccons ::= UNIQUE onconf */
151393 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy420,0,0,0,0,
151394 SQLITE_IDXTYPE_UNIQUE);}
151395 break;
151396 case 38: /* ccons ::= CHECK LP expr RP */
151397 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy130);}
151398 break;
151399 case 39: /* ccons ::= REFERENCES nm eidlist_opt refargs */
151400 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy442,yymsp[0].minor.yy420);}
151401 break;
151402 case 40: /* ccons ::= defer_subclause */
151403 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy420);}
151404 break;
151405 case 41: /* ccons ::= COLLATE ID|STRING */
151406 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
151407 break;
151408 case 44: /* refargs ::= */
151409 { yymsp[1].minor.yy420 = OE_None*0x0101; /* EV: R-19803-45884 */}
151410 break;
151411 case 45: /* refargs ::= refargs refarg */
151412 { yymsp[-1].minor.yy420 = (yymsp[-1].minor.yy420 & ~yymsp[0].minor.yy527.mask) | yymsp[0].minor.yy527.value; }
151413 break;
151414 case 46: /* refarg ::= MATCH nm */
151415 { yymsp[-1].minor.yy527.value = 0; yymsp[-1].minor.yy527.mask = 0x000000; }
151416 break;
151417 case 47: /* refarg ::= ON INSERT refact */
151418 { yymsp[-2].minor.yy527.value = 0; yymsp[-2].minor.yy527.mask = 0x000000; }
151419 break;
151420 case 48: /* refarg ::= ON DELETE refact */
151421 { yymsp[-2].minor.yy527.value = yymsp[0].minor.yy420; yymsp[-2].minor.yy527.mask = 0x0000ff; }
151422 break;
151423 case 49: /* refarg ::= ON UPDATE refact */
151424 { yymsp[-2].minor.yy527.value = yymsp[0].minor.yy420<<8; yymsp[-2].minor.yy527.mask = 0x00ff00; }
151425 break;
151426 case 50: /* refact ::= SET NULL */
151427 { yymsp[-1].minor.yy420 = OE_SetNull; /* EV: R-33326-45252 */}
151428 break;
151429 case 51: /* refact ::= SET DEFAULT */
151430 { yymsp[-1].minor.yy420 = OE_SetDflt; /* EV: R-33326-45252 */}
151431 break;
151432 case 52: /* refact ::= CASCADE */
151433 { yymsp[0].minor.yy420 = OE_Cascade; /* EV: R-33326-45252 */}
151434 break;
151435 case 53: /* refact ::= RESTRICT */
151436 { yymsp[0].minor.yy420 = OE_Restrict; /* EV: R-33326-45252 */}
151437 break;
151438 case 54: /* refact ::= NO ACTION */
151439 { yymsp[-1].minor.yy420 = OE_None; /* EV: R-33326-45252 */}
151440 break;
151441 case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
151442 {yymsp[-2].minor.yy420 = 0;}
151443 break;
151444 case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
151445 case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
151446 case 156: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==156);
151447 {yymsp[-1].minor.yy420 = yymsp[0].minor.yy420;}
151448 break;
151449 case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
151450 case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
151451 case 198: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==198);
151452 case 201: /* in_op ::= NOT IN */ yytestcase(yyruleno==201);
151453 case 227: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==227);
151454 {yymsp[-1].minor.yy420 = 1;}
151455 break;
151456 case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
151457 {yymsp[-1].minor.yy420 = 0;}
151458 break;
151459 case 61: /* tconscomma ::= COMMA */
151460 {pParse->constraintName.n = 0;}
151461 break;
151462 case 63: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
151463 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy420,yymsp[-2].minor.yy420,0);}
151464 break;
151465 case 64: /* tcons ::= UNIQUE LP sortlist RP onconf */
151466 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy420,0,0,0,0,
151467 SQLITE_IDXTYPE_UNIQUE);}
151468 break;
151469 case 65: /* tcons ::= CHECK LP expr RP onconf */
151470 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy130);}
151471 break;
151472 case 66: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
151473 {
151474 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy442, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy420);
151475 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy420);
151476 }
151477 break;
151478 case 68: /* onconf ::= */
151479 case 70: /* orconf ::= */ yytestcase(yyruleno==70);
151480 {yymsp[1].minor.yy420 = OE_Default;}
151481 break;
151482 case 69: /* onconf ::= ON CONFLICT resolvetype */
151483 {yymsp[-2].minor.yy420 = yymsp[0].minor.yy420;}
151484 break;
151485 case 72: /* resolvetype ::= IGNORE */
151486 {yymsp[0].minor.yy420 = OE_Ignore;}
151487 break;
151488 case 73: /* resolvetype ::= REPLACE */
151489 case 157: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==157);
151490 {yymsp[0].minor.yy420 = OE_Replace;}
151491 break;
151492 case 74: /* cmd ::= DROP TABLE ifexists fullname */
151493 {
151494 sqlite3DropTable(pParse, yymsp[0].minor.yy147, 0, yymsp[-1].minor.yy420);
151495 }
151496 break;
151497 case 77: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
151498 {
151499 sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy442, yymsp[0].minor.yy491, yymsp[-7].minor.yy420, yymsp[-5].minor.yy420);
151500 }
151501 break;
151502 case 78: /* cmd ::= DROP VIEW ifexists fullname */
151503 {
151504 sqlite3DropTable(pParse, yymsp[0].minor.yy147, 1, yymsp[-1].minor.yy420);
151505 }
151506 break;
151507 case 79: /* cmd ::= select */
151508 {
151509 SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
151510 sqlite3Select(pParse, yymsp[0].minor.yy491, &dest);
151511 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy491);
151512 }
151513 break;
151514 case 80: /* select ::= WITH wqlist selectnowith */
151515 {
151516 Select *p = yymsp[0].minor.yy491;
151517 if( p ){
151518 p->pWith = yymsp[-1].minor.yy523;
151519 parserDoubleLinkSelect(pParse, p);
151520 }else{
151521 sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy523);
151522 }
151523 yymsp[-2].minor.yy491 = p;
151524 }
151525 break;
151526 case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
151527 {
151528 Select *p = yymsp[0].minor.yy491;
151529 if( p ){
151530 p->pWith = yymsp[-1].minor.yy523;
151531 parserDoubleLinkSelect(pParse, p);
151532 }else{
151533 sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy523);
151534 }
151535 yymsp[-3].minor.yy491 = p;
151536 }
151537 break;
151538 case 82: /* select ::= selectnowith */
151539 {
151540 Select *p = yymsp[0].minor.yy491;
151541 if( p ){
151542 parserDoubleLinkSelect(pParse, p);
151543 }
151544 yymsp[0].minor.yy491 = p; /*A-overwrites-X*/
151545 }
151546 break;
151547 case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
151548 {
151549 Select *pRhs = yymsp[0].minor.yy491;
151550 Select *pLhs = yymsp[-2].minor.yy491;
151551 if( pRhs && pRhs->pPrior ){
151552 SrcList *pFrom;
151553 Token x;
151554 x.n = 0;
151555 parserDoubleLinkSelect(pParse, pRhs);
151556 pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0);
151557 pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
151558 }
151559 if( pRhs ){
151560 pRhs->op = (u8)yymsp[-1].minor.yy420;
151561 pRhs->pPrior = pLhs;
151562 if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
151563 pRhs->selFlags &= ~SF_MultiValue;
151564 if( yymsp[-1].minor.yy420!=TK_ALL ) pParse->hasCompound = 1;
151565 }else{
151566 sqlite3SelectDelete(pParse->db, pLhs);
151567 }
151568 yymsp[-2].minor.yy491 = pRhs;
151569 }
151570 break;
151571 case 84: /* multiselect_op ::= UNION */
151572 case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
151573 {yymsp[0].minor.yy420 = yymsp[0].major; /*A-overwrites-OP*/}
151574 break;
151575 case 85: /* multiselect_op ::= UNION ALL */
151576 {yymsp[-1].minor.yy420 = TK_ALL;}
151577 break;
151578 case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
151579 {
151580 yymsp[-8].minor.yy491 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy442,yymsp[-5].minor.yy147,yymsp[-4].minor.yy130,yymsp[-3].minor.yy442,yymsp[-2].minor.yy130,yymsp[-1].minor.yy442,yymsp[-7].minor.yy420,yymsp[0].minor.yy130);
151581 }
151582 break;
151583 case 88: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
151584 {
151585 yymsp[-9].minor.yy491 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy442,yymsp[-6].minor.yy147,yymsp[-5].minor.yy130,yymsp[-4].minor.yy442,yymsp[-3].minor.yy130,yymsp[-1].minor.yy442,yymsp[-8].minor.yy420,yymsp[0].minor.yy130);
151586 if( yymsp[-9].minor.yy491 ){
151587 yymsp[-9].minor.yy491->pWinDefn = yymsp[-2].minor.yy395;
151588 }else{
151589 sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy395);
151590 }
151591 }
151592 break;
151593 case 89: /* values ::= VALUES LP nexprlist RP */
151594 {
151595 yymsp[-3].minor.yy491 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy442,0,0,0,0,0,SF_Values,0);
151596 }
151597 break;
151598 case 90: /* values ::= values COMMA LP nexprlist RP */
151599 {
151600 Select *pRight, *pLeft = yymsp[-4].minor.yy491;
151601 pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy442,0,0,0,0,0,SF_Values|SF_MultiValue,0);
151602 if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
151603 if( pRight ){
151604 pRight->op = TK_ALL;
151605 pRight->pPrior = pLeft;
151606 yymsp[-4].minor.yy491 = pRight;
151607 }else{
151608 yymsp[-4].minor.yy491 = pLeft;
151609 }
151610 }
151611 break;
151612 case 91: /* distinct ::= DISTINCT */
151613 {yymsp[0].minor.yy420 = SF_Distinct;}
151614 break;
151615 case 92: /* distinct ::= ALL */
151616 {yymsp[0].minor.yy420 = SF_All;}
151617 break;
151618 case 94: /* sclp ::= */
151619 case 127: /* orderby_opt ::= */ yytestcase(yyruleno==127);
151620 case 134: /* groupby_opt ::= */ yytestcase(yyruleno==134);
151621 case 214: /* exprlist ::= */ yytestcase(yyruleno==214);
151622 case 217: /* paren_exprlist ::= */ yytestcase(yyruleno==217);
151623 case 222: /* eidlist_opt ::= */ yytestcase(yyruleno==222);
151624 {yymsp[1].minor.yy442 = 0;}
151625 break;
151626 case 95: /* selcollist ::= sclp scanpt expr scanpt as */
151627 {
151628 yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy442, yymsp[-2].minor.yy130);
151629 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy442, &yymsp[0].minor.yy0, 1);
151630 sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy442,yymsp[-3].minor.yy104,yymsp[-1].minor.yy104);
151631 }
151632 break;
151633 case 96: /* selcollist ::= sclp scanpt STAR */
151634 {
151635 Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
151636 yymsp[-2].minor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy442, p);
151637 }
151638 break;
151639 case 97: /* selcollist ::= sclp scanpt nm DOT STAR */
151640 {
151641 Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
151642 Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
151643 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
151644 yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, pDot);
151645 }
151646 break;
151647 case 98: /* as ::= AS nm */
151648 case 109: /* dbnm ::= DOT nm */ yytestcase(yyruleno==109);
151649 case 238: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==238);
151650 case 239: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==239);
151651 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
151652 break;
151653 case 100: /* from ::= */
151654 {yymsp[1].minor.yy147 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy147));}
151655 break;
151656 case 101: /* from ::= FROM seltablist */
151657 {
151658 yymsp[-1].minor.yy147 = yymsp[0].minor.yy147;
151659 sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy147);
151660 }
151661 break;
151662 case 102: /* stl_prefix ::= seltablist joinop */
151663 {
151664 if( ALWAYS(yymsp[-1].minor.yy147 && yymsp[-1].minor.yy147->nSrc>0) ) yymsp[-1].minor.yy147->a[yymsp[-1].minor.yy147->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy420;
151665 }
151666 break;
151667 case 103: /* stl_prefix ::= */
151668 {yymsp[1].minor.yy147 = 0;}
151669 break;
151670 case 104: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
151671 {
151672 yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151673 sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy147, &yymsp[-2].minor.yy0);
151674 }
151675 break;
151676 case 105: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
151677 {
151678 yymsp[-8].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy147,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151679 sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy147, yymsp[-4].minor.yy442);
151680 }
151681 break;
151682 case 106: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
151683 {
151684 yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy491,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151685 }
151686 break;
151687 case 107: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
151688 {
151689 if( yymsp[-6].minor.yy147==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy130==0 && yymsp[0].minor.yy200==0 ){
151690 yymsp[-6].minor.yy147 = yymsp[-4].minor.yy147;
151691 }else if( yymsp[-4].minor.yy147->nSrc==1 ){
151692 yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151693 if( yymsp[-6].minor.yy147 ){
151694 struct SrcList_item *pNew = &yymsp[-6].minor.yy147->a[yymsp[-6].minor.yy147->nSrc-1];
151695 struct SrcList_item *pOld = yymsp[-4].minor.yy147->a;
151696 pNew->zName = pOld->zName;
151697 pNew->zDatabase = pOld->zDatabase;
151698 pNew->pSelect = pOld->pSelect;
151699 if( pOld->fg.isTabFunc ){
151700 pNew->u1.pFuncArg = pOld->u1.pFuncArg;
@@ -151703,215 +151765,215 @@
151703 pNew->fg.isTabFunc = 1;
151704 }
151705 pOld->zName = pOld->zDatabase = 0;
151706 pOld->pSelect = 0;
151707 }
151708 sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy147);
151709 }else{
151710 Select *pSubquery;
151711 sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy147);
151712 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy147,0,0,0,0,SF_NestedFrom,0);
151713 yymsp[-6].minor.yy147 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy147,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy130,yymsp[0].minor.yy200);
151714 }
151715 }
151716 break;
151717 case 108: /* dbnm ::= */
151718 case 122: /* indexed_opt ::= */ yytestcase(yyruleno==122);
151719 {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
151720 break;
151721 case 110: /* fullname ::= nm */
151722 {
151723 yylhsminor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
151724 if( IN_RENAME_OBJECT && yylhsminor.yy147 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy147->a[0].zName, &yymsp[0].minor.yy0);
151725 }
151726 yymsp[0].minor.yy147 = yylhsminor.yy147;
151727 break;
151728 case 111: /* fullname ::= nm DOT nm */
151729 {
151730 yylhsminor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
151731 if( IN_RENAME_OBJECT && yylhsminor.yy147 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy147->a[0].zName, &yymsp[0].minor.yy0);
151732 }
151733 yymsp[-2].minor.yy147 = yylhsminor.yy147;
151734 break;
151735 case 112: /* xfullname ::= nm */
151736 {yymsp[0].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
151737 break;
151738 case 113: /* xfullname ::= nm DOT nm */
151739 {yymsp[-2].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
151740 break;
151741 case 114: /* xfullname ::= nm DOT nm AS nm */
151742 {
151743 yymsp[-4].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
151744 if( yymsp[-4].minor.yy147 ) yymsp[-4].minor.yy147->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151745 }
151746 break;
151747 case 115: /* xfullname ::= nm AS nm */
151748 {
151749 yymsp[-2].minor.yy147 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
151750 if( yymsp[-2].minor.yy147 ) yymsp[-2].minor.yy147->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151751 }
151752 break;
151753 case 116: /* joinop ::= COMMA|JOIN */
151754 { yymsp[0].minor.yy420 = JT_INNER; }
151755 break;
151756 case 117: /* joinop ::= JOIN_KW JOIN */
151757 {yymsp[-1].minor.yy420 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
151758 break;
151759 case 118: /* joinop ::= JOIN_KW nm JOIN */
151760 {yymsp[-2].minor.yy420 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
151761 break;
151762 case 119: /* joinop ::= JOIN_KW nm nm JOIN */
151763 {yymsp[-3].minor.yy420 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
151764 break;
151765 case 120: /* on_opt ::= ON expr */
151766 case 137: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==137);
151767 case 144: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==144);
151768 case 210: /* case_else ::= ELSE expr */ yytestcase(yyruleno==210);
151769 case 231: /* vinto ::= INTO expr */ yytestcase(yyruleno==231);
151770 {yymsp[-1].minor.yy130 = yymsp[0].minor.yy130;}
151771 break;
151772 case 121: /* on_opt ::= */
151773 case 136: /* having_opt ::= */ yytestcase(yyruleno==136);
151774 case 138: /* limit_opt ::= */ yytestcase(yyruleno==138);
151775 case 143: /* where_opt ::= */ yytestcase(yyruleno==143);
151776 case 211: /* case_else ::= */ yytestcase(yyruleno==211);
151777 case 213: /* case_operand ::= */ yytestcase(yyruleno==213);
151778 case 232: /* vinto ::= */ yytestcase(yyruleno==232);
151779 {yymsp[1].minor.yy130 = 0;}
151780 break;
151781 case 123: /* indexed_opt ::= INDEXED BY nm */
151782 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
151783 break;
151784 case 124: /* indexed_opt ::= NOT INDEXED */
151785 {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
151786 break;
151787 case 125: /* using_opt ::= USING LP idlist RP */
151788 {yymsp[-3].minor.yy200 = yymsp[-1].minor.yy200;}
151789 break;
151790 case 126: /* using_opt ::= */
151791 case 158: /* idlist_opt ::= */ yytestcase(yyruleno==158);
151792 {yymsp[1].minor.yy200 = 0;}
151793 break;
151794 case 128: /* orderby_opt ::= ORDER BY sortlist */
151795 case 135: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==135);
151796 {yymsp[-2].minor.yy442 = yymsp[0].minor.yy442;}
151797 break;
151798 case 129: /* sortlist ::= sortlist COMMA expr sortorder */
151799 {
151800 yymsp[-3].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442,yymsp[-1].minor.yy130);
151801 sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy442,yymsp[0].minor.yy420);
151802 }
151803 break;
151804 case 130: /* sortlist ::= expr sortorder */
151805 {
151806 yymsp[-1].minor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy130); /*A-overwrites-Y*/
151807 sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy442,yymsp[0].minor.yy420);
151808 }
151809 break;
151810 case 131: /* sortorder ::= ASC */
151811 {yymsp[0].minor.yy420 = SQLITE_SO_ASC;}
151812 break;
151813 case 132: /* sortorder ::= DESC */
151814 {yymsp[0].minor.yy420 = SQLITE_SO_DESC;}
151815 break;
151816 case 133: /* sortorder ::= */
151817 {yymsp[1].minor.yy420 = SQLITE_SO_UNDEFINED;}
151818 break;
151819 case 139: /* limit_opt ::= LIMIT expr */
151820 {yymsp[-1].minor.yy130 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy130,0);}
151821 break;
151822 case 140: /* limit_opt ::= LIMIT expr OFFSET expr */
151823 {yymsp[-3].minor.yy130 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy130,yymsp[0].minor.yy130);}
151824 break;
151825 case 141: /* limit_opt ::= LIMIT expr COMMA expr */
151826 {yymsp[-3].minor.yy130 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy130,yymsp[-2].minor.yy130);}
151827 break;
151828 case 142: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
151829 {
151830 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy147, &yymsp[-1].minor.yy0);
151831 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy147,yymsp[0].minor.yy130,0,0);
151832 }
151833 break;
151834 case 145: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
151835 {
151836 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy147, &yymsp[-3].minor.yy0);
151837 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy442,"set list");
151838 sqlite3Update(pParse,yymsp[-4].minor.yy147,yymsp[-1].minor.yy442,yymsp[0].minor.yy130,yymsp[-5].minor.yy420,0,0,0);
151839 }
151840 break;
151841 case 146: /* setlist ::= setlist COMMA nm EQ expr */
151842 {
151843 yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy442, yymsp[0].minor.yy130);
151844 sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy442, &yymsp[-2].minor.yy0, 1);
151845 }
151846 break;
151847 case 147: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
151848 {
151849 yymsp[-6].minor.yy442 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy442, yymsp[-3].minor.yy200, yymsp[0].minor.yy130);
151850 }
151851 break;
151852 case 148: /* setlist ::= nm EQ expr */
151853 {
151854 yylhsminor.yy442 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy130);
151855 sqlite3ExprListSetName(pParse, yylhsminor.yy442, &yymsp[-2].minor.yy0, 1);
151856 }
151857 yymsp[-2].minor.yy442 = yylhsminor.yy442;
151858 break;
151859 case 149: /* setlist ::= LP idlist RP EQ expr */
151860 {
151861 yymsp[-4].minor.yy442 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy200, yymsp[0].minor.yy130);
151862 }
151863 break;
151864 case 150: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
151865 {
151866 sqlite3Insert(pParse, yymsp[-3].minor.yy147, yymsp[-1].minor.yy491, yymsp[-2].minor.yy200, yymsp[-5].minor.yy420, yymsp[0].minor.yy426);
151867 }
151868 break;
151869 case 151: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
151870 {
151871 sqlite3Insert(pParse, yymsp[-3].minor.yy147, 0, yymsp[-2].minor.yy200, yymsp[-5].minor.yy420, 0);
151872 }
151873 break;
151874 case 152: /* upsert ::= */
151875 { yymsp[1].minor.yy426 = 0; }
151876 break;
151877 case 153: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
151878 { yymsp[-10].minor.yy426 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy442,yymsp[-5].minor.yy130,yymsp[-1].minor.yy442,yymsp[0].minor.yy130);}
151879 break;
151880 case 154: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
151881 { yymsp[-7].minor.yy426 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy442,yymsp[-2].minor.yy130,0,0); }
151882 break;
151883 case 155: /* upsert ::= ON CONFLICT DO NOTHING */
151884 { yymsp[-3].minor.yy426 = sqlite3UpsertNew(pParse->db,0,0,0,0); }
151885 break;
151886 case 159: /* idlist_opt ::= LP idlist RP */
151887 {yymsp[-2].minor.yy200 = yymsp[-1].minor.yy200;}
151888 break;
151889 case 160: /* idlist ::= idlist COMMA nm */
151890 {yymsp[-2].minor.yy200 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy200,&yymsp[0].minor.yy0);}
151891 break;
151892 case 161: /* idlist ::= nm */
151893 {yymsp[0].minor.yy200 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
151894 break;
151895 case 162: /* expr ::= LP expr RP */
151896 {yymsp[-2].minor.yy130 = yymsp[-1].minor.yy130;}
151897 break;
151898 case 163: /* expr ::= ID|INDEXED */
151899 case 164: /* expr ::= JOIN_KW */ yytestcase(yyruleno==164);
151900 {yymsp[0].minor.yy130=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151901 break;
151902 case 165: /* expr ::= nm DOT nm */
151903 {
151904 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
151905 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
151906 if( IN_RENAME_OBJECT ){
151907 sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0);
151908 sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0);
151909 }
151910 yylhsminor.yy130 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
151911 }
151912 yymsp[-2].minor.yy130 = yylhsminor.yy130;
151913 break;
151914 case 166: /* expr ::= nm DOT nm DOT nm */
151915 {
151916 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
151917 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
@@ -151919,95 +151981,95 @@
151919 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
151920 if( IN_RENAME_OBJECT ){
151921 sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0);
151922 sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0);
151923 }
151924 yylhsminor.yy130 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
151925 }
151926 yymsp[-4].minor.yy130 = yylhsminor.yy130;
151927 break;
151928 case 167: /* term ::= NULL|FLOAT|BLOB */
151929 case 168: /* term ::= STRING */ yytestcase(yyruleno==168);
151930 {yymsp[0].minor.yy130=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151931 break;
151932 case 169: /* term ::= INTEGER */
151933 {
151934 yylhsminor.yy130 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
151935 }
151936 yymsp[0].minor.yy130 = yylhsminor.yy130;
151937 break;
151938 case 170: /* expr ::= VARIABLE */
151939 {
151940 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
151941 u32 n = yymsp[0].minor.yy0.n;
151942 yymsp[0].minor.yy130 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
151943 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy130, n);
151944 }else{
151945 /* When doing a nested parse, one can include terms in an expression
151946 ** that look like this: #1 #2 ... These terms refer to registers
151947 ** in the virtual machine. #N is the N-th register. */
151948 Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/
151949 assert( t.n>=2 );
151950 if( pParse->nested==0 ){
151951 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
151952 yymsp[0].minor.yy130 = 0;
151953 }else{
151954 yymsp[0].minor.yy130 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
151955 if( yymsp[0].minor.yy130 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy130->iTable);
151956 }
151957 }
151958 }
151959 break;
151960 case 171: /* expr ::= expr COLLATE ID|STRING */
151961 {
151962 yymsp[-2].minor.yy130 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy130, &yymsp[0].minor.yy0, 1);
151963 }
151964 break;
151965 case 172: /* expr ::= CAST LP expr AS typetoken RP */
151966 {
151967 yymsp[-5].minor.yy130 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
151968 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy130, yymsp[-3].minor.yy130, 0);
151969 }
151970 break;
151971 case 173: /* expr ::= ID|INDEXED LP distinct exprlist RP */
151972 {
151973 yylhsminor.yy130 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy420);
151974 }
151975 yymsp[-4].minor.yy130 = yylhsminor.yy130;
151976 break;
151977 case 174: /* expr ::= ID|INDEXED LP STAR RP */
151978 {
151979 yylhsminor.yy130 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
151980 }
151981 yymsp[-3].minor.yy130 = yylhsminor.yy130;
151982 break;
151983 case 175: /* expr ::= ID|INDEXED LP distinct exprlist RP over_clause */
151984 {
151985 yylhsminor.yy130 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy442, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy420);
151986 sqlite3WindowAttach(pParse, yylhsminor.yy130, yymsp[0].minor.yy395);
151987 }
151988 yymsp[-5].minor.yy130 = yylhsminor.yy130;
151989 break;
151990 case 176: /* expr ::= ID|INDEXED LP STAR RP over_clause */
151991 {
151992 yylhsminor.yy130 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
151993 sqlite3WindowAttach(pParse, yylhsminor.yy130, yymsp[0].minor.yy395);
151994 }
151995 yymsp[-4].minor.yy130 = yylhsminor.yy130;
151996 break;
151997 case 177: /* term ::= CTIME_KW */
151998 {
151999 yylhsminor.yy130 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
152000 }
152001 yymsp[0].minor.yy130 = yylhsminor.yy130;
152002 break;
152003 case 178: /* expr ::= LP nexprlist COMMA expr RP */
152004 {
152005 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy442, yymsp[-1].minor.yy130);
152006 yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
152007 if( yymsp[-4].minor.yy130 ){
152008 yymsp[-4].minor.yy130->x.pList = pList;
152009 }else{
152010 sqlite3ExprListDelete(pParse->db, pList);
152011 }
152012 }
152013 break;
@@ -152017,101 +152079,101 @@
152017 case 182: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==182);
152018 case 183: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==183);
152019 case 184: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==184);
152020 case 185: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==185);
152021 case 186: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==186);
152022 {yymsp[-2].minor.yy130=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy130,yymsp[0].minor.yy130);}
152023 break;
152024 case 187: /* likeop ::= NOT LIKE_KW|MATCH */
152025 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
152026 break;
152027 case 188: /* expr ::= expr likeop expr */
152028 {
152029 ExprList *pList;
152030 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
152031 yymsp[-1].minor.yy0.n &= 0x7fffffff;
152032 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy130);
152033 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy130);
152034 yymsp[-2].minor.yy130 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
152035 if( bNot ) yymsp[-2].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy130, 0);
152036 if( yymsp[-2].minor.yy130 ) yymsp[-2].minor.yy130->flags |= EP_InfixFunc;
152037 }
152038 break;
152039 case 189: /* expr ::= expr likeop expr ESCAPE expr */
152040 {
152041 ExprList *pList;
152042 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
152043 yymsp[-3].minor.yy0.n &= 0x7fffffff;
152044 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy130);
152045 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy130);
152046 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy130);
152047 yymsp[-4].minor.yy130 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
152048 if( bNot ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152049 if( yymsp[-4].minor.yy130 ) yymsp[-4].minor.yy130->flags |= EP_InfixFunc;
152050 }
152051 break;
152052 case 190: /* expr ::= expr ISNULL|NOTNULL */
152053 {yymsp[-1].minor.yy130 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy130,0);}
152054 break;
152055 case 191: /* expr ::= expr NOT NULL */
152056 {yymsp[-2].minor.yy130 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy130,0);}
152057 break;
152058 case 192: /* expr ::= expr IS expr */
152059 {
152060 yymsp[-2].minor.yy130 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy130,yymsp[0].minor.yy130);
152061 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy130, yymsp[-2].minor.yy130, TK_ISNULL);
152062 }
152063 break;
152064 case 193: /* expr ::= expr IS NOT expr */
152065 {
152066 yymsp[-3].minor.yy130 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy130,yymsp[0].minor.yy130);
152067 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy130, yymsp[-3].minor.yy130, TK_NOTNULL);
152068 }
152069 break;
152070 case 194: /* expr ::= NOT expr */
152071 case 195: /* expr ::= BITNOT expr */ yytestcase(yyruleno==195);
152072 {yymsp[-1].minor.yy130 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy130, 0);/*A-overwrites-B*/}
152073 break;
152074 case 196: /* expr ::= PLUS|MINUS expr */
152075 {
152076 yymsp[-1].minor.yy130 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy130, 0);
152077 /*A-overwrites-B*/
152078 }
152079 break;
152080 case 197: /* between_op ::= BETWEEN */
152081 case 200: /* in_op ::= IN */ yytestcase(yyruleno==200);
152082 {yymsp[0].minor.yy420 = 0;}
152083 break;
152084 case 199: /* expr ::= expr between_op expr AND expr */
152085 {
152086 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy130);
152087 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy130);
152088 yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy130, 0);
152089 if( yymsp[-4].minor.yy130 ){
152090 yymsp[-4].minor.yy130->x.pList = pList;
152091 }else{
152092 sqlite3ExprListDelete(pParse->db, pList);
152093 }
152094 if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152095 }
152096 break;
152097 case 202: /* expr ::= expr in_op LP exprlist RP */
152098 {
152099 if( yymsp[-1].minor.yy442==0 ){
152100 /* Expressions of the form
152101 **
152102 ** expr1 IN ()
152103 ** expr1 NOT IN ()
152104 **
152105 ** simplify to constants 0 (false) and 1 (true), respectively,
152106 ** regardless of the value of expr1.
152107 */
152108 if( IN_RENAME_OBJECT==0 ){
152109 sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy130);
152110 yymsp[-4].minor.yy130 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy420],1);
152111 }
152112 }else if( yymsp[-1].minor.yy442->nExpr==1 ){
152113 /* Expressions of the form:
152114 **
152115 ** expr1 IN (?1)
152116 ** expr1 NOT IN (?2)
152117 **
@@ -152124,134 +152186,134 @@
152124 ** But, the RHS of the == or <> is marked with the EP_Generic flag
152125 ** so that it may not contribute to the computation of comparison
152126 ** affinity or the collating sequence to use for comparison. Otherwise,
152127 ** the semantics would be subtly different from IN or NOT IN.
152128 */
152129 Expr *pRHS = yymsp[-1].minor.yy442->a[0].pExpr;
152130 yymsp[-1].minor.yy442->a[0].pExpr = 0;
152131 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy442);
152132 /* pRHS cannot be NULL because a malloc error would have been detected
152133 ** before now and control would have never reached this point */
152134 if( ALWAYS(pRHS) ){
152135 pRHS->flags &= ~EP_Collate;
152136 pRHS->flags |= EP_Generic;
152137 }
152138 yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, yymsp[-3].minor.yy420 ? TK_NE : TK_EQ, yymsp[-4].minor.yy130, pRHS);
152139 }else{
152140 yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy130, 0);
152141 if( yymsp[-4].minor.yy130 ){
152142 yymsp[-4].minor.yy130->x.pList = yymsp[-1].minor.yy442;
152143 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy130);
152144 }else{
152145 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy442);
152146 }
152147 if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152148 }
152149 }
152150 break;
152151 case 203: /* expr ::= LP select RP */
152152 {
152153 yymsp[-2].minor.yy130 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
152154 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy130, yymsp[-1].minor.yy491);
152155 }
152156 break;
152157 case 204: /* expr ::= expr in_op LP select RP */
152158 {
152159 yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy130, 0);
152160 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy130, yymsp[-1].minor.yy491);
152161 if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152162 }
152163 break;
152164 case 205: /* expr ::= expr in_op nm dbnm paren_exprlist */
152165 {
152166 SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
152167 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
152168 if( yymsp[0].minor.yy442 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy442);
152169 yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy130, 0);
152170 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy130, pSelect);
152171 if( yymsp[-3].minor.yy420 ) yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy130, 0);
152172 }
152173 break;
152174 case 206: /* expr ::= EXISTS LP select RP */
152175 {
152176 Expr *p;
152177 p = yymsp[-3].minor.yy130 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
152178 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy491);
152179 }
152180 break;
152181 case 207: /* expr ::= CASE case_operand case_exprlist case_else END */
152182 {
152183 yymsp[-4].minor.yy130 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy130, 0);
152184 if( yymsp[-4].minor.yy130 ){
152185 yymsp[-4].minor.yy130->x.pList = yymsp[-1].minor.yy130 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[-1].minor.yy130) : yymsp[-2].minor.yy442;
152186 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy130);
152187 }else{
152188 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy442);
152189 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy130);
152190 }
152191 }
152192 break;
152193 case 208: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
152194 {
152195 yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[-2].minor.yy130);
152196 yymsp[-4].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy442, yymsp[0].minor.yy130);
152197 }
152198 break;
152199 case 209: /* case_exprlist ::= WHEN expr THEN expr */
152200 {
152201 yymsp[-3].minor.yy442 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy130);
152202 yymsp[-3].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy442, yymsp[0].minor.yy130);
152203 }
152204 break;
152205 case 212: /* case_operand ::= expr */
152206 {yymsp[0].minor.yy130 = yymsp[0].minor.yy130; /*A-overwrites-X*/}
152207 break;
152208 case 215: /* nexprlist ::= nexprlist COMMA expr */
152209 {yymsp[-2].minor.yy442 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy442,yymsp[0].minor.yy130);}
152210 break;
152211 case 216: /* nexprlist ::= expr */
152212 {yymsp[0].minor.yy442 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy130); /*A-overwrites-Y*/}
152213 break;
152214 case 218: /* paren_exprlist ::= LP exprlist RP */
152215 case 223: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==223);
152216 {yymsp[-2].minor.yy442 = yymsp[-1].minor.yy442;}
152217 break;
152218 case 219: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
152219 {
152220 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
152221 sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy442, yymsp[-10].minor.yy420,
152222 &yymsp[-11].minor.yy0, yymsp[0].minor.yy130, SQLITE_SO_ASC, yymsp[-8].minor.yy420, SQLITE_IDXTYPE_APPDEF);
152223 if( IN_RENAME_OBJECT && pParse->pNewIndex ){
152224 sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0);
152225 }
152226 }
152227 break;
152228 case 220: /* uniqueflag ::= UNIQUE */
152229 case 262: /* raisetype ::= ABORT */ yytestcase(yyruleno==262);
152230 {yymsp[0].minor.yy420 = OE_Abort;}
152231 break;
152232 case 221: /* uniqueflag ::= */
152233 {yymsp[1].minor.yy420 = OE_None;}
152234 break;
152235 case 224: /* eidlist ::= eidlist COMMA nm collate sortorder */
152236 {
152237 yymsp[-4].minor.yy442 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy442, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy420, yymsp[0].minor.yy420);
152238 }
152239 break;
152240 case 225: /* eidlist ::= nm collate sortorder */
152241 {
152242 yymsp[-2].minor.yy442 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy420, yymsp[0].minor.yy420); /*A-overwrites-Y*/
152243 }
152244 break;
152245 case 228: /* cmd ::= DROP INDEX ifexists fullname */
152246 {sqlite3DropIndex(pParse, yymsp[0].minor.yy147, yymsp[-1].minor.yy420);}
152247 break;
152248 case 229: /* cmd ::= VACUUM vinto */
152249 {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy130);}
152250 break;
152251 case 230: /* cmd ::= VACUUM nm vinto */
152252 {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy130);}
152253 break;
152254 case 233: /* cmd ::= PRAGMA nm dbnm */
152255 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
152256 break;
152257 case 234: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
@@ -152269,55 +152331,55 @@
152269 case 240: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
152270 {
152271 Token all;
152272 all.z = yymsp[-3].minor.yy0.z;
152273 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
152274 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy524, &all);
152275 }
152276 break;
152277 case 241: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
152278 {
152279 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy420, yymsp[-4].minor.yy498.a, yymsp[-4].minor.yy498.b, yymsp[-2].minor.yy147, yymsp[0].minor.yy130, yymsp[-10].minor.yy420, yymsp[-8].minor.yy420);
152280 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
152281 }
152282 break;
152283 case 242: /* trigger_time ::= BEFORE|AFTER */
152284 { yymsp[0].minor.yy420 = yymsp[0].major; /*A-overwrites-X*/ }
152285 break;
152286 case 243: /* trigger_time ::= INSTEAD OF */
152287 { yymsp[-1].minor.yy420 = TK_INSTEAD;}
152288 break;
152289 case 244: /* trigger_time ::= */
152290 { yymsp[1].minor.yy420 = TK_BEFORE; }
152291 break;
152292 case 245: /* trigger_event ::= DELETE|INSERT */
152293 case 246: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==246);
152294 {yymsp[0].minor.yy498.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy498.b = 0;}
152295 break;
152296 case 247: /* trigger_event ::= UPDATE OF idlist */
152297 {yymsp[-2].minor.yy498.a = TK_UPDATE; yymsp[-2].minor.yy498.b = yymsp[0].minor.yy200;}
152298 break;
152299 case 248: /* when_clause ::= */
152300 case 267: /* key_opt ::= */ yytestcase(yyruleno==267);
152301 case 315: /* filter_opt ::= */ yytestcase(yyruleno==315);
152302 { yymsp[1].minor.yy130 = 0; }
152303 break;
152304 case 249: /* when_clause ::= WHEN expr */
152305 case 268: /* key_opt ::= KEY expr */ yytestcase(yyruleno==268);
152306 { yymsp[-1].minor.yy130 = yymsp[0].minor.yy130; }
152307 break;
152308 case 250: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
152309 {
152310 assert( yymsp[-2].minor.yy524!=0 );
152311 yymsp[-2].minor.yy524->pLast->pNext = yymsp[-1].minor.yy524;
152312 yymsp[-2].minor.yy524->pLast = yymsp[-1].minor.yy524;
152313 }
152314 break;
152315 case 251: /* trigger_cmd_list ::= trigger_cmd SEMI */
152316 {
152317 assert( yymsp[-1].minor.yy524!=0 );
152318 yymsp[-1].minor.yy524->pLast = yymsp[-1].minor.yy524;
152319 }
152320 break;
152321 case 252: /* trnm ::= nm DOT nm */
152322 {
152323 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
@@ -152339,62 +152401,62 @@
152339 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
152340 "within triggers");
152341 }
152342 break;
152343 case 255: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
152344 {yylhsminor.yy524 = sqlite3TriggerUpdateStep(pParse, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy442, yymsp[-1].minor.yy130, yymsp[-6].minor.yy420, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy104);}
152345 yymsp[-7].minor.yy524 = yylhsminor.yy524;
152346 break;
152347 case 256: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
152348 {
152349 yylhsminor.yy524 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy200,yymsp[-2].minor.yy491,yymsp[-6].minor.yy420,yymsp[-1].minor.yy426,yymsp[-7].minor.yy104,yymsp[0].minor.yy104);/*yylhsminor.yy524-overwrites-yymsp[-6].minor.yy420*/
152350 }
152351 yymsp[-7].minor.yy524 = yylhsminor.yy524;
152352 break;
152353 case 257: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
152354 {yylhsminor.yy524 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy130, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy104);}
152355 yymsp[-5].minor.yy524 = yylhsminor.yy524;
152356 break;
152357 case 258: /* trigger_cmd ::= scanpt select scanpt */
152358 {yylhsminor.yy524 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy491, yymsp[-2].minor.yy104, yymsp[0].minor.yy104); /*yylhsminor.yy524-overwrites-yymsp[-1].minor.yy491*/}
152359 yymsp[-2].minor.yy524 = yylhsminor.yy524;
152360 break;
152361 case 259: /* expr ::= RAISE LP IGNORE RP */
152362 {
152363 yymsp[-3].minor.yy130 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
152364 if( yymsp[-3].minor.yy130 ){
152365 yymsp[-3].minor.yy130->affinity = OE_Ignore;
152366 }
152367 }
152368 break;
152369 case 260: /* expr ::= RAISE LP raisetype COMMA nm RP */
152370 {
152371 yymsp[-5].minor.yy130 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
152372 if( yymsp[-5].minor.yy130 ) {
152373 yymsp[-5].minor.yy130->affinity = (char)yymsp[-3].minor.yy420;
152374 }
152375 }
152376 break;
152377 case 261: /* raisetype ::= ROLLBACK */
152378 {yymsp[0].minor.yy420 = OE_Rollback;}
152379 break;
152380 case 263: /* raisetype ::= FAIL */
152381 {yymsp[0].minor.yy420 = OE_Fail;}
152382 break;
152383 case 264: /* cmd ::= DROP TRIGGER ifexists fullname */
152384 {
152385 sqlite3DropTrigger(pParse,yymsp[0].minor.yy147,yymsp[-1].minor.yy420);
152386 }
152387 break;
152388 case 265: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
152389 {
152390 sqlite3Attach(pParse, yymsp[-3].minor.yy130, yymsp[-1].minor.yy130, yymsp[0].minor.yy130);
152391 }
152392 break;
152393 case 266: /* cmd ::= DETACH database_kw_opt expr */
152394 {
152395 sqlite3Detach(pParse, yymsp[0].minor.yy130);
152396 }
152397 break;
152398 case 269: /* cmd ::= REINDEX */
152399 {sqlite3Reindex(pParse, 0, 0);}
152400 break;
@@ -152407,11 +152469,11 @@
152407 case 272: /* cmd ::= ANALYZE nm dbnm */
152408 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
152409 break;
152410 case 273: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
152411 {
152412 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy147,&yymsp[0].minor.yy0);
152413 }
152414 break;
152415 case 274: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
152416 {
152417 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
@@ -152419,16 +152481,16 @@
152419 }
152420 break;
152421 case 275: /* add_column_fullname ::= fullname */
152422 {
152423 disableLookaside(pParse);
152424 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy147);
152425 }
152426 break;
152427 case 276: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
152428 {
152429 sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy147, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
152430 }
152431 break;
152432 case 277: /* cmd ::= create_vtab */
152433 {sqlite3VtabFinishParse(pParse,0);}
152434 break;
@@ -152435,11 +152497,11 @@
152435 case 278: /* cmd ::= create_vtab LP vtabarglist RP */
152436 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
152437 break;
152438 case 279: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
152439 {
152440 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy420);
152441 }
152442 break;
152443 case 280: /* vtabarg ::= */
152444 {sqlite3VtabArgInit(pParse);}
152445 break;
@@ -152448,148 +152510,148 @@
152448 case 283: /* lp ::= LP */ yytestcase(yyruleno==283);
152449 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
152450 break;
152451 case 284: /* with ::= WITH wqlist */
152452 case 285: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==285);
152453 { sqlite3WithPush(pParse, yymsp[0].minor.yy523, 1); }
152454 break;
152455 case 286: /* wqlist ::= nm eidlist_opt AS LP select RP */
152456 {
152457 yymsp[-5].minor.yy523 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy442, yymsp[-1].minor.yy491); /*A-overwrites-X*/
152458 }
152459 break;
152460 case 287: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
152461 {
152462 yymsp[-7].minor.yy523 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy523, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy442, yymsp[-1].minor.yy491);
152463 }
152464 break;
152465 case 288: /* windowdefn_list ::= windowdefn */
152466 { yylhsminor.yy395 = yymsp[0].minor.yy395; }
152467 yymsp[0].minor.yy395 = yylhsminor.yy395;
152468 break;
152469 case 289: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */
152470 {
152471 assert( yymsp[0].minor.yy395!=0 );
152472 sqlite3WindowChain(pParse, yymsp[0].minor.yy395, yymsp[-2].minor.yy395);
152473 yymsp[0].minor.yy395->pNextWin = yymsp[-2].minor.yy395;
152474 yylhsminor.yy395 = yymsp[0].minor.yy395;
152475 }
152476 yymsp[-2].minor.yy395 = yylhsminor.yy395;
152477 break;
152478 case 290: /* windowdefn ::= nm AS LP window RP */
152479 {
152480 if( ALWAYS(yymsp[-1].minor.yy395) ){
152481 yymsp[-1].minor.yy395->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
152482 }
152483 yylhsminor.yy395 = yymsp[-1].minor.yy395;
152484 }
152485 yymsp[-4].minor.yy395 = yylhsminor.yy395;
152486 break;
152487 case 291: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */
152488 {
152489 yymsp[-4].minor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, yymsp[-2].minor.yy442, yymsp[-1].minor.yy442, 0);
152490 }
152491 break;
152492 case 292: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
152493 {
152494 yylhsminor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, yymsp[-2].minor.yy442, yymsp[-1].minor.yy442, &yymsp[-5].minor.yy0);
152495 }
152496 yymsp[-5].minor.yy395 = yylhsminor.yy395;
152497 break;
152498 case 293: /* window ::= ORDER BY sortlist frame_opt */
152499 {
152500 yymsp[-3].minor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, 0, yymsp[-1].minor.yy442, 0);
152501 }
152502 break;
152503 case 294: /* window ::= nm ORDER BY sortlist frame_opt */
152504 {
152505 yylhsminor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, 0, yymsp[-1].minor.yy442, &yymsp[-4].minor.yy0);
152506 }
152507 yymsp[-4].minor.yy395 = yylhsminor.yy395;
152508 break;
152509 case 295: /* window ::= frame_opt */
152510 {
152511 yylhsminor.yy395 = yymsp[0].minor.yy395;
152512 }
152513 yymsp[0].minor.yy395 = yylhsminor.yy395;
152514 break;
152515 case 296: /* window ::= nm frame_opt */
152516 {
152517 yylhsminor.yy395 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy395, 0, 0, &yymsp[-1].minor.yy0);
152518 }
152519 yymsp[-1].minor.yy395 = yylhsminor.yy395;
152520 break;
152521 case 297: /* frame_opt ::= */
152522 {
152523 yymsp[1].minor.yy395 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
152524 }
152525 break;
152526 case 298: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
152527 {
152528 yylhsminor.yy395 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy420, yymsp[-1].minor.yy273.eType, yymsp[-1].minor.yy273.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy10);
152529 }
152530 yymsp[-2].minor.yy395 = yylhsminor.yy395;
152531 break;
152532 case 299: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
152533 {
152534 yylhsminor.yy395 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy420, yymsp[-3].minor.yy273.eType, yymsp[-3].minor.yy273.pExpr, yymsp[-1].minor.yy273.eType, yymsp[-1].minor.yy273.pExpr, yymsp[0].minor.yy10);
152535 }
152536 yymsp[-5].minor.yy395 = yylhsminor.yy395;
152537 break;
152538 case 301: /* frame_bound_s ::= frame_bound */
152539 case 303: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==303);
152540 {yylhsminor.yy273 = yymsp[0].minor.yy273;}
152541 yymsp[0].minor.yy273 = yylhsminor.yy273;
152542 break;
152543 case 302: /* frame_bound_s ::= UNBOUNDED PRECEDING */
152544 case 304: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==304);
152545 case 306: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==306);
152546 {yylhsminor.yy273.eType = yymsp[-1].major; yylhsminor.yy273.pExpr = 0;}
152547 yymsp[-1].minor.yy273 = yylhsminor.yy273;
152548 break;
152549 case 305: /* frame_bound ::= expr PRECEDING|FOLLOWING */
152550 {yylhsminor.yy273.eType = yymsp[0].major; yylhsminor.yy273.pExpr = yymsp[-1].minor.yy130;}
152551 yymsp[-1].minor.yy273 = yylhsminor.yy273;
152552 break;
152553 case 307: /* frame_exclude_opt ::= */
152554 {yymsp[1].minor.yy10 = 0;}
152555 break;
152556 case 308: /* frame_exclude_opt ::= EXCLUDE frame_exclude */
152557 {yymsp[-1].minor.yy10 = yymsp[0].minor.yy10;}
152558 break;
152559 case 309: /* frame_exclude ::= NO OTHERS */
152560 case 310: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==310);
152561 {yymsp[-1].minor.yy10 = yymsp[-1].major; /*A-overwrites-X*/}
152562 break;
152563 case 311: /* frame_exclude ::= GROUP|TIES */
152564 {yymsp[0].minor.yy10 = yymsp[0].major; /*A-overwrites-X*/}
152565 break;
152566 case 312: /* window_clause ::= WINDOW windowdefn_list */
152567 { yymsp[-1].minor.yy395 = yymsp[0].minor.yy395; }
152568 break;
152569 case 313: /* over_clause ::= filter_opt OVER LP window RP */
152570 {
152571 yylhsminor.yy395 = yymsp[-1].minor.yy395;
152572 assert( yylhsminor.yy395!=0 );
152573 yylhsminor.yy395->pFilter = yymsp[-4].minor.yy130;
152574 }
152575 yymsp[-4].minor.yy395 = yylhsminor.yy395;
152576 break;
152577 case 314: /* over_clause ::= filter_opt OVER nm */
152578 {
152579 yylhsminor.yy395 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
152580 if( yylhsminor.yy395 ){
152581 yylhsminor.yy395->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
152582 yylhsminor.yy395->pFilter = yymsp[-2].minor.yy130;
152583 }else{
152584 sqlite3ExprDelete(pParse->db, yymsp[-2].minor.yy130);
152585 }
152586 }
152587 yymsp[-2].minor.yy395 = yylhsminor.yy395;
152588 break;
152589 case 316: /* filter_opt ::= FILTER LP WHERE expr RP */
152590 { yymsp[-4].minor.yy130 = yymsp[-1].minor.yy130; }
152591 break;
152592 default:
152593 /* (317) input ::= cmdlist */ yytestcase(yyruleno==317);
152594 /* (318) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==318);
152595 /* (319) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=319);
@@ -211378,12 +211440,12 @@
211378 }else if( p2->pLeaf==0 ){ /* If p2 is at EOF */
211379 iRes = i1;
211380 }else{
211381 int res = fts5BufferCompare(&p1->term, &p2->term);
211382 if( res==0 ){
211383 assert( i2>i1 );
211384 assert( i2!=0 );
211385 pRes->bTermEq = 1;
211386 if( p1->iRowid==p2->iRowid ){
211387 p1->bDel = p2->bDel;
211388 return i2;
211389 }
@@ -217957,11 +218019,11 @@
217957 int nArg, /* Number of args */
217958 sqlite3_value **apUnused /* Function arguments */
217959 ){
217960 assert( nArg==0 );
217961 UNUSED_PARAM2(nArg, apUnused);
217962 sqlite3_result_text(pCtx, "fts5: 2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2ad28f", -1, SQLITE_TRANSIENT);
217963 }
217964
217965 /*
217966 ** Return true if zName is the extension on one of the shadow tables used
217967 ** by this module.
@@ -222721,12 +222783,12 @@
222721 }
222722 #endif /* SQLITE_CORE */
222723 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
222724
222725 /************** End of stmt.c ************************************************/
222726 #if __LINE__!=222726
222727 #undef SQLITE_SOURCE_ID
222728 #define SQLITE_SOURCE_ID "2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2aalt2"
222729 #endif
222730 /* Return the source-id for this library */
222731 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
222732 /************************** End of sqlite3.c ******************************/
222733
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1162,11 +1162,11 @@
1162 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1163 ** [sqlite_version()] and [sqlite_source_id()].
1164 */
1165 #define SQLITE_VERSION "3.28.0"
1166 #define SQLITE_VERSION_NUMBER 3028000
1167 #define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f"
1168
1169 /*
1170 ** CAPI3REF: Run-Time Library Version Numbers
1171 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1172 **
@@ -6017,11 +6017,11 @@
6017 ** <td>&rarr;&nbsp;&nbsp;<td>Best numeric datatype of the value
6018 ** <tr><td><b>sqlite3_value_nochange&nbsp;&nbsp;</b>
6019 ** <td>&rarr;&nbsp;&nbsp;<td>True if the column is unchanged in an UPDATE
6020 ** against a virtual table.
6021 ** <tr><td><b>sqlite3_value_frombind&nbsp;&nbsp;</b>
6022 ** <td>&rarr;&nbsp;&nbsp;<td>True if value originated from a [bound parameter]
6023 ** </table></blockquote>
6024 **
6025 ** <b>Details:</b>
6026 **
6027 ** These routines extract type, size, and content information from
@@ -13643,21 +13643,12 @@
13643 #define TK_VECTOR 169
13644 #define TK_SELECT_COLUMN 170
13645 #define TK_IF_NULL_ROW 171
13646 #define TK_ASTERISK 172
13647 #define TK_SPAN 173
13648 #define TK_SPACE 174
13649 #define TK_ILLEGAL 175
 
 
 
 
 
 
 
 
 
13650
13651 /************** End of parse.h ***********************************************/
13652 /************** Continuing where we left off in sqliteInt.h ******************/
13653 #include <stdio.h>
13654 #include <stdlib.h>
@@ -16495,11 +16486,12 @@
16486 ** Allowed values for sqlite3.mDbFlags
16487 */
16488 #define DBFLAG_SchemaChange 0x0001 /* Uncommitted Hash table changes */
16489 #define DBFLAG_PreferBuiltin 0x0002 /* Preference to built-in funcs */
16490 #define DBFLAG_Vacuum 0x0004 /* Currently in a VACUUM */
16491 #define DBFLAG_VacuumInto 0x0008 /* Currently running VACUUM INTO */
16492 #define DBFLAG_SchemaKnownOk 0x0010 /* Schema is known to be valid */
16493
16494 /*
16495 ** Bits of the sqlite3.dbOptFlags field that are used by the
16496 ** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to
16497 ** selectively disable various optimizations.
@@ -18763,10 +18755,11 @@
18755 #endif
18756
18757
18758 SQLITE_PRIVATE void sqlite3SetString(char **, sqlite3*, const char*);
18759 SQLITE_PRIVATE void sqlite3ErrorMsg(Parse*, const char*, ...);
18760 SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3*,int);
18761 SQLITE_PRIVATE void sqlite3Dequote(char*);
18762 SQLITE_PRIVATE void sqlite3DequoteExpr(Expr*);
18763 SQLITE_PRIVATE void sqlite3TokenInit(Token*,char*);
18764 SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char*, int);
18765 SQLITE_PRIVATE int sqlite3RunParser(Parse*, const char*, char **);
@@ -20222,10 +20215,16 @@
20215 ** Clear any existing type flags from a Mem and replace them with f
20216 */
20217 #define MemSetTypeFlag(p, f) \
20218 ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)
20219
20220 /*
20221 ** True if Mem X is a NULL-nochng type.
20222 */
20223 #define MemNullNochng(X) \
20224 ((X)->flags==(MEM_Null|MEM_Zero) && (X)->n==0 && (X)->u.nZero==0)
20225
20226 /*
20227 ** Return true if a memory cell is not marked as invalid. This macro
20228 ** is for use inside assert() statements only.
20229 */
20230 #ifdef SQLITE_DEBUG
@@ -27368,10 +27367,11 @@
27367 */
27368 static void setStrAccumError(StrAccum *p, u8 eError){
27369 assert( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG );
27370 p->accError = eError;
27371 if( p->mxAlloc ) sqlite3_str_reset(p);
27372 if( eError==SQLITE_TOOBIG ) sqlite3ErrorToParser(p->db, eError);
27373 }
27374
27375 /*
27376 ** Extra argument values from a PrintfArguments object
27377 */
@@ -30225,19 +30225,27 @@
30225 dummy += (unsigned)x;
30226 }
30227 #endif
30228
30229 /*
30230 ** Calls to sqlite3FaultSim() are used to simulate a failure during testing,
30231 ** or to bypass normal error detection during testing in order to let
30232 ** execute proceed futher downstream.
30233 **
30234 ** In deployment, sqlite3FaultSim() *always* return SQLITE_OK (0). The
30235 ** sqlite3FaultSim() function only returns non-zero during testing.
30236 **
30237 ** During testing, if the test harness has set a fault-sim callback using
30238 ** a call to sqlite3_test_control(SQLITE_TESTCTRL_FAULT_INSTALL), then
30239 ** each call to sqlite3FaultSim() is relayed to that application-supplied
30240 ** callback and the integer return value form the application-supplied
30241 ** callback is returned by sqlite3FaultSim().
30242 **
30243 ** The integer argument to sqlite3FaultSim() is a code to identify which
30244 ** sqlite3FaultSim() instance is being invoked. Each call to sqlite3FaultSim()
30245 ** should have a unique code. To prevent legacy testing applications from
30246 ** breaking, the codes should not be changed or reused.
30247 */
30248 #ifndef SQLITE_UNTESTABLE
30249 SQLITE_PRIVATE int sqlite3FaultSim(int iTest){
30250 int (*xCallback)(int) = sqlite3GlobalConfig.xTestCallback;
30251 return xCallback ? xCallback(iTest) : SQLITE_OK;
@@ -30417,10 +30425,23 @@
30425 sqlite3DbFree(db, pParse->zErrMsg);
30426 pParse->zErrMsg = zMsg;
30427 pParse->rc = SQLITE_ERROR;
30428 }
30429 }
30430
30431 /*
30432 ** If database connection db is currently parsing SQL, then transfer
30433 ** error code errCode to that parser if the parser has not already
30434 ** encountered some other kind of error.
30435 */
30436 SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3 *db, int errCode){
30437 Parse *pParse;
30438 if( db==0 || (pParse = db->pParse)==0 ) return errCode;
30439 pParse->rc = errCode;
30440 pParse->nErr++;
30441 return errCode;
30442 }
30443
30444 /*
30445 ** Convert an SQL-style quoted string into a normal string by removing
30446 ** the quote characters. The conversion is done in-place. If the
30447 ** input does not begin with a quote character, then this routine
@@ -69336,11 +69357,11 @@
69357 MemPage *pTrunk = 0; /* Free-list trunk page */
69358 Pgno iTrunk = 0; /* Page number of free-list trunk page */
69359 MemPage *pPage1 = pBt->pPage1; /* Local reference to page 1 */
69360 MemPage *pPage; /* Page being freed. May be NULL. */
69361 int rc; /* Return Code */
69362 u32 nFree; /* Initial number of pages on free-list */
69363
69364 assert( sqlite3_mutex_held(pBt->mutex) );
69365 assert( CORRUPT_DB || iPage>1 );
69366 assert( !pMemPage || pMemPage->pgno==iPage );
69367
@@ -74697,17 +74718,19 @@
74718 */
74719 #ifndef SQLITE_OMIT_INCRBLOB
74720 SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *pMem){
74721 int nByte;
74722 assert( pMem->flags & MEM_Zero );
74723 assert( (pMem->flags&MEM_Blob)!=0 || MemNullNochng(pMem) );
74724 testcase( sqlite3_value_nochange(pMem) );
74725 assert( !sqlite3VdbeMemIsRowSet(pMem) );
74726 assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
74727
74728 /* Set nByte to the number of bytes required to store the expanded blob. */
74729 nByte = pMem->n + pMem->u.nZero;
74730 if( nByte<=0 ){
74731 if( (pMem->flags & MEM_Blob)==0 ) return SQLITE_OK;
74732 nByte = 1;
74733 }
74734 if( sqlite3VdbeMemGrow(pMem, nByte, 1) ){
74735 return SQLITE_NOMEM_BKPT;
74736 }
@@ -75460,11 +75483,11 @@
75483 u32 nAlloc = nByte;
75484 if( flags&MEM_Term ){
75485 nAlloc += (enc==SQLITE_UTF8?1:2);
75486 }
75487 if( nByte>iLimit ){
75488 return sqlite3ErrorToParser(pMem->db, SQLITE_TOOBIG);
75489 }
75490 testcase( nAlloc==0 );
75491 testcase( nAlloc==31 );
75492 testcase( nAlloc==32 );
75493 if( sqlite3VdbeMemClearAndResize(pMem, (int)MAX(nAlloc,32)) ){
@@ -97716,11 +97739,11 @@
97739 p = sqlite3ExprAnd(pParse->db, pLeft, pRight);
97740 }else{
97741 p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr));
97742 if( p ){
97743 memset(p, 0, sizeof(Expr));
97744 p->op = op & 0xff;
97745 p->iAgg = -1;
97746 }
97747 sqlite3ExprAttachSubtrees(pParse->db, p, pLeft, pRight);
97748 }
97749 if( p ) {
@@ -111209,11 +111232,12 @@
111232 char *zErr;
111233 int j;
111234 StrAccum errMsg;
111235 Table *pTab = pIdx->pTable;
111236
111237 sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0,
111238 pParse->db->aLimit[SQLITE_LIMIT_LENGTH]);
111239 if( pIdx->aColExpr ){
111240 sqlite3_str_appendf(&errMsg, "index '%q'", pIdx->zName);
111241 }else{
111242 for(j=0; j<pIdx->nKeyCol; j++){
111243 char *zCol;
@@ -118698,10 +118722,17 @@
118722 if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break;
118723 }
118724 if( pSrcIdx==0 ){
118725 return 0; /* pDestIdx has no corresponding index in pSrc */
118726 }
118727 if( pSrcIdx->tnum==pDestIdx->tnum && pSrc->pSchema==pDest->pSchema
118728 && sqlite3FaultSim(411)==SQLITE_OK ){
118729 /* The sqlite3FaultSim() call allows this corruption test to be
118730 ** bypassed during testing, in order to exercise other corruption tests
118731 ** further downstream. */
118732 return 0; /* Corrupt schema - two indexes on the same btree */
118733 }
118734 }
118735 #ifndef SQLITE_OMIT_CHECK
118736 if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){
118737 return 0; /* Tables have different CHECK constraints. Ticket #2252 */
118738 }
@@ -118775,11 +118806,11 @@
118806 addr2 = sqlite3VdbeAddOp3(v, OP_NotExists, iDest, 0, regRowid);
118807 VdbeCoverage(v);
118808 sqlite3RowidConstraint(pParse, onError, pDest);
118809 sqlite3VdbeJumpHere(v, addr2);
118810 autoIncStep(pParse, regAutoinc, regRowid);
118811 }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_VacuumInto) ){
118812 addr1 = sqlite3VdbeAddOp2(v, OP_NewRowid, iDest, regRowid);
118813 }else{
118814 addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid);
118815 assert( (pDest->tabFlags & TF_Autoincrement)==0 );
118816 }
@@ -120104,14 +120135,17 @@
120135 sqlite3_str_value,
120136 /* Version 3.25.0 and later */
120137 sqlite3_create_window_function,
120138 /* Version 3.26.0 and later */
120139 #ifdef SQLITE_ENABLE_NORMALIZE
120140 sqlite3_normalized_sql,
120141 #else
120142 0,
120143 #endif
120144 /* Version 3.28.0 and later */
120145 sqlite3_stmt_isexplain,
120146 sqlite3_value_frombind
120147 };
120148
120149 /*
120150 ** Attempt to load an SQLite extension library contained in the file
120151 ** zFile. The entry point is zProc. zProc may be 0 in which case a
@@ -133979,11 +134013,11 @@
134013 }
134014
134015 /*
134016 ** This routine implements the OP_Vacuum opcode of the VDBE.
134017 */
134018 SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3RunVacuum(
134019 char **pzErrMsg, /* Write error message here */
134020 sqlite3 *db, /* Database connection */
134021 int iDb, /* Which attached DB to vacuum */
134022 sqlite3_value *pOut /* Write results here, if not NULL. VACUUM INTO */
134023 ){
@@ -134003,15 +134037,15 @@
134037 const char *zDbMain; /* Schema name of database to vacuum */
134038 const char *zOut; /* Name of output file */
134039
134040 if( !db->autoCommit ){
134041 sqlite3SetString(pzErrMsg, db, "cannot VACUUM from within a transaction");
134042 return SQLITE_ERROR; /* IMP: R-12218-18073 */
134043 }
134044 if( db->nVdbeActive>1 ){
134045 sqlite3SetString(pzErrMsg, db,"cannot VACUUM - SQL statements in progress");
134046 return SQLITE_ERROR; /* IMP: R-15610-35227 */
134047 }
134048 saved_openFlags = db->openFlags;
134049 if( pOut ){
134050 if( sqlite3_value_type(pOut)!=SQLITE_TEXT ){
134051 sqlite3SetString(pzErrMsg, db, "non-text filename");
@@ -134070,10 +134104,11 @@
134104 if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){
134105 rc = SQLITE_ERROR;
134106 sqlite3SetString(pzErrMsg, db, "output file already exists");
134107 goto end_of_vacuum;
134108 }
134109 db->mDbFlags |= DBFLAG_VacuumInto;
134110 }
134111 nRes = sqlite3BtreeGetOptimalReserve(pMain);
134112
134113 /* A VACUUM cannot change the pagesize of an encrypted database. */
134114 #ifdef SQLITE_HAS_CODEC
@@ -138063,11 +138098,16 @@
138098 testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO );
138099 pExpr = sqlite3ExprDup(db, pExpr, 0);
138100 pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr);
138101 }
138102 if( pAndExpr ){
138103 /* The extra 0x10000 bit on the opcode is masked off and does not
138104 ** become part of the new Expr.op. However, it does make the
138105 ** op==TK_AND comparison inside of sqlite3PExpr() false, and this
138106 ** prevents sqlite3PExpr() from implementing AND short-circuit
138107 ** optimization, which we do not want here. */
138108 pAndExpr = sqlite3PExpr(pParse, TK_AND|0x10000, 0, pAndExpr);
138109 }
138110 }
138111
138112 /* Run a separate WHERE clause for each term of the OR clause. After
138113 ** eliminating duplicates from other WHERE clauses, the action for each
@@ -148247,10 +148287,14 @@
148287 pIdToken->n, pIdToken->z);
148288 }
148289 sqlite3ExprListSetName(pParse, p, pIdToken, 1);
148290 return p;
148291 }
148292
148293 #if TK_SPAN>255
148294 # error too many tokens in the grammar
148295 #endif
148296 /**************** End of %include directives **********************************/
148297 /* These constants specify the various numeric values for terminal symbols
148298 ** in a format understandable to "makeheaders". This section is blank unless
148299 ** "lemon" is run with the "-m" command-line option.
148300 ***************** Begin makeheaders token definitions *************************/
@@ -148310,32 +148354,32 @@
148354 #ifndef INTERFACE
148355 # define INTERFACE 1
148356 #endif
148357 /************* Begin control #defines *****************************************/
148358 #define YYCODETYPE unsigned short int
148359 #define YYNOCODE 301
148360 #define YYACTIONTYPE unsigned short int
148361 #define YYWILDCARD 95
148362 #define sqlite3ParserTOKENTYPE Token
148363 typedef union {
148364 int yyinit;
148365 sqlite3ParserTOKENTYPE yy0;
148366 With* yy59;
148367 IdList* yy62;
148368 struct TrigEvent yy90;
148369 Upsert* yy136;
148370 struct FrameBound yy201;
148371 u8 yy238;
148372 const char* yy294;
148373 Window* yy295;
148374 struct {int value; int mask;} yy355;
148375 ExprList* yy434;
148376 TriggerStep* yy455;
148377 Select* yy457;
148378 SrcList* yy483;
148379 int yy494;
148380 Expr* yy524;
148381 } YYMINORTYPE;
148382 #ifndef YYSTACKDEPTH
148383 #define YYSTACKDEPTH 100
148384 #endif
148385 #define sqlite3ParserARG_SDECL
@@ -148349,11 +148393,11 @@
148393 #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse;
148394 #define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
148395 #define YYFALLBACK 1
148396 #define YYNSTATE 541
148397 #define YYNRULE 375
148398 #define YYNTOKEN 176
148399 #define YY_MAX_SHIFT 540
148400 #define YY_MIN_SHIFTREDUCE 784
148401 #define YY_MAX_SHIFTREDUCE 1158
148402 #define YY_ERROR_ACTION 1159
148403 #define YY_ACCEPT_ACTION 1160
@@ -148426,190 +148470,190 @@
148470 ** yy_default[] Default action for each state.
148471 **
148472 *********** Begin parsing tables **********************************************/
148473 #define YY_ACTTAB_COUNT (2142)
148474 static const YYACTIONTYPE yy_action[] = {
148475 /* 0 */ 535, 1323, 112, 109, 209, 112, 109, 209, 1160, 1,
148476 /* 10 */ 1, 540, 2, 1164, 535, 1292, 1228, 1207, 289, 384,
148477 /* 20 */ 134, 42, 42, 1427, 382, 1228, 9, 1241, 242, 492,
148478 /* 30 */ 1291, 915, 373, 379, 1026, 70, 70, 427, 1026, 916,
148479 /* 40 */ 529, 529, 529, 119, 120, 110, 1136, 1136, 981, 984,
148480 /* 50 */ 974, 974, 117, 117, 118, 118, 118, 118, 380, 264,
148481 /* 60 */ 264, 264, 264, 1134, 264, 264, 112, 109, 209, 397,
148482 /* 70 */ 454, 517, 532, 491, 532, 1233, 1233, 532, 239, 206,
148483 /* 80 */ 493, 112, 109, 209, 464, 219, 118, 118, 118, 118,
148484 /* 90 */ 111, 393, 440, 444, 16, 16, 116, 116, 116, 116,
148485 /* 100 */ 115, 115, 114, 114, 114, 113, 415, 971, 971, 982,
148486 /* 110 */ 985, 235, 1463, 351, 1134, 419, 384, 116, 116, 116,
148487 /* 120 */ 116, 115, 115, 114, 114, 114, 113, 415, 116, 116,
148488 /* 130 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 961,
148489 /* 140 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117,
148490 /* 150 */ 117, 118, 118, 118, 118, 952, 415, 941, 298, 951,
148491 /* 160 */ 941, 1480, 540, 2, 1164, 1115, 535, 1458, 160, 289,
148492 /* 170 */ 6, 134, 1504, 389, 406, 975, 338, 1024, 1241, 337,
148493 /* 180 */ 1089, 1476, 1089, 118, 118, 118, 118, 42, 42, 329,
148494 /* 190 */ 951, 951, 953, 116, 116, 116, 116, 115, 115, 114,
148495 /* 200 */ 114, 114, 113, 415, 311, 430, 299, 311, 881, 160,
148496 /* 210 */ 264, 264, 401, 384, 324, 1115, 1116, 1117, 288, 526,
148497 /* 220 */ 96, 159, 1441, 532, 141, 116, 116, 116, 116, 115,
148498 /* 230 */ 115, 114, 114, 114, 113, 415, 219, 119, 120, 110,
148499 /* 240 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148500 /* 250 */ 118, 118, 115, 115, 114, 114, 114, 113, 415, 288,
148501 /* 260 */ 526, 403, 533, 121, 870, 870, 419, 250, 267, 336,
148502 /* 270 */ 475, 331, 474, 236, 160, 319, 1084, 322, 1465, 329,
148503 /* 280 */ 350, 12, 535, 384, 502, 1115, 1084, 435, 312, 1084,
148504 /* 290 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148505 /* 300 */ 415, 535, 836, 42, 42, 138, 426, 119, 120, 110,
148506 /* 310 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148507 /* 320 */ 118, 118, 70, 70, 288, 526, 412, 411, 480, 1457,
148508 /* 330 */ 335, 79, 6, 473, 1140, 1115, 1116, 1117, 501, 1142,
148509 /* 340 */ 334, 837, 811, 1484, 512, 1164, 534, 1141, 123, 187,
148510 /* 350 */ 289, 384, 134, 448, 434, 1115, 80, 349, 498, 1241,
148511 /* 360 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148512 /* 370 */ 415, 1143, 1115, 1143, 459, 119, 120, 110, 1136, 1136,
148513 /* 380 */ 981, 984, 974, 974, 117, 117, 118, 118, 118, 118,
148514 /* 390 */ 404, 264, 264, 811, 1463, 506, 368, 1156, 535, 114,
148515 /* 400 */ 114, 114, 113, 415, 532, 1115, 1116, 1117, 231, 518,
148516 /* 410 */ 1500, 472, 469, 468, 175, 497, 422, 219, 1202, 70,
148517 /* 420 */ 70, 467, 1115, 1116, 1117, 176, 201, 200, 116, 116,
148518 /* 430 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 535,
148519 /* 440 */ 1115, 264, 264, 435, 312, 1115, 273, 419, 384, 513,
148520 /* 450 */ 1450, 1115, 326, 1084, 532, 517, 82, 1084, 167, 388,
148521 /* 460 */ 69, 69, 1115, 1084, 519, 509, 1084, 1084, 12, 1157,
148522 /* 470 */ 1084, 420, 119, 120, 110, 1136, 1136, 981, 984, 974,
148523 /* 480 */ 974, 117, 117, 118, 118, 118, 118, 258, 258, 535,
148524 /* 490 */ 1115, 1116, 1117, 1045, 535, 1115, 1116, 1117, 1323, 535,
148525 /* 500 */ 532, 1115, 1116, 1117, 296, 483, 1211, 818, 1046, 448,
148526 /* 510 */ 70, 70, 1115, 1116, 1117, 50, 50, 448, 356, 500,
148527 /* 520 */ 70, 70, 207, 1047, 32, 116, 116, 116, 116, 115,
148528 /* 530 */ 115, 114, 114, 114, 113, 415, 453, 264, 264, 1115,
148529 /* 540 */ 450, 449, 961, 508, 856, 384, 517, 5, 900, 822,
148530 /* 550 */ 532, 484, 181, 1115, 857, 516, 517, 818, 952, 507,
148531 /* 560 */ 3, 1115, 951, 1231, 1231, 482, 398, 1115, 1095, 119,
148532 /* 570 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148533 /* 580 */ 118, 118, 118, 118, 1115, 535, 238, 1115, 1391, 1115,
148534 /* 590 */ 1116, 1117, 159, 951, 951, 953, 231, 1115, 259, 472,
148535 /* 600 */ 469, 468, 310, 1115, 1116, 1117, 13, 13, 297, 467,
148536 /* 610 */ 276, 1115, 1116, 1117, 412, 411, 1095, 1115, 1116, 1117,
148537 /* 620 */ 395, 355, 116, 116, 116, 116, 115, 115, 114, 114,
148538 /* 630 */ 114, 113, 415, 208, 1115, 1116, 1117, 1115, 1116, 1117,
148539 /* 640 */ 264, 264, 384, 337, 902, 393, 815, 1115, 1116, 1117,
148540 /* 650 */ 413, 413, 413, 532, 112, 109, 209, 309, 900, 1143,
148541 /* 660 */ 535, 1143, 535, 393, 901, 1210, 119, 120, 110, 1136,
148542 /* 670 */ 1136, 981, 984, 974, 974, 117, 117, 118, 118, 118,
148543 /* 680 */ 118, 13, 13, 13, 13, 265, 265, 535, 143, 264,
148544 /* 690 */ 264, 288, 526, 535, 1119, 400, 535, 402, 532, 510,
148545 /* 700 */ 1457, 512, 532, 6, 113, 415, 1067, 1530, 70, 70,
148546 /* 710 */ 1530, 535, 271, 535, 70, 70, 535, 13, 13, 116,
148547 /* 720 */ 116, 116, 116, 115, 115, 114, 114, 114, 113, 415,
148548 /* 730 */ 272, 277, 13, 13, 13, 13, 535, 13, 13, 384,
148549 /* 740 */ 535, 304, 425, 1100, 284, 1119, 184, 801, 185, 338,
148550 /* 750 */ 285, 514, 1532, 369, 1239, 1438, 1182, 70, 70, 425,
148551 /* 760 */ 424, 70, 70, 119, 120, 110, 1136, 1136, 981, 984,
148552 /* 770 */ 974, 974, 117, 117, 118, 118, 118, 118, 190, 1065,
148553 /* 780 */ 1067, 1531, 442, 107, 1531, 408, 264, 264, 264, 264,
148554 /* 790 */ 383, 1396, 261, 410, 95, 900, 485, 414, 421, 532,
148555 /* 800 */ 1045, 532, 301, 1133, 303, 488, 433, 1451, 1396, 1398,
148556 /* 810 */ 278, 535, 278, 520, 1435, 1046, 116, 116, 116, 116,
148557 /* 820 */ 115, 115, 114, 114, 114, 113, 415, 425, 264, 264,
148558 /* 830 */ 1047, 190, 54, 54, 535, 291, 384, 264, 264, 362,
148559 /* 840 */ 962, 532, 1004, 376, 1084, 264, 264, 1029, 1029, 456,
148560 /* 850 */ 532, 523, 270, 1065, 1084, 55, 55, 1084, 532, 442,
148561 /* 860 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117,
148562 /* 870 */ 117, 118, 118, 118, 118, 535, 1396, 190, 302, 1383,
148563 /* 880 */ 208, 535, 789, 790, 791, 535, 515, 535, 1323, 371,
148564 /* 890 */ 337, 234, 233, 232, 459, 515, 15, 15, 459, 477,
148565 /* 900 */ 459, 459, 44, 44, 136, 900, 56, 56, 57, 57,
148566 /* 910 */ 1185, 390, 197, 116, 116, 116, 116, 115, 115, 114,
148567 /* 920 */ 114, 114, 113, 415, 535, 876, 535, 442, 535, 274,
148568 /* 930 */ 875, 1323, 357, 384, 353, 140, 1426, 946, 1455, 1323,
148569 /* 940 */ 1390, 6, 1240, 1236, 292, 58, 58, 59, 59, 60,
148570 /* 950 */ 60, 535, 1456, 384, 535, 6, 399, 119, 120, 110,
148571 /* 960 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148572 /* 970 */ 118, 118, 61, 61, 535, 45, 45, 119, 120, 110,
148573 /* 980 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118,
148574 /* 990 */ 118, 118, 1477, 479, 202, 46, 46, 275, 95, 455,
148575 /* 1000 */ 535, 212, 535, 337, 535, 1454, 535, 409, 6, 242,
148576 /* 1010 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148577 /* 1020 */ 415, 48, 48, 49, 49, 62, 62, 63, 63, 535,
148578 /* 1030 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113,
148579 /* 1040 */ 415, 535, 459, 535, 1134, 535, 1151, 535, 142, 535,
148580 /* 1050 */ 64, 64, 535, 1338, 535, 494, 535, 446, 535, 1264,
148581 /* 1060 */ 535, 1337, 14, 14, 65, 65, 125, 125, 66, 66,
148582 /* 1070 */ 51, 51, 535, 67, 67, 68, 68, 52, 52, 147,
148583 /* 1080 */ 147, 148, 148, 1453, 317, 98, 6, 535, 1245, 481,
148584 /* 1090 */ 535, 827, 535, 75, 75, 1134, 102, 481, 100, 535,
148585 /* 1100 */ 532, 535, 368, 1066, 1503, 384, 535, 845, 53, 53,
148586 /* 1110 */ 93, 71, 71, 126, 126, 295, 528, 390, 288, 526,
148587 /* 1120 */ 72, 72, 127, 127, 139, 384, 38, 128, 128, 119,
148588 /* 1130 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148589 /* 1140 */ 118, 118, 118, 118, 535, 495, 535, 447, 535, 119,
148590 /* 1150 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117,
148591 /* 1160 */ 118, 118, 118, 118, 235, 124, 124, 146, 146, 145,
148592 /* 1170 */ 145, 287, 535, 1277, 535, 1157, 535, 391, 161, 263,
148593 /* 1180 */ 206, 381, 116, 116, 116, 116, 115, 115, 114, 114,
148594 /* 1190 */ 114, 113, 415, 132, 132, 131, 131, 129, 129, 535,
148595 /* 1200 */ 30, 535, 116, 116, 116, 116, 115, 115, 114, 114,
148596 /* 1210 */ 114, 113, 415, 535, 216, 1062, 1276, 535, 370, 535,
148597 /* 1220 */ 130, 130, 74, 74, 535, 915, 389, 876, 17, 437,
148598 /* 1230 */ 429, 31, 875, 916, 76, 76, 266, 101, 73, 73,
148599 /* 1240 */ 43, 43, 835, 834, 308, 47, 47, 95, 825, 943,
148600 /* 1250 */ 441, 938, 241, 241, 305, 443, 313, 384, 241, 95,
148601 /* 1260 */ 842, 843, 193, 465, 1209, 327, 237, 436, 95, 1011,
148602 /* 1270 */ 1007, 909, 873, 237, 241, 107, 1023, 384, 1023, 955,
148603 /* 1280 */ 1415, 119, 120, 110, 1136, 1136, 981, 984, 974, 974,
148604 /* 1290 */ 117, 117, 118, 118, 118, 118, 1022, 809, 1022, 825,
148605 /* 1300 */ 137, 119, 108, 110, 1136, 1136, 981, 984, 974, 974,
148606 /* 1310 */ 117, 117, 118, 118, 118, 118, 874, 1414, 451, 107,
148607 /* 1320 */ 1011, 314, 1273, 318, 218, 321, 323, 325, 1224, 1208,
148608 /* 1330 */ 955, 330, 339, 340, 116, 116, 116, 116, 115, 115,
148609 /* 1340 */ 114, 114, 114, 113, 415, 1285, 1322, 1260, 1493, 1470,
148610 /* 1350 */ 1271, 283, 521, 1328, 116, 116, 116, 116, 115, 115,
148611 /* 1360 */ 114, 114, 114, 113, 415, 1191, 1184, 1173, 1172, 1174,
148612 /* 1370 */ 522, 1487, 211, 460, 384, 256, 199, 367, 1257, 342,
148613 /* 1380 */ 195, 470, 307, 344, 11, 333, 525, 445, 1307, 1315,
148614 /* 1390 */ 375, 203, 1207, 1151, 384, 346, 1387, 188, 360, 120,
148615 /* 1400 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118,
148616 /* 1410 */ 118, 118, 118, 1386, 428, 1490, 245, 300, 348, 1148,
148617 /* 1420 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118,
148618 /* 1430 */ 118, 118, 118, 189, 198, 1434, 1432, 78, 81, 163,
148619 /* 1440 */ 82, 392, 439, 1392, 173, 105, 527, 35, 4, 157,
148620 /* 1450 */ 1312, 116, 116, 116, 116, 115, 115, 114, 114, 114,
148621 /* 1460 */ 113, 415, 530, 165, 93, 1304, 431, 432, 168, 463,
148622 /* 1470 */ 221, 116, 116, 116, 116, 115, 115, 114, 114, 114,
148623 /* 1480 */ 113, 415, 169, 452, 170, 416, 171, 374, 372, 438,
148624 /* 1490 */ 36, 1318, 177, 225, 1381, 87, 458, 524, 1403, 316,
148625 /* 1500 */ 257, 105, 527, 227, 4, 182, 461, 160, 320, 228,
148626 /* 1510 */ 377, 1175, 476, 229, 1227, 1226, 405, 1225, 530, 1218,
148627 /* 1520 */ 961, 378, 1199, 1198, 827, 332, 103, 103, 1197, 407,
148628 /* 1530 */ 8, 1217, 1502, 104, 487, 416, 537, 536, 281, 282,
148629 /* 1540 */ 951, 416, 490, 1268, 496, 92, 341, 243, 1269, 343,
148630 /* 1550 */ 244, 1267, 122, 524, 345, 1461, 515, 288, 526, 10,
148631 /* 1560 */ 354, 1266, 1460, 352, 504, 1250, 99, 1367, 94, 503,
148632 /* 1570 */ 499, 951, 951, 953, 954, 27, 961, 347, 1249, 194,
148633 /* 1580 */ 251, 358, 103, 103, 359, 1181, 34, 538, 1110, 104,
148634 /* 1590 */ 255, 416, 537, 536, 286, 252, 951, 254, 539, 149,
148635 /* 1600 */ 1170, 1419, 1165, 1420, 1418, 150, 1417, 135, 279, 785,
148636 /* 1610 */ 151, 417, 1195, 196, 290, 210, 386, 1194, 269, 387,
148637 /* 1620 */ 162, 1021, 133, 77, 1192, 1019, 935, 951, 951, 953,
148638 /* 1630 */ 954, 27, 1479, 1104, 418, 164, 153, 268, 217, 166,
148639 /* 1640 */ 859, 306, 366, 366, 365, 253, 363, 220, 1035, 798,
148640 /* 1650 */ 172, 939, 105, 527, 155, 4, 394, 174, 396, 156,
148641 /* 1660 */ 83, 1038, 213, 84, 294, 85, 86, 223, 222, 530,
148642 /* 1670 */ 1034, 144, 293, 18, 224, 315, 241, 1027, 1145, 178,
148643 /* 1680 */ 457, 226, 179, 37, 800, 334, 462, 230, 328, 466,
148644 /* 1690 */ 180, 471, 416, 88, 19, 20, 89, 280, 838, 158,
148645 /* 1700 */ 191, 90, 215, 478, 524, 1097, 204, 192, 987, 91,
148646 /* 1710 */ 152, 1070, 39, 154, 1071, 504, 486, 40, 489, 205,
148647 /* 1720 */ 505, 260, 105, 527, 214, 4, 908, 961, 262, 183,
148648 /* 1730 */ 240, 21, 903, 103, 103, 107, 22, 1086, 23, 530,
148649 /* 1740 */ 104, 1088, 416, 537, 536, 24, 1093, 951, 25, 1074,
148650 /* 1750 */ 1090, 1094, 7, 33, 511, 186, 26, 1002, 385, 95,
148651 /* 1760 */ 988, 986, 416, 288, 526, 990, 1044, 246, 1043, 247,
148652 /* 1770 */ 991, 28, 41, 106, 524, 956, 810, 29, 951, 951,
148653 /* 1780 */ 953, 954, 27, 531, 361, 504, 423, 248, 869, 249,
148654 /* 1790 */ 503, 1495, 364, 1105, 1161, 1494, 1161, 961, 1161, 1161,
148655 /* 1800 */ 1161, 1161, 1161, 103, 103, 1161, 1161, 1161, 1161, 1161,
148656 /* 1810 */ 104, 1161, 416, 537, 536, 1104, 418, 951, 1161, 268,
148657 /* 1820 */ 1161, 1161, 1161, 1161, 366, 366, 365, 253, 363, 1161,
148658 /* 1830 */ 1161, 798, 1161, 1161, 1161, 1161, 105, 527, 1161, 4,
148659 /* 1840 */ 1161, 1161, 1161, 1161, 213, 1161, 294, 1161, 951, 951,
@@ -148643,330 +148687,331 @@
148687 /* 2120 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
148688 /* 2130 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
148689 /* 2140 */ 1161, 423,
148690 };
148691 static const YYCODETYPE yy_lookahead[] = {
148692 /* 0 */ 184, 184, 259, 260, 261, 259, 260, 261, 176, 177,
148693 /* 10 */ 178, 179, 180, 181, 184, 208, 212, 213, 186, 19,
148694 /* 20 */ 188, 205, 206, 280, 205, 221, 22, 195, 24, 195,
148695 /* 30 */ 208, 31, 195, 205, 29, 205, 206, 255, 33, 39,
148696 /* 40 */ 200, 201, 202, 43, 44, 45, 46, 47, 48, 49,
148697 /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 205, 227,
148698 /* 60 */ 228, 227, 228, 59, 227, 228, 259, 260, 261, 252,
148699 /* 70 */ 65, 241, 240, 184, 240, 223, 224, 240, 244, 245,
148700 /* 80 */ 250, 259, 260, 261, 19, 253, 54, 55, 56, 57,
148701 /* 90 */ 58, 184, 255, 184, 205, 206, 96, 97, 98, 99,
148702 /* 100 */ 100, 101, 102, 103, 104, 105, 106, 46, 47, 48,
148703 /* 110 */ 49, 46, 296, 297, 110, 283, 19, 96, 97, 98,
148704 /* 120 */ 99, 100, 101, 102, 103, 104, 105, 106, 96, 97,
148705 /* 130 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 94,
148706 /* 140 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
148707 /* 150 */ 53, 54, 55, 56, 57, 110, 106, 73, 251, 114,
148708 /* 160 */ 73, 178, 179, 180, 181, 59, 184, 292, 81, 186,
148709 /* 170 */ 295, 188, 218, 108, 19, 114, 184, 11, 195, 184,
148710 /* 180 */ 83, 184, 85, 54, 55, 56, 57, 205, 206, 124,
148711 /* 190 */ 145, 146, 147, 96, 97, 98, 99, 100, 101, 102,
148712 /* 200 */ 103, 104, 105, 106, 120, 121, 122, 120, 102, 81,
148713 /* 210 */ 227, 228, 220, 19, 16, 109, 110, 111, 131, 132,
148714 /* 220 */ 26, 184, 184, 240, 229, 96, 97, 98, 99, 100,
148715 /* 230 */ 101, 102, 103, 104, 105, 106, 253, 43, 44, 45,
148716 /* 240 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148717 /* 250 */ 56, 57, 100, 101, 102, 103, 104, 105, 106, 131,
148718 /* 260 */ 132, 106, 127, 69, 129, 130, 283, 112, 113, 114,
148719 /* 270 */ 115, 116, 117, 118, 81, 77, 76, 79, 296, 124,
148720 /* 280 */ 298, 203, 184, 19, 84, 59, 86, 121, 122, 89,
148721 /* 290 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148722 /* 300 */ 106, 184, 35, 205, 206, 22, 113, 43, 44, 45,
148723 /* 310 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148724 /* 320 */ 56, 57, 205, 206, 131, 132, 100, 101, 291, 292,
148725 /* 330 */ 114, 67, 295, 66, 108, 109, 110, 111, 138, 113,
148726 /* 340 */ 124, 74, 59, 179, 184, 181, 184, 121, 22, 271,
148727 /* 350 */ 186, 19, 188, 184, 276, 59, 24, 184, 241, 195,
148728 /* 360 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148729 /* 370 */ 106, 145, 59, 147, 184, 43, 44, 45, 46, 47,
148730 /* 380 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
148731 /* 390 */ 123, 227, 228, 110, 296, 297, 22, 23, 184, 102,
148732 /* 400 */ 103, 104, 105, 106, 240, 109, 110, 111, 112, 195,
148733 /* 410 */ 204, 115, 116, 117, 22, 184, 226, 253, 212, 205,
148734 /* 420 */ 206, 125, 109, 110, 111, 22, 100, 101, 96, 97,
148735 /* 430 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 184,
148736 /* 440 */ 59, 227, 228, 121, 122, 59, 277, 283, 19, 289,
148737 /* 450 */ 290, 59, 23, 76, 240, 241, 143, 76, 72, 189,
148738 /* 460 */ 205, 206, 59, 86, 250, 84, 89, 86, 203, 95,
148739 /* 470 */ 89, 281, 43, 44, 45, 46, 47, 48, 49, 50,
148740 /* 480 */ 51, 52, 53, 54, 55, 56, 57, 227, 228, 184,
148741 /* 490 */ 109, 110, 111, 12, 184, 109, 110, 111, 184, 184,
148742 /* 500 */ 240, 109, 110, 111, 184, 195, 214, 59, 27, 184,
148743 /* 510 */ 205, 206, 109, 110, 111, 205, 206, 184, 263, 138,
148744 /* 520 */ 205, 206, 184, 42, 22, 96, 97, 98, 99, 100,
148745 /* 530 */ 101, 102, 103, 104, 105, 106, 266, 227, 228, 59,
148746 /* 540 */ 270, 276, 94, 66, 63, 19, 241, 22, 26, 23,
148747 /* 550 */ 240, 241, 72, 59, 73, 250, 241, 109, 110, 82,
148748 /* 560 */ 22, 59, 114, 223, 224, 250, 252, 59, 91, 43,
148749 /* 570 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148750 /* 580 */ 54, 55, 56, 57, 59, 184, 26, 59, 268, 109,
148751 /* 590 */ 110, 111, 184, 145, 146, 147, 112, 59, 203, 115,
148752 /* 600 */ 116, 117, 277, 109, 110, 111, 205, 206, 195, 125,
148753 /* 610 */ 277, 109, 110, 111, 100, 101, 139, 109, 110, 111,
148754 /* 620 */ 219, 184, 96, 97, 98, 99, 100, 101, 102, 103,
148755 /* 630 */ 104, 105, 106, 111, 109, 110, 111, 109, 110, 111,
148756 /* 640 */ 227, 228, 19, 184, 136, 184, 23, 109, 110, 111,
148757 /* 650 */ 200, 201, 202, 240, 259, 260, 261, 195, 136, 145,
148758 /* 660 */ 184, 147, 184, 184, 136, 214, 43, 44, 45, 46,
148759 /* 670 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
148760 /* 680 */ 57, 205, 206, 205, 206, 227, 228, 184, 229, 227,
148761 /* 690 */ 228, 131, 132, 184, 59, 219, 184, 219, 240, 291,
148762 /* 700 */ 292, 184, 240, 295, 105, 106, 22, 23, 205, 206,
148763 /* 710 */ 26, 184, 251, 184, 205, 206, 184, 205, 206, 96,
148764 /* 720 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
148765 /* 730 */ 251, 219, 205, 206, 205, 206, 184, 205, 206, 19,
148766 /* 740 */ 184, 16, 184, 23, 241, 110, 219, 21, 219, 184,
148767 /* 750 */ 241, 219, 286, 287, 195, 184, 195, 205, 206, 201,
148768 /* 760 */ 202, 205, 206, 43, 44, 45, 46, 47, 48, 49,
148769 /* 770 */ 50, 51, 52, 53, 54, 55, 56, 57, 184, 95,
148770 /* 780 */ 22, 23, 184, 26, 26, 220, 227, 228, 227, 228,
148771 /* 790 */ 196, 184, 23, 241, 26, 26, 195, 241, 184, 240,
148772 /* 800 */ 12, 240, 77, 26, 79, 195, 80, 290, 201, 202,
148773 /* 810 */ 216, 184, 218, 195, 184, 27, 96, 97, 98, 99,
148774 /* 820 */ 100, 101, 102, 103, 104, 105, 106, 269, 227, 228,
148775 /* 830 */ 42, 184, 205, 206, 184, 184, 19, 227, 228, 192,
148776 /* 840 */ 23, 240, 116, 196, 76, 227, 228, 120, 121, 122,
148777 /* 850 */ 240, 63, 254, 95, 86, 205, 206, 89, 240, 184,
148778 /* 860 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
148779 /* 870 */ 53, 54, 55, 56, 57, 184, 269, 184, 153, 153,
148780 /* 880 */ 111, 184, 7, 8, 9, 184, 138, 184, 184, 196,
148781 /* 890 */ 184, 120, 121, 122, 184, 138, 205, 206, 184, 102,
148782 /* 900 */ 184, 184, 205, 206, 156, 136, 205, 206, 205, 206,
148783 /* 910 */ 198, 199, 135, 96, 97, 98, 99, 100, 101, 102,
148784 /* 920 */ 103, 104, 105, 106, 184, 128, 184, 184, 184, 254,
148785 /* 930 */ 133, 184, 237, 19, 239, 229, 226, 23, 292, 184,
148786 /* 940 */ 226, 295, 226, 226, 184, 205, 206, 205, 206, 205,
148787 /* 950 */ 206, 184, 292, 19, 184, 295, 252, 43, 44, 45,
148788 /* 960 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148789 /* 970 */ 56, 57, 205, 206, 184, 205, 206, 43, 44, 45,
148790 /* 980 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
148791 /* 990 */ 56, 57, 157, 158, 26, 205, 206, 254, 26, 252,
148792 /* 1000 */ 184, 15, 184, 184, 184, 292, 184, 252, 295, 24,
148793 /* 1010 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148794 /* 1020 */ 106, 205, 206, 205, 206, 205, 206, 205, 206, 184,
148795 /* 1030 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
148796 /* 1040 */ 106, 184, 184, 184, 59, 184, 60, 184, 229, 184,
148797 /* 1050 */ 205, 206, 184, 258, 184, 19, 184, 19, 184, 246,
148798 /* 1060 */ 184, 258, 205, 206, 205, 206, 205, 206, 205, 206,
148799 /* 1070 */ 205, 206, 184, 205, 206, 205, 206, 205, 206, 205,
148800 /* 1080 */ 206, 205, 206, 292, 226, 151, 295, 184, 228, 294,
148801 /* 1090 */ 184, 119, 184, 205, 206, 110, 150, 294, 152, 184,
148802 /* 1100 */ 240, 184, 22, 23, 23, 19, 184, 26, 205, 206,
148803 /* 1110 */ 142, 205, 206, 205, 206, 184, 198, 199, 131, 132,
148804 /* 1120 */ 205, 206, 205, 206, 22, 19, 24, 205, 206, 43,
148805 /* 1130 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148806 /* 1140 */ 54, 55, 56, 57, 184, 109, 184, 109, 184, 43,
148807 /* 1150 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
148808 /* 1160 */ 54, 55, 56, 57, 46, 205, 206, 205, 206, 205,
148809 /* 1170 */ 206, 232, 184, 184, 184, 95, 184, 284, 285, 244,
148810 /* 1180 */ 245, 242, 96, 97, 98, 99, 100, 101, 102, 103,
148811 /* 1190 */ 104, 105, 106, 205, 206, 205, 206, 205, 206, 184,
148812 /* 1200 */ 22, 184, 96, 97, 98, 99, 100, 101, 102, 103,
148813 /* 1210 */ 104, 105, 106, 184, 24, 23, 184, 184, 26, 184,
148814 /* 1220 */ 205, 206, 205, 206, 184, 31, 108, 128, 22, 122,
148815 /* 1230 */ 184, 53, 133, 39, 205, 206, 22, 151, 205, 206,
148816 /* 1240 */ 205, 206, 113, 114, 23, 205, 206, 26, 59, 23,
148817 /* 1250 */ 23, 144, 26, 26, 184, 23, 23, 19, 26, 26,
148818 /* 1260 */ 7, 8, 24, 23, 214, 23, 26, 61, 26, 59,
148819 /* 1270 */ 23, 23, 23, 26, 26, 26, 145, 19, 147, 59,
148820 /* 1280 */ 184, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148821 /* 1290 */ 52, 53, 54, 55, 56, 57, 145, 23, 147, 110,
148822 /* 1300 */ 26, 43, 44, 45, 46, 47, 48, 49, 50, 51,
148823 /* 1310 */ 52, 53, 54, 55, 56, 57, 23, 184, 184, 26,
148824 /* 1320 */ 110, 184, 184, 184, 134, 184, 184, 184, 184, 184,
148825 /* 1330 */ 110, 184, 184, 184, 96, 97, 98, 99, 100, 101,
148826 /* 1340 */ 102, 103, 104, 105, 106, 184, 184, 184, 134, 300,
148827 /* 1350 */ 184, 243, 184, 184, 96, 97, 98, 99, 100, 101,
148828 /* 1360 */ 102, 103, 104, 105, 106, 184, 184, 184, 184, 184,
148829 /* 1370 */ 224, 184, 282, 273, 19, 272, 203, 182, 243, 243,
148830 /* 1380 */ 230, 209, 278, 243, 231, 208, 265, 278, 234, 234,
148831 /* 1390 */ 234, 217, 213, 60, 19, 243, 208, 237, 233, 44,
148832 /* 1400 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
148833 /* 1410 */ 55, 56, 57, 208, 247, 187, 134, 247, 247, 38,
148834 /* 1420 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
148835 /* 1430 */ 55, 56, 57, 237, 231, 191, 191, 279, 279, 282,
148836 /* 1440 */ 143, 191, 108, 268, 22, 19, 20, 256, 22, 43,
148837 /* 1450 */ 257, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148838 /* 1460 */ 105, 106, 36, 222, 142, 234, 18, 191, 225, 18,
148839 /* 1470 */ 190, 96, 97, 98, 99, 100, 101, 102, 103, 104,
148840 /* 1480 */ 105, 106, 225, 191, 225, 59, 225, 257, 234, 234,
148841 /* 1490 */ 256, 222, 222, 190, 234, 150, 62, 71, 275, 274,
148842 /* 1500 */ 191, 19, 20, 190, 22, 22, 210, 81, 191, 190,
148843 /* 1510 */ 210, 191, 108, 190, 207, 207, 64, 207, 36, 215,
148844 /* 1520 */ 94, 210, 207, 209, 119, 207, 100, 101, 207, 106,
148845 /* 1530 */ 48, 215, 207, 107, 210, 109, 110, 111, 267, 267,
148846 /* 1540 */ 114, 59, 210, 249, 137, 108, 248, 191, 249, 248,
148847 /* 1550 */ 88, 249, 141, 71, 248, 299, 138, 131, 132, 22,
148848 /* 1560 */ 191, 249, 299, 237, 82, 238, 150, 262, 140, 87,
148849 /* 1570 */ 139, 145, 146, 147, 148, 149, 94, 248, 238, 236,
148850 /* 1580 */ 25, 235, 100, 101, 234, 194, 26, 193, 13, 107,
148851 /* 1590 */ 6, 109, 110, 111, 264, 185, 114, 185, 183, 197,
148852 /* 1600 */ 183, 203, 183, 203, 203, 197, 203, 211, 211, 4,
148853 /* 1610 */ 197, 3, 203, 22, 155, 15, 288, 203, 93, 288,
148854 /* 1620 */ 285, 23, 16, 203, 203, 23, 132, 145, 146, 147,
148855 /* 1630 */ 148, 149, 0, 1, 2, 143, 123, 5, 24, 135,
148856 /* 1640 */ 20, 16, 10, 11, 12, 13, 14, 137, 1, 17,
148857 /* 1650 */ 135, 144, 19, 20, 123, 22, 61, 143, 37, 123,
148858 /* 1660 */ 53, 109, 30, 53, 32, 53, 53, 134, 34, 36,
148859 /* 1670 */ 1, 5, 40, 22, 108, 153, 26, 68, 75, 68,
148860 /* 1680 */ 41, 134, 108, 24, 20, 124, 19, 118, 23, 67,
148861 /* 1690 */ 22, 67, 59, 22, 22, 22, 22, 67, 28, 37,
148862 /* 1700 */ 23, 142, 70, 22, 71, 23, 157, 23, 23, 26,
148863 /* 1710 */ 78, 23, 22, 81, 23, 82, 24, 22, 24, 134,
148864 /* 1720 */ 87, 23, 19, 20, 92, 22, 109, 94, 23, 22,
148865 /* 1730 */ 34, 34, 136, 100, 101, 26, 34, 85, 34, 36,
148866 /* 1740 */ 107, 83, 109, 110, 111, 34, 90, 114, 34, 23,
148867 /* 1750 */ 75, 75, 44, 22, 24, 26, 34, 23, 126, 26,
148868 /* 1760 */ 23, 23, 59, 131, 132, 23, 23, 26, 23, 22,
148869 /* 1770 */ 11, 22, 22, 22, 71, 23, 23, 22, 145, 146,
148870 /* 1780 */ 147, 148, 149, 26, 23, 82, 154, 134, 128, 134,
148871 /* 1790 */ 87, 134, 15, 1, 301, 134, 301, 94, 301, 301,
148872 /* 1800 */ 301, 301, 301, 100, 101, 301, 301, 301, 301, 301,
148873 /* 1810 */ 107, 301, 109, 110, 111, 1, 2, 114, 301, 5,
148874 /* 1820 */ 301, 301, 301, 301, 10, 11, 12, 13, 14, 301,
148875 /* 1830 */ 301, 17, 301, 301, 301, 301, 19, 20, 301, 22,
148876 /* 1840 */ 301, 301, 301, 301, 30, 301, 32, 301, 145, 146,
148877 /* 1850 */ 147, 148, 149, 36, 40, 301, 301, 301, 301, 301,
148878 /* 1860 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148879 /* 1870 */ 301, 301, 301, 301, 301, 301, 59, 301, 301, 301,
148880 /* 1880 */ 301, 301, 301, 301, 70, 301, 301, 301, 71, 301,
148881 /* 1890 */ 301, 301, 78, 301, 301, 81, 19, 20, 301, 22,
148882 /* 1900 */ 301, 301, 301, 301, 301, 301, 92, 301, 301, 301,
148883 /* 1910 */ 301, 94, 301, 36, 301, 301, 301, 100, 101, 102,
148884 /* 1920 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301,
148885 /* 1930 */ 301, 114, 301, 301, 301, 301, 59, 301, 301, 301,
148886 /* 1940 */ 126, 301, 301, 301, 301, 131, 132, 301, 71, 301,
148887 /* 1950 */ 301, 301, 301, 301, 301, 301, 19, 20, 301, 22,
148888 /* 1960 */ 301, 301, 145, 146, 147, 148, 149, 301, 154, 301,
148889 /* 1970 */ 301, 94, 301, 36, 301, 301, 301, 100, 101, 301,
148890 /* 1980 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301,
148891 /* 1990 */ 301, 114, 5, 301, 301, 301, 59, 10, 11, 12,
148892 /* 2000 */ 13, 14, 301, 301, 17, 301, 301, 301, 71, 301,
148893 /* 2010 */ 301, 301, 301, 301, 301, 301, 301, 30, 301, 32,
148894 /* 2020 */ 301, 301, 145, 146, 147, 148, 149, 40, 301, 301,
148895 /* 2030 */ 301, 94, 301, 301, 301, 301, 301, 100, 101, 301,
148896 /* 2040 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301,
148897 /* 2050 */ 301, 114, 301, 301, 301, 301, 301, 70, 301, 301,
148898 /* 2060 */ 301, 301, 301, 301, 301, 78, 301, 301, 81, 301,
148899 /* 2070 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 92,
148900 /* 2080 */ 301, 301, 145, 146, 147, 148, 149, 301, 301, 301,
148901 /* 2090 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148902 /* 2100 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148903 /* 2110 */ 301, 301, 301, 126, 301, 301, 301, 301, 131, 132,
148904 /* 2120 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148905 /* 2130 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148906 /* 2140 */ 301, 154, 301, 301, 301, 301, 301, 301, 301, 301,
148907 /* 2150 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
148908 /* 2160 */ 301, 301, 301, 301, 301, 301, 301, 301, 301,
148909 };
148910 #define YY_SHIFT_COUNT (540)
148911 #define YY_SHIFT_MIN (0)
148912 #define YY_SHIFT_MAX (1987)
148913 static const unsigned short int yy_shift_ofst[] = {
148914 /* 0 */ 1814, 1632, 1987, 1426, 1426, 128, 1482, 1633, 1703, 1877,
148915 /* 10 */ 1877, 1877, 87, 0, 0, 264, 1106, 1877, 1877, 1877,
148916 /* 20 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148917 /* 30 */ 226, 226, 381, 381, 296, 193, 128, 128, 128, 128,
148918 /* 40 */ 128, 128, 97, 194, 332, 429, 526, 623, 720, 817,
148919 /* 50 */ 914, 934, 1086, 1238, 1106, 1106, 1106, 1106, 1106, 1106,
148920 /* 60 */ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
148921 /* 70 */ 1106, 1106, 1258, 1106, 1355, 1375, 1375, 1817, 1877, 1877,
148922 /* 80 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148923 /* 90 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148924 /* 100 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148925 /* 110 */ 1937, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
148926 /* 120 */ 1877, 1877, 1877, 1877, 32, 129, 129, 129, 129, 129,
148927 /* 130 */ 21, 152, 297, 494, 726, 65, 494, 514, 514, 494,
148928 /* 140 */ 560, 560, 560, 560, 322, 599, 50, 2142, 2142, 155,
148929 /* 150 */ 155, 155, 313, 392, 386, 392, 392, 481, 481, 200,
148930 /* 160 */ 480, 684, 758, 494, 494, 494, 494, 494, 494, 494,
148931 /* 170 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
148932 /* 180 */ 494, 494, 494, 494, 768, 768, 494, 166, 377, 377,
148933 /* 190 */ 635, 835, 835, 635, 748, 987, 2142, 2142, 2142, 448,
148934 /* 200 */ 45, 45, 403, 484, 502, 106, 525, 508, 528, 538,
148935 /* 210 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 84,
148936 /* 220 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
148937 /* 230 */ 494, 494, 267, 267, 267, 494, 494, 494, 494, 769,
148938 /* 240 */ 494, 494, 494, 4, 477, 494, 494, 788, 494, 494,
148939 /* 250 */ 494, 494, 494, 494, 494, 494, 727, 5, 135, 985,
148940 /* 260 */ 985, 985, 985, 522, 135, 135, 797, 326, 875, 986,
148941 /* 270 */ 968, 1036, 1036, 1038, 968, 968, 1038, 972, 1081, 1118,
148942 /* 280 */ 1194, 1194, 1194, 1036, 757, 757, 946, 777, 1099, 1102,
148943 /* 290 */ 1333, 1282, 1282, 1381, 1381, 1282, 1297, 1334, 1422, 1406,
148944 /* 300 */ 1322, 1448, 1448, 1448, 1448, 1282, 1451, 1322, 1322, 1334,
148945 /* 310 */ 1422, 1406, 1406, 1322, 1282, 1451, 1345, 1434, 1282, 1451,
148946 /* 320 */ 1483, 1282, 1451, 1282, 1451, 1483, 1404, 1404, 1404, 1452,
148947 /* 330 */ 1483, 1404, 1405, 1404, 1452, 1404, 1404, 1483, 1423, 1423,
148948 /* 340 */ 1483, 1407, 1437, 1407, 1437, 1407, 1437, 1407, 1437, 1282,
148949 /* 350 */ 1462, 1462, 1411, 1418, 1537, 1282, 1416, 1411, 1428, 1431,
148950 /* 360 */ 1322, 1555, 1560, 1575, 1575, 1584, 1584, 1584, 2142, 2142,
148951 /* 370 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142,
148952 /* 380 */ 2142, 2142, 2142, 2142, 61, 725, 374, 1080, 198, 771,
148953 /* 390 */ 283, 1192, 1178, 1190, 1107, 1221, 1206, 1226, 1227, 1232,
148954 /* 400 */ 1233, 1240, 1242, 1189, 1129, 1253, 216, 1210, 1247, 1248,
148955 /* 410 */ 1249, 1131, 1151, 1274, 1293, 1220, 1214, 1605, 1608, 1591,
148956 /* 420 */ 1459, 1600, 1525, 1606, 1598, 1602, 1494, 1492, 1513, 1614,
148957 /* 430 */ 1504, 1620, 1510, 1625, 1647, 1515, 1507, 1531, 1595, 1621,
148958 /* 440 */ 1514, 1607, 1610, 1612, 1613, 1536, 1552, 1634, 1533, 1669,
148959 /* 450 */ 1666, 1651, 1566, 1522, 1609, 1650, 1611, 1603, 1639, 1547,
148960 /* 460 */ 1574, 1659, 1664, 1667, 1561, 1569, 1668, 1622, 1671, 1672,
148961 /* 470 */ 1665, 1673, 1624, 1670, 1674, 1630, 1662, 1677, 1559, 1681,
148962 /* 480 */ 1682, 1549, 1684, 1685, 1683, 1688, 1690, 1692, 1691, 1695,
148963 /* 490 */ 1694, 1585, 1698, 1705, 1617, 1696, 1707, 1596, 1709, 1697,
148964 /* 500 */ 1702, 1704, 1711, 1652, 1675, 1658, 1708, 1676, 1656, 1714,
148965 /* 510 */ 1726, 1731, 1730, 1729, 1733, 1722, 1734, 1709, 1737, 1738,
148966 /* 520 */ 1742, 1743, 1741, 1745, 1747, 1759, 1749, 1750, 1752, 1753,
148967 /* 530 */ 1751, 1755, 1757, 1660, 1653, 1655, 1657, 1661, 1761, 1777,
148968 /* 540 */ 1792,
148969 };
148970 #define YY_REDUCE_COUNT (383)
148971 #define YY_REDUCE_MIN (-257)
148972 #define YY_REDUCE_MAX (1421)
148973 static const short yy_reduce_ofst[] = {
148974 /* 0 */ -168, -17, 164, 214, 310, -166, -184, -18, 98, -170,
148975 /* 10 */ 305, 315, -163, -193, -178, -257, 395, 401, 476, 478,
148976 /* 20 */ 512, 117, 527, 529, 503, 509, 532, 255, 552, 556,
148977 /* 30 */ 558, 607, 37, 408, 594, 413, 462, 559, 561, 601,
148978 /* 40 */ 610, 618, -254, -254, -254, -254, -254, -254, -254, -254,
148979 /* 50 */ -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
148980 /* 60 */ -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
148981 /* 70 */ -254, -254, -254, -254, -254, -254, -254, -111, 627, 650,
148982 /* 80 */ 691, 697, 701, 703, 740, 742, 744, 767, 770, 790,
148983 /* 90 */ 816, 818, 820, 822, 845, 857, 859, 861, 863, 865,
148984 /* 100 */ 868, 870, 872, 874, 876, 888, 903, 906, 908, 915,
148985 /* 110 */ 917, 922, 960, 962, 964, 988, 990, 992, 1015, 1017,
148986 /* 120 */ 1029, 1033, 1035, 1040, -254, -254, -254, -254, -254, -254,
148987 /* 130 */ -254, -254, -254, 190, 270, -196, 160, -160, 450, 647,
148988 /* 140 */ 260, 458, 260, 458, 78, -254, -254, -254, -254, 206,
148989 /* 150 */ 206, 206, 320, 598, -5, 675, 743, -148, 340, -125,
148990 /* 160 */ 459, 466, 466, 693, -93, 461, 479, 706, 710, 714,
148991 /* 170 */ 716, 717, 169, -183, 325, 314, 704, 333, 747, 858,
148992 /* 180 */ -8, 819, 565, 755, 646, 660, 517, 265, 713, 791,
148993 /* 190 */ 712, 795, 803, 918, 695, 860, 893, 935, 939, -181,
148994 /* 200 */ -172, -147, -91, -46, -3, 162, 173, 231, 338, 437,
148995 /* 210 */ 571, 614, 630, 651, 760, 931, 989, 1032, 1046, -218,
148996 /* 220 */ 38, 1070, 1096, 1133, 1134, 1137, 1138, 1139, 1141, 1142,
148997 /* 230 */ 1143, 1144, 292, 451, 1050, 1145, 1147, 1148, 1149, 813,
148998 /* 240 */ 1161, 1162, 1163, 1108, 1049, 1166, 1168, 1146, 1169, 162,
148999 /* 250 */ 1181, 1182, 1183, 1184, 1185, 1187, 1100, 1103, 1150, 1135,
149000 /* 260 */ 1136, 1140, 1152, 813, 1150, 1150, 1153, 1173, 1195, 1090,
149001 /* 270 */ 1154, 1167, 1170, 1104, 1155, 1156, 1109, 1172, 1174, 1179,
149002 /* 280 */ 1177, 1188, 1205, 1171, 1160, 1196, 1121, 1165, 1203, 1228,
149003 /* 290 */ 1157, 1244, 1245, 1158, 1159, 1250, 1175, 1193, 1191, 1241,
149004 /* 300 */ 1231, 1243, 1257, 1259, 1261, 1276, 1280, 1254, 1255, 1230,
149005 /* 310 */ 1234, 1269, 1270, 1260, 1292, 1303, 1223, 1225, 1309, 1313,
149006 /* 320 */ 1296, 1317, 1319, 1320, 1323, 1300, 1307, 1308, 1310, 1304,
149007 /* 330 */ 1311, 1315, 1314, 1318, 1316, 1321, 1325, 1324, 1271, 1272,
149008 /* 340 */ 1332, 1294, 1298, 1299, 1301, 1302, 1306, 1312, 1329, 1356,
149009 /* 350 */ 1256, 1263, 1327, 1326, 1305, 1369, 1330, 1340, 1343, 1346,
149010 /* 360 */ 1350, 1391, 1394, 1410, 1412, 1415, 1417, 1419, 1328, 1331,
149011 /* 370 */ 1335, 1402, 1398, 1400, 1401, 1403, 1408, 1396, 1397, 1409,
149012 /* 380 */ 1414, 1420, 1421, 1413,
149013 };
149014 static const YYACTIONTYPE yy_default[] = {
149015 /* 0 */ 1536, 1536, 1536, 1376, 1159, 1265, 1159, 1159, 1159, 1376,
149016 /* 10 */ 1376, 1376, 1159, 1295, 1295, 1429, 1190, 1159, 1159, 1159,
149017 /* 20 */ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1375, 1159, 1159,
@@ -149380,135 +149425,152 @@
149425 /* 154 */ "ALTER",
149426 /* 155 */ "ADD",
149427 /* 156 */ "WINDOW",
149428 /* 157 */ "OVER",
149429 /* 158 */ "FILTER",
149430 /* 159 */ "TRUEFALSE",
149431 /* 160 */ "ISNOT",
149432 /* 161 */ "FUNCTION",
149433 /* 162 */ "COLUMN",
149434 /* 163 */ "AGG_FUNCTION",
149435 /* 164 */ "AGG_COLUMN",
149436 /* 165 */ "UMINUS",
149437 /* 166 */ "UPLUS",
149438 /* 167 */ "TRUTH",
149439 /* 168 */ "REGISTER",
149440 /* 169 */ "VECTOR",
149441 /* 170 */ "SELECT_COLUMN",
149442 /* 171 */ "IF_NULL_ROW",
149443 /* 172 */ "ASTERISK",
149444 /* 173 */ "SPAN",
149445 /* 174 */ "SPACE",
149446 /* 175 */ "ILLEGAL",
149447 /* 176 */ "input",
149448 /* 177 */ "cmdlist",
149449 /* 178 */ "ecmd",
149450 /* 179 */ "cmdx",
149451 /* 180 */ "explain",
149452 /* 181 */ "cmd",
149453 /* 182 */ "transtype",
149454 /* 183 */ "trans_opt",
149455 /* 184 */ "nm",
149456 /* 185 */ "savepoint_opt",
149457 /* 186 */ "create_table",
149458 /* 187 */ "create_table_args",
149459 /* 188 */ "createkw",
149460 /* 189 */ "temp",
149461 /* 190 */ "ifnotexists",
149462 /* 191 */ "dbnm",
149463 /* 192 */ "columnlist",
149464 /* 193 */ "conslist_opt",
149465 /* 194 */ "table_options",
149466 /* 195 */ "select",
149467 /* 196 */ "columnname",
149468 /* 197 */ "carglist",
149469 /* 198 */ "typetoken",
149470 /* 199 */ "typename",
149471 /* 200 */ "signed",
149472 /* 201 */ "plus_num",
149473 /* 202 */ "minus_num",
149474 /* 203 */ "scanpt",
149475 /* 204 */ "ccons",
149476 /* 205 */ "term",
149477 /* 206 */ "expr",
149478 /* 207 */ "onconf",
149479 /* 208 */ "sortorder",
149480 /* 209 */ "autoinc",
149481 /* 210 */ "eidlist_opt",
149482 /* 211 */ "refargs",
149483 /* 212 */ "defer_subclause",
149484 /* 213 */ "refarg",
149485 /* 214 */ "refact",
149486 /* 215 */ "init_deferred_pred_opt",
149487 /* 216 */ "conslist",
149488 /* 217 */ "tconscomma",
149489 /* 218 */ "tcons",
149490 /* 219 */ "sortlist",
149491 /* 220 */ "eidlist",
149492 /* 221 */ "defer_subclause_opt",
149493 /* 222 */ "orconf",
149494 /* 223 */ "resolvetype",
149495 /* 224 */ "raisetype",
149496 /* 225 */ "ifexists",
149497 /* 226 */ "fullname",
149498 /* 227 */ "selectnowith",
149499 /* 228 */ "oneselect",
149500 /* 229 */ "wqlist",
149501 /* 230 */ "multiselect_op",
149502 /* 231 */ "distinct",
149503 /* 232 */ "selcollist",
149504 /* 233 */ "from",
149505 /* 234 */ "where_opt",
149506 /* 235 */ "groupby_opt",
149507 /* 236 */ "having_opt",
149508 /* 237 */ "orderby_opt",
149509 /* 238 */ "limit_opt",
149510 /* 239 */ "window_clause",
149511 /* 240 */ "values",
149512 /* 241 */ "nexprlist",
149513 /* 242 */ "sclp",
149514 /* 243 */ "as",
149515 /* 244 */ "seltablist",
149516 /* 245 */ "stl_prefix",
149517 /* 246 */ "joinop",
149518 /* 247 */ "indexed_opt",
149519 /* 248 */ "on_opt",
149520 /* 249 */ "using_opt",
149521 /* 250 */ "exprlist",
149522 /* 251 */ "xfullname",
149523 /* 252 */ "idlist",
149524 /* 253 */ "with",
149525 /* 254 */ "setlist",
149526 /* 255 */ "insert_cmd",
149527 /* 256 */ "idlist_opt",
149528 /* 257 */ "upsert",
149529 /* 258 */ "over_clause",
149530 /* 259 */ "likeop",
149531 /* 260 */ "between_op",
149532 /* 261 */ "in_op",
149533 /* 262 */ "paren_exprlist",
149534 /* 263 */ "case_operand",
149535 /* 264 */ "case_exprlist",
149536 /* 265 */ "case_else",
149537 /* 266 */ "uniqueflag",
149538 /* 267 */ "collate",
149539 /* 268 */ "vinto",
149540 /* 269 */ "nmnum",
149541 /* 270 */ "trigger_decl",
149542 /* 271 */ "trigger_cmd_list",
149543 /* 272 */ "trigger_time",
149544 /* 273 */ "trigger_event",
149545 /* 274 */ "foreach_clause",
149546 /* 275 */ "when_clause",
149547 /* 276 */ "trigger_cmd",
149548 /* 277 */ "trnm",
149549 /* 278 */ "tridxby",
149550 /* 279 */ "database_kw_opt",
149551 /* 280 */ "key_opt",
149552 /* 281 */ "add_column_fullname",
149553 /* 282 */ "kwcolumn_opt",
149554 /* 283 */ "create_vtab",
149555 /* 284 */ "vtabarglist",
149556 /* 285 */ "vtabarg",
149557 /* 286 */ "vtabargtoken",
149558 /* 287 */ "lp",
149559 /* 288 */ "anylist",
149560 /* 289 */ "windowdefn_list",
149561 /* 290 */ "windowdefn",
149562 /* 291 */ "window",
149563 /* 292 */ "frame_opt",
149564 /* 293 */ "part_opt",
149565 /* 294 */ "filter_opt",
149566 /* 295 */ "range_or_rows",
149567 /* 296 */ "frame_bound",
149568 /* 297 */ "frame_bound_s",
149569 /* 298 */ "frame_bound_e",
149570 /* 299 */ "frame_exclude_opt",
149571 /* 300 */ "frame_exclude",
149572 };
149573 #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
149574
149575 #ifndef NDEBUG
149576 /* For tracing reduce actions, the names of all rules are required.
@@ -150012,101 +150074,101 @@
150074 ** Note: during a reduce, the only symbols destroyed are those
150075 ** which appear on the RHS of the rule, but which are *not* used
150076 ** inside the C code.
150077 */
150078 /********* Begin destructor definitions ***************************************/
150079 case 195: /* select */
150080 case 227: /* selectnowith */
150081 case 228: /* oneselect */
150082 case 240: /* values */
150083 {
150084 sqlite3SelectDelete(pParse->db, (yypminor->yy457));
150085 }
150086 break;
150087 case 205: /* term */
150088 case 206: /* expr */
150089 case 234: /* where_opt */
150090 case 236: /* having_opt */
150091 case 248: /* on_opt */
150092 case 263: /* case_operand */
150093 case 265: /* case_else */
150094 case 268: /* vinto */
150095 case 275: /* when_clause */
150096 case 280: /* key_opt */
150097 case 294: /* filter_opt */
150098 {
150099 sqlite3ExprDelete(pParse->db, (yypminor->yy524));
150100 }
150101 break;
150102 case 210: /* eidlist_opt */
150103 case 219: /* sortlist */
150104 case 220: /* eidlist */
150105 case 232: /* selcollist */
150106 case 235: /* groupby_opt */
150107 case 237: /* orderby_opt */
150108 case 241: /* nexprlist */
150109 case 242: /* sclp */
150110 case 250: /* exprlist */
150111 case 254: /* setlist */
150112 case 262: /* paren_exprlist */
150113 case 264: /* case_exprlist */
150114 case 293: /* part_opt */
150115 {
150116 sqlite3ExprListDelete(pParse->db, (yypminor->yy434));
150117 }
150118 break;
150119 case 226: /* fullname */
150120 case 233: /* from */
150121 case 244: /* seltablist */
150122 case 245: /* stl_prefix */
150123 case 251: /* xfullname */
150124 {
150125 sqlite3SrcListDelete(pParse->db, (yypminor->yy483));
150126 }
150127 break;
150128 case 229: /* wqlist */
150129 {
150130 sqlite3WithDelete(pParse->db, (yypminor->yy59));
150131 }
150132 break;
150133 case 239: /* window_clause */
150134 case 289: /* windowdefn_list */
150135 {
150136 sqlite3WindowListDelete(pParse->db, (yypminor->yy295));
150137 }
150138 break;
150139 case 249: /* using_opt */
150140 case 252: /* idlist */
150141 case 256: /* idlist_opt */
150142 {
150143 sqlite3IdListDelete(pParse->db, (yypminor->yy62));
150144 }
150145 break;
150146 case 258: /* over_clause */
150147 case 290: /* windowdefn */
150148 case 291: /* window */
150149 case 292: /* frame_opt */
150150 {
150151 sqlite3WindowDelete(pParse->db, (yypminor->yy295));
150152 }
150153 break;
150154 case 271: /* trigger_cmd_list */
150155 case 276: /* trigger_cmd */
150156 {
150157 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy455));
150158 }
150159 break;
150160 case 273: /* trigger_event */
150161 {
150162 sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
150163 }
150164 break;
150165 case 296: /* frame_bound */
150166 case 297: /* frame_bound_s */
150167 case 298: /* frame_bound_e */
150168 {
150169 sqlite3ExprDelete(pParse->db, (yypminor->yy201).pExpr);
150170 }
150171 break;
150172 /********* End destructor definitions *****************************************/
150173 default: break; /* If no destructor action specified: do nothing */
150174 }
@@ -150397,385 +150459,385 @@
150459 }
150460
150461 /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
150462 ** of that rule */
150463 static const YYCODETYPE yyRuleInfoLhs[] = {
150464 180, /* (0) explain ::= EXPLAIN */
150465 180, /* (1) explain ::= EXPLAIN QUERY PLAN */
150466 179, /* (2) cmdx ::= cmd */
150467 181, /* (3) cmd ::= BEGIN transtype trans_opt */
150468 182, /* (4) transtype ::= */
150469 182, /* (5) transtype ::= DEFERRED */
150470 182, /* (6) transtype ::= IMMEDIATE */
150471 182, /* (7) transtype ::= EXCLUSIVE */
150472 181, /* (8) cmd ::= COMMIT|END trans_opt */
150473 181, /* (9) cmd ::= ROLLBACK trans_opt */
150474 181, /* (10) cmd ::= SAVEPOINT nm */
150475 181, /* (11) cmd ::= RELEASE savepoint_opt nm */
150476 181, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
150477 186, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */
150478 188, /* (14) createkw ::= CREATE */
150479 190, /* (15) ifnotexists ::= */
150480 190, /* (16) ifnotexists ::= IF NOT EXISTS */
150481 189, /* (17) temp ::= TEMP */
150482 189, /* (18) temp ::= */
150483 187, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */
150484 187, /* (20) create_table_args ::= AS select */
150485 194, /* (21) table_options ::= */
150486 194, /* (22) table_options ::= WITHOUT nm */
150487 196, /* (23) columnname ::= nm typetoken */
150488 198, /* (24) typetoken ::= */
150489 198, /* (25) typetoken ::= typename LP signed RP */
150490 198, /* (26) typetoken ::= typename LP signed COMMA signed RP */
150491 199, /* (27) typename ::= typename ID|STRING */
150492 203, /* (28) scanpt ::= */
150493 204, /* (29) ccons ::= CONSTRAINT nm */
150494 204, /* (30) ccons ::= DEFAULT scanpt term scanpt */
150495 204, /* (31) ccons ::= DEFAULT LP expr RP */
150496 204, /* (32) ccons ::= DEFAULT PLUS term scanpt */
150497 204, /* (33) ccons ::= DEFAULT MINUS term scanpt */
150498 204, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */
150499 204, /* (35) ccons ::= NOT NULL onconf */
150500 204, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */
150501 204, /* (37) ccons ::= UNIQUE onconf */
150502 204, /* (38) ccons ::= CHECK LP expr RP */
150503 204, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */
150504 204, /* (40) ccons ::= defer_subclause */
150505 204, /* (41) ccons ::= COLLATE ID|STRING */
150506 209, /* (42) autoinc ::= */
150507 209, /* (43) autoinc ::= AUTOINCR */
150508 211, /* (44) refargs ::= */
150509 211, /* (45) refargs ::= refargs refarg */
150510 213, /* (46) refarg ::= MATCH nm */
150511 213, /* (47) refarg ::= ON INSERT refact */
150512 213, /* (48) refarg ::= ON DELETE refact */
150513 213, /* (49) refarg ::= ON UPDATE refact */
150514 214, /* (50) refact ::= SET NULL */
150515 214, /* (51) refact ::= SET DEFAULT */
150516 214, /* (52) refact ::= CASCADE */
150517 214, /* (53) refact ::= RESTRICT */
150518 214, /* (54) refact ::= NO ACTION */
150519 212, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
150520 212, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
150521 215, /* (57) init_deferred_pred_opt ::= */
150522 215, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */
150523 215, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
150524 193, /* (60) conslist_opt ::= */
150525 217, /* (61) tconscomma ::= COMMA */
150526 218, /* (62) tcons ::= CONSTRAINT nm */
150527 218, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
150528 218, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */
150529 218, /* (65) tcons ::= CHECK LP expr RP onconf */
150530 218, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
150531 221, /* (67) defer_subclause_opt ::= */
150532 207, /* (68) onconf ::= */
150533 207, /* (69) onconf ::= ON CONFLICT resolvetype */
150534 222, /* (70) orconf ::= */
150535 222, /* (71) orconf ::= OR resolvetype */
150536 223, /* (72) resolvetype ::= IGNORE */
150537 223, /* (73) resolvetype ::= REPLACE */
150538 181, /* (74) cmd ::= DROP TABLE ifexists fullname */
150539 225, /* (75) ifexists ::= IF EXISTS */
150540 225, /* (76) ifexists ::= */
150541 181, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
150542 181, /* (78) cmd ::= DROP VIEW ifexists fullname */
150543 181, /* (79) cmd ::= select */
150544 195, /* (80) select ::= WITH wqlist selectnowith */
150545 195, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */
150546 195, /* (82) select ::= selectnowith */
150547 227, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */
150548 230, /* (84) multiselect_op ::= UNION */
150549 230, /* (85) multiselect_op ::= UNION ALL */
150550 230, /* (86) multiselect_op ::= EXCEPT|INTERSECT */
150551 228, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
150552 228, /* (88) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
150553 240, /* (89) values ::= VALUES LP nexprlist RP */
150554 240, /* (90) values ::= values COMMA LP nexprlist RP */
150555 231, /* (91) distinct ::= DISTINCT */
150556 231, /* (92) distinct ::= ALL */
150557 231, /* (93) distinct ::= */
150558 242, /* (94) sclp ::= */
150559 232, /* (95) selcollist ::= sclp scanpt expr scanpt as */
150560 232, /* (96) selcollist ::= sclp scanpt STAR */
150561 232, /* (97) selcollist ::= sclp scanpt nm DOT STAR */
150562 243, /* (98) as ::= AS nm */
150563 243, /* (99) as ::= */
150564 233, /* (100) from ::= */
150565 233, /* (101) from ::= FROM seltablist */
150566 245, /* (102) stl_prefix ::= seltablist joinop */
150567 245, /* (103) stl_prefix ::= */
150568 244, /* (104) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
150569 244, /* (105) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
150570 244, /* (106) seltablist ::= stl_prefix LP select RP as on_opt using_opt */
150571 244, /* (107) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
150572 191, /* (108) dbnm ::= */
150573 191, /* (109) dbnm ::= DOT nm */
150574 226, /* (110) fullname ::= nm */
150575 226, /* (111) fullname ::= nm DOT nm */
150576 251, /* (112) xfullname ::= nm */
150577 251, /* (113) xfullname ::= nm DOT nm */
150578 251, /* (114) xfullname ::= nm DOT nm AS nm */
150579 251, /* (115) xfullname ::= nm AS nm */
150580 246, /* (116) joinop ::= COMMA|JOIN */
150581 246, /* (117) joinop ::= JOIN_KW JOIN */
150582 246, /* (118) joinop ::= JOIN_KW nm JOIN */
150583 246, /* (119) joinop ::= JOIN_KW nm nm JOIN */
150584 248, /* (120) on_opt ::= ON expr */
150585 248, /* (121) on_opt ::= */
150586 247, /* (122) indexed_opt ::= */
150587 247, /* (123) indexed_opt ::= INDEXED BY nm */
150588 247, /* (124) indexed_opt ::= NOT INDEXED */
150589 249, /* (125) using_opt ::= USING LP idlist RP */
150590 249, /* (126) using_opt ::= */
150591 237, /* (127) orderby_opt ::= */
150592 237, /* (128) orderby_opt ::= ORDER BY sortlist */
150593 219, /* (129) sortlist ::= sortlist COMMA expr sortorder */
150594 219, /* (130) sortlist ::= expr sortorder */
150595 208, /* (131) sortorder ::= ASC */
150596 208, /* (132) sortorder ::= DESC */
150597 208, /* (133) sortorder ::= */
150598 235, /* (134) groupby_opt ::= */
150599 235, /* (135) groupby_opt ::= GROUP BY nexprlist */
150600 236, /* (136) having_opt ::= */
150601 236, /* (137) having_opt ::= HAVING expr */
150602 238, /* (138) limit_opt ::= */
150603 238, /* (139) limit_opt ::= LIMIT expr */
150604 238, /* (140) limit_opt ::= LIMIT expr OFFSET expr */
150605 238, /* (141) limit_opt ::= LIMIT expr COMMA expr */
150606 181, /* (142) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
150607 234, /* (143) where_opt ::= */
150608 234, /* (144) where_opt ::= WHERE expr */
150609 181, /* (145) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
150610 254, /* (146) setlist ::= setlist COMMA nm EQ expr */
150611 254, /* (147) setlist ::= setlist COMMA LP idlist RP EQ expr */
150612 254, /* (148) setlist ::= nm EQ expr */
150613 254, /* (149) setlist ::= LP idlist RP EQ expr */
150614 181, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
150615 181, /* (151) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
150616 257, /* (152) upsert ::= */
150617 257, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
150618 257, /* (154) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
150619 257, /* (155) upsert ::= ON CONFLICT DO NOTHING */
150620 255, /* (156) insert_cmd ::= INSERT orconf */
150621 255, /* (157) insert_cmd ::= REPLACE */
150622 256, /* (158) idlist_opt ::= */
150623 256, /* (159) idlist_opt ::= LP idlist RP */
150624 252, /* (160) idlist ::= idlist COMMA nm */
150625 252, /* (161) idlist ::= nm */
150626 206, /* (162) expr ::= LP expr RP */
150627 206, /* (163) expr ::= ID|INDEXED */
150628 206, /* (164) expr ::= JOIN_KW */
150629 206, /* (165) expr ::= nm DOT nm */
150630 206, /* (166) expr ::= nm DOT nm DOT nm */
150631 205, /* (167) term ::= NULL|FLOAT|BLOB */
150632 205, /* (168) term ::= STRING */
150633 205, /* (169) term ::= INTEGER */
150634 206, /* (170) expr ::= VARIABLE */
150635 206, /* (171) expr ::= expr COLLATE ID|STRING */
150636 206, /* (172) expr ::= CAST LP expr AS typetoken RP */
150637 206, /* (173) expr ::= ID|INDEXED LP distinct exprlist RP */
150638 206, /* (174) expr ::= ID|INDEXED LP STAR RP */
150639 206, /* (175) expr ::= ID|INDEXED LP distinct exprlist RP over_clause */
150640 206, /* (176) expr ::= ID|INDEXED LP STAR RP over_clause */
150641 205, /* (177) term ::= CTIME_KW */
150642 206, /* (178) expr ::= LP nexprlist COMMA expr RP */
150643 206, /* (179) expr ::= expr AND expr */
150644 206, /* (180) expr ::= expr OR expr */
150645 206, /* (181) expr ::= expr LT|GT|GE|LE expr */
150646 206, /* (182) expr ::= expr EQ|NE expr */
150647 206, /* (183) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */
150648 206, /* (184) expr ::= expr PLUS|MINUS expr */
150649 206, /* (185) expr ::= expr STAR|SLASH|REM expr */
150650 206, /* (186) expr ::= expr CONCAT expr */
150651 259, /* (187) likeop ::= NOT LIKE_KW|MATCH */
150652 206, /* (188) expr ::= expr likeop expr */
150653 206, /* (189) expr ::= expr likeop expr ESCAPE expr */
150654 206, /* (190) expr ::= expr ISNULL|NOTNULL */
150655 206, /* (191) expr ::= expr NOT NULL */
150656 206, /* (192) expr ::= expr IS expr */
150657 206, /* (193) expr ::= expr IS NOT expr */
150658 206, /* (194) expr ::= NOT expr */
150659 206, /* (195) expr ::= BITNOT expr */
150660 206, /* (196) expr ::= PLUS|MINUS expr */
150661 260, /* (197) between_op ::= BETWEEN */
150662 260, /* (198) between_op ::= NOT BETWEEN */
150663 206, /* (199) expr ::= expr between_op expr AND expr */
150664 261, /* (200) in_op ::= IN */
150665 261, /* (201) in_op ::= NOT IN */
150666 206, /* (202) expr ::= expr in_op LP exprlist RP */
150667 206, /* (203) expr ::= LP select RP */
150668 206, /* (204) expr ::= expr in_op LP select RP */
150669 206, /* (205) expr ::= expr in_op nm dbnm paren_exprlist */
150670 206, /* (206) expr ::= EXISTS LP select RP */
150671 206, /* (207) expr ::= CASE case_operand case_exprlist case_else END */
150672 264, /* (208) case_exprlist ::= case_exprlist WHEN expr THEN expr */
150673 264, /* (209) case_exprlist ::= WHEN expr THEN expr */
150674 265, /* (210) case_else ::= ELSE expr */
150675 265, /* (211) case_else ::= */
150676 263, /* (212) case_operand ::= expr */
150677 263, /* (213) case_operand ::= */
150678 250, /* (214) exprlist ::= */
150679 241, /* (215) nexprlist ::= nexprlist COMMA expr */
150680 241, /* (216) nexprlist ::= expr */
150681 262, /* (217) paren_exprlist ::= */
150682 262, /* (218) paren_exprlist ::= LP exprlist RP */
150683 181, /* (219) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
150684 266, /* (220) uniqueflag ::= UNIQUE */
150685 266, /* (221) uniqueflag ::= */
150686 210, /* (222) eidlist_opt ::= */
150687 210, /* (223) eidlist_opt ::= LP eidlist RP */
150688 220, /* (224) eidlist ::= eidlist COMMA nm collate sortorder */
150689 220, /* (225) eidlist ::= nm collate sortorder */
150690 267, /* (226) collate ::= */
150691 267, /* (227) collate ::= COLLATE ID|STRING */
150692 181, /* (228) cmd ::= DROP INDEX ifexists fullname */
150693 181, /* (229) cmd ::= VACUUM vinto */
150694 181, /* (230) cmd ::= VACUUM nm vinto */
150695 268, /* (231) vinto ::= INTO expr */
150696 268, /* (232) vinto ::= */
150697 181, /* (233) cmd ::= PRAGMA nm dbnm */
150698 181, /* (234) cmd ::= PRAGMA nm dbnm EQ nmnum */
150699 181, /* (235) cmd ::= PRAGMA nm dbnm LP nmnum RP */
150700 181, /* (236) cmd ::= PRAGMA nm dbnm EQ minus_num */
150701 181, /* (237) cmd ::= PRAGMA nm dbnm LP minus_num RP */
150702 201, /* (238) plus_num ::= PLUS INTEGER|FLOAT */
150703 202, /* (239) minus_num ::= MINUS INTEGER|FLOAT */
150704 181, /* (240) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
150705 270, /* (241) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
150706 272, /* (242) trigger_time ::= BEFORE|AFTER */
150707 272, /* (243) trigger_time ::= INSTEAD OF */
150708 272, /* (244) trigger_time ::= */
150709 273, /* (245) trigger_event ::= DELETE|INSERT */
150710 273, /* (246) trigger_event ::= UPDATE */
150711 273, /* (247) trigger_event ::= UPDATE OF idlist */
150712 275, /* (248) when_clause ::= */
150713 275, /* (249) when_clause ::= WHEN expr */
150714 271, /* (250) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
150715 271, /* (251) trigger_cmd_list ::= trigger_cmd SEMI */
150716 277, /* (252) trnm ::= nm DOT nm */
150717 278, /* (253) tridxby ::= INDEXED BY nm */
150718 278, /* (254) tridxby ::= NOT INDEXED */
150719 276, /* (255) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
150720 276, /* (256) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
150721 276, /* (257) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
150722 276, /* (258) trigger_cmd ::= scanpt select scanpt */
150723 206, /* (259) expr ::= RAISE LP IGNORE RP */
150724 206, /* (260) expr ::= RAISE LP raisetype COMMA nm RP */
150725 224, /* (261) raisetype ::= ROLLBACK */
150726 224, /* (262) raisetype ::= ABORT */
150727 224, /* (263) raisetype ::= FAIL */
150728 181, /* (264) cmd ::= DROP TRIGGER ifexists fullname */
150729 181, /* (265) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
150730 181, /* (266) cmd ::= DETACH database_kw_opt expr */
150731 280, /* (267) key_opt ::= */
150732 280, /* (268) key_opt ::= KEY expr */
150733 181, /* (269) cmd ::= REINDEX */
150734 181, /* (270) cmd ::= REINDEX nm dbnm */
150735 181, /* (271) cmd ::= ANALYZE */
150736 181, /* (272) cmd ::= ANALYZE nm dbnm */
150737 181, /* (273) cmd ::= ALTER TABLE fullname RENAME TO nm */
150738 181, /* (274) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
150739 281, /* (275) add_column_fullname ::= fullname */
150740 181, /* (276) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
150741 181, /* (277) cmd ::= create_vtab */
150742 181, /* (278) cmd ::= create_vtab LP vtabarglist RP */
150743 283, /* (279) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
150744 285, /* (280) vtabarg ::= */
150745 286, /* (281) vtabargtoken ::= ANY */
150746 286, /* (282) vtabargtoken ::= lp anylist RP */
150747 287, /* (283) lp ::= LP */
150748 253, /* (284) with ::= WITH wqlist */
150749 253, /* (285) with ::= WITH RECURSIVE wqlist */
150750 229, /* (286) wqlist ::= nm eidlist_opt AS LP select RP */
150751 229, /* (287) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
150752 289, /* (288) windowdefn_list ::= windowdefn */
150753 289, /* (289) windowdefn_list ::= windowdefn_list COMMA windowdefn */
150754 290, /* (290) windowdefn ::= nm AS LP window RP */
150755 291, /* (291) window ::= PARTITION BY nexprlist orderby_opt frame_opt */
150756 291, /* (292) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
150757 291, /* (293) window ::= ORDER BY sortlist frame_opt */
150758 291, /* (294) window ::= nm ORDER BY sortlist frame_opt */
150759 291, /* (295) window ::= frame_opt */
150760 291, /* (296) window ::= nm frame_opt */
150761 292, /* (297) frame_opt ::= */
150762 292, /* (298) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
150763 292, /* (299) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
150764 295, /* (300) range_or_rows ::= RANGE|ROWS|GROUPS */
150765 297, /* (301) frame_bound_s ::= frame_bound */
150766 297, /* (302) frame_bound_s ::= UNBOUNDED PRECEDING */
150767 298, /* (303) frame_bound_e ::= frame_bound */
150768 298, /* (304) frame_bound_e ::= UNBOUNDED FOLLOWING */
150769 296, /* (305) frame_bound ::= expr PRECEDING|FOLLOWING */
150770 296, /* (306) frame_bound ::= CURRENT ROW */
150771 299, /* (307) frame_exclude_opt ::= */
150772 299, /* (308) frame_exclude_opt ::= EXCLUDE frame_exclude */
150773 300, /* (309) frame_exclude ::= NO OTHERS */
150774 300, /* (310) frame_exclude ::= CURRENT ROW */
150775 300, /* (311) frame_exclude ::= GROUP|TIES */
150776 239, /* (312) window_clause ::= WINDOW windowdefn_list */
150777 258, /* (313) over_clause ::= filter_opt OVER LP window RP */
150778 258, /* (314) over_clause ::= filter_opt OVER nm */
150779 294, /* (315) filter_opt ::= */
150780 294, /* (316) filter_opt ::= FILTER LP WHERE expr RP */
150781 176, /* (317) input ::= cmdlist */
150782 177, /* (318) cmdlist ::= cmdlist ecmd */
150783 177, /* (319) cmdlist ::= ecmd */
150784 178, /* (320) ecmd ::= SEMI */
150785 178, /* (321) ecmd ::= cmdx SEMI */
150786 178, /* (322) ecmd ::= explain cmdx */
150787 183, /* (323) trans_opt ::= */
150788 183, /* (324) trans_opt ::= TRANSACTION */
150789 183, /* (325) trans_opt ::= TRANSACTION nm */
150790 185, /* (326) savepoint_opt ::= SAVEPOINT */
150791 185, /* (327) savepoint_opt ::= */
150792 181, /* (328) cmd ::= create_table create_table_args */
150793 192, /* (329) columnlist ::= columnlist COMMA columnname carglist */
150794 192, /* (330) columnlist ::= columnname carglist */
150795 184, /* (331) nm ::= ID|INDEXED */
150796 184, /* (332) nm ::= STRING */
150797 184, /* (333) nm ::= JOIN_KW */
150798 198, /* (334) typetoken ::= typename */
150799 199, /* (335) typename ::= ID|STRING */
150800 200, /* (336) signed ::= plus_num */
150801 200, /* (337) signed ::= minus_num */
150802 197, /* (338) carglist ::= carglist ccons */
150803 197, /* (339) carglist ::= */
150804 204, /* (340) ccons ::= NULL onconf */
150805 193, /* (341) conslist_opt ::= COMMA conslist */
150806 216, /* (342) conslist ::= conslist tconscomma tcons */
150807 216, /* (343) conslist ::= tcons */
150808 217, /* (344) tconscomma ::= */
150809 221, /* (345) defer_subclause_opt ::= defer_subclause */
150810 223, /* (346) resolvetype ::= raisetype */
150811 227, /* (347) selectnowith ::= oneselect */
150812 228, /* (348) oneselect ::= values */
150813 242, /* (349) sclp ::= selcollist COMMA */
150814 243, /* (350) as ::= ID|STRING */
150815 206, /* (351) expr ::= term */
150816 259, /* (352) likeop ::= LIKE_KW|MATCH */
150817 250, /* (353) exprlist ::= nexprlist */
150818 269, /* (354) nmnum ::= plus_num */
150819 269, /* (355) nmnum ::= nm */
150820 269, /* (356) nmnum ::= ON */
150821 269, /* (357) nmnum ::= DELETE */
150822 269, /* (358) nmnum ::= DEFAULT */
150823 201, /* (359) plus_num ::= INTEGER|FLOAT */
150824 274, /* (360) foreach_clause ::= */
150825 274, /* (361) foreach_clause ::= FOR EACH ROW */
150826 277, /* (362) trnm ::= nm */
150827 278, /* (363) tridxby ::= */
150828 279, /* (364) database_kw_opt ::= DATABASE */
150829 279, /* (365) database_kw_opt ::= */
150830 282, /* (366) kwcolumn_opt ::= */
150831 282, /* (367) kwcolumn_opt ::= COLUMNKW */
150832 284, /* (368) vtabarglist ::= vtabarg */
150833 284, /* (369) vtabarglist ::= vtabarglist COMMA vtabarg */
150834 285, /* (370) vtabarg ::= vtabarg vtabargtoken */
150835 288, /* (371) anylist ::= */
150836 288, /* (372) anylist ::= anylist LP anylist RP */
150837 288, /* (373) anylist ::= anylist ANY */
150838 253, /* (374) with ::= */
150839 };
150840
150841 /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
150842 ** of symbols on the right-hand side of that rule. */
150843 static const signed char yyRuleInfoNRhs[] = {
@@ -151248,20 +151310,20 @@
151310 break;
151311 case 2: /* cmdx ::= cmd */
151312 { sqlite3FinishCoding(pParse); }
151313 break;
151314 case 3: /* cmd ::= BEGIN transtype trans_opt */
151315 {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy494);}
151316 break;
151317 case 4: /* transtype ::= */
151318 {yymsp[1].minor.yy494 = TK_DEFERRED;}
151319 break;
151320 case 5: /* transtype ::= DEFERRED */
151321 case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6);
151322 case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7);
151323 case 300: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==300);
151324 {yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-X*/}
151325 break;
151326 case 8: /* cmd ::= COMMIT|END trans_opt */
151327 case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9);
151328 {sqlite3EndTransaction(pParse,yymsp[-1].major);}
151329 break;
@@ -151280,11 +151342,11 @@
151342 sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
151343 }
151344 break;
151345 case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
151346 {
151347 sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy494,0,0,yymsp[-2].minor.yy494);
151348 }
151349 break;
151350 case 14: /* createkw ::= CREATE */
151351 {disableLookaside(pParse);}
151352 break;
@@ -151295,36 +151357,36 @@
151357 case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57);
151358 case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67);
151359 case 76: /* ifexists ::= */ yytestcase(yyruleno==76);
151360 case 93: /* distinct ::= */ yytestcase(yyruleno==93);
151361 case 226: /* collate ::= */ yytestcase(yyruleno==226);
151362 {yymsp[1].minor.yy494 = 0;}
151363 break;
151364 case 16: /* ifnotexists ::= IF NOT EXISTS */
151365 {yymsp[-2].minor.yy494 = 1;}
151366 break;
151367 case 17: /* temp ::= TEMP */
151368 case 43: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==43);
151369 {yymsp[0].minor.yy494 = 1;}
151370 break;
151371 case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_options */
151372 {
151373 sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy494,0);
151374 }
151375 break;
151376 case 20: /* create_table_args ::= AS select */
151377 {
151378 sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy457);
151379 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy457);
151380 }
151381 break;
151382 case 22: /* table_options ::= WITHOUT nm */
151383 {
151384 if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
151385 yymsp[-1].minor.yy494 = TF_WithoutRowid | TF_NoVisibleRowid;
151386 }else{
151387 yymsp[-1].minor.yy494 = 0;
151388 sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z);
151389 }
151390 }
151391 break;
151392 case 23: /* columnname ::= nm typetoken */
@@ -151349,30 +151411,30 @@
151411 {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
151412 break;
151413 case 28: /* scanpt ::= */
151414 {
151415 assert( yyLookahead!=YYNOCODE );
151416 yymsp[1].minor.yy294 = yyLookaheadToken.z;
151417 }
151418 break;
151419 case 29: /* ccons ::= CONSTRAINT nm */
151420 case 62: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==62);
151421 {pParse->constraintName = yymsp[0].minor.yy0;}
151422 break;
151423 case 30: /* ccons ::= DEFAULT scanpt term scanpt */
151424 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy294,yymsp[0].minor.yy294);}
151425 break;
151426 case 31: /* ccons ::= DEFAULT LP expr RP */
151427 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);}
151428 break;
151429 case 32: /* ccons ::= DEFAULT PLUS term scanpt */
151430 {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy294);}
151431 break;
151432 case 33: /* ccons ::= DEFAULT MINUS term scanpt */
151433 {
151434 Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy524, 0);
151435 sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy294);
151436 }
151437 break;
151438 case 34: /* ccons ::= DEFAULT scanpt ID|INDEXED */
151439 {
151440 Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0);
@@ -151382,319 +151444,319 @@
151444 }
151445 sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n);
151446 }
151447 break;
151448 case 35: /* ccons ::= NOT NULL onconf */
151449 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy494);}
151450 break;
151451 case 36: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
151452 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy494,yymsp[0].minor.yy494,yymsp[-2].minor.yy494);}
151453 break;
151454 case 37: /* ccons ::= UNIQUE onconf */
151455 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy494,0,0,0,0,
151456 SQLITE_IDXTYPE_UNIQUE);}
151457 break;
151458 case 38: /* ccons ::= CHECK LP expr RP */
151459 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy524);}
151460 break;
151461 case 39: /* ccons ::= REFERENCES nm eidlist_opt refargs */
151462 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy434,yymsp[0].minor.yy494);}
151463 break;
151464 case 40: /* ccons ::= defer_subclause */
151465 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy494);}
151466 break;
151467 case 41: /* ccons ::= COLLATE ID|STRING */
151468 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
151469 break;
151470 case 44: /* refargs ::= */
151471 { yymsp[1].minor.yy494 = OE_None*0x0101; /* EV: R-19803-45884 */}
151472 break;
151473 case 45: /* refargs ::= refargs refarg */
151474 { yymsp[-1].minor.yy494 = (yymsp[-1].minor.yy494 & ~yymsp[0].minor.yy355.mask) | yymsp[0].minor.yy355.value; }
151475 break;
151476 case 46: /* refarg ::= MATCH nm */
151477 { yymsp[-1].minor.yy355.value = 0; yymsp[-1].minor.yy355.mask = 0x000000; }
151478 break;
151479 case 47: /* refarg ::= ON INSERT refact */
151480 { yymsp[-2].minor.yy355.value = 0; yymsp[-2].minor.yy355.mask = 0x000000; }
151481 break;
151482 case 48: /* refarg ::= ON DELETE refact */
151483 { yymsp[-2].minor.yy355.value = yymsp[0].minor.yy494; yymsp[-2].minor.yy355.mask = 0x0000ff; }
151484 break;
151485 case 49: /* refarg ::= ON UPDATE refact */
151486 { yymsp[-2].minor.yy355.value = yymsp[0].minor.yy494<<8; yymsp[-2].minor.yy355.mask = 0x00ff00; }
151487 break;
151488 case 50: /* refact ::= SET NULL */
151489 { yymsp[-1].minor.yy494 = OE_SetNull; /* EV: R-33326-45252 */}
151490 break;
151491 case 51: /* refact ::= SET DEFAULT */
151492 { yymsp[-1].minor.yy494 = OE_SetDflt; /* EV: R-33326-45252 */}
151493 break;
151494 case 52: /* refact ::= CASCADE */
151495 { yymsp[0].minor.yy494 = OE_Cascade; /* EV: R-33326-45252 */}
151496 break;
151497 case 53: /* refact ::= RESTRICT */
151498 { yymsp[0].minor.yy494 = OE_Restrict; /* EV: R-33326-45252 */}
151499 break;
151500 case 54: /* refact ::= NO ACTION */
151501 { yymsp[-1].minor.yy494 = OE_None; /* EV: R-33326-45252 */}
151502 break;
151503 case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
151504 {yymsp[-2].minor.yy494 = 0;}
151505 break;
151506 case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
151507 case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71);
151508 case 156: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==156);
151509 {yymsp[-1].minor.yy494 = yymsp[0].minor.yy494;}
151510 break;
151511 case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
151512 case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75);
151513 case 198: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==198);
151514 case 201: /* in_op ::= NOT IN */ yytestcase(yyruleno==201);
151515 case 227: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==227);
151516 {yymsp[-1].minor.yy494 = 1;}
151517 break;
151518 case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
151519 {yymsp[-1].minor.yy494 = 0;}
151520 break;
151521 case 61: /* tconscomma ::= COMMA */
151522 {pParse->constraintName.n = 0;}
151523 break;
151524 case 63: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */
151525 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy434,yymsp[0].minor.yy494,yymsp[-2].minor.yy494,0);}
151526 break;
151527 case 64: /* tcons ::= UNIQUE LP sortlist RP onconf */
151528 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy434,yymsp[0].minor.yy494,0,0,0,0,
151529 SQLITE_IDXTYPE_UNIQUE);}
151530 break;
151531 case 65: /* tcons ::= CHECK LP expr RP onconf */
151532 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy524);}
151533 break;
151534 case 66: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */
151535 {
151536 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy434, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy434, yymsp[-1].minor.yy494);
151537 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy494);
151538 }
151539 break;
151540 case 68: /* onconf ::= */
151541 case 70: /* orconf ::= */ yytestcase(yyruleno==70);
151542 {yymsp[1].minor.yy494 = OE_Default;}
151543 break;
151544 case 69: /* onconf ::= ON CONFLICT resolvetype */
151545 {yymsp[-2].minor.yy494 = yymsp[0].minor.yy494;}
151546 break;
151547 case 72: /* resolvetype ::= IGNORE */
151548 {yymsp[0].minor.yy494 = OE_Ignore;}
151549 break;
151550 case 73: /* resolvetype ::= REPLACE */
151551 case 157: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==157);
151552 {yymsp[0].minor.yy494 = OE_Replace;}
151553 break;
151554 case 74: /* cmd ::= DROP TABLE ifexists fullname */
151555 {
151556 sqlite3DropTable(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy494);
151557 }
151558 break;
151559 case 77: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */
151560 {
151561 sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy434, yymsp[0].minor.yy457, yymsp[-7].minor.yy494, yymsp[-5].minor.yy494);
151562 }
151563 break;
151564 case 78: /* cmd ::= DROP VIEW ifexists fullname */
151565 {
151566 sqlite3DropTable(pParse, yymsp[0].minor.yy483, 1, yymsp[-1].minor.yy494);
151567 }
151568 break;
151569 case 79: /* cmd ::= select */
151570 {
151571 SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0};
151572 sqlite3Select(pParse, yymsp[0].minor.yy457, &dest);
151573 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy457);
151574 }
151575 break;
151576 case 80: /* select ::= WITH wqlist selectnowith */
151577 {
151578 Select *p = yymsp[0].minor.yy457;
151579 if( p ){
151580 p->pWith = yymsp[-1].minor.yy59;
151581 parserDoubleLinkSelect(pParse, p);
151582 }else{
151583 sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy59);
151584 }
151585 yymsp[-2].minor.yy457 = p;
151586 }
151587 break;
151588 case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */
151589 {
151590 Select *p = yymsp[0].minor.yy457;
151591 if( p ){
151592 p->pWith = yymsp[-1].minor.yy59;
151593 parserDoubleLinkSelect(pParse, p);
151594 }else{
151595 sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy59);
151596 }
151597 yymsp[-3].minor.yy457 = p;
151598 }
151599 break;
151600 case 82: /* select ::= selectnowith */
151601 {
151602 Select *p = yymsp[0].minor.yy457;
151603 if( p ){
151604 parserDoubleLinkSelect(pParse, p);
151605 }
151606 yymsp[0].minor.yy457 = p; /*A-overwrites-X*/
151607 }
151608 break;
151609 case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */
151610 {
151611 Select *pRhs = yymsp[0].minor.yy457;
151612 Select *pLhs = yymsp[-2].minor.yy457;
151613 if( pRhs && pRhs->pPrior ){
151614 SrcList *pFrom;
151615 Token x;
151616 x.n = 0;
151617 parserDoubleLinkSelect(pParse, pRhs);
151618 pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0);
151619 pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0);
151620 }
151621 if( pRhs ){
151622 pRhs->op = (u8)yymsp[-1].minor.yy494;
151623 pRhs->pPrior = pLhs;
151624 if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
151625 pRhs->selFlags &= ~SF_MultiValue;
151626 if( yymsp[-1].minor.yy494!=TK_ALL ) pParse->hasCompound = 1;
151627 }else{
151628 sqlite3SelectDelete(pParse->db, pLhs);
151629 }
151630 yymsp[-2].minor.yy457 = pRhs;
151631 }
151632 break;
151633 case 84: /* multiselect_op ::= UNION */
151634 case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86);
151635 {yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-OP*/}
151636 break;
151637 case 85: /* multiselect_op ::= UNION ALL */
151638 {yymsp[-1].minor.yy494 = TK_ALL;}
151639 break;
151640 case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */
151641 {
151642 yymsp[-8].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy434,yymsp[-5].minor.yy483,yymsp[-4].minor.yy524,yymsp[-3].minor.yy434,yymsp[-2].minor.yy524,yymsp[-1].minor.yy434,yymsp[-7].minor.yy494,yymsp[0].minor.yy524);
151643 }
151644 break;
151645 case 88: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */
151646 {
151647 yymsp[-9].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy434,yymsp[-6].minor.yy483,yymsp[-5].minor.yy524,yymsp[-4].minor.yy434,yymsp[-3].minor.yy524,yymsp[-1].minor.yy434,yymsp[-8].minor.yy494,yymsp[0].minor.yy524);
151648 if( yymsp[-9].minor.yy457 ){
151649 yymsp[-9].minor.yy457->pWinDefn = yymsp[-2].minor.yy295;
151650 }else{
151651 sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy295);
151652 }
151653 }
151654 break;
151655 case 89: /* values ::= VALUES LP nexprlist RP */
151656 {
151657 yymsp[-3].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy434,0,0,0,0,0,SF_Values,0);
151658 }
151659 break;
151660 case 90: /* values ::= values COMMA LP nexprlist RP */
151661 {
151662 Select *pRight, *pLeft = yymsp[-4].minor.yy457;
151663 pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy434,0,0,0,0,0,SF_Values|SF_MultiValue,0);
151664 if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
151665 if( pRight ){
151666 pRight->op = TK_ALL;
151667 pRight->pPrior = pLeft;
151668 yymsp[-4].minor.yy457 = pRight;
151669 }else{
151670 yymsp[-4].minor.yy457 = pLeft;
151671 }
151672 }
151673 break;
151674 case 91: /* distinct ::= DISTINCT */
151675 {yymsp[0].minor.yy494 = SF_Distinct;}
151676 break;
151677 case 92: /* distinct ::= ALL */
151678 {yymsp[0].minor.yy494 = SF_All;}
151679 break;
151680 case 94: /* sclp ::= */
151681 case 127: /* orderby_opt ::= */ yytestcase(yyruleno==127);
151682 case 134: /* groupby_opt ::= */ yytestcase(yyruleno==134);
151683 case 214: /* exprlist ::= */ yytestcase(yyruleno==214);
151684 case 217: /* paren_exprlist ::= */ yytestcase(yyruleno==217);
151685 case 222: /* eidlist_opt ::= */ yytestcase(yyruleno==222);
151686 {yymsp[1].minor.yy434 = 0;}
151687 break;
151688 case 95: /* selcollist ::= sclp scanpt expr scanpt as */
151689 {
151690 yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy434, yymsp[-2].minor.yy524);
151691 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy434, &yymsp[0].minor.yy0, 1);
151692 sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy434,yymsp[-3].minor.yy294,yymsp[-1].minor.yy294);
151693 }
151694 break;
151695 case 96: /* selcollist ::= sclp scanpt STAR */
151696 {
151697 Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0);
151698 yymsp[-2].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy434, p);
151699 }
151700 break;
151701 case 97: /* selcollist ::= sclp scanpt nm DOT STAR */
151702 {
151703 Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0);
151704 Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
151705 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight);
151706 yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, pDot);
151707 }
151708 break;
151709 case 98: /* as ::= AS nm */
151710 case 109: /* dbnm ::= DOT nm */ yytestcase(yyruleno==109);
151711 case 238: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==238);
151712 case 239: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==239);
151713 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
151714 break;
151715 case 100: /* from ::= */
151716 {yymsp[1].minor.yy483 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy483));}
151717 break;
151718 case 101: /* from ::= FROM seltablist */
151719 {
151720 yymsp[-1].minor.yy483 = yymsp[0].minor.yy483;
151721 sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy483);
151722 }
151723 break;
151724 case 102: /* stl_prefix ::= seltablist joinop */
151725 {
151726 if( ALWAYS(yymsp[-1].minor.yy483 && yymsp[-1].minor.yy483->nSrc>0) ) yymsp[-1].minor.yy483->a[yymsp[-1].minor.yy483->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy494;
151727 }
151728 break;
151729 case 103: /* stl_prefix ::= */
151730 {yymsp[1].minor.yy483 = 0;}
151731 break;
151732 case 104: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */
151733 {
151734 yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151735 sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy483, &yymsp[-2].minor.yy0);
151736 }
151737 break;
151738 case 105: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */
151739 {
151740 yymsp[-8].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy483,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151741 sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy483, yymsp[-4].minor.yy434);
151742 }
151743 break;
151744 case 106: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
151745 {
151746 yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy457,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151747 }
151748 break;
151749 case 107: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */
151750 {
151751 if( yymsp[-6].minor.yy483==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy524==0 && yymsp[0].minor.yy62==0 ){
151752 yymsp[-6].minor.yy483 = yymsp[-4].minor.yy483;
151753 }else if( yymsp[-4].minor.yy483->nSrc==1 ){
151754 yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151755 if( yymsp[-6].minor.yy483 ){
151756 struct SrcList_item *pNew = &yymsp[-6].minor.yy483->a[yymsp[-6].minor.yy483->nSrc-1];
151757 struct SrcList_item *pOld = yymsp[-4].minor.yy483->a;
151758 pNew->zName = pOld->zName;
151759 pNew->zDatabase = pOld->zDatabase;
151760 pNew->pSelect = pOld->pSelect;
151761 if( pOld->fg.isTabFunc ){
151762 pNew->u1.pFuncArg = pOld->u1.pFuncArg;
@@ -151703,215 +151765,215 @@
151765 pNew->fg.isTabFunc = 1;
151766 }
151767 pOld->zName = pOld->zDatabase = 0;
151768 pOld->pSelect = 0;
151769 }
151770 sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy483);
151771 }else{
151772 Select *pSubquery;
151773 sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy483);
151774 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy483,0,0,0,0,SF_NestedFrom,0);
151775 yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy524,yymsp[0].minor.yy62);
151776 }
151777 }
151778 break;
151779 case 108: /* dbnm ::= */
151780 case 122: /* indexed_opt ::= */ yytestcase(yyruleno==122);
151781 {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;}
151782 break;
151783 case 110: /* fullname ::= nm */
151784 {
151785 yylhsminor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0);
151786 if( IN_RENAME_OBJECT && yylhsminor.yy483 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy483->a[0].zName, &yymsp[0].minor.yy0);
151787 }
151788 yymsp[0].minor.yy483 = yylhsminor.yy483;
151789 break;
151790 case 111: /* fullname ::= nm DOT nm */
151791 {
151792 yylhsminor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
151793 if( IN_RENAME_OBJECT && yylhsminor.yy483 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy483->a[0].zName, &yymsp[0].minor.yy0);
151794 }
151795 yymsp[-2].minor.yy483 = yylhsminor.yy483;
151796 break;
151797 case 112: /* xfullname ::= nm */
151798 {yymsp[0].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/}
151799 break;
151800 case 113: /* xfullname ::= nm DOT nm */
151801 {yymsp[-2].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/}
151802 break;
151803 case 114: /* xfullname ::= nm DOT nm AS nm */
151804 {
151805 yymsp[-4].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/
151806 if( yymsp[-4].minor.yy483 ) yymsp[-4].minor.yy483->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151807 }
151808 break;
151809 case 115: /* xfullname ::= nm AS nm */
151810 {
151811 yymsp[-2].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/
151812 if( yymsp[-2].minor.yy483 ) yymsp[-2].minor.yy483->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
151813 }
151814 break;
151815 case 116: /* joinop ::= COMMA|JOIN */
151816 { yymsp[0].minor.yy494 = JT_INNER; }
151817 break;
151818 case 117: /* joinop ::= JOIN_KW JOIN */
151819 {yymsp[-1].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/}
151820 break;
151821 case 118: /* joinop ::= JOIN_KW nm JOIN */
151822 {yymsp[-2].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/}
151823 break;
151824 case 119: /* joinop ::= JOIN_KW nm nm JOIN */
151825 {yymsp[-3].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
151826 break;
151827 case 120: /* on_opt ::= ON expr */
151828 case 137: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==137);
151829 case 144: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==144);
151830 case 210: /* case_else ::= ELSE expr */ yytestcase(yyruleno==210);
151831 case 231: /* vinto ::= INTO expr */ yytestcase(yyruleno==231);
151832 {yymsp[-1].minor.yy524 = yymsp[0].minor.yy524;}
151833 break;
151834 case 121: /* on_opt ::= */
151835 case 136: /* having_opt ::= */ yytestcase(yyruleno==136);
151836 case 138: /* limit_opt ::= */ yytestcase(yyruleno==138);
151837 case 143: /* where_opt ::= */ yytestcase(yyruleno==143);
151838 case 211: /* case_else ::= */ yytestcase(yyruleno==211);
151839 case 213: /* case_operand ::= */ yytestcase(yyruleno==213);
151840 case 232: /* vinto ::= */ yytestcase(yyruleno==232);
151841 {yymsp[1].minor.yy524 = 0;}
151842 break;
151843 case 123: /* indexed_opt ::= INDEXED BY nm */
151844 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
151845 break;
151846 case 124: /* indexed_opt ::= NOT INDEXED */
151847 {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;}
151848 break;
151849 case 125: /* using_opt ::= USING LP idlist RP */
151850 {yymsp[-3].minor.yy62 = yymsp[-1].minor.yy62;}
151851 break;
151852 case 126: /* using_opt ::= */
151853 case 158: /* idlist_opt ::= */ yytestcase(yyruleno==158);
151854 {yymsp[1].minor.yy62 = 0;}
151855 break;
151856 case 128: /* orderby_opt ::= ORDER BY sortlist */
151857 case 135: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==135);
151858 {yymsp[-2].minor.yy434 = yymsp[0].minor.yy434;}
151859 break;
151860 case 129: /* sortlist ::= sortlist COMMA expr sortorder */
151861 {
151862 yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy434,yymsp[-1].minor.yy524);
151863 sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy434,yymsp[0].minor.yy494);
151864 }
151865 break;
151866 case 130: /* sortlist ::= expr sortorder */
151867 {
151868 yymsp[-1].minor.yy434 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy524); /*A-overwrites-Y*/
151869 sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy434,yymsp[0].minor.yy494);
151870 }
151871 break;
151872 case 131: /* sortorder ::= ASC */
151873 {yymsp[0].minor.yy494 = SQLITE_SO_ASC;}
151874 break;
151875 case 132: /* sortorder ::= DESC */
151876 {yymsp[0].minor.yy494 = SQLITE_SO_DESC;}
151877 break;
151878 case 133: /* sortorder ::= */
151879 {yymsp[1].minor.yy494 = SQLITE_SO_UNDEFINED;}
151880 break;
151881 case 139: /* limit_opt ::= LIMIT expr */
151882 {yymsp[-1].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy524,0);}
151883 break;
151884 case 140: /* limit_opt ::= LIMIT expr OFFSET expr */
151885 {yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);}
151886 break;
151887 case 141: /* limit_opt ::= LIMIT expr COMMA expr */
151888 {yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy524,yymsp[-2].minor.yy524);}
151889 break;
151890 case 142: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt */
151891 {
151892 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy483, &yymsp[-1].minor.yy0);
151893 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy483,yymsp[0].minor.yy524,0,0);
151894 }
151895 break;
151896 case 145: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */
151897 {
151898 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy483, &yymsp[-3].minor.yy0);
151899 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy434,"set list");
151900 sqlite3Update(pParse,yymsp[-4].minor.yy483,yymsp[-1].minor.yy434,yymsp[0].minor.yy524,yymsp[-5].minor.yy494,0,0,0);
151901 }
151902 break;
151903 case 146: /* setlist ::= setlist COMMA nm EQ expr */
151904 {
151905 yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy434, yymsp[0].minor.yy524);
151906 sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy434, &yymsp[-2].minor.yy0, 1);
151907 }
151908 break;
151909 case 147: /* setlist ::= setlist COMMA LP idlist RP EQ expr */
151910 {
151911 yymsp[-6].minor.yy434 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy434, yymsp[-3].minor.yy62, yymsp[0].minor.yy524);
151912 }
151913 break;
151914 case 148: /* setlist ::= nm EQ expr */
151915 {
151916 yylhsminor.yy434 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy524);
151917 sqlite3ExprListSetName(pParse, yylhsminor.yy434, &yymsp[-2].minor.yy0, 1);
151918 }
151919 yymsp[-2].minor.yy434 = yylhsminor.yy434;
151920 break;
151921 case 149: /* setlist ::= LP idlist RP EQ expr */
151922 {
151923 yymsp[-4].minor.yy434 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy62, yymsp[0].minor.yy524);
151924 }
151925 break;
151926 case 150: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */
151927 {
151928 sqlite3Insert(pParse, yymsp[-3].minor.yy483, yymsp[-1].minor.yy457, yymsp[-2].minor.yy62, yymsp[-5].minor.yy494, yymsp[0].minor.yy136);
151929 }
151930 break;
151931 case 151: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */
151932 {
151933 sqlite3Insert(pParse, yymsp[-3].minor.yy483, 0, yymsp[-2].minor.yy62, yymsp[-5].minor.yy494, 0);
151934 }
151935 break;
151936 case 152: /* upsert ::= */
151937 { yymsp[1].minor.yy136 = 0; }
151938 break;
151939 case 153: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */
151940 { yymsp[-10].minor.yy136 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy434,yymsp[-5].minor.yy524,yymsp[-1].minor.yy434,yymsp[0].minor.yy524);}
151941 break;
151942 case 154: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */
151943 { yymsp[-7].minor.yy136 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy434,yymsp[-2].minor.yy524,0,0); }
151944 break;
151945 case 155: /* upsert ::= ON CONFLICT DO NOTHING */
151946 { yymsp[-3].minor.yy136 = sqlite3UpsertNew(pParse->db,0,0,0,0); }
151947 break;
151948 case 159: /* idlist_opt ::= LP idlist RP */
151949 {yymsp[-2].minor.yy62 = yymsp[-1].minor.yy62;}
151950 break;
151951 case 160: /* idlist ::= idlist COMMA nm */
151952 {yymsp[-2].minor.yy62 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy62,&yymsp[0].minor.yy0);}
151953 break;
151954 case 161: /* idlist ::= nm */
151955 {yymsp[0].minor.yy62 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
151956 break;
151957 case 162: /* expr ::= LP expr RP */
151958 {yymsp[-2].minor.yy524 = yymsp[-1].minor.yy524;}
151959 break;
151960 case 163: /* expr ::= ID|INDEXED */
151961 case 164: /* expr ::= JOIN_KW */ yytestcase(yyruleno==164);
151962 {yymsp[0].minor.yy524=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151963 break;
151964 case 165: /* expr ::= nm DOT nm */
151965 {
151966 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
151967 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
151968 if( IN_RENAME_OBJECT ){
151969 sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0);
151970 sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0);
151971 }
151972 yylhsminor.yy524 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
151973 }
151974 yymsp[-2].minor.yy524 = yylhsminor.yy524;
151975 break;
151976 case 166: /* expr ::= nm DOT nm DOT nm */
151977 {
151978 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
151979 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
@@ -151919,95 +151981,95 @@
151981 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
151982 if( IN_RENAME_OBJECT ){
151983 sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0);
151984 sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0);
151985 }
151986 yylhsminor.yy524 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
151987 }
151988 yymsp[-4].minor.yy524 = yylhsminor.yy524;
151989 break;
151990 case 167: /* term ::= NULL|FLOAT|BLOB */
151991 case 168: /* term ::= STRING */ yytestcase(yyruleno==168);
151992 {yymsp[0].minor.yy524=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
151993 break;
151994 case 169: /* term ::= INTEGER */
151995 {
151996 yylhsminor.yy524 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
151997 }
151998 yymsp[0].minor.yy524 = yylhsminor.yy524;
151999 break;
152000 case 170: /* expr ::= VARIABLE */
152001 {
152002 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
152003 u32 n = yymsp[0].minor.yy0.n;
152004 yymsp[0].minor.yy524 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0);
152005 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy524, n);
152006 }else{
152007 /* When doing a nested parse, one can include terms in an expression
152008 ** that look like this: #1 #2 ... These terms refer to registers
152009 ** in the virtual machine. #N is the N-th register. */
152010 Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/
152011 assert( t.n>=2 );
152012 if( pParse->nested==0 ){
152013 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
152014 yymsp[0].minor.yy524 = 0;
152015 }else{
152016 yymsp[0].minor.yy524 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
152017 if( yymsp[0].minor.yy524 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy524->iTable);
152018 }
152019 }
152020 }
152021 break;
152022 case 171: /* expr ::= expr COLLATE ID|STRING */
152023 {
152024 yymsp[-2].minor.yy524 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy524, &yymsp[0].minor.yy0, 1);
152025 }
152026 break;
152027 case 172: /* expr ::= CAST LP expr AS typetoken RP */
152028 {
152029 yymsp[-5].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
152030 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy524, yymsp[-3].minor.yy524, 0);
152031 }
152032 break;
152033 case 173: /* expr ::= ID|INDEXED LP distinct exprlist RP */
152034 {
152035 yylhsminor.yy524 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy434, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy494);
152036 }
152037 yymsp[-4].minor.yy524 = yylhsminor.yy524;
152038 break;
152039 case 174: /* expr ::= ID|INDEXED LP STAR RP */
152040 {
152041 yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0);
152042 }
152043 yymsp[-3].minor.yy524 = yylhsminor.yy524;
152044 break;
152045 case 175: /* expr ::= ID|INDEXED LP distinct exprlist RP over_clause */
152046 {
152047 yylhsminor.yy524 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy434, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy494);
152048 sqlite3WindowAttach(pParse, yylhsminor.yy524, yymsp[0].minor.yy295);
152049 }
152050 yymsp[-5].minor.yy524 = yylhsminor.yy524;
152051 break;
152052 case 176: /* expr ::= ID|INDEXED LP STAR RP over_clause */
152053 {
152054 yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0);
152055 sqlite3WindowAttach(pParse, yylhsminor.yy524, yymsp[0].minor.yy295);
152056 }
152057 yymsp[-4].minor.yy524 = yylhsminor.yy524;
152058 break;
152059 case 177: /* term ::= CTIME_KW */
152060 {
152061 yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0);
152062 }
152063 yymsp[0].minor.yy524 = yylhsminor.yy524;
152064 break;
152065 case 178: /* expr ::= LP nexprlist COMMA expr RP */
152066 {
152067 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy434, yymsp[-1].minor.yy524);
152068 yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
152069 if( yymsp[-4].minor.yy524 ){
152070 yymsp[-4].minor.yy524->x.pList = pList;
152071 }else{
152072 sqlite3ExprListDelete(pParse->db, pList);
152073 }
152074 }
152075 break;
@@ -152017,101 +152079,101 @@
152079 case 182: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==182);
152080 case 183: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==183);
152081 case 184: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==184);
152082 case 185: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==185);
152083 case 186: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==186);
152084 {yymsp[-2].minor.yy524=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);}
152085 break;
152086 case 187: /* likeop ::= NOT LIKE_KW|MATCH */
152087 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
152088 break;
152089 case 188: /* expr ::= expr likeop expr */
152090 {
152091 ExprList *pList;
152092 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
152093 yymsp[-1].minor.yy0.n &= 0x7fffffff;
152094 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy524);
152095 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy524);
152096 yymsp[-2].minor.yy524 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0);
152097 if( bNot ) yymsp[-2].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy524, 0);
152098 if( yymsp[-2].minor.yy524 ) yymsp[-2].minor.yy524->flags |= EP_InfixFunc;
152099 }
152100 break;
152101 case 189: /* expr ::= expr likeop expr ESCAPE expr */
152102 {
152103 ExprList *pList;
152104 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
152105 yymsp[-3].minor.yy0.n &= 0x7fffffff;
152106 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524);
152107 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy524);
152108 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy524);
152109 yymsp[-4].minor.yy524 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0);
152110 if( bNot ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152111 if( yymsp[-4].minor.yy524 ) yymsp[-4].minor.yy524->flags |= EP_InfixFunc;
152112 }
152113 break;
152114 case 190: /* expr ::= expr ISNULL|NOTNULL */
152115 {yymsp[-1].minor.yy524 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy524,0);}
152116 break;
152117 case 191: /* expr ::= expr NOT NULL */
152118 {yymsp[-2].minor.yy524 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy524,0);}
152119 break;
152120 case 192: /* expr ::= expr IS expr */
152121 {
152122 yymsp[-2].minor.yy524 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);
152123 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy524, yymsp[-2].minor.yy524, TK_ISNULL);
152124 }
152125 break;
152126 case 193: /* expr ::= expr IS NOT expr */
152127 {
152128 yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy524,yymsp[0].minor.yy524);
152129 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy524, yymsp[-3].minor.yy524, TK_NOTNULL);
152130 }
152131 break;
152132 case 194: /* expr ::= NOT expr */
152133 case 195: /* expr ::= BITNOT expr */ yytestcase(yyruleno==195);
152134 {yymsp[-1].minor.yy524 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy524, 0);/*A-overwrites-B*/}
152135 break;
152136 case 196: /* expr ::= PLUS|MINUS expr */
152137 {
152138 yymsp[-1].minor.yy524 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy524, 0);
152139 /*A-overwrites-B*/
152140 }
152141 break;
152142 case 197: /* between_op ::= BETWEEN */
152143 case 200: /* in_op ::= IN */ yytestcase(yyruleno==200);
152144 {yymsp[0].minor.yy494 = 0;}
152145 break;
152146 case 199: /* expr ::= expr between_op expr AND expr */
152147 {
152148 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524);
152149 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy524);
152150 yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy524, 0);
152151 if( yymsp[-4].minor.yy524 ){
152152 yymsp[-4].minor.yy524->x.pList = pList;
152153 }else{
152154 sqlite3ExprListDelete(pParse->db, pList);
152155 }
152156 if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152157 }
152158 break;
152159 case 202: /* expr ::= expr in_op LP exprlist RP */
152160 {
152161 if( yymsp[-1].minor.yy434==0 ){
152162 /* Expressions of the form
152163 **
152164 ** expr1 IN ()
152165 ** expr1 NOT IN ()
152166 **
152167 ** simplify to constants 0 (false) and 1 (true), respectively,
152168 ** regardless of the value of expr1.
152169 */
152170 if( IN_RENAME_OBJECT==0 ){
152171 sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy524);
152172 yymsp[-4].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy494],1);
152173 }
152174 }else if( yymsp[-1].minor.yy434->nExpr==1 ){
152175 /* Expressions of the form:
152176 **
152177 ** expr1 IN (?1)
152178 ** expr1 NOT IN (?2)
152179 **
@@ -152124,134 +152186,134 @@
152186 ** But, the RHS of the == or <> is marked with the EP_Generic flag
152187 ** so that it may not contribute to the computation of comparison
152188 ** affinity or the collating sequence to use for comparison. Otherwise,
152189 ** the semantics would be subtly different from IN or NOT IN.
152190 */
152191 Expr *pRHS = yymsp[-1].minor.yy434->a[0].pExpr;
152192 yymsp[-1].minor.yy434->a[0].pExpr = 0;
152193 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy434);
152194 /* pRHS cannot be NULL because a malloc error would have been detected
152195 ** before now and control would have never reached this point */
152196 if( ALWAYS(pRHS) ){
152197 pRHS->flags &= ~EP_Collate;
152198 pRHS->flags |= EP_Generic;
152199 }
152200 yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, yymsp[-3].minor.yy494 ? TK_NE : TK_EQ, yymsp[-4].minor.yy524, pRHS);
152201 }else{
152202 yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0);
152203 if( yymsp[-4].minor.yy524 ){
152204 yymsp[-4].minor.yy524->x.pList = yymsp[-1].minor.yy434;
152205 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy524);
152206 }else{
152207 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy434);
152208 }
152209 if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152210 }
152211 }
152212 break;
152213 case 203: /* expr ::= LP select RP */
152214 {
152215 yymsp[-2].minor.yy524 = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
152216 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy524, yymsp[-1].minor.yy457);
152217 }
152218 break;
152219 case 204: /* expr ::= expr in_op LP select RP */
152220 {
152221 yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0);
152222 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy524, yymsp[-1].minor.yy457);
152223 if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152224 }
152225 break;
152226 case 205: /* expr ::= expr in_op nm dbnm paren_exprlist */
152227 {
152228 SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
152229 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0);
152230 if( yymsp[0].minor.yy434 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy434);
152231 yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0);
152232 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy524, pSelect);
152233 if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0);
152234 }
152235 break;
152236 case 206: /* expr ::= EXISTS LP select RP */
152237 {
152238 Expr *p;
152239 p = yymsp[-3].minor.yy524 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
152240 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy457);
152241 }
152242 break;
152243 case 207: /* expr ::= CASE case_operand case_exprlist case_else END */
152244 {
152245 yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy524, 0);
152246 if( yymsp[-4].minor.yy524 ){
152247 yymsp[-4].minor.yy524->x.pList = yymsp[-1].minor.yy524 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy434,yymsp[-1].minor.yy524) : yymsp[-2].minor.yy434;
152248 sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy524);
152249 }else{
152250 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy434);
152251 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy524);
152252 }
152253 }
152254 break;
152255 case 208: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
152256 {
152257 yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, yymsp[-2].minor.yy524);
152258 yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, yymsp[0].minor.yy524);
152259 }
152260 break;
152261 case 209: /* case_exprlist ::= WHEN expr THEN expr */
152262 {
152263 yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524);
152264 yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy434, yymsp[0].minor.yy524);
152265 }
152266 break;
152267 case 212: /* case_operand ::= expr */
152268 {yymsp[0].minor.yy524 = yymsp[0].minor.yy524; /*A-overwrites-X*/}
152269 break;
152270 case 215: /* nexprlist ::= nexprlist COMMA expr */
152271 {yymsp[-2].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy434,yymsp[0].minor.yy524);}
152272 break;
152273 case 216: /* nexprlist ::= expr */
152274 {yymsp[0].minor.yy434 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy524); /*A-overwrites-Y*/}
152275 break;
152276 case 218: /* paren_exprlist ::= LP exprlist RP */
152277 case 223: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==223);
152278 {yymsp[-2].minor.yy434 = yymsp[-1].minor.yy434;}
152279 break;
152280 case 219: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
152281 {
152282 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
152283 sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy434, yymsp[-10].minor.yy494,
152284 &yymsp[-11].minor.yy0, yymsp[0].minor.yy524, SQLITE_SO_ASC, yymsp[-8].minor.yy494, SQLITE_IDXTYPE_APPDEF);
152285 if( IN_RENAME_OBJECT && pParse->pNewIndex ){
152286 sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0);
152287 }
152288 }
152289 break;
152290 case 220: /* uniqueflag ::= UNIQUE */
152291 case 262: /* raisetype ::= ABORT */ yytestcase(yyruleno==262);
152292 {yymsp[0].minor.yy494 = OE_Abort;}
152293 break;
152294 case 221: /* uniqueflag ::= */
152295 {yymsp[1].minor.yy494 = OE_None;}
152296 break;
152297 case 224: /* eidlist ::= eidlist COMMA nm collate sortorder */
152298 {
152299 yymsp[-4].minor.yy434 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy434, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy494, yymsp[0].minor.yy494);
152300 }
152301 break;
152302 case 225: /* eidlist ::= nm collate sortorder */
152303 {
152304 yymsp[-2].minor.yy434 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy494, yymsp[0].minor.yy494); /*A-overwrites-Y*/
152305 }
152306 break;
152307 case 228: /* cmd ::= DROP INDEX ifexists fullname */
152308 {sqlite3DropIndex(pParse, yymsp[0].minor.yy483, yymsp[-1].minor.yy494);}
152309 break;
152310 case 229: /* cmd ::= VACUUM vinto */
152311 {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy524);}
152312 break;
152313 case 230: /* cmd ::= VACUUM nm vinto */
152314 {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy524);}
152315 break;
152316 case 233: /* cmd ::= PRAGMA nm dbnm */
152317 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
152318 break;
152319 case 234: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
@@ -152269,55 +152331,55 @@
152331 case 240: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
152332 {
152333 Token all;
152334 all.z = yymsp[-3].minor.yy0.z;
152335 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
152336 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy455, &all);
152337 }
152338 break;
152339 case 241: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
152340 {
152341 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy494, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.yy483, yymsp[0].minor.yy524, yymsp[-10].minor.yy494, yymsp[-8].minor.yy494);
152342 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
152343 }
152344 break;
152345 case 242: /* trigger_time ::= BEFORE|AFTER */
152346 { yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-X*/ }
152347 break;
152348 case 243: /* trigger_time ::= INSTEAD OF */
152349 { yymsp[-1].minor.yy494 = TK_INSTEAD;}
152350 break;
152351 case 244: /* trigger_time ::= */
152352 { yymsp[1].minor.yy494 = TK_BEFORE; }
152353 break;
152354 case 245: /* trigger_event ::= DELETE|INSERT */
152355 case 246: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==246);
152356 {yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;}
152357 break;
152358 case 247: /* trigger_event ::= UPDATE OF idlist */
152359 {yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy62;}
152360 break;
152361 case 248: /* when_clause ::= */
152362 case 267: /* key_opt ::= */ yytestcase(yyruleno==267);
152363 case 315: /* filter_opt ::= */ yytestcase(yyruleno==315);
152364 { yymsp[1].minor.yy524 = 0; }
152365 break;
152366 case 249: /* when_clause ::= WHEN expr */
152367 case 268: /* key_opt ::= KEY expr */ yytestcase(yyruleno==268);
152368 { yymsp[-1].minor.yy524 = yymsp[0].minor.yy524; }
152369 break;
152370 case 250: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
152371 {
152372 assert( yymsp[-2].minor.yy455!=0 );
152373 yymsp[-2].minor.yy455->pLast->pNext = yymsp[-1].minor.yy455;
152374 yymsp[-2].minor.yy455->pLast = yymsp[-1].minor.yy455;
152375 }
152376 break;
152377 case 251: /* trigger_cmd_list ::= trigger_cmd SEMI */
152378 {
152379 assert( yymsp[-1].minor.yy455!=0 );
152380 yymsp[-1].minor.yy455->pLast = yymsp[-1].minor.yy455;
152381 }
152382 break;
152383 case 252: /* trnm ::= nm DOT nm */
152384 {
152385 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
@@ -152339,62 +152401,62 @@
152401 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
152402 "within triggers");
152403 }
152404 break;
152405 case 255: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */
152406 {yylhsminor.yy455 = sqlite3TriggerUpdateStep(pParse, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy434, yymsp[-1].minor.yy524, yymsp[-6].minor.yy494, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy294);}
152407 yymsp[-7].minor.yy455 = yylhsminor.yy455;
152408 break;
152409 case 256: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */
152410 {
152411 yylhsminor.yy455 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy62,yymsp[-2].minor.yy457,yymsp[-6].minor.yy494,yymsp[-1].minor.yy136,yymsp[-7].minor.yy294,yymsp[0].minor.yy294);/*yylhsminor.yy455-overwrites-yymsp[-6].minor.yy494*/
152412 }
152413 yymsp[-7].minor.yy455 = yylhsminor.yy455;
152414 break;
152415 case 257: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */
152416 {yylhsminor.yy455 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy524, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy294);}
152417 yymsp[-5].minor.yy455 = yylhsminor.yy455;
152418 break;
152419 case 258: /* trigger_cmd ::= scanpt select scanpt */
152420 {yylhsminor.yy455 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy457, yymsp[-2].minor.yy294, yymsp[0].minor.yy294); /*yylhsminor.yy455-overwrites-yymsp[-1].minor.yy457*/}
152421 yymsp[-2].minor.yy455 = yylhsminor.yy455;
152422 break;
152423 case 259: /* expr ::= RAISE LP IGNORE RP */
152424 {
152425 yymsp[-3].minor.yy524 = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
152426 if( yymsp[-3].minor.yy524 ){
152427 yymsp[-3].minor.yy524->affinity = OE_Ignore;
152428 }
152429 }
152430 break;
152431 case 260: /* expr ::= RAISE LP raisetype COMMA nm RP */
152432 {
152433 yymsp[-5].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
152434 if( yymsp[-5].minor.yy524 ) {
152435 yymsp[-5].minor.yy524->affinity = (char)yymsp[-3].minor.yy494;
152436 }
152437 }
152438 break;
152439 case 261: /* raisetype ::= ROLLBACK */
152440 {yymsp[0].minor.yy494 = OE_Rollback;}
152441 break;
152442 case 263: /* raisetype ::= FAIL */
152443 {yymsp[0].minor.yy494 = OE_Fail;}
152444 break;
152445 case 264: /* cmd ::= DROP TRIGGER ifexists fullname */
152446 {
152447 sqlite3DropTrigger(pParse,yymsp[0].minor.yy483,yymsp[-1].minor.yy494);
152448 }
152449 break;
152450 case 265: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
152451 {
152452 sqlite3Attach(pParse, yymsp[-3].minor.yy524, yymsp[-1].minor.yy524, yymsp[0].minor.yy524);
152453 }
152454 break;
152455 case 266: /* cmd ::= DETACH database_kw_opt expr */
152456 {
152457 sqlite3Detach(pParse, yymsp[0].minor.yy524);
152458 }
152459 break;
152460 case 269: /* cmd ::= REINDEX */
152461 {sqlite3Reindex(pParse, 0, 0);}
152462 break;
@@ -152407,11 +152469,11 @@
152469 case 272: /* cmd ::= ANALYZE nm dbnm */
152470 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
152471 break;
152472 case 273: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
152473 {
152474 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy483,&yymsp[0].minor.yy0);
152475 }
152476 break;
152477 case 274: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
152478 {
152479 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
@@ -152419,16 +152481,16 @@
152481 }
152482 break;
152483 case 275: /* add_column_fullname ::= fullname */
152484 {
152485 disableLookaside(pParse);
152486 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy483);
152487 }
152488 break;
152489 case 276: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
152490 {
152491 sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy483, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
152492 }
152493 break;
152494 case 277: /* cmd ::= create_vtab */
152495 {sqlite3VtabFinishParse(pParse,0);}
152496 break;
@@ -152435,11 +152497,11 @@
152497 case 278: /* cmd ::= create_vtab LP vtabarglist RP */
152498 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
152499 break;
152500 case 279: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
152501 {
152502 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy494);
152503 }
152504 break;
152505 case 280: /* vtabarg ::= */
152506 {sqlite3VtabArgInit(pParse);}
152507 break;
@@ -152448,148 +152510,148 @@
152510 case 283: /* lp ::= LP */ yytestcase(yyruleno==283);
152511 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
152512 break;
152513 case 284: /* with ::= WITH wqlist */
152514 case 285: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==285);
152515 { sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); }
152516 break;
152517 case 286: /* wqlist ::= nm eidlist_opt AS LP select RP */
152518 {
152519 yymsp[-5].minor.yy59 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy434, yymsp[-1].minor.yy457); /*A-overwrites-X*/
152520 }
152521 break;
152522 case 287: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
152523 {
152524 yymsp[-7].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy59, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy434, yymsp[-1].minor.yy457);
152525 }
152526 break;
152527 case 288: /* windowdefn_list ::= windowdefn */
152528 { yylhsminor.yy295 = yymsp[0].minor.yy295; }
152529 yymsp[0].minor.yy295 = yylhsminor.yy295;
152530 break;
152531 case 289: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */
152532 {
152533 assert( yymsp[0].minor.yy295!=0 );
152534 sqlite3WindowChain(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy295);
152535 yymsp[0].minor.yy295->pNextWin = yymsp[-2].minor.yy295;
152536 yylhsminor.yy295 = yymsp[0].minor.yy295;
152537 }
152538 yymsp[-2].minor.yy295 = yylhsminor.yy295;
152539 break;
152540 case 290: /* windowdefn ::= nm AS LP window RP */
152541 {
152542 if( ALWAYS(yymsp[-1].minor.yy295) ){
152543 yymsp[-1].minor.yy295->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n);
152544 }
152545 yylhsminor.yy295 = yymsp[-1].minor.yy295;
152546 }
152547 yymsp[-4].minor.yy295 = yylhsminor.yy295;
152548 break;
152549 case 291: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */
152550 {
152551 yymsp[-4].minor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy434, yymsp[-1].minor.yy434, 0);
152552 }
152553 break;
152554 case 292: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */
152555 {
152556 yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy434, yymsp[-1].minor.yy434, &yymsp[-5].minor.yy0);
152557 }
152558 yymsp[-5].minor.yy295 = yylhsminor.yy295;
152559 break;
152560 case 293: /* window ::= ORDER BY sortlist frame_opt */
152561 {
152562 yymsp[-3].minor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, yymsp[-1].minor.yy434, 0);
152563 }
152564 break;
152565 case 294: /* window ::= nm ORDER BY sortlist frame_opt */
152566 {
152567 yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, yymsp[-1].minor.yy434, &yymsp[-4].minor.yy0);
152568 }
152569 yymsp[-4].minor.yy295 = yylhsminor.yy295;
152570 break;
152571 case 295: /* window ::= frame_opt */
152572 {
152573 yylhsminor.yy295 = yymsp[0].minor.yy295;
152574 }
152575 yymsp[0].minor.yy295 = yylhsminor.yy295;
152576 break;
152577 case 296: /* window ::= nm frame_opt */
152578 {
152579 yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, 0, &yymsp[-1].minor.yy0);
152580 }
152581 yymsp[-1].minor.yy295 = yylhsminor.yy295;
152582 break;
152583 case 297: /* frame_opt ::= */
152584 {
152585 yymsp[1].minor.yy295 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0);
152586 }
152587 break;
152588 case 298: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */
152589 {
152590 yylhsminor.yy295 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy494, yymsp[-1].minor.yy201.eType, yymsp[-1].minor.yy201.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy238);
152591 }
152592 yymsp[-2].minor.yy295 = yylhsminor.yy295;
152593 break;
152594 case 299: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */
152595 {
152596 yylhsminor.yy295 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy494, yymsp[-3].minor.yy201.eType, yymsp[-3].minor.yy201.pExpr, yymsp[-1].minor.yy201.eType, yymsp[-1].minor.yy201.pExpr, yymsp[0].minor.yy238);
152597 }
152598 yymsp[-5].minor.yy295 = yylhsminor.yy295;
152599 break;
152600 case 301: /* frame_bound_s ::= frame_bound */
152601 case 303: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==303);
152602 {yylhsminor.yy201 = yymsp[0].minor.yy201;}
152603 yymsp[0].minor.yy201 = yylhsminor.yy201;
152604 break;
152605 case 302: /* frame_bound_s ::= UNBOUNDED PRECEDING */
152606 case 304: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==304);
152607 case 306: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==306);
152608 {yylhsminor.yy201.eType = yymsp[-1].major; yylhsminor.yy201.pExpr = 0;}
152609 yymsp[-1].minor.yy201 = yylhsminor.yy201;
152610 break;
152611 case 305: /* frame_bound ::= expr PRECEDING|FOLLOWING */
152612 {yylhsminor.yy201.eType = yymsp[0].major; yylhsminor.yy201.pExpr = yymsp[-1].minor.yy524;}
152613 yymsp[-1].minor.yy201 = yylhsminor.yy201;
152614 break;
152615 case 307: /* frame_exclude_opt ::= */
152616 {yymsp[1].minor.yy238 = 0;}
152617 break;
152618 case 308: /* frame_exclude_opt ::= EXCLUDE frame_exclude */
152619 {yymsp[-1].minor.yy238 = yymsp[0].minor.yy238;}
152620 break;
152621 case 309: /* frame_exclude ::= NO OTHERS */
152622 case 310: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==310);
152623 {yymsp[-1].minor.yy238 = yymsp[-1].major; /*A-overwrites-X*/}
152624 break;
152625 case 311: /* frame_exclude ::= GROUP|TIES */
152626 {yymsp[0].minor.yy238 = yymsp[0].major; /*A-overwrites-X*/}
152627 break;
152628 case 312: /* window_clause ::= WINDOW windowdefn_list */
152629 { yymsp[-1].minor.yy295 = yymsp[0].minor.yy295; }
152630 break;
152631 case 313: /* over_clause ::= filter_opt OVER LP window RP */
152632 {
152633 yylhsminor.yy295 = yymsp[-1].minor.yy295;
152634 assert( yylhsminor.yy295!=0 );
152635 yylhsminor.yy295->pFilter = yymsp[-4].minor.yy524;
152636 }
152637 yymsp[-4].minor.yy295 = yylhsminor.yy295;
152638 break;
152639 case 314: /* over_clause ::= filter_opt OVER nm */
152640 {
152641 yylhsminor.yy295 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window));
152642 if( yylhsminor.yy295 ){
152643 yylhsminor.yy295->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n);
152644 yylhsminor.yy295->pFilter = yymsp[-2].minor.yy524;
152645 }else{
152646 sqlite3ExprDelete(pParse->db, yymsp[-2].minor.yy524);
152647 }
152648 }
152649 yymsp[-2].minor.yy295 = yylhsminor.yy295;
152650 break;
152651 case 316: /* filter_opt ::= FILTER LP WHERE expr RP */
152652 { yymsp[-4].minor.yy524 = yymsp[-1].minor.yy524; }
152653 break;
152654 default:
152655 /* (317) input ::= cmdlist */ yytestcase(yyruleno==317);
152656 /* (318) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==318);
152657 /* (319) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=319);
@@ -211378,12 +211440,12 @@
211440 }else if( p2->pLeaf==0 ){ /* If p2 is at EOF */
211441 iRes = i1;
211442 }else{
211443 int res = fts5BufferCompare(&p1->term, &p2->term);
211444 if( res==0 ){
211445 assert_nc( i2>i1 );
211446 assert_nc( i2!=0 );
211447 pRes->bTermEq = 1;
211448 if( p1->iRowid==p2->iRowid ){
211449 p1->bDel = p2->bDel;
211450 return i2;
211451 }
@@ -217957,11 +218019,11 @@
218019 int nArg, /* Number of args */
218020 sqlite3_value **apUnused /* Function arguments */
218021 ){
218022 assert( nArg==0 );
218023 UNUSED_PARAM2(nArg, apUnused);
218024 sqlite3_result_text(pCtx, "fts5: 2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f", -1, SQLITE_TRANSIENT);
218025 }
218026
218027 /*
218028 ** Return true if zName is the extension on one of the shadow tables used
218029 ** by this module.
@@ -222721,12 +222783,12 @@
222783 }
222784 #endif /* SQLITE_CORE */
222785 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
222786
222787 /************** End of stmt.c ************************************************/
222788 #if __LINE__!=222788
222789 #undef SQLITE_SOURCE_ID
222790 #define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35alt2"
222791 #endif
222792 /* Return the source-id for this library */
222793 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
222794 /************************** End of sqlite3.c ******************************/
222795
+2 -2
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -123,11 +123,11 @@
123123
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124124
** [sqlite_version()] and [sqlite_source_id()].
125125
*/
126126
#define SQLITE_VERSION "3.28.0"
127127
#define SQLITE_VERSION_NUMBER 3028000
128
-#define SQLITE_SOURCE_ID "2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2ad28f"
128
+#define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f"
129129
130130
/*
131131
** CAPI3REF: Run-Time Library Version Numbers
132132
** KEYWORDS: sqlite3_version sqlite3_sourceid
133133
**
@@ -4978,11 +4978,11 @@
49784978
** <td>&rarr;&nbsp;&nbsp;<td>Best numeric datatype of the value
49794979
** <tr><td><b>sqlite3_value_nochange&nbsp;&nbsp;</b>
49804980
** <td>&rarr;&nbsp;&nbsp;<td>True if the column is unchanged in an UPDATE
49814981
** against a virtual table.
49824982
** <tr><td><b>sqlite3_value_frombind&nbsp;&nbsp;</b>
4983
-** <td>&rarr;&nbsp;&nbsp;<td>True if value originated a bound parameter
4983
+** <td>&rarr;&nbsp;&nbsp;<td>True if value originated from a [bound parameter]
49844984
** </table></blockquote>
49854985
**
49864986
** <b>Details:</b>
49874987
**
49884988
** These routines extract type, size, and content information from
49894989
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -123,11 +123,11 @@
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.28.0"
127 #define SQLITE_VERSION_NUMBER 3028000
128 #define SQLITE_SOURCE_ID "2019-04-03 17:48:10 8d3af2010f4f652865f5c0d18e3bc793de05f8e75e75cc77786f61004b2ad28f"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
@@ -4978,11 +4978,11 @@
4978 ** <td>&rarr;&nbsp;&nbsp;<td>Best numeric datatype of the value
4979 ** <tr><td><b>sqlite3_value_nochange&nbsp;&nbsp;</b>
4980 ** <td>&rarr;&nbsp;&nbsp;<td>True if the column is unchanged in an UPDATE
4981 ** against a virtual table.
4982 ** <tr><td><b>sqlite3_value_frombind&nbsp;&nbsp;</b>
4983 ** <td>&rarr;&nbsp;&nbsp;<td>True if value originated a bound parameter
4984 ** </table></blockquote>
4985 **
4986 ** <b>Details:</b>
4987 **
4988 ** These routines extract type, size, and content information from
4989
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -123,11 +123,11 @@
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.28.0"
127 #define SQLITE_VERSION_NUMBER 3028000
128 #define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
@@ -4978,11 +4978,11 @@
4978 ** <td>&rarr;&nbsp;&nbsp;<td>Best numeric datatype of the value
4979 ** <tr><td><b>sqlite3_value_nochange&nbsp;&nbsp;</b>
4980 ** <td>&rarr;&nbsp;&nbsp;<td>True if the column is unchanged in an UPDATE
4981 ** against a virtual table.
4982 ** <tr><td><b>sqlite3_value_frombind&nbsp;&nbsp;</b>
4983 ** <td>&rarr;&nbsp;&nbsp;<td>True if value originated from a [bound parameter]
4984 ** </table></blockquote>
4985 **
4986 ** <b>Details:</b>
4987 **
4988 ** These routines extract type, size, and content information from
4989

Keyboard Shortcuts

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