Fossil SCM

Update to the latest SQLite from upstream and make other changes, all to silence a few utterly harmless compiler warnings about incompletely initialized structures.

drh 2017-07-12 18:08 trunk
Commit 2f225b821f41fe47144dd23db61ee364e71978038034a13d5899013cd5c64669
+3
--- src/foci.c
+++ src/foci.c
@@ -264,9 +264,12 @@
264264
0, /* xSync */
265265
0, /* xCommit */
266266
0, /* xRollback */
267267
0, /* xFindMethod */
268268
0, /* xRename */
269
+ 0, /* xSavepoint */
270
+ 0, /* xRelease */
271
+ 0 /* xRollbackTo */
269272
};
270273
sqlite3_create_module(db, "files_of_checkin", &foci_module, 0);
271274
return SQLITE_OK;
272275
}
273276
--- src/foci.c
+++ src/foci.c
@@ -264,9 +264,12 @@
264 0, /* xSync */
265 0, /* xCommit */
266 0, /* xRollback */
267 0, /* xFindMethod */
268 0, /* xRename */
 
 
 
269 };
270 sqlite3_create_module(db, "files_of_checkin", &foci_module, 0);
271 return SQLITE_OK;
272 }
273
--- src/foci.c
+++ src/foci.c
@@ -264,9 +264,12 @@
264 0, /* xSync */
265 0, /* xCommit */
266 0, /* xRollback */
267 0, /* xFindMethod */
268 0, /* xRename */
269 0, /* xSavepoint */
270 0, /* xRelease */
271 0 /* xRollbackTo */
272 };
273 sqlite3_create_module(db, "files_of_checkin", &foci_module, 0);
274 return SQLITE_OK;
275 }
276
+19 -3
--- src/shell.c
+++ src/shell.c
@@ -782,11 +782,11 @@
782782
int i = 0;
783783
const char *zIn = (const char*)sqlite3_value_text(apVal[0]);
784784
const char *zSchema = (const char*)sqlite3_value_text(apVal[1]);
785785
assert( nVal==2 );
786786
if( zIn!=0 && strncmp(zIn, "CREATE ", 7)==0 ){
787
- for(i=0; i<sizeof(aPrefix)/sizeof(aPrefix[0]); i++){
787
+ for(i=0; i<(int)(sizeof(aPrefix)/sizeof(aPrefix[0])); i++){
788788
int n = strlen30(aPrefix[i]);
789789
if( strncmp(zIn+7, aPrefix[i], n)==0 && zIn[n+7]==' ' ){
790790
char cQuote = quoteChar(zSchema);
791791
char *z;
792792
if( cQuote ){
@@ -807,11 +807,11 @@
807807
** below by the ../tool/mkshellc.tcl script. Before processing that included
808808
** code, we need to override some macros to make the included program code
809809
** work here in the middle of this regular program.
810810
*/
811811
#define SQLITE_EXTENSION_INIT1
812
-#define SQLITE_EXTENSION_INIT2(X)
812
+#define SQLITE_EXTENSION_INIT2(X) (void)(X)
813813
814814
/************************* Begin ../ext/misc/shathree.c ******************/
815815
/*
816816
** 2017-03-08
817817
**
@@ -1559,10 +1559,11 @@
15591559
const char *zName;
15601560
FILE *in;
15611561
long nIn;
15621562
void *pBuf;
15631563
1564
+ (void)(argc); /* Unused parameter */
15641565
zName = (const char*)sqlite3_value_text(argv[0]);
15651566
if( zName==0 ) return;
15661567
in = fopen(zName, "rb");
15671568
if( in==0 ) return;
15681569
fseek(in, 0, SEEK_END);
@@ -1591,10 +1592,11 @@
15911592
FILE *out;
15921593
const char *z;
15931594
sqlite3_int64 rc;
15941595
const char *zFile;
15951596
1597
+ (void)(argc); /* Unused parameter */
15961598
zFile = (const char*)sqlite3_value_text(argv[0]);
15971599
if( zFile==0 ) return;
15981600
out = fopen(zFile, "wb");
15991601
if( out==0 ) return;
16001602
z = (const char*)sqlite3_value_blob(argv[1]);
@@ -1735,10 +1737,15 @@
17351737
char **pzErr
17361738
){
17371739
completion_vtab *pNew;
17381740
int rc;
17391741
1742
+ (void)(pAux); /* Unused parameter */
1743
+ (void)(argc); /* Unused parameter */
1744
+ (void)(argv); /* Unused parameter */
1745
+ (void)(pzErr); /* Unused parameter */
1746
+
17401747
/* Column numbers */
17411748
#define COMPLETION_COLUMN_CANDIDATE 0 /* Suggested completion of the input */
17421749
#define COMPLETION_COLUMN_PREFIX 1 /* Prefix of the word to be completed */
17431750
#define COMPLETION_COLUMN_WHOLELINE 2 /* Entire line seen so far */
17441751
#define COMPLETION_COLUMN_PHASE 3 /* ePhase - used for debugging only */
@@ -1821,10 +1828,12 @@
18211828
"ROLLBACK", "ROW", "SAVEPOINT", "SELECT", "SET", "TABLE", "TEMP",
18221829
"TEMPORARY", "THEN", "TO", "TRANSACTION", "TRIGGER", "UNION", "UNIQUE",
18231830
"UPDATE", "USING", "VACUUM", "VALUES", "VIEW", "VIRTUAL", "WHEN", "WHERE",
18241831
"WITH", "WITHOUT",
18251832
};
1833
+#define completionKwCount \
1834
+ (int)(sizeof(completionKwrds)/sizeof(completionKwrds[0]))
18261835
18271836
/*
18281837
** Advance a completion_cursor to its next row of output.
18291838
**
18301839
** The ->ePhase, ->j, and ->pStmt fields of the completion_cursor object
@@ -1844,11 +1853,11 @@
18441853
int iCol = -1; /* If >=0, step pCur->pStmt and use the i-th column */
18451854
pCur->iRowid++;
18461855
while( pCur->ePhase!=COMPLETION_EOF ){
18471856
switch( pCur->ePhase ){
18481857
case COMPLETION_KEYWORDS: {
1849
- if( pCur->j >= sizeof(completionKwrds)/sizeof(completionKwrds[0]) ){
1858
+ if( pCur->j >= completionKwCount ){
18501859
pCur->zCurrentRow = 0;
18511860
pCur->ePhase = COMPLETION_DATABASES;
18521861
}else{
18531862
pCur->zCurrentRow = completionKwrds[pCur->j++];
18541863
}
@@ -2001,10 +2010,12 @@
20012010
int idxNum, const char *idxStr,
20022011
int argc, sqlite3_value **argv
20032012
){
20042013
completion_cursor *pCur = (completion_cursor *)pVtabCursor;
20052014
int iArg = 0;
2015
+ (void)(idxStr); /* Unused parameter */
2016
+ (void)(argc); /* Unused parameter */
20062017
completionCursorReset(pCur);
20072018
if( idxNum & 1 ){
20082019
pCur->nPrefix = sqlite3_value_bytes(argv[iArg]);
20092020
if( pCur->nPrefix>0 ){
20102021
pCur->zPrefix = sqlite3_mprintf("%s", sqlite3_value_text(argv[iArg]));
@@ -2055,10 +2066,11 @@
20552066
int prefixIdx = -1; /* Index of the start= constraint, or -1 if none */
20562067
int wholelineIdx = -1; /* Index of the stop= constraint, or -1 if none */
20572068
int nArg = 0; /* Number of arguments that completeFilter() expects */
20582069
const struct sqlite3_index_constraint *pConstraint;
20592070
2071
+ (void)(tab); /* Unused parameter */
20602072
pConstraint = pIdxInfo->aConstraint;
20612073
for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){
20622074
if( pConstraint->usable==0 ) continue;
20632075
if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue;
20642076
switch( pConstraint->iColumn ){
@@ -2109,10 +2121,13 @@
21092121
0, /* xSync */
21102122
0, /* xCommit */
21112123
0, /* xRollback */
21122124
0, /* xFindMethod */
21132125
0, /* xRename */
2126
+ 0, /* xSavepoint */
2127
+ 0, /* xRelease */
2128
+ 0 /* xRollbackTo */
21142129
};
21152130
21162131
#endif /* SQLITE_OMIT_VIRTUALTABLE */
21172132
21182133
int sqlite3CompletionVtabInit(sqlite3 *db){
@@ -2131,10 +2146,11 @@
21312146
char **pzErrMsg,
21322147
const sqlite3_api_routines *pApi
21332148
){
21342149
int rc = SQLITE_OK;
21352150
SQLITE_EXTENSION_INIT2(pApi);
2151
+ (void)(pzErrMsg); /* Unused parameter */
21362152
#ifndef SQLITE_OMIT_VIRTUALTABLE
21372153
rc = sqlite3CompletionVtabInit(db);
21382154
#endif
21392155
return rc;
21402156
}
21412157
--- src/shell.c
+++ src/shell.c
@@ -782,11 +782,11 @@
782 int i = 0;
783 const char *zIn = (const char*)sqlite3_value_text(apVal[0]);
784 const char *zSchema = (const char*)sqlite3_value_text(apVal[1]);
785 assert( nVal==2 );
786 if( zIn!=0 && strncmp(zIn, "CREATE ", 7)==0 ){
787 for(i=0; i<sizeof(aPrefix)/sizeof(aPrefix[0]); i++){
788 int n = strlen30(aPrefix[i]);
789 if( strncmp(zIn+7, aPrefix[i], n)==0 && zIn[n+7]==' ' ){
790 char cQuote = quoteChar(zSchema);
791 char *z;
792 if( cQuote ){
@@ -807,11 +807,11 @@
807 ** below by the ../tool/mkshellc.tcl script. Before processing that included
808 ** code, we need to override some macros to make the included program code
809 ** work here in the middle of this regular program.
810 */
811 #define SQLITE_EXTENSION_INIT1
812 #define SQLITE_EXTENSION_INIT2(X)
813
814 /************************* Begin ../ext/misc/shathree.c ******************/
815 /*
816 ** 2017-03-08
817 **
@@ -1559,10 +1559,11 @@
1559 const char *zName;
1560 FILE *in;
1561 long nIn;
1562 void *pBuf;
1563
 
1564 zName = (const char*)sqlite3_value_text(argv[0]);
1565 if( zName==0 ) return;
1566 in = fopen(zName, "rb");
1567 if( in==0 ) return;
1568 fseek(in, 0, SEEK_END);
@@ -1591,10 +1592,11 @@
1591 FILE *out;
1592 const char *z;
1593 sqlite3_int64 rc;
1594 const char *zFile;
1595
 
1596 zFile = (const char*)sqlite3_value_text(argv[0]);
1597 if( zFile==0 ) return;
1598 out = fopen(zFile, "wb");
1599 if( out==0 ) return;
1600 z = (const char*)sqlite3_value_blob(argv[1]);
@@ -1735,10 +1737,15 @@
1735 char **pzErr
1736 ){
1737 completion_vtab *pNew;
1738 int rc;
1739
 
 
 
 
 
1740 /* Column numbers */
1741 #define COMPLETION_COLUMN_CANDIDATE 0 /* Suggested completion of the input */
1742 #define COMPLETION_COLUMN_PREFIX 1 /* Prefix of the word to be completed */
1743 #define COMPLETION_COLUMN_WHOLELINE 2 /* Entire line seen so far */
1744 #define COMPLETION_COLUMN_PHASE 3 /* ePhase - used for debugging only */
@@ -1821,10 +1828,12 @@
1821 "ROLLBACK", "ROW", "SAVEPOINT", "SELECT", "SET", "TABLE", "TEMP",
1822 "TEMPORARY", "THEN", "TO", "TRANSACTION", "TRIGGER", "UNION", "UNIQUE",
1823 "UPDATE", "USING", "VACUUM", "VALUES", "VIEW", "VIRTUAL", "WHEN", "WHERE",
1824 "WITH", "WITHOUT",
1825 };
 
 
1826
1827 /*
1828 ** Advance a completion_cursor to its next row of output.
1829 **
1830 ** The ->ePhase, ->j, and ->pStmt fields of the completion_cursor object
@@ -1844,11 +1853,11 @@
1844 int iCol = -1; /* If >=0, step pCur->pStmt and use the i-th column */
1845 pCur->iRowid++;
1846 while( pCur->ePhase!=COMPLETION_EOF ){
1847 switch( pCur->ePhase ){
1848 case COMPLETION_KEYWORDS: {
1849 if( pCur->j >= sizeof(completionKwrds)/sizeof(completionKwrds[0]) ){
1850 pCur->zCurrentRow = 0;
1851 pCur->ePhase = COMPLETION_DATABASES;
1852 }else{
1853 pCur->zCurrentRow = completionKwrds[pCur->j++];
1854 }
@@ -2001,10 +2010,12 @@
2001 int idxNum, const char *idxStr,
2002 int argc, sqlite3_value **argv
2003 ){
2004 completion_cursor *pCur = (completion_cursor *)pVtabCursor;
2005 int iArg = 0;
 
 
2006 completionCursorReset(pCur);
2007 if( idxNum & 1 ){
2008 pCur->nPrefix = sqlite3_value_bytes(argv[iArg]);
2009 if( pCur->nPrefix>0 ){
2010 pCur->zPrefix = sqlite3_mprintf("%s", sqlite3_value_text(argv[iArg]));
@@ -2055,10 +2066,11 @@
2055 int prefixIdx = -1; /* Index of the start= constraint, or -1 if none */
2056 int wholelineIdx = -1; /* Index of the stop= constraint, or -1 if none */
2057 int nArg = 0; /* Number of arguments that completeFilter() expects */
2058 const struct sqlite3_index_constraint *pConstraint;
2059
 
2060 pConstraint = pIdxInfo->aConstraint;
2061 for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){
2062 if( pConstraint->usable==0 ) continue;
2063 if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue;
2064 switch( pConstraint->iColumn ){
@@ -2109,10 +2121,13 @@
2109 0, /* xSync */
2110 0, /* xCommit */
2111 0, /* xRollback */
2112 0, /* xFindMethod */
2113 0, /* xRename */
 
 
 
2114 };
2115
2116 #endif /* SQLITE_OMIT_VIRTUALTABLE */
2117
2118 int sqlite3CompletionVtabInit(sqlite3 *db){
@@ -2131,10 +2146,11 @@
2131 char **pzErrMsg,
2132 const sqlite3_api_routines *pApi
2133 ){
2134 int rc = SQLITE_OK;
2135 SQLITE_EXTENSION_INIT2(pApi);
 
2136 #ifndef SQLITE_OMIT_VIRTUALTABLE
2137 rc = sqlite3CompletionVtabInit(db);
2138 #endif
2139 return rc;
2140 }
2141
--- src/shell.c
+++ src/shell.c
@@ -782,11 +782,11 @@
782 int i = 0;
783 const char *zIn = (const char*)sqlite3_value_text(apVal[0]);
784 const char *zSchema = (const char*)sqlite3_value_text(apVal[1]);
785 assert( nVal==2 );
786 if( zIn!=0 && strncmp(zIn, "CREATE ", 7)==0 ){
787 for(i=0; i<(int)(sizeof(aPrefix)/sizeof(aPrefix[0])); i++){
788 int n = strlen30(aPrefix[i]);
789 if( strncmp(zIn+7, aPrefix[i], n)==0 && zIn[n+7]==' ' ){
790 char cQuote = quoteChar(zSchema);
791 char *z;
792 if( cQuote ){
@@ -807,11 +807,11 @@
807 ** below by the ../tool/mkshellc.tcl script. Before processing that included
808 ** code, we need to override some macros to make the included program code
809 ** work here in the middle of this regular program.
810 */
811 #define SQLITE_EXTENSION_INIT1
812 #define SQLITE_EXTENSION_INIT2(X) (void)(X)
813
814 /************************* Begin ../ext/misc/shathree.c ******************/
815 /*
816 ** 2017-03-08
817 **
@@ -1559,10 +1559,11 @@
1559 const char *zName;
1560 FILE *in;
1561 long nIn;
1562 void *pBuf;
1563
1564 (void)(argc); /* Unused parameter */
1565 zName = (const char*)sqlite3_value_text(argv[0]);
1566 if( zName==0 ) return;
1567 in = fopen(zName, "rb");
1568 if( in==0 ) return;
1569 fseek(in, 0, SEEK_END);
@@ -1591,10 +1592,11 @@
1592 FILE *out;
1593 const char *z;
1594 sqlite3_int64 rc;
1595 const char *zFile;
1596
1597 (void)(argc); /* Unused parameter */
1598 zFile = (const char*)sqlite3_value_text(argv[0]);
1599 if( zFile==0 ) return;
1600 out = fopen(zFile, "wb");
1601 if( out==0 ) return;
1602 z = (const char*)sqlite3_value_blob(argv[1]);
@@ -1735,10 +1737,15 @@
1737 char **pzErr
1738 ){
1739 completion_vtab *pNew;
1740 int rc;
1741
1742 (void)(pAux); /* Unused parameter */
1743 (void)(argc); /* Unused parameter */
1744 (void)(argv); /* Unused parameter */
1745 (void)(pzErr); /* Unused parameter */
1746
1747 /* Column numbers */
1748 #define COMPLETION_COLUMN_CANDIDATE 0 /* Suggested completion of the input */
1749 #define COMPLETION_COLUMN_PREFIX 1 /* Prefix of the word to be completed */
1750 #define COMPLETION_COLUMN_WHOLELINE 2 /* Entire line seen so far */
1751 #define COMPLETION_COLUMN_PHASE 3 /* ePhase - used for debugging only */
@@ -1821,10 +1828,12 @@
1828 "ROLLBACK", "ROW", "SAVEPOINT", "SELECT", "SET", "TABLE", "TEMP",
1829 "TEMPORARY", "THEN", "TO", "TRANSACTION", "TRIGGER", "UNION", "UNIQUE",
1830 "UPDATE", "USING", "VACUUM", "VALUES", "VIEW", "VIRTUAL", "WHEN", "WHERE",
1831 "WITH", "WITHOUT",
1832 };
1833 #define completionKwCount \
1834 (int)(sizeof(completionKwrds)/sizeof(completionKwrds[0]))
1835
1836 /*
1837 ** Advance a completion_cursor to its next row of output.
1838 **
1839 ** The ->ePhase, ->j, and ->pStmt fields of the completion_cursor object
@@ -1844,11 +1853,11 @@
1853 int iCol = -1; /* If >=0, step pCur->pStmt and use the i-th column */
1854 pCur->iRowid++;
1855 while( pCur->ePhase!=COMPLETION_EOF ){
1856 switch( pCur->ePhase ){
1857 case COMPLETION_KEYWORDS: {
1858 if( pCur->j >= completionKwCount ){
1859 pCur->zCurrentRow = 0;
1860 pCur->ePhase = COMPLETION_DATABASES;
1861 }else{
1862 pCur->zCurrentRow = completionKwrds[pCur->j++];
1863 }
@@ -2001,10 +2010,12 @@
2010 int idxNum, const char *idxStr,
2011 int argc, sqlite3_value **argv
2012 ){
2013 completion_cursor *pCur = (completion_cursor *)pVtabCursor;
2014 int iArg = 0;
2015 (void)(idxStr); /* Unused parameter */
2016 (void)(argc); /* Unused parameter */
2017 completionCursorReset(pCur);
2018 if( idxNum & 1 ){
2019 pCur->nPrefix = sqlite3_value_bytes(argv[iArg]);
2020 if( pCur->nPrefix>0 ){
2021 pCur->zPrefix = sqlite3_mprintf("%s", sqlite3_value_text(argv[iArg]));
@@ -2055,10 +2066,11 @@
2066 int prefixIdx = -1; /* Index of the start= constraint, or -1 if none */
2067 int wholelineIdx = -1; /* Index of the stop= constraint, or -1 if none */
2068 int nArg = 0; /* Number of arguments that completeFilter() expects */
2069 const struct sqlite3_index_constraint *pConstraint;
2070
2071 (void)(tab); /* Unused parameter */
2072 pConstraint = pIdxInfo->aConstraint;
2073 for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){
2074 if( pConstraint->usable==0 ) continue;
2075 if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue;
2076 switch( pConstraint->iColumn ){
@@ -2109,10 +2121,13 @@
2121 0, /* xSync */
2122 0, /* xCommit */
2123 0, /* xRollback */
2124 0, /* xFindMethod */
2125 0, /* xRename */
2126 0, /* xSavepoint */
2127 0, /* xRelease */
2128 0 /* xRollbackTo */
2129 };
2130
2131 #endif /* SQLITE_OMIT_VIRTUALTABLE */
2132
2133 int sqlite3CompletionVtabInit(sqlite3 *db){
@@ -2131,10 +2146,11 @@
2146 char **pzErrMsg,
2147 const sqlite3_api_routines *pApi
2148 ){
2149 int rc = SQLITE_OK;
2150 SQLITE_EXTENSION_INIT2(pApi);
2151 (void)(pzErrMsg); /* Unused parameter */
2152 #ifndef SQLITE_OMIT_VIRTUALTABLE
2153 rc = sqlite3CompletionVtabInit(db);
2154 #endif
2155 return rc;
2156 }
2157
+654 -601
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1150,11 +1150,11 @@
11501150
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
11511151
** [sqlite_version()] and [sqlite_source_id()].
11521152
*/
11531153
#define SQLITE_VERSION "3.20.0"
11541154
#define SQLITE_VERSION_NUMBER 3020000
1155
-#define SQLITE_SOURCE_ID "2017-07-11 13:59:07 95cd1d9f8baa6be305c9a8bfa26fef2a403f2d5b3b5c9c55382ec04f0bc98d40"
1155
+#define SQLITE_SOURCE_ID "2017-07-12 18:05:54 604c11d1a39f09e47b6fcee0f8b1c1054f9dbbc7b2c1cf93312aeaa4b7095018"
11561156
11571157
/*
11581158
** CAPI3REF: Run-Time Library Version Numbers
11591159
** KEYWORDS: sqlite3_version sqlite3_sourceid
11601160
**
@@ -16074,11 +16074,11 @@
1607416074
/*
1607516075
** The following are the meanings of bits in the Expr.flags field.
1607616076
*/
1607716077
#define EP_FromJoin 0x000001 /* Originates in ON/USING clause of outer join */
1607816078
#define EP_Agg 0x000002 /* Contains one or more aggregate functions */
16079
-#define EP_Resolved 0x000004 /* IDs have been resolved to COLUMNs */
16079
+ /* 0x000004 // available for use */
1608016080
/* 0x000008 // available for use */
1608116081
#define EP_Distinct 0x000010 /* Aggregate function with DISTINCT keyword */
1608216082
#define EP_VarSelect 0x000020 /* pSelect is correlated, not constant */
1608316083
#define EP_DblQuoted 0x000040 /* token.z was originally in "..." */
1608416084
#define EP_InfixFunc 0x000080 /* True for an infix function: LIKE, GLOB, etc */
@@ -17627,11 +17627,13 @@
1762717627
SQLITE_PRIVATE int sqlite3FixExprList(DbFixer*, ExprList*);
1762817628
SQLITE_PRIVATE int sqlite3FixTriggerStep(DbFixer*, TriggerStep*);
1762917629
SQLITE_PRIVATE int sqlite3AtoF(const char *z, double*, int, u8);
1763017630
SQLITE_PRIVATE int sqlite3GetInt32(const char *, int*);
1763117631
SQLITE_PRIVATE int sqlite3Atoi(const char*);
17632
+#ifndef SQLITE_OMIT_UTF16
1763217633
SQLITE_PRIVATE int sqlite3Utf16ByteLen(const void *pData, int nChar);
17634
+#endif
1763317635
SQLITE_PRIVATE int sqlite3Utf8CharLen(const char *pData, int nByte);
1763417636
SQLITE_PRIVATE u32 sqlite3Utf8Read(const u8**);
1763517637
SQLITE_PRIVATE LogEst sqlite3LogEst(u64);
1763617638
SQLITE_PRIVATE LogEst sqlite3LogEstAdd(LogEst,LogEst);
1763717639
#ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -17716,11 +17718,13 @@
1771617718
SQLITE_PRIVATE void sqlite3ValueSetStr(sqlite3_value*, int, const void *,u8,
1771717719
void(*)(void*));
1771817720
SQLITE_PRIVATE void sqlite3ValueSetNull(sqlite3_value*);
1771917721
SQLITE_PRIVATE void sqlite3ValueFree(sqlite3_value*);
1772017722
SQLITE_PRIVATE sqlite3_value *sqlite3ValueNew(sqlite3 *);
17723
+#ifndef SQLITE_OMIT_UTF16
1772117724
SQLITE_PRIVATE char *sqlite3Utf16to8(sqlite3 *, const void*, int, u8);
17725
+#endif
1772217726
SQLITE_PRIVATE int sqlite3ValueFromExpr(sqlite3 *, Expr *, u8, u8, sqlite3_value **);
1772317727
SQLITE_PRIVATE void sqlite3ValueApplyAffinity(sqlite3_value *, u8, u8);
1772417728
#ifndef SQLITE_AMALGAMATION
1772517729
SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty[];
1772617730
SQLITE_PRIVATE const char sqlite3StrBINARY[];
@@ -18080,11 +18084,13 @@
1808018084
SQLITE_PRIVATE int sqlite3ExprIsVector(Expr *pExpr);
1808118085
SQLITE_PRIVATE Expr *sqlite3VectorFieldSubexpr(Expr*, int);
1808218086
SQLITE_PRIVATE Expr *sqlite3ExprForVectorField(Parse*,Expr*,int);
1808318087
SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse*, Expr*);
1808418088
18089
+#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
1808518090
SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt);
18091
+#endif
1808618092
1808718093
#endif /* SQLITEINT_H */
1808818094
1808918095
/************** End of sqliteInt.h *******************************************/
1809018096
/************** Begin file global.c ******************************************/
@@ -18941,16 +18947,18 @@
1894118947
SQLITE_PRIVATE int sqlite3VdbeCheckFk(Vdbe *, int);
1894218948
#else
1894318949
# define sqlite3VdbeCheckFk(p,i) 0
1894418950
#endif
1894518951
18946
-SQLITE_PRIVATE int sqlite3VdbeMemTranslate(Mem*, u8);
1894718952
#ifdef SQLITE_DEBUG
1894818953
SQLITE_PRIVATE void sqlite3VdbePrintSql(Vdbe*);
1894918954
SQLITE_PRIVATE void sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf);
1895018955
#endif
18951
-SQLITE_PRIVATE int sqlite3VdbeMemHandleBom(Mem *pMem);
18956
+#ifndef SQLITE_OMIT_UTF16
18957
+SQLITE_PRIVATE int sqlite3VdbeMemTranslate(Mem*, u8);
18958
+SQLITE_PRIVATE int sqlite3VdbeMemHandleBom(Mem *pMem);
18959
+#endif
1895218960
1895318961
#ifndef SQLITE_OMIT_INCRBLOB
1895418962
SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *);
1895518963
#define ExpandBlob(P) (((P)->flags&MEM_Zero)?sqlite3VdbeMemExpandBlob(P):0)
1895618964
#else
@@ -27928,11 +27936,13 @@
2792827936
fprintf(stderr, "OUTPUT: %s\n", zBuf);
2792927937
}
2793027938
#endif
2793127939
return SQLITE_OK;
2793227940
}
27941
+#endif /* SQLITE_OMIT_UTF16 */
2793327942
27943
+#ifndef SQLITE_OMIT_UTF16
2793427944
/*
2793527945
** This routine checks for a byte-order mark at the beginning of the
2793627946
** UTF-16 string stored in *pMem. If one is present, it is removed and
2793727947
** the encoding of the Mem adjusted. This routine does not do any
2793827948
** byte-swapping, it just sets Mem.enc appropriately.
@@ -64949,23 +64959,23 @@
6494964959
** for the common case of merely incrementing the cell counter BtCursor.aiIdx
6495064960
** to the next cell on the current page. The (slower) btreeNext() helper
6495164961
** routine is called when it is necessary to move to a different page or
6495264962
** to restore the cursor.
6495364963
**
64954
-** If bit 0x01 of the flags argument is 1, then the cursor corresponds to
64955
-** an SQL index and this routine could have been skipped if the SQL index
64956
-** had been a unique index. The flags argument is a hint to the implement.
64957
-** SQLite btree implementation does not use this hint, but COMDB2 does.
64964
+** If bit 0x01 of the F argument in sqlite3BtreeNext(C,F) is 1, then the
64965
+** cursor corresponds to an SQL index and this routine could have been
64966
+** skipped if the SQL index had been a unique index. The F argument
64967
+** is a hint to the implement. SQLite btree implementation does not use
64968
+** this hint, but COMDB2 does.
6495864969
*/
64959
-static SQLITE_NOINLINE int btreeNext(BtCursor *pCur, int flags){
64970
+static SQLITE_NOINLINE int btreeNext(BtCursor *pCur){
6496064971
int rc;
6496164972
int idx;
6496264973
MemPage *pPage;
6496364974
6496464975
assert( cursorOwnsBtShared(pCur) );
6496564976
assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
64966
- assert( flags==0 );
6496764977
if( pCur->eState!=CURSOR_VALID ){
6496864978
assert( (pCur->curFlags & BTCF_ValidOvfl)==0 );
6496964979
rc = restoreCursorPosition(pCur);
6497064980
if( rc!=SQLITE_OK ){
6497164981
return rc;
@@ -65008,11 +65018,11 @@
6500865018
}
6500965019
moveToParent(pCur);
6501065020
pPage = pCur->apPage[pCur->iPage];
6501165021
}while( pCur->ix>=pPage->nCell );
6501265022
if( pPage->intKey ){
65013
- return sqlite3BtreeNext(pCur, flags);
65023
+ return sqlite3BtreeNext(pCur, 0);
6501465024
}else{
6501565025
return SQLITE_OK;
6501665026
}
6501765027
}
6501865028
if( pPage->leaf ){
@@ -65021,20 +65031,21 @@
6502165031
return moveToLeftmost(pCur);
6502265032
}
6502365033
}
6502465034
SQLITE_PRIVATE int sqlite3BtreeNext(BtCursor *pCur, int flags){
6502565035
MemPage *pPage;
65036
+ UNUSED_PARAMETER( flags ); /* Used in COMDB2 but not native SQLite */
6502665037
assert( cursorOwnsBtShared(pCur) );
6502765038
assert( flags==0 || flags==1 );
6502865039
assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
6502965040
pCur->info.nSize = 0;
6503065041
pCur->curFlags &= ~(BTCF_ValidNKey|BTCF_ValidOvfl);
65031
- if( pCur->eState!=CURSOR_VALID ) return btreeNext(pCur, 0);
65042
+ if( pCur->eState!=CURSOR_VALID ) return btreeNext(pCur);
6503265043
pPage = pCur->apPage[pCur->iPage];
6503365044
if( (++pCur->ix)>=pPage->nCell ){
6503465045
pCur->ix--;
65035
- return btreeNext(pCur, 0);
65046
+ return btreeNext(pCur);
6503665047
}
6503765048
if( pPage->leaf ){
6503865049
return SQLITE_OK;
6503965050
}else{
6504065051
return moveToLeftmost(pCur);
@@ -65053,22 +65064,21 @@
6505365064
** for the common case of merely decrementing the cell counter BtCursor.aiIdx
6505465065
** to the previous cell on the current page. The (slower) btreePrevious()
6505565066
** helper routine is called when it is necessary to move to a different page
6505665067
** or to restore the cursor.
6505765068
**
65058
-**
65059
-** If bit 0x01 of the flags argument is 1, then the cursor corresponds to
65060
-** an SQL index and this routine could have been skipped if the SQL index
65061
-** had been a unique index. The flags argument is a hint to the implement.
65062
-** SQLite btree implementation does not use this hint, but COMDB2 does.
65069
+** If bit 0x01 of the F argument to sqlite3BtreePrevious(C,F) is 1, then
65070
+** the cursor corresponds to an SQL index and this routine could have been
65071
+** skipped if the SQL index had been a unique index. The F argument is a
65072
+** hint to the implement. The native SQLite btree implementation does not
65073
+** use this hint, but COMDB2 does.
6506365074
*/
65064
-static SQLITE_NOINLINE int btreePrevious(BtCursor *pCur, int flags){
65075
+static SQLITE_NOINLINE int btreePrevious(BtCursor *pCur){
6506565076
int rc;
6506665077
MemPage *pPage;
6506765078
6506865079
assert( cursorOwnsBtShared(pCur) );
65069
- assert( flags==0 );
6507065080
assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
6507165081
assert( (pCur->curFlags & (BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey))==0 );
6507265082
assert( pCur->info.nSize==0 );
6507365083
if( pCur->eState!=CURSOR_VALID ){
6507465084
rc = restoreCursorPosition(pCur);
@@ -65108,11 +65118,11 @@
6510865118
assert( (pCur->curFlags & (BTCF_ValidOvfl))==0 );
6510965119
6511065120
pCur->ix--;
6511165121
pPage = pCur->apPage[pCur->iPage];
6511265122
if( pPage->intKey && !pPage->leaf ){
65113
- rc = sqlite3BtreePrevious(pCur, flags);
65123
+ rc = sqlite3BtreePrevious(pCur, 0);
6511465124
}else{
6511565125
rc = SQLITE_OK;
6511665126
}
6511765127
}
6511865128
return rc;
@@ -65119,17 +65129,18 @@
6511965129
}
6512065130
SQLITE_PRIVATE int sqlite3BtreePrevious(BtCursor *pCur, int flags){
6512165131
assert( cursorOwnsBtShared(pCur) );
6512265132
assert( flags==0 || flags==1 );
6512365133
assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
65134
+ UNUSED_PARAMETER( flags ); /* Used in COMDB2 but not native SQLite */
6512465135
pCur->curFlags &= ~(BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey);
6512565136
pCur->info.nSize = 0;
6512665137
if( pCur->eState!=CURSOR_VALID
6512765138
|| pCur->ix==0
6512865139
|| pCur->apPage[pCur->iPage]->leaf==0
6512965140
){
65130
- return btreePrevious(pCur, 0);
65141
+ return btreePrevious(pCur);
6513165142
}
6513265143
pCur->ix--;
6513365144
return SQLITE_OK;
6513465145
}
6513565146
@@ -90394,11 +90405,10 @@
9039490405
p->iColumn = (ynVar)iCol;
9039590406
testcase( iCol==BMS );
9039690407
testcase( iCol==BMS-1 );
9039790408
pItem->colUsed |= ((Bitmask)1)<<(iCol>=BMS ? BMS-1 : iCol);
9039890409
}
90399
- ExprSetProperty(p, EP_Resolved);
9040090410
}
9040190411
return p;
9040290412
}
9040390413
9040490414
/*
@@ -90454,12 +90464,10 @@
9045490464
pNC = pWalker->u.pNC;
9045590465
assert( pNC!=0 );
9045690466
pParse = pNC->pParse;
9045790467
assert( pParse==pWalker->pParse );
9045890468
90459
- if( ExprHasProperty(pExpr, EP_Resolved) ) return WRC_Prune;
90460
- ExprSetProperty(pExpr, EP_Resolved);
9046190469
#ifndef NDEBUG
9046290470
if( pNC->pSrcList && pNC->pSrcList->nAlloc>0 ){
9046390471
SrcList *pSrcList = pNC->pSrcList;
9046490472
int i;
9046590473
for(i=0; i<pNC->pSrcList->nSrc; i++){
@@ -112127,10 +112135,15 @@
112127112135
/* Version 3.14.0 and later */
112128112136
int (*trace_v2)(sqlite3*,unsigned,int(*)(unsigned,void*,void*,void*),void*);
112129112137
char *(*expanded_sql)(sqlite3_stmt*);
112130112138
/* Version 3.18.0 and later */
112131112139
void (*set_last_insert_rowid)(sqlite3*,sqlite3_int64);
112140
+ /* Version 3.20.0 and later */
112141
+ int (*prepare_v3)(sqlite3*,const char*,int,unsigned int,
112142
+ sqlite3_stmt**,const char**);
112143
+ int (*prepare16_v3)(sqlite3*,const void*,int,unsigned int,
112144
+ sqlite3_stmt**,const void**);
112132112145
};
112133112146
112134112147
/*
112135112148
** This is the function signature used for all extension entry points. It
112136112149
** is also defined in the file "loadext.c".
@@ -112387,10 +112400,13 @@
112387112400
/* Version 3.14.0 and later */
112388112401
#define sqlite3_trace_v2 sqlite3_api->trace_v2
112389112402
#define sqlite3_expanded_sql sqlite3_api->expanded_sql
112390112403
/* Version 3.18.0 and later */
112391112404
#define sqlite3_set_last_insert_rowid sqlite3_api->set_last_insert_rowid
112405
+/* Version 3.20.0 and later */
112406
+#define sqlite3_prepare_v3 sqlite3_api->prepare_v3
112407
+#define sqlite3_prepare16_v3 sqlite3_api->prepare16_v3
112392112408
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
112393112409
112394112410
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
112395112411
/* This case when the file really is being compiled as a loadable
112396112412
** extension */
@@ -112442,10 +112458,11 @@
112442112458
# define sqlite3_create_function16 0
112443112459
# define sqlite3_errmsg16 0
112444112460
# define sqlite3_open16 0
112445112461
# define sqlite3_prepare16 0
112446112462
# define sqlite3_prepare16_v2 0
112463
+# define sqlite3_prepare16_v3 0
112447112464
# define sqlite3_result_error16 0
112448112465
# define sqlite3_result_text16 0
112449112466
# define sqlite3_result_text16be 0
112450112467
# define sqlite3_result_text16le 0
112451112468
# define sqlite3_value_text16 0
@@ -112814,11 +112831,14 @@
112814112831
sqlite3_system_errno,
112815112832
/* Version 3.14.0 and later */
112816112833
sqlite3_trace_v2,
112817112834
sqlite3_expanded_sql,
112818112835
/* Version 3.18.0 and later */
112819
- sqlite3_set_last_insert_rowid
112836
+ sqlite3_set_last_insert_rowid,
112837
+ /* Version 3.20.0 and later */
112838
+ sqlite3_prepare_v3,
112839
+ sqlite3_prepare16_v3
112820112840
};
112821112841
112822112842
/*
112823112843
** Attempt to load an SQLite extension library contained in the file
112824112844
** zFile. The entry point is zProc. zProc may be 0 in which case a
@@ -118780,24 +118800,50 @@
118780118800
return 0;
118781118801
}
118782118802
118783118803
118784118804
/*
118785
-** Generate code that will tell the VDBE the names of columns
118786
-** in the result set. This information is used to provide the
118787
-** azCol[] values in the callback.
118805
+** Compute the column names for a SELECT statement.
118806
+**
118807
+** The only guarantee that SQLite makes about column names is that if the
118808
+** column has an AS clause assigning it a name, that will be the name used.
118809
+** That is the only documented guarantee. However, countless applications
118810
+** developed over the years have made baseless assumptions about column names
118811
+** and will break if those assumptions changes. Hence, use extreme caution
118812
+** when modifying this routine to avoid breaking legacy.
118813
+**
118814
+** See Also: sqlite3ColumnsFromExprList()
118815
+**
118816
+** The PRAGMA short_column_names and PRAGMA full_column_names settings are
118817
+** deprecated. The default setting is short=ON, full=OFF. 99.9% of all
118818
+** applications should operate this way. Nevertheless, we need to support the
118819
+** other modes for legacy:
118820
+**
118821
+** short=OFF, full=OFF: Column name is the text of the expression has it
118822
+** originally appears in the SELECT statement. In
118823
+** other words, the zSpan of the result expression.
118824
+**
118825
+** short=ON, full=OFF: (This is the default setting). If the result
118826
+** refers directly to a table column, then the result
118827
+** column name is just the table column name: COLUMN.
118828
+** Otherwise use zSpan.
118829
+**
118830
+** full=ON, short=ANY: If the result refers directly to a table column,
118831
+** then the result column name with the table name
118832
+** prefix, ex: TABLE.COLUMN. Otherwise use zSpan.
118788118833
*/
118789118834
static void generateColumnNames(
118790118835
Parse *pParse, /* Parser context */
118791
- SrcList *pTabList, /* List of tables */
118836
+ SrcList *pTabList, /* The FROM clause of the SELECT */
118792118837
ExprList *pEList /* Expressions defining the result set */
118793118838
){
118794118839
Vdbe *v = pParse->pVdbe;
118795118840
int i;
118796118841
Table *pTab;
118797118842
sqlite3 *db = pParse->db;
118798
- int fullNames, shortNames;
118843
+ int fullName; /* TABLE.COLUMN if no AS clause and is a direct table ref */
118844
+ int srcName; /* COLUMN or TABLE.COLUMN if no AS clause and is direct */
118799118845
118800118846
#ifndef SQLITE_OMIT_EXPLAIN
118801118847
/* If this is an EXPLAIN, skip this step */
118802118848
if( pParse->explain ){
118803118849
return;
@@ -118806,21 +118852,23 @@
118806118852
118807118853
if( pParse->colNamesSet || db->mallocFailed ) return;
118808118854
assert( v!=0 );
118809118855
assert( pTabList!=0 );
118810118856
pParse->colNamesSet = 1;
118811
- fullNames = (db->flags & SQLITE_FullColNames)!=0;
118812
- shortNames = (db->flags & SQLITE_ShortColNames)!=0;
118857
+ fullName = (db->flags & SQLITE_FullColNames)!=0;
118858
+ srcName = (db->flags & SQLITE_ShortColNames)!=0 || fullName;
118813118859
sqlite3VdbeSetNumCols(v, pEList->nExpr);
118814118860
for(i=0; i<pEList->nExpr; i++){
118815
- Expr *p;
118816
- p = pEList->a[i].pExpr;
118817
- if( NEVER(p==0) ) continue;
118861
+ Expr *p = pEList->a[i].pExpr;
118862
+
118863
+ assert( p!=0 );
118818118864
if( pEList->a[i].zName ){
118865
+ /* An AS clause always takes first priority */
118819118866
char *zName = pEList->a[i].zName;
118820118867
sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, SQLITE_TRANSIENT);
118821
- }else if( (p->op==TK_COLUMN || p->op==TK_AGG_COLUMN)
118868
+ }else if( srcName
118869
+ && (p->op==TK_COLUMN || p->op==TK_AGG_COLUMN)
118822118870
&& (pTab = tableWithCursor(pTabList, p->iTable))!=0
118823118871
){
118824118872
char *zCol;
118825118873
int iCol = p->iColumn;
118826118874
if( iCol<0 ) iCol = pTab->iPKey;
@@ -118828,14 +118876,11 @@
118828118876
if( iCol<0 ){
118829118877
zCol = "rowid";
118830118878
}else{
118831118879
zCol = pTab->aCol[iCol].zName;
118832118880
}
118833
- if( !shortNames && !fullNames ){
118834
- sqlite3VdbeSetColName(v, i, COLNAME_NAME,
118835
- sqlite3DbStrDup(db, pEList->a[i].zSpan), SQLITE_DYNAMIC);
118836
- }else if( fullNames ){
118881
+ if( fullName ){
118837118882
char *zName = 0;
118838118883
zName = sqlite3MPrintf(db, "%s.%s", pTab->zName, zCol);
118839118884
sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, SQLITE_DYNAMIC);
118840118885
}else{
118841118886
sqlite3VdbeSetColName(v, i, COLNAME_NAME, zCol, SQLITE_TRANSIENT);
@@ -118859,10 +118904,19 @@
118859118904
** Only the column names are computed. Column.zType, Column.zColl,
118860118905
** and other fields of Column are zeroed.
118861118906
**
118862118907
** Return SQLITE_OK on success. If a memory allocation error occurs,
118863118908
** store NULL in *paCol and 0 in *pnCol and return SQLITE_NOMEM.
118909
+**
118910
+** The only guarantee that SQLite makes about column names is that if the
118911
+** column has an AS clause assigning it a name, that will be the name used.
118912
+** That is the only documented guarantee. However, countless applications
118913
+** developed over the years have made baseless assumptions about column names
118914
+** and will break if those assumptions changes. Hence, use extreme caution
118915
+** when modifying this routine to avoid breaking legacy.
118916
+**
118917
+** See Also: generateColumnNames()
118864118918
*/
118865118919
SQLITE_PRIVATE int sqlite3ColumnsFromExprList(
118866118920
Parse *pParse, /* Parsing context */
118867118921
ExprList *pEList, /* Expr list from which to derive column names */
118868118922
i16 *pnCol, /* Write the number of columns here */
@@ -118871,11 +118925,10 @@
118871118925
sqlite3 *db = pParse->db; /* Database connection */
118872118926
int i, j; /* Loop counters */
118873118927
u32 cnt; /* Index added to make the name unique */
118874118928
Column *aCol, *pCol; /* For looping over result columns */
118875118929
int nCol; /* Number of columns in the result set */
118876
- Expr *p; /* Expression for a single result column */
118877118930
char *zName; /* Column name */
118878118931
int nName; /* Size of name in zName[] */
118879118932
Hash ht; /* Hash table of column names */
118880118933
118881118934
sqlite3HashInit(&ht);
@@ -118892,24 +118945,22 @@
118892118945
*paCol = aCol;
118893118946
118894118947
for(i=0, pCol=aCol; i<nCol && !db->mallocFailed; i++, pCol++){
118895118948
/* Get an appropriate name for the column
118896118949
*/
118897
- p = sqlite3ExprSkipCollate(pEList->a[i].pExpr);
118898118950
if( (zName = pEList->a[i].zName)!=0 ){
118899118951
/* If the column contains an "AS <name>" phrase, use <name> as the name */
118900118952
}else{
118901
- Expr *pColExpr = p; /* The expression that is the result column name */
118902
- Table *pTab; /* Table associated with this expression */
118953
+ Expr *pColExpr = sqlite3ExprSkipCollate(pEList->a[i].pExpr);
118903118954
while( pColExpr->op==TK_DOT ){
118904118955
pColExpr = pColExpr->pRight;
118905118956
assert( pColExpr!=0 );
118906118957
}
118907118958
if( pColExpr->op==TK_COLUMN && pColExpr->pTab!=0 ){
118908118959
/* For columns use the column name name */
118909118960
int iCol = pColExpr->iColumn;
118910
- pTab = pColExpr->pTab;
118961
+ Table *pTab = pColExpr->pTab;
118911118962
if( iCol<0 ) iCol = pTab->iPKey;
118912118963
zName = iCol>=0 ? pTab->aCol[iCol].zName : "rowid";
118913118964
}else if( pColExpr->op==TK_ID ){
118914118965
assert( !ExprHasProperty(pColExpr, EP_IntValue) );
118915118966
zName = pColExpr->u.zToken;
@@ -136634,19 +136685,19 @@
136634136685
#define sqlite3ParserARG_PDECL ,Parse *pParse
136635136686
#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
136636136687
#define sqlite3ParserARG_STORE yypParser->pParse = pParse
136637136688
#define YYFALLBACK 1
136638136689
#define YYNSTATE 455
136639
-#define YYNRULE 330
136690
+#define YYNRULE 329
136640136691
#define YY_MAX_SHIFT 454
136641
-#define YY_MIN_SHIFTREDUCE 665
136642
-#define YY_MAX_SHIFTREDUCE 994
136643
-#define YY_MIN_REDUCE 995
136644
-#define YY_MAX_REDUCE 1324
136645
-#define YY_ERROR_ACTION 1325
136646
-#define YY_ACCEPT_ACTION 1326
136647
-#define YY_NO_ACTION 1327
136692
+#define YY_MIN_SHIFTREDUCE 664
136693
+#define YY_MAX_SHIFTREDUCE 992
136694
+#define YY_MIN_REDUCE 993
136695
+#define YY_MAX_REDUCE 1321
136696
+#define YY_ERROR_ACTION 1322
136697
+#define YY_ACCEPT_ACTION 1323
136698
+#define YY_NO_ACTION 1324
136648136699
/************* End control #defines *******************************************/
136649136700
136650136701
/* Define the yytestcase() macro to be a no-op if is not already defined
136651136702
** otherwise.
136652136703
**
@@ -136716,167 +136767,167 @@
136716136767
** yy_default[] Default action for each state.
136717136768
**
136718136769
*********** Begin parsing tables **********************************************/
136719136770
#define YY_ACTTAB_COUNT (1565)
136720136771
static const YYACTIONTYPE yy_action[] = {
136721
- /* 0 */ 324, 410, 342, 748, 748, 203, 941, 353, 971, 98,
136772
+ /* 0 */ 324, 410, 342, 747, 747, 203, 939, 353, 969, 98,
136722136773
/* 10 */ 98, 98, 98, 91, 96, 96, 96, 96, 95, 95,
136723
- /* 20 */ 94, 94, 94, 93, 350, 1326, 155, 155, 2, 809,
136724
- /* 30 */ 973, 973, 98, 98, 98, 98, 20, 96, 96, 96,
136774
+ /* 20 */ 94, 94, 94, 93, 350, 1323, 155, 155, 2, 808,
136775
+ /* 30 */ 971, 971, 98, 98, 98, 98, 20, 96, 96, 96,
136725136776
/* 40 */ 96, 95, 95, 94, 94, 94, 93, 350, 92, 89,
136726
- /* 50 */ 178, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136777
+ /* 50 */ 178, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136727136778
/* 60 */ 98, 98, 98, 98, 350, 96, 96, 96, 96, 95,
136728
- /* 70 */ 95, 94, 94, 94, 93, 350, 324, 339, 971, 262,
136729
- /* 80 */ 364, 251, 212, 169, 287, 404, 282, 403, 199, 787,
136730
- /* 90 */ 242, 411, 21, 952, 378, 280, 93, 350, 788, 95,
136731
- /* 100 */ 95, 94, 94, 94, 93, 350, 973, 973, 96, 96,
136732
- /* 110 */ 96, 96, 95, 95, 94, 94, 94, 93, 350, 809,
136733
- /* 120 */ 328, 242, 411, 1238, 828, 1238, 132, 99, 100, 90,
136734
- /* 130 */ 849, 852, 841, 841, 97, 97, 98, 98, 98, 98,
136779
+ /* 70 */ 95, 94, 94, 94, 93, 350, 324, 339, 969, 262,
136780
+ /* 80 */ 364, 251, 212, 169, 287, 404, 282, 403, 199, 786,
136781
+ /* 90 */ 242, 411, 21, 950, 378, 280, 93, 350, 787, 95,
136782
+ /* 100 */ 95, 94, 94, 94, 93, 350, 971, 971, 96, 96,
136783
+ /* 110 */ 96, 96, 95, 95, 94, 94, 94, 93, 350, 808,
136784
+ /* 120 */ 328, 242, 411, 1235, 826, 1235, 132, 99, 100, 90,
136785
+ /* 130 */ 847, 850, 839, 839, 97, 97, 98, 98, 98, 98,
136735136786
/* 140 */ 449, 96, 96, 96, 96, 95, 95, 94, 94, 94,
136736
- /* 150 */ 93, 350, 324, 821, 348, 347, 120, 815, 120, 75,
136737
- /* 160 */ 52, 52, 952, 953, 954, 1086, 979, 146, 360, 262,
136738
- /* 170 */ 369, 261, 952, 977, 956, 978, 92, 89, 178, 370,
136739
- /* 180 */ 230, 370, 973, 973, 1143, 360, 359, 101, 820, 820,
136740
- /* 190 */ 822, 383, 24, 1289, 380, 427, 412, 368, 980, 379,
136741
- /* 200 */ 980, 1034, 324, 99, 100, 90, 849, 852, 841, 841,
136787
+ /* 150 */ 93, 350, 324, 819, 348, 347, 120, 818, 120, 75,
136788
+ /* 160 */ 52, 52, 950, 951, 952, 1084, 977, 146, 360, 262,
136789
+ /* 170 */ 369, 261, 950, 975, 954, 976, 92, 89, 178, 370,
136790
+ /* 180 */ 230, 370, 971, 971, 1141, 360, 359, 101, 818, 818,
136791
+ /* 190 */ 820, 383, 24, 1286, 380, 427, 412, 368, 978, 379,
136792
+ /* 200 */ 978, 1032, 324, 99, 100, 90, 847, 850, 839, 839,
136742136793
/* 210 */ 97, 97, 98, 98, 98, 98, 372, 96, 96, 96,
136743
- /* 220 */ 96, 95, 95, 94, 94, 94, 93, 350, 952, 132,
136744
- /* 230 */ 892, 449, 973, 973, 892, 60, 94, 94, 94, 93,
136745
- /* 240 */ 350, 952, 953, 954, 956, 103, 360, 952, 384, 333,
136746
- /* 250 */ 698, 52, 52, 99, 100, 90, 849, 852, 841, 841,
136747
- /* 260 */ 97, 97, 98, 98, 98, 98, 1024, 96, 96, 96,
136794
+ /* 220 */ 96, 95, 95, 94, 94, 94, 93, 350, 950, 132,
136795
+ /* 230 */ 890, 449, 971, 971, 890, 60, 94, 94, 94, 93,
136796
+ /* 240 */ 350, 950, 951, 952, 954, 103, 360, 950, 384, 333,
136797
+ /* 250 */ 697, 52, 52, 99, 100, 90, 847, 850, 839, 839,
136798
+ /* 260 */ 97, 97, 98, 98, 98, 98, 1022, 96, 96, 96,
136748136799
/* 270 */ 96, 95, 95, 94, 94, 94, 93, 350, 324, 454,
136749
- /* 280 */ 997, 449, 227, 61, 157, 243, 343, 114, 1027, 1214,
136750
- /* 290 */ 147, 828, 952, 372, 1073, 952, 319, 952, 953, 954,
136751
- /* 300 */ 194, 10, 10, 401, 398, 397, 1214, 1216, 973, 973,
136752
- /* 310 */ 758, 171, 170, 157, 396, 336, 952, 953, 954, 698,
136753
- /* 320 */ 821, 310, 153, 952, 815, 320, 82, 23, 80, 99,
136754
- /* 330 */ 100, 90, 849, 852, 841, 841, 97, 97, 98, 98,
136755
- /* 340 */ 98, 98, 890, 96, 96, 96, 96, 95, 95, 94,
136756
- /* 350 */ 94, 94, 93, 350, 324, 820, 820, 822, 277, 231,
136757
- /* 360 */ 300, 952, 953, 954, 952, 953, 954, 1214, 194, 25,
136758
- /* 370 */ 449, 401, 398, 397, 952, 354, 300, 449, 952, 74,
136759
- /* 380 */ 449, 1, 396, 132, 973, 973, 952, 224, 224, 809,
136760
- /* 390 */ 10, 10, 952, 953, 954, 1293, 132, 52, 52, 414,
136761
- /* 400 */ 52, 52, 1065, 1065, 338, 99, 100, 90, 849, 852,
136762
- /* 410 */ 841, 841, 97, 97, 98, 98, 98, 98, 1116, 96,
136800
+ /* 280 */ 995, 449, 227, 61, 157, 243, 343, 114, 1025, 1211,
136801
+ /* 290 */ 147, 826, 950, 372, 1071, 950, 319, 950, 951, 952,
136802
+ /* 300 */ 194, 10, 10, 401, 398, 397, 1211, 1213, 971, 971,
136803
+ /* 310 */ 757, 171, 170, 157, 396, 336, 950, 951, 952, 697,
136804
+ /* 320 */ 819, 310, 153, 950, 818, 320, 82, 23, 80, 99,
136805
+ /* 330 */ 100, 90, 847, 850, 839, 839, 97, 97, 98, 98,
136806
+ /* 340 */ 98, 98, 888, 96, 96, 96, 96, 95, 95, 94,
136807
+ /* 350 */ 94, 94, 93, 350, 324, 818, 818, 820, 277, 231,
136808
+ /* 360 */ 300, 950, 951, 952, 950, 951, 952, 1211, 194, 25,
136809
+ /* 370 */ 449, 401, 398, 397, 950, 354, 300, 449, 950, 74,
136810
+ /* 380 */ 449, 1, 396, 132, 971, 971, 950, 224, 224, 808,
136811
+ /* 390 */ 10, 10, 950, 951, 952, 1290, 132, 52, 52, 414,
136812
+ /* 400 */ 52, 52, 1063, 1063, 338, 99, 100, 90, 847, 850,
136813
+ /* 410 */ 839, 839, 97, 97, 98, 98, 98, 98, 1114, 96,
136763136814
/* 420 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 350,
136764
- /* 430 */ 324, 1115, 427, 417, 702, 427, 426, 1263, 1263, 262,
136765
- /* 440 */ 369, 261, 952, 952, 953, 954, 753, 952, 953, 954,
136766
- /* 450 */ 449, 752, 449, 1060, 1039, 952, 953, 954, 442, 707,
136767
- /* 460 */ 973, 973, 1060, 393, 92, 89, 178, 446, 446, 446,
136768
- /* 470 */ 51, 51, 52, 52, 438, 774, 1026, 92, 89, 178,
136769
- /* 480 */ 172, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136815
+ /* 430 */ 324, 1113, 427, 417, 701, 427, 426, 1260, 1260, 262,
136816
+ /* 440 */ 369, 261, 950, 950, 951, 952, 752, 950, 951, 952,
136817
+ /* 450 */ 449, 751, 449, 1058, 1037, 950, 951, 952, 442, 706,
136818
+ /* 460 */ 971, 971, 1058, 393, 92, 89, 178, 446, 446, 446,
136819
+ /* 470 */ 51, 51, 52, 52, 438, 773, 1024, 92, 89, 178,
136820
+ /* 480 */ 172, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136770136821
/* 490 */ 98, 98, 98, 98, 198, 96, 96, 96, 96, 95,
136771
- /* 500 */ 95, 94, 94, 94, 93, 350, 324, 427, 407, 911,
136772
- /* 510 */ 695, 952, 953, 954, 92, 89, 178, 224, 224, 157,
136773
- /* 520 */ 241, 221, 418, 299, 772, 912, 415, 374, 449, 414,
136774
- /* 530 */ 58, 323, 1063, 1063, 1245, 378, 973, 973, 378, 773,
136775
- /* 540 */ 448, 913, 362, 736, 296, 682, 9, 9, 52, 52,
136776
- /* 550 */ 234, 329, 234, 256, 416, 737, 280, 99, 100, 90,
136777
- /* 560 */ 849, 852, 841, 841, 97, 97, 98, 98, 98, 98,
136822
+ /* 500 */ 95, 94, 94, 94, 93, 350, 324, 427, 407, 909,
136823
+ /* 510 */ 694, 950, 951, 952, 92, 89, 178, 224, 224, 157,
136824
+ /* 520 */ 241, 221, 418, 299, 771, 910, 415, 374, 449, 414,
136825
+ /* 530 */ 58, 323, 1061, 1061, 1242, 378, 971, 971, 378, 772,
136826
+ /* 540 */ 448, 911, 362, 735, 296, 681, 9, 9, 52, 52,
136827
+ /* 550 */ 234, 329, 234, 256, 416, 736, 280, 99, 100, 90,
136828
+ /* 560 */ 847, 850, 839, 839, 97, 97, 98, 98, 98, 98,
136778136829
/* 570 */ 449, 96, 96, 96, 96, 95, 95, 94, 94, 94,
136779
- /* 580 */ 93, 350, 324, 422, 72, 449, 829, 120, 367, 449,
136780
- /* 590 */ 10, 10, 5, 301, 203, 449, 177, 971, 253, 419,
136781
- /* 600 */ 255, 772, 200, 175, 233, 10, 10, 838, 838, 36,
136782
- /* 610 */ 36, 1292, 973, 973, 725, 37, 37, 348, 347, 424,
136783
- /* 620 */ 203, 260, 772, 971, 232, 932, 1319, 872, 337, 1319,
136784
- /* 630 */ 421, 850, 853, 99, 100, 90, 849, 852, 841, 841,
136830
+ /* 580 */ 93, 350, 324, 422, 72, 449, 827, 120, 367, 449,
136831
+ /* 590 */ 10, 10, 5, 301, 203, 449, 177, 969, 253, 419,
136832
+ /* 600 */ 255, 771, 200, 175, 233, 10, 10, 836, 836, 36,
136833
+ /* 610 */ 36, 1289, 971, 971, 724, 37, 37, 348, 347, 424,
136834
+ /* 620 */ 203, 260, 771, 969, 232, 930, 1316, 870, 337, 1316,
136835
+ /* 630 */ 421, 848, 851, 99, 100, 90, 847, 850, 839, 839,
136785136836
/* 640 */ 97, 97, 98, 98, 98, 98, 268, 96, 96, 96,
136786
- /* 650 */ 96, 95, 95, 94, 94, 94, 93, 350, 324, 842,
136787
- /* 660 */ 449, 980, 814, 980, 1203, 449, 911, 971, 716, 349,
136788
- /* 670 */ 349, 349, 930, 177, 449, 932, 1320, 254, 198, 1320,
136789
- /* 680 */ 12, 12, 912, 402, 449, 27, 27, 250, 973, 973,
136790
- /* 690 */ 118, 717, 162, 971, 38, 38, 268, 176, 913, 772,
136791
- /* 700 */ 432, 1268, 941, 353, 39, 39, 316, 993, 324, 99,
136792
- /* 710 */ 100, 90, 849, 852, 841, 841, 97, 97, 98, 98,
136793
- /* 720 */ 98, 98, 930, 96, 96, 96, 96, 95, 95, 94,
136794
- /* 730 */ 94, 94, 93, 350, 449, 329, 449, 357, 973, 973,
136795
- /* 740 */ 1043, 316, 931, 340, 895, 895, 386, 670, 671, 672,
136796
- /* 750 */ 275, 1321, 317, 994, 40, 40, 41, 41, 268, 99,
136797
- /* 760 */ 100, 90, 849, 852, 841, 841, 97, 97, 98, 98,
136837
+ /* 650 */ 96, 95, 95, 94, 94, 94, 93, 350, 324, 840,
136838
+ /* 660 */ 449, 978, 813, 978, 1200, 449, 909, 969, 715, 349,
136839
+ /* 670 */ 349, 349, 928, 177, 449, 930, 1317, 254, 198, 1317,
136840
+ /* 680 */ 12, 12, 910, 402, 449, 27, 27, 250, 971, 971,
136841
+ /* 690 */ 118, 716, 162, 969, 38, 38, 268, 176, 911, 771,
136842
+ /* 700 */ 432, 1265, 939, 353, 39, 39, 316, 991, 324, 99,
136843
+ /* 710 */ 100, 90, 847, 850, 839, 839, 97, 97, 98, 98,
136844
+ /* 720 */ 98, 98, 928, 96, 96, 96, 96, 95, 95, 94,
136845
+ /* 730 */ 94, 94, 93, 350, 449, 329, 449, 357, 971, 971,
136846
+ /* 740 */ 1041, 316, 929, 340, 893, 893, 386, 669, 670, 671,
136847
+ /* 750 */ 275, 1318, 317, 992, 40, 40, 41, 41, 268, 99,
136848
+ /* 760 */ 100, 90, 847, 850, 839, 839, 97, 97, 98, 98,
136798136849
/* 770 */ 98, 98, 449, 96, 96, 96, 96, 95, 95, 94,
136799
- /* 780 */ 94, 94, 93, 350, 324, 449, 355, 449, 994, 449,
136800
- /* 790 */ 1018, 330, 42, 42, 787, 270, 449, 273, 449, 228,
136801
- /* 800 */ 449, 298, 449, 788, 449, 28, 28, 29, 29, 31,
136802
- /* 810 */ 31, 449, 1143, 449, 973, 973, 43, 43, 44, 44,
136803
- /* 820 */ 45, 45, 11, 11, 46, 46, 889, 78, 889, 268,
136804
- /* 830 */ 268, 105, 105, 47, 47, 99, 100, 90, 849, 852,
136805
- /* 840 */ 841, 841, 97, 97, 98, 98, 98, 98, 449, 96,
136850
+ /* 780 */ 94, 94, 93, 350, 324, 449, 355, 449, 992, 449,
136851
+ /* 790 */ 1016, 330, 42, 42, 786, 270, 449, 273, 449, 228,
136852
+ /* 800 */ 449, 298, 449, 787, 449, 28, 28, 29, 29, 31,
136853
+ /* 810 */ 31, 449, 1141, 449, 971, 971, 43, 43, 44, 44,
136854
+ /* 820 */ 45, 45, 11, 11, 46, 46, 887, 78, 887, 268,
136855
+ /* 830 */ 268, 105, 105, 47, 47, 99, 100, 90, 847, 850,
136856
+ /* 840 */ 839, 839, 97, 97, 98, 98, 98, 98, 449, 96,
136806136857
/* 850 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 350,
136807
- /* 860 */ 324, 449, 117, 449, 1075, 158, 449, 692, 48, 48,
136808
- /* 870 */ 229, 1244, 449, 1253, 449, 414, 449, 334, 449, 245,
136809
- /* 880 */ 449, 33, 33, 49, 49, 449, 50, 50, 246, 1143,
136810
- /* 890 */ 973, 973, 34, 34, 122, 122, 123, 123, 124, 124,
136858
+ /* 860 */ 324, 449, 117, 449, 1073, 158, 449, 691, 48, 48,
136859
+ /* 870 */ 229, 1241, 449, 1250, 449, 414, 449, 334, 449, 245,
136860
+ /* 880 */ 449, 33, 33, 49, 49, 449, 50, 50, 246, 1141,
136861
+ /* 890 */ 971, 971, 34, 34, 122, 122, 123, 123, 124, 124,
136811136862
/* 900 */ 56, 56, 268, 81, 249, 35, 35, 197, 196, 195,
136812
- /* 910 */ 324, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136863
+ /* 910 */ 324, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136813136864
/* 920 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136814
- /* 930 */ 95, 94, 94, 94, 93, 350, 449, 692, 449, 1143,
136815
- /* 940 */ 973, 973, 970, 1210, 106, 106, 268, 1212, 268, 1269,
136816
- /* 950 */ 2, 888, 268, 888, 335, 1042, 53, 53, 107, 107,
136817
- /* 960 */ 324, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136865
+ /* 930 */ 95, 94, 94, 94, 93, 350, 449, 691, 449, 1141,
136866
+ /* 940 */ 971, 971, 968, 1207, 106, 106, 268, 1209, 268, 1266,
136867
+ /* 950 */ 2, 886, 268, 886, 335, 1040, 53, 53, 107, 107,
136868
+ /* 960 */ 324, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136818136869
/* 970 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136819
- /* 980 */ 95, 94, 94, 94, 93, 350, 449, 1072, 449, 1068,
136820
- /* 990 */ 973, 973, 1041, 267, 108, 108, 445, 330, 331, 133,
136821
- /* 1000 */ 223, 175, 301, 225, 385, 1258, 104, 104, 121, 121,
136822
- /* 1010 */ 324, 99, 88, 90, 849, 852, 841, 841, 97, 97,
136823
- /* 1020 */ 98, 98, 98, 98, 1143, 96, 96, 96, 96, 95,
136870
+ /* 980 */ 95, 94, 94, 94, 93, 350, 449, 1070, 449, 1066,
136871
+ /* 990 */ 971, 971, 1039, 267, 108, 108, 445, 330, 331, 133,
136872
+ /* 1000 */ 223, 175, 301, 225, 385, 1255, 104, 104, 121, 121,
136873
+ /* 1010 */ 324, 99, 88, 90, 847, 850, 839, 839, 97, 97,
136874
+ /* 1020 */ 98, 98, 98, 98, 1141, 96, 96, 96, 96, 95,
136824136875
/* 1030 */ 95, 94, 94, 94, 93, 350, 449, 346, 449, 167,
136825
- /* 1040 */ 973, 973, 927, 811, 371, 318, 202, 202, 373, 263,
136826
- /* 1050 */ 394, 202, 74, 208, 722, 723, 119, 119, 112, 112,
136827
- /* 1060 */ 324, 406, 100, 90, 849, 852, 841, 841, 97, 97,
136876
+ /* 1040 */ 971, 971, 925, 810, 371, 318, 202, 202, 373, 263,
136877
+ /* 1050 */ 394, 202, 74, 208, 721, 722, 119, 119, 112, 112,
136878
+ /* 1060 */ 324, 406, 100, 90, 847, 850, 839, 839, 97, 97,
136828136879
/* 1070 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136829
- /* 1080 */ 95, 94, 94, 94, 93, 350, 449, 753, 449, 344,
136830
- /* 1090 */ 973, 973, 752, 278, 111, 111, 74, 715, 714, 705,
136831
- /* 1100 */ 286, 879, 750, 1282, 257, 77, 109, 109, 110, 110,
136832
- /* 1110 */ 1233, 285, 1136, 90, 849, 852, 841, 841, 97, 97,
136833
- /* 1120 */ 98, 98, 98, 98, 1236, 96, 96, 96, 96, 95,
136880
+ /* 1080 */ 95, 94, 94, 94, 93, 350, 449, 752, 449, 344,
136881
+ /* 1090 */ 971, 971, 751, 278, 111, 111, 74, 714, 713, 704,
136882
+ /* 1100 */ 286, 877, 749, 1279, 257, 77, 109, 109, 110, 110,
136883
+ /* 1110 */ 1230, 285, 1134, 90, 847, 850, 839, 839, 97, 97,
136884
+ /* 1120 */ 98, 98, 98, 98, 1233, 96, 96, 96, 96, 95,
136834136885
/* 1130 */ 95, 94, 94, 94, 93, 350, 86, 444, 449, 3,
136835
- /* 1140 */ 1196, 449, 1071, 132, 351, 120, 1015, 86, 444, 781,
136836
- /* 1150 */ 3, 1093, 202, 376, 447, 351, 1232, 120, 55, 55,
136837
- /* 1160 */ 449, 57, 57, 824, 875, 447, 449, 208, 449, 705,
136838
- /* 1170 */ 449, 879, 237, 433, 435, 120, 439, 428, 361, 120,
136839
- /* 1180 */ 54, 54, 132, 449, 433, 828, 52, 52, 26, 26,
136840
- /* 1190 */ 30, 30, 381, 132, 408, 443, 828, 690, 264, 389,
136886
+ /* 1140 */ 1193, 449, 1069, 132, 351, 120, 1013, 86, 444, 780,
136887
+ /* 1150 */ 3, 1091, 202, 376, 447, 351, 1229, 120, 55, 55,
136888
+ /* 1160 */ 449, 57, 57, 822, 873, 447, 449, 208, 449, 704,
136889
+ /* 1170 */ 449, 877, 237, 433, 435, 120, 439, 428, 361, 120,
136890
+ /* 1180 */ 54, 54, 132, 449, 433, 826, 52, 52, 26, 26,
136891
+ /* 1190 */ 30, 30, 381, 132, 408, 443, 826, 689, 264, 389,
136841136892
/* 1200 */ 116, 269, 272, 32, 32, 83, 84, 120, 274, 120,
136842
- /* 1210 */ 120, 276, 85, 351, 451, 450, 83, 84, 815, 1056,
136843
- /* 1220 */ 1040, 427, 429, 85, 351, 451, 450, 120, 120, 815,
136844
- /* 1230 */ 377, 218, 281, 824, 1109, 1142, 86, 444, 409, 3,
136845
- /* 1240 */ 1089, 1100, 430, 431, 351, 302, 303, 1149, 1023, 820,
136846
- /* 1250 */ 820, 822, 823, 19, 447, 1017, 1006, 1005, 1007, 1276,
136847
- /* 1260 */ 820, 820, 822, 823, 19, 289, 159, 291, 293, 7,
136848
- /* 1270 */ 315, 173, 259, 433, 1131, 363, 252, 1235, 375, 1039,
136849
- /* 1280 */ 295, 434, 168, 988, 399, 828, 284, 1207, 1206, 205,
136850
- /* 1290 */ 1279, 308, 1252, 86, 444, 985, 3, 1250, 332, 144,
136851
- /* 1300 */ 130, 351, 72, 135, 59, 83, 84, 757, 137, 365,
136852
- /* 1310 */ 1128, 447, 85, 351, 451, 450, 139, 226, 815, 140,
136853
- /* 1320 */ 156, 62, 314, 314, 313, 215, 311, 366, 392, 679,
136854
- /* 1330 */ 433, 185, 141, 1237, 142, 160, 148, 1138, 1201, 382,
136855
- /* 1340 */ 189, 67, 828, 180, 388, 248, 1221, 1101, 219, 820,
136856
- /* 1350 */ 820, 822, 823, 19, 247, 190, 266, 154, 390, 271,
136857
- /* 1360 */ 191, 192, 83, 84, 1008, 405, 1059, 182, 321, 85,
136858
- /* 1370 */ 351, 451, 450, 1058, 183, 815, 341, 132, 181, 707,
136859
- /* 1380 */ 1057, 420, 76, 444, 1031, 3, 322, 1030, 283, 1050,
136860
- /* 1390 */ 351, 1097, 1029, 1291, 1049, 71, 204, 6, 288, 290,
136861
- /* 1400 */ 447, 1098, 1096, 1095, 79, 292, 820, 820, 822, 823,
136862
- /* 1410 */ 19, 294, 297, 437, 345, 441, 102, 1187, 1079, 433,
136893
+ /* 1210 */ 120, 276, 85, 351, 451, 450, 83, 84, 818, 1054,
136894
+ /* 1220 */ 1038, 427, 429, 85, 351, 451, 450, 120, 120, 818,
136895
+ /* 1230 */ 377, 218, 281, 822, 1107, 1140, 86, 444, 409, 3,
136896
+ /* 1240 */ 1087, 1098, 430, 431, 351, 302, 303, 1146, 1021, 818,
136897
+ /* 1250 */ 818, 820, 821, 19, 447, 1015, 1004, 1003, 1005, 1273,
136898
+ /* 1260 */ 818, 818, 820, 821, 19, 289, 159, 291, 293, 7,
136899
+ /* 1270 */ 315, 173, 259, 433, 1129, 363, 252, 1232, 375, 1037,
136900
+ /* 1280 */ 295, 434, 168, 986, 399, 826, 284, 1204, 1203, 205,
136901
+ /* 1290 */ 1276, 308, 1249, 86, 444, 983, 3, 1247, 332, 144,
136902
+ /* 1300 */ 130, 351, 72, 135, 59, 83, 84, 756, 137, 365,
136903
+ /* 1310 */ 1126, 447, 85, 351, 451, 450, 139, 226, 818, 140,
136904
+ /* 1320 */ 156, 62, 314, 314, 313, 215, 311, 366, 392, 678,
136905
+ /* 1330 */ 433, 185, 141, 1234, 142, 160, 148, 1136, 1198, 382,
136906
+ /* 1340 */ 189, 67, 826, 180, 388, 248, 1218, 1099, 219, 818,
136907
+ /* 1350 */ 818, 820, 821, 19, 247, 190, 266, 154, 390, 271,
136908
+ /* 1360 */ 191, 192, 83, 84, 1006, 405, 1057, 182, 321, 85,
136909
+ /* 1370 */ 351, 451, 450, 1056, 183, 818, 341, 132, 181, 706,
136910
+ /* 1380 */ 1055, 420, 76, 444, 1029, 3, 322, 1028, 283, 1048,
136911
+ /* 1390 */ 351, 1095, 1027, 1288, 1047, 71, 204, 6, 288, 290,
136912
+ /* 1400 */ 447, 1096, 1094, 1093, 79, 292, 818, 818, 820, 821,
136913
+ /* 1410 */ 19, 294, 297, 437, 345, 441, 102, 1184, 1077, 433,
136863136914
/* 1420 */ 238, 425, 73, 305, 239, 304, 325, 240, 423, 306,
136864
- /* 1430 */ 307, 828, 213, 1014, 22, 947, 452, 214, 216, 217,
136865
- /* 1440 */ 453, 1003, 115, 998, 125, 126, 235, 127, 666, 352,
136915
+ /* 1430 */ 307, 826, 213, 1012, 22, 945, 452, 214, 216, 217,
136916
+ /* 1440 */ 453, 1001, 115, 996, 125, 126, 235, 127, 665, 352,
136866136917
/* 1450 */ 326, 83, 84, 358, 166, 244, 179, 327, 85, 351,
136867
- /* 1460 */ 451, 450, 134, 356, 815, 113, 887, 807, 885, 136,
136868
- /* 1470 */ 128, 138, 739, 258, 184, 901, 143, 145, 63, 64,
136869
- /* 1480 */ 65, 66, 129, 904, 187, 186, 900, 8, 13, 188,
136870
- /* 1490 */ 265, 893, 149, 202, 982, 820, 820, 822, 823, 19,
136871
- /* 1500 */ 150, 387, 161, 681, 285, 391, 151, 395, 400, 193,
136872
- /* 1510 */ 68, 14, 236, 279, 15, 69, 718, 827, 131, 826,
136873
- /* 1520 */ 855, 70, 747, 16, 413, 751, 4, 174, 220, 222,
136874
- /* 1530 */ 152, 780, 859, 775, 201, 77, 74, 870, 17, 856,
136875
- /* 1540 */ 854, 910, 18, 909, 207, 206, 936, 163, 436, 210,
136876
- /* 1550 */ 937, 164, 209, 165, 440, 858, 825, 691, 87, 211,
136877
- /* 1560 */ 309, 312, 1284, 942, 1283,
136918
+ /* 1460 */ 451, 450, 134, 356, 818, 113, 885, 806, 883, 136,
136919
+ /* 1470 */ 128, 138, 738, 258, 184, 899, 143, 145, 63, 64,
136920
+ /* 1480 */ 65, 66, 129, 902, 187, 186, 898, 8, 13, 188,
136921
+ /* 1490 */ 265, 891, 149, 202, 980, 818, 818, 820, 821, 19,
136922
+ /* 1500 */ 150, 387, 161, 680, 285, 391, 151, 395, 400, 193,
136923
+ /* 1510 */ 68, 14, 236, 279, 15, 69, 717, 825, 131, 824,
136924
+ /* 1520 */ 853, 70, 746, 16, 413, 750, 4, 174, 220, 222,
136925
+ /* 1530 */ 152, 779, 857, 774, 201, 77, 74, 868, 17, 854,
136926
+ /* 1540 */ 852, 908, 18, 907, 207, 206, 934, 163, 436, 210,
136927
+ /* 1550 */ 935, 164, 209, 165, 440, 856, 823, 690, 87, 211,
136928
+ /* 1560 */ 309, 312, 1281, 940, 1280,
136878136929
};
136879136930
static const YYCODETYPE yy_lookahead[] = {
136880136931
/* 0 */ 19, 115, 19, 117, 118, 24, 1, 2, 27, 79,
136881136932
/* 10 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
136882136933
/* 20 */ 90, 91, 92, 93, 94, 144, 145, 146, 147, 58,
@@ -137125,56 +137176,56 @@
137125137176
/* 300 */ 1236, 1195, 1198, 1238, 1213, 1221, 1220, 1227, 1229, 1271,
137126137177
/* 310 */ 1275, 1284, 1285, 1289, 1290, 1292, 1201, 1208, 1216, 1279,
137127137178
/* 320 */ 1280, 1264, 1268, 1282,
137128137179
};
137129137180
static const YYACTIONTYPE yy_default[] = {
137130
- /* 0 */ 1273, 1263, 1263, 1263, 1196, 1196, 1196, 1196, 1263, 1090,
137131
- /* 10 */ 1119, 1119, 1247, 1325, 1325, 1325, 1325, 1325, 1325, 1195,
137132
- /* 20 */ 1325, 1325, 1325, 1325, 1263, 1094, 1125, 1325, 1325, 1325,
137133
- /* 30 */ 1325, 1197, 1198, 1325, 1325, 1325, 1246, 1248, 1135, 1134,
137134
- /* 40 */ 1133, 1132, 1229, 1106, 1130, 1123, 1127, 1197, 1191, 1192,
137135
- /* 50 */ 1190, 1194, 1198, 1325, 1126, 1161, 1175, 1160, 1325, 1325,
137136
- /* 60 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137137
- /* 70 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137138
- /* 80 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137139
- /* 90 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137140
- /* 100 */ 1325, 1325, 1325, 1325, 1169, 1174, 1181, 1173, 1170, 1163,
137141
- /* 110 */ 1162, 1164, 1165, 1325, 1013, 1061, 1325, 1325, 1325, 1166,
137142
- /* 120 */ 1325, 1167, 1178, 1177, 1176, 1254, 1281, 1280, 1325, 1325,
137143
- /* 130 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137144
- /* 140 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137145
- /* 150 */ 1325, 1325, 1325, 1325, 1325, 1273, 1263, 1019, 1019, 1325,
137146
- /* 160 */ 1263, 1263, 1263, 1263, 1263, 1263, 1259, 1094, 1085, 1325,
137147
- /* 170 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137148
- /* 180 */ 1251, 1249, 1325, 1211, 1325, 1325, 1325, 1325, 1325, 1325,
137149
- /* 190 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137150
- /* 200 */ 1325, 1325, 1325, 1325, 1090, 1325, 1325, 1325, 1325, 1325,
137151
- /* 210 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1275, 1325, 1224,
137152
- /* 220 */ 1090, 1090, 1090, 1092, 1074, 1084, 999, 1129, 1108, 1108,
137153
- /* 230 */ 1314, 1129, 1314, 1036, 1295, 1033, 1119, 1108, 1193, 1119,
137154
- /* 240 */ 1119, 1091, 1084, 1325, 1317, 1099, 1099, 1316, 1316, 1099,
137155
- /* 250 */ 1140, 1064, 1129, 1070, 1070, 1070, 1070, 1099, 1010, 1129,
137156
- /* 260 */ 1140, 1064, 1064, 1129, 1099, 1010, 1228, 1311, 1099, 1099,
137157
- /* 270 */ 1010, 1204, 1099, 1010, 1099, 1010, 1204, 1062, 1062, 1062,
137158
- /* 280 */ 1051, 1204, 1062, 1036, 1062, 1051, 1062, 1062, 1112, 1107,
137159
- /* 290 */ 1112, 1107, 1112, 1107, 1112, 1107, 1099, 1199, 1099, 1325,
137160
- /* 300 */ 1204, 1208, 1208, 1204, 1124, 1113, 1122, 1120, 1129, 1016,
137161
- /* 310 */ 1054, 1278, 1278, 1274, 1274, 1274, 1322, 1322, 1259, 1290,
137162
- /* 320 */ 1290, 1038, 1038, 1290, 1325, 1325, 1325, 1325, 1325, 1325,
137163
- /* 330 */ 1285, 1325, 1213, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137164
- /* 340 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137165
- /* 350 */ 1325, 1146, 1325, 995, 1256, 1325, 1325, 1255, 1325, 1325,
137166
- /* 360 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137167
- /* 370 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1313, 1325,
137168
- /* 380 */ 1325, 1325, 1325, 1325, 1325, 1227, 1226, 1325, 1325, 1325,
137169
- /* 390 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137170
- /* 400 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137171
- /* 410 */ 1076, 1325, 1325, 1325, 1299, 1325, 1325, 1325, 1325, 1325,
137172
- /* 420 */ 1325, 1325, 1121, 1325, 1114, 1325, 1325, 1304, 1325, 1325,
137173
- /* 430 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1265, 1325,
137174
- /* 440 */ 1325, 1325, 1264, 1325, 1325, 1325, 1325, 1325, 1148, 1325,
137175
- /* 450 */ 1147, 1151, 1325, 1004, 1325,
137181
+ /* 0 */ 1270, 1260, 1260, 1260, 1193, 1193, 1193, 1193, 1260, 1088,
137182
+ /* 10 */ 1117, 1117, 1244, 1322, 1322, 1322, 1322, 1322, 1322, 1192,
137183
+ /* 20 */ 1322, 1322, 1322, 1322, 1260, 1092, 1123, 1322, 1322, 1322,
137184
+ /* 30 */ 1322, 1194, 1195, 1322, 1322, 1322, 1243, 1245, 1133, 1132,
137185
+ /* 40 */ 1131, 1130, 1226, 1104, 1128, 1121, 1125, 1194, 1188, 1189,
137186
+ /* 50 */ 1187, 1191, 1195, 1322, 1124, 1158, 1172, 1157, 1322, 1322,
137187
+ /* 60 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137188
+ /* 70 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137189
+ /* 80 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137190
+ /* 90 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137191
+ /* 100 */ 1322, 1322, 1322, 1322, 1166, 1171, 1178, 1170, 1167, 1160,
137192
+ /* 110 */ 1159, 1161, 1162, 1322, 1011, 1059, 1322, 1322, 1322, 1163,
137193
+ /* 120 */ 1322, 1164, 1175, 1174, 1173, 1251, 1278, 1277, 1322, 1322,
137194
+ /* 130 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137195
+ /* 140 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137196
+ /* 150 */ 1322, 1322, 1322, 1322, 1322, 1270, 1260, 1017, 1017, 1322,
137197
+ /* 160 */ 1260, 1260, 1260, 1260, 1260, 1260, 1256, 1092, 1083, 1322,
137198
+ /* 170 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137199
+ /* 180 */ 1248, 1246, 1322, 1208, 1322, 1322, 1322, 1322, 1322, 1322,
137200
+ /* 190 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137201
+ /* 200 */ 1322, 1322, 1322, 1322, 1088, 1322, 1322, 1322, 1322, 1322,
137202
+ /* 210 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1272, 1322, 1221,
137203
+ /* 220 */ 1088, 1088, 1088, 1090, 1072, 1082, 997, 1127, 1106, 1106,
137204
+ /* 230 */ 1311, 1127, 1311, 1034, 1292, 1031, 1117, 1106, 1190, 1117,
137205
+ /* 240 */ 1117, 1089, 1082, 1322, 1314, 1097, 1097, 1313, 1313, 1097,
137206
+ /* 250 */ 1138, 1062, 1127, 1068, 1068, 1068, 1068, 1097, 1008, 1127,
137207
+ /* 260 */ 1138, 1062, 1062, 1127, 1097, 1008, 1225, 1308, 1097, 1097,
137208
+ /* 270 */ 1008, 1201, 1097, 1008, 1097, 1008, 1201, 1060, 1060, 1060,
137209
+ /* 280 */ 1049, 1201, 1060, 1034, 1060, 1049, 1060, 1060, 1110, 1105,
137210
+ /* 290 */ 1110, 1105, 1110, 1105, 1110, 1105, 1097, 1196, 1097, 1322,
137211
+ /* 300 */ 1201, 1205, 1205, 1201, 1122, 1111, 1120, 1118, 1127, 1014,
137212
+ /* 310 */ 1052, 1275, 1275, 1271, 1271, 1271, 1319, 1319, 1256, 1287,
137213
+ /* 320 */ 1287, 1036, 1036, 1287, 1322, 1322, 1322, 1322, 1322, 1322,
137214
+ /* 330 */ 1282, 1322, 1210, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137215
+ /* 340 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137216
+ /* 350 */ 1322, 1143, 1322, 993, 1253, 1322, 1322, 1252, 1322, 1322,
137217
+ /* 360 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137218
+ /* 370 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1310, 1322,
137219
+ /* 380 */ 1322, 1322, 1322, 1322, 1322, 1224, 1223, 1322, 1322, 1322,
137220
+ /* 390 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137221
+ /* 400 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137222
+ /* 410 */ 1074, 1322, 1322, 1322, 1296, 1322, 1322, 1322, 1322, 1322,
137223
+ /* 420 */ 1322, 1322, 1119, 1322, 1112, 1322, 1322, 1301, 1322, 1322,
137224
+ /* 430 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1262, 1322,
137225
+ /* 440 */ 1322, 1322, 1261, 1322, 1322, 1322, 1322, 1322, 1145, 1322,
137226
+ /* 450 */ 1144, 1148, 1322, 1002, 1322,
137176137227
};
137177137228
/********** End of lemon-generated parsing tables *****************************/
137178137229
137179137230
/* The next table maps tokens (terminal symbols) into fallback tokens.
137180137231
** If a construct like the following:
@@ -137565,190 +137616,189 @@
137565137616
/* 145 */ "idlist_opt ::=",
137566137617
/* 146 */ "idlist_opt ::= LP idlist RP",
137567137618
/* 147 */ "idlist ::= idlist COMMA nm",
137568137619
/* 148 */ "idlist ::= nm",
137569137620
/* 149 */ "expr ::= LP expr RP",
137570
- /* 150 */ "term ::= NULL",
137571
- /* 151 */ "expr ::= ID|INDEXED",
137572
- /* 152 */ "expr ::= JOIN_KW",
137573
- /* 153 */ "expr ::= nm DOT nm",
137574
- /* 154 */ "expr ::= nm DOT nm DOT nm",
137575
- /* 155 */ "term ::= FLOAT|BLOB",
137576
- /* 156 */ "term ::= STRING",
137577
- /* 157 */ "term ::= INTEGER",
137578
- /* 158 */ "expr ::= VARIABLE",
137579
- /* 159 */ "expr ::= expr COLLATE ID|STRING",
137580
- /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
137581
- /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
137582
- /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
137583
- /* 163 */ "term ::= CTIME_KW",
137584
- /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
137585
- /* 165 */ "expr ::= expr AND expr",
137586
- /* 166 */ "expr ::= expr OR expr",
137587
- /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
137588
- /* 168 */ "expr ::= expr EQ|NE expr",
137589
- /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
137590
- /* 170 */ "expr ::= expr PLUS|MINUS expr",
137591
- /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
137592
- /* 172 */ "expr ::= expr CONCAT expr",
137593
- /* 173 */ "likeop ::= NOT LIKE_KW|MATCH",
137594
- /* 174 */ "expr ::= expr likeop expr",
137595
- /* 175 */ "expr ::= expr likeop expr ESCAPE expr",
137596
- /* 176 */ "expr ::= expr ISNULL|NOTNULL",
137597
- /* 177 */ "expr ::= expr NOT NULL",
137598
- /* 178 */ "expr ::= expr IS expr",
137599
- /* 179 */ "expr ::= expr IS NOT expr",
137600
- /* 180 */ "expr ::= NOT expr",
137601
- /* 181 */ "expr ::= BITNOT expr",
137602
- /* 182 */ "expr ::= MINUS expr",
137603
- /* 183 */ "expr ::= PLUS expr",
137604
- /* 184 */ "between_op ::= BETWEEN",
137605
- /* 185 */ "between_op ::= NOT BETWEEN",
137606
- /* 186 */ "expr ::= expr between_op expr AND expr",
137607
- /* 187 */ "in_op ::= IN",
137608
- /* 188 */ "in_op ::= NOT IN",
137609
- /* 189 */ "expr ::= expr in_op LP exprlist RP",
137610
- /* 190 */ "expr ::= LP select RP",
137611
- /* 191 */ "expr ::= expr in_op LP select RP",
137612
- /* 192 */ "expr ::= expr in_op nm dbnm paren_exprlist",
137613
- /* 193 */ "expr ::= EXISTS LP select RP",
137614
- /* 194 */ "expr ::= CASE case_operand case_exprlist case_else END",
137615
- /* 195 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
137616
- /* 196 */ "case_exprlist ::= WHEN expr THEN expr",
137617
- /* 197 */ "case_else ::= ELSE expr",
137618
- /* 198 */ "case_else ::=",
137619
- /* 199 */ "case_operand ::= expr",
137620
- /* 200 */ "case_operand ::=",
137621
- /* 201 */ "exprlist ::=",
137622
- /* 202 */ "nexprlist ::= nexprlist COMMA expr",
137623
- /* 203 */ "nexprlist ::= expr",
137624
- /* 204 */ "paren_exprlist ::=",
137625
- /* 205 */ "paren_exprlist ::= LP exprlist RP",
137626
- /* 206 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
137627
- /* 207 */ "uniqueflag ::= UNIQUE",
137628
- /* 208 */ "uniqueflag ::=",
137629
- /* 209 */ "eidlist_opt ::=",
137630
- /* 210 */ "eidlist_opt ::= LP eidlist RP",
137631
- /* 211 */ "eidlist ::= eidlist COMMA nm collate sortorder",
137632
- /* 212 */ "eidlist ::= nm collate sortorder",
137633
- /* 213 */ "collate ::=",
137634
- /* 214 */ "collate ::= COLLATE ID|STRING",
137635
- /* 215 */ "cmd ::= DROP INDEX ifexists fullname",
137636
- /* 216 */ "cmd ::= VACUUM",
137637
- /* 217 */ "cmd ::= VACUUM nm",
137638
- /* 218 */ "cmd ::= PRAGMA nm dbnm",
137639
- /* 219 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
137640
- /* 220 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
137641
- /* 221 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
137642
- /* 222 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
137643
- /* 223 */ "plus_num ::= PLUS INTEGER|FLOAT",
137644
- /* 224 */ "minus_num ::= MINUS INTEGER|FLOAT",
137645
- /* 225 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
137646
- /* 226 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
137647
- /* 227 */ "trigger_time ::= BEFORE|AFTER",
137648
- /* 228 */ "trigger_time ::= INSTEAD OF",
137649
- /* 229 */ "trigger_time ::=",
137650
- /* 230 */ "trigger_event ::= DELETE|INSERT",
137651
- /* 231 */ "trigger_event ::= UPDATE",
137652
- /* 232 */ "trigger_event ::= UPDATE OF idlist",
137653
- /* 233 */ "when_clause ::=",
137654
- /* 234 */ "when_clause ::= WHEN expr",
137655
- /* 235 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
137656
- /* 236 */ "trigger_cmd_list ::= trigger_cmd SEMI",
137657
- /* 237 */ "trnm ::= nm DOT nm",
137658
- /* 238 */ "tridxby ::= INDEXED BY nm",
137659
- /* 239 */ "tridxby ::= NOT INDEXED",
137660
- /* 240 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
137661
- /* 241 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
137662
- /* 242 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
137663
- /* 243 */ "trigger_cmd ::= select",
137664
- /* 244 */ "expr ::= RAISE LP IGNORE RP",
137665
- /* 245 */ "expr ::= RAISE LP raisetype COMMA nm RP",
137666
- /* 246 */ "raisetype ::= ROLLBACK",
137667
- /* 247 */ "raisetype ::= ABORT",
137668
- /* 248 */ "raisetype ::= FAIL",
137669
- /* 249 */ "cmd ::= DROP TRIGGER ifexists fullname",
137670
- /* 250 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
137671
- /* 251 */ "cmd ::= DETACH database_kw_opt expr",
137672
- /* 252 */ "key_opt ::=",
137673
- /* 253 */ "key_opt ::= KEY expr",
137674
- /* 254 */ "cmd ::= REINDEX",
137675
- /* 255 */ "cmd ::= REINDEX nm dbnm",
137676
- /* 256 */ "cmd ::= ANALYZE",
137677
- /* 257 */ "cmd ::= ANALYZE nm dbnm",
137678
- /* 258 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
137679
- /* 259 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
137680
- /* 260 */ "add_column_fullname ::= fullname",
137681
- /* 261 */ "cmd ::= create_vtab",
137682
- /* 262 */ "cmd ::= create_vtab LP vtabarglist RP",
137683
- /* 263 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
137684
- /* 264 */ "vtabarg ::=",
137685
- /* 265 */ "vtabargtoken ::= ANY",
137686
- /* 266 */ "vtabargtoken ::= lp anylist RP",
137687
- /* 267 */ "lp ::= LP",
137688
- /* 268 */ "with ::=",
137689
- /* 269 */ "with ::= WITH wqlist",
137690
- /* 270 */ "with ::= WITH RECURSIVE wqlist",
137691
- /* 271 */ "wqlist ::= nm eidlist_opt AS LP select RP",
137692
- /* 272 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
137693
- /* 273 */ "input ::= cmdlist",
137694
- /* 274 */ "cmdlist ::= cmdlist ecmd",
137695
- /* 275 */ "cmdlist ::= ecmd",
137696
- /* 276 */ "ecmd ::= SEMI",
137697
- /* 277 */ "ecmd ::= explain cmdx SEMI",
137698
- /* 278 */ "explain ::=",
137699
- /* 279 */ "trans_opt ::=",
137700
- /* 280 */ "trans_opt ::= TRANSACTION",
137701
- /* 281 */ "trans_opt ::= TRANSACTION nm",
137702
- /* 282 */ "savepoint_opt ::= SAVEPOINT",
137703
- /* 283 */ "savepoint_opt ::=",
137704
- /* 284 */ "cmd ::= create_table create_table_args",
137705
- /* 285 */ "columnlist ::= columnlist COMMA columnname carglist",
137706
- /* 286 */ "columnlist ::= columnname carglist",
137707
- /* 287 */ "nm ::= ID|INDEXED",
137708
- /* 288 */ "nm ::= STRING",
137709
- /* 289 */ "nm ::= JOIN_KW",
137710
- /* 290 */ "typetoken ::= typename",
137711
- /* 291 */ "typename ::= ID|STRING",
137712
- /* 292 */ "signed ::= plus_num",
137713
- /* 293 */ "signed ::= minus_num",
137714
- /* 294 */ "carglist ::= carglist ccons",
137715
- /* 295 */ "carglist ::=",
137716
- /* 296 */ "ccons ::= NULL onconf",
137717
- /* 297 */ "conslist_opt ::= COMMA conslist",
137718
- /* 298 */ "conslist ::= conslist tconscomma tcons",
137719
- /* 299 */ "conslist ::= tcons",
137720
- /* 300 */ "tconscomma ::=",
137721
- /* 301 */ "defer_subclause_opt ::= defer_subclause",
137722
- /* 302 */ "resolvetype ::= raisetype",
137723
- /* 303 */ "selectnowith ::= oneselect",
137724
- /* 304 */ "oneselect ::= values",
137725
- /* 305 */ "sclp ::= selcollist COMMA",
137726
- /* 306 */ "as ::= ID|STRING",
137727
- /* 307 */ "expr ::= term",
137728
- /* 308 */ "likeop ::= LIKE_KW|MATCH",
137729
- /* 309 */ "exprlist ::= nexprlist",
137730
- /* 310 */ "nmnum ::= plus_num",
137731
- /* 311 */ "nmnum ::= nm",
137732
- /* 312 */ "nmnum ::= ON",
137733
- /* 313 */ "nmnum ::= DELETE",
137734
- /* 314 */ "nmnum ::= DEFAULT",
137735
- /* 315 */ "plus_num ::= INTEGER|FLOAT",
137736
- /* 316 */ "foreach_clause ::=",
137737
- /* 317 */ "foreach_clause ::= FOR EACH ROW",
137738
- /* 318 */ "trnm ::= nm",
137739
- /* 319 */ "tridxby ::=",
137740
- /* 320 */ "database_kw_opt ::= DATABASE",
137741
- /* 321 */ "database_kw_opt ::=",
137742
- /* 322 */ "kwcolumn_opt ::=",
137743
- /* 323 */ "kwcolumn_opt ::= COLUMNKW",
137744
- /* 324 */ "vtabarglist ::= vtabarg",
137745
- /* 325 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
137746
- /* 326 */ "vtabarg ::= vtabarg vtabargtoken",
137747
- /* 327 */ "anylist ::=",
137748
- /* 328 */ "anylist ::= anylist LP anylist RP",
137749
- /* 329 */ "anylist ::= anylist ANY",
137621
+ /* 150 */ "expr ::= ID|INDEXED",
137622
+ /* 151 */ "expr ::= JOIN_KW",
137623
+ /* 152 */ "expr ::= nm DOT nm",
137624
+ /* 153 */ "expr ::= nm DOT nm DOT nm",
137625
+ /* 154 */ "term ::= NULL|FLOAT|BLOB",
137626
+ /* 155 */ "term ::= STRING",
137627
+ /* 156 */ "term ::= INTEGER",
137628
+ /* 157 */ "expr ::= VARIABLE",
137629
+ /* 158 */ "expr ::= expr COLLATE ID|STRING",
137630
+ /* 159 */ "expr ::= CAST LP expr AS typetoken RP",
137631
+ /* 160 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
137632
+ /* 161 */ "expr ::= ID|INDEXED LP STAR RP",
137633
+ /* 162 */ "term ::= CTIME_KW",
137634
+ /* 163 */ "expr ::= LP nexprlist COMMA expr RP",
137635
+ /* 164 */ "expr ::= expr AND expr",
137636
+ /* 165 */ "expr ::= expr OR expr",
137637
+ /* 166 */ "expr ::= expr LT|GT|GE|LE expr",
137638
+ /* 167 */ "expr ::= expr EQ|NE expr",
137639
+ /* 168 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
137640
+ /* 169 */ "expr ::= expr PLUS|MINUS expr",
137641
+ /* 170 */ "expr ::= expr STAR|SLASH|REM expr",
137642
+ /* 171 */ "expr ::= expr CONCAT expr",
137643
+ /* 172 */ "likeop ::= NOT LIKE_KW|MATCH",
137644
+ /* 173 */ "expr ::= expr likeop expr",
137645
+ /* 174 */ "expr ::= expr likeop expr ESCAPE expr",
137646
+ /* 175 */ "expr ::= expr ISNULL|NOTNULL",
137647
+ /* 176 */ "expr ::= expr NOT NULL",
137648
+ /* 177 */ "expr ::= expr IS expr",
137649
+ /* 178 */ "expr ::= expr IS NOT expr",
137650
+ /* 179 */ "expr ::= NOT expr",
137651
+ /* 180 */ "expr ::= BITNOT expr",
137652
+ /* 181 */ "expr ::= MINUS expr",
137653
+ /* 182 */ "expr ::= PLUS expr",
137654
+ /* 183 */ "between_op ::= BETWEEN",
137655
+ /* 184 */ "between_op ::= NOT BETWEEN",
137656
+ /* 185 */ "expr ::= expr between_op expr AND expr",
137657
+ /* 186 */ "in_op ::= IN",
137658
+ /* 187 */ "in_op ::= NOT IN",
137659
+ /* 188 */ "expr ::= expr in_op LP exprlist RP",
137660
+ /* 189 */ "expr ::= LP select RP",
137661
+ /* 190 */ "expr ::= expr in_op LP select RP",
137662
+ /* 191 */ "expr ::= expr in_op nm dbnm paren_exprlist",
137663
+ /* 192 */ "expr ::= EXISTS LP select RP",
137664
+ /* 193 */ "expr ::= CASE case_operand case_exprlist case_else END",
137665
+ /* 194 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
137666
+ /* 195 */ "case_exprlist ::= WHEN expr THEN expr",
137667
+ /* 196 */ "case_else ::= ELSE expr",
137668
+ /* 197 */ "case_else ::=",
137669
+ /* 198 */ "case_operand ::= expr",
137670
+ /* 199 */ "case_operand ::=",
137671
+ /* 200 */ "exprlist ::=",
137672
+ /* 201 */ "nexprlist ::= nexprlist COMMA expr",
137673
+ /* 202 */ "nexprlist ::= expr",
137674
+ /* 203 */ "paren_exprlist ::=",
137675
+ /* 204 */ "paren_exprlist ::= LP exprlist RP",
137676
+ /* 205 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
137677
+ /* 206 */ "uniqueflag ::= UNIQUE",
137678
+ /* 207 */ "uniqueflag ::=",
137679
+ /* 208 */ "eidlist_opt ::=",
137680
+ /* 209 */ "eidlist_opt ::= LP eidlist RP",
137681
+ /* 210 */ "eidlist ::= eidlist COMMA nm collate sortorder",
137682
+ /* 211 */ "eidlist ::= nm collate sortorder",
137683
+ /* 212 */ "collate ::=",
137684
+ /* 213 */ "collate ::= COLLATE ID|STRING",
137685
+ /* 214 */ "cmd ::= DROP INDEX ifexists fullname",
137686
+ /* 215 */ "cmd ::= VACUUM",
137687
+ /* 216 */ "cmd ::= VACUUM nm",
137688
+ /* 217 */ "cmd ::= PRAGMA nm dbnm",
137689
+ /* 218 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
137690
+ /* 219 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
137691
+ /* 220 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
137692
+ /* 221 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
137693
+ /* 222 */ "plus_num ::= PLUS INTEGER|FLOAT",
137694
+ /* 223 */ "minus_num ::= MINUS INTEGER|FLOAT",
137695
+ /* 224 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
137696
+ /* 225 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
137697
+ /* 226 */ "trigger_time ::= BEFORE|AFTER",
137698
+ /* 227 */ "trigger_time ::= INSTEAD OF",
137699
+ /* 228 */ "trigger_time ::=",
137700
+ /* 229 */ "trigger_event ::= DELETE|INSERT",
137701
+ /* 230 */ "trigger_event ::= UPDATE",
137702
+ /* 231 */ "trigger_event ::= UPDATE OF idlist",
137703
+ /* 232 */ "when_clause ::=",
137704
+ /* 233 */ "when_clause ::= WHEN expr",
137705
+ /* 234 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
137706
+ /* 235 */ "trigger_cmd_list ::= trigger_cmd SEMI",
137707
+ /* 236 */ "trnm ::= nm DOT nm",
137708
+ /* 237 */ "tridxby ::= INDEXED BY nm",
137709
+ /* 238 */ "tridxby ::= NOT INDEXED",
137710
+ /* 239 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
137711
+ /* 240 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
137712
+ /* 241 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
137713
+ /* 242 */ "trigger_cmd ::= select",
137714
+ /* 243 */ "expr ::= RAISE LP IGNORE RP",
137715
+ /* 244 */ "expr ::= RAISE LP raisetype COMMA nm RP",
137716
+ /* 245 */ "raisetype ::= ROLLBACK",
137717
+ /* 246 */ "raisetype ::= ABORT",
137718
+ /* 247 */ "raisetype ::= FAIL",
137719
+ /* 248 */ "cmd ::= DROP TRIGGER ifexists fullname",
137720
+ /* 249 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
137721
+ /* 250 */ "cmd ::= DETACH database_kw_opt expr",
137722
+ /* 251 */ "key_opt ::=",
137723
+ /* 252 */ "key_opt ::= KEY expr",
137724
+ /* 253 */ "cmd ::= REINDEX",
137725
+ /* 254 */ "cmd ::= REINDEX nm dbnm",
137726
+ /* 255 */ "cmd ::= ANALYZE",
137727
+ /* 256 */ "cmd ::= ANALYZE nm dbnm",
137728
+ /* 257 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
137729
+ /* 258 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
137730
+ /* 259 */ "add_column_fullname ::= fullname",
137731
+ /* 260 */ "cmd ::= create_vtab",
137732
+ /* 261 */ "cmd ::= create_vtab LP vtabarglist RP",
137733
+ /* 262 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
137734
+ /* 263 */ "vtabarg ::=",
137735
+ /* 264 */ "vtabargtoken ::= ANY",
137736
+ /* 265 */ "vtabargtoken ::= lp anylist RP",
137737
+ /* 266 */ "lp ::= LP",
137738
+ /* 267 */ "with ::=",
137739
+ /* 268 */ "with ::= WITH wqlist",
137740
+ /* 269 */ "with ::= WITH RECURSIVE wqlist",
137741
+ /* 270 */ "wqlist ::= nm eidlist_opt AS LP select RP",
137742
+ /* 271 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
137743
+ /* 272 */ "input ::= cmdlist",
137744
+ /* 273 */ "cmdlist ::= cmdlist ecmd",
137745
+ /* 274 */ "cmdlist ::= ecmd",
137746
+ /* 275 */ "ecmd ::= SEMI",
137747
+ /* 276 */ "ecmd ::= explain cmdx SEMI",
137748
+ /* 277 */ "explain ::=",
137749
+ /* 278 */ "trans_opt ::=",
137750
+ /* 279 */ "trans_opt ::= TRANSACTION",
137751
+ /* 280 */ "trans_opt ::= TRANSACTION nm",
137752
+ /* 281 */ "savepoint_opt ::= SAVEPOINT",
137753
+ /* 282 */ "savepoint_opt ::=",
137754
+ /* 283 */ "cmd ::= create_table create_table_args",
137755
+ /* 284 */ "columnlist ::= columnlist COMMA columnname carglist",
137756
+ /* 285 */ "columnlist ::= columnname carglist",
137757
+ /* 286 */ "nm ::= ID|INDEXED",
137758
+ /* 287 */ "nm ::= STRING",
137759
+ /* 288 */ "nm ::= JOIN_KW",
137760
+ /* 289 */ "typetoken ::= typename",
137761
+ /* 290 */ "typename ::= ID|STRING",
137762
+ /* 291 */ "signed ::= plus_num",
137763
+ /* 292 */ "signed ::= minus_num",
137764
+ /* 293 */ "carglist ::= carglist ccons",
137765
+ /* 294 */ "carglist ::=",
137766
+ /* 295 */ "ccons ::= NULL onconf",
137767
+ /* 296 */ "conslist_opt ::= COMMA conslist",
137768
+ /* 297 */ "conslist ::= conslist tconscomma tcons",
137769
+ /* 298 */ "conslist ::= tcons",
137770
+ /* 299 */ "tconscomma ::=",
137771
+ /* 300 */ "defer_subclause_opt ::= defer_subclause",
137772
+ /* 301 */ "resolvetype ::= raisetype",
137773
+ /* 302 */ "selectnowith ::= oneselect",
137774
+ /* 303 */ "oneselect ::= values",
137775
+ /* 304 */ "sclp ::= selcollist COMMA",
137776
+ /* 305 */ "as ::= ID|STRING",
137777
+ /* 306 */ "expr ::= term",
137778
+ /* 307 */ "likeop ::= LIKE_KW|MATCH",
137779
+ /* 308 */ "exprlist ::= nexprlist",
137780
+ /* 309 */ "nmnum ::= plus_num",
137781
+ /* 310 */ "nmnum ::= nm",
137782
+ /* 311 */ "nmnum ::= ON",
137783
+ /* 312 */ "nmnum ::= DELETE",
137784
+ /* 313 */ "nmnum ::= DEFAULT",
137785
+ /* 314 */ "plus_num ::= INTEGER|FLOAT",
137786
+ /* 315 */ "foreach_clause ::=",
137787
+ /* 316 */ "foreach_clause ::= FOR EACH ROW",
137788
+ /* 317 */ "trnm ::= nm",
137789
+ /* 318 */ "tridxby ::=",
137790
+ /* 319 */ "database_kw_opt ::= DATABASE",
137791
+ /* 320 */ "database_kw_opt ::=",
137792
+ /* 321 */ "kwcolumn_opt ::=",
137793
+ /* 322 */ "kwcolumn_opt ::= COLUMNKW",
137794
+ /* 323 */ "vtabarglist ::= vtabarg",
137795
+ /* 324 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
137796
+ /* 325 */ "vtabarg ::= vtabarg vtabargtoken",
137797
+ /* 326 */ "anylist ::=",
137798
+ /* 327 */ "anylist ::= anylist LP anylist RP",
137799
+ /* 328 */ "anylist ::= anylist ANY",
137750137800
};
137751137801
#endif /* NDEBUG */
137752137802
137753137803
137754137804
#if YYSTACKDEPTH<=0
@@ -138339,11 +138389,10 @@
138339138389
{ 220, 0 },
138340138390
{ 220, -3 },
138341138391
{ 217, -3 },
138342138392
{ 217, -1 },
138343138393
{ 173, -3 },
138344
- { 172, -1 },
138345138394
{ 173, -1 },
138346138395
{ 173, -1 },
138347138396
{ 173, -3 },
138348138397
{ 173, -5 },
138349138398
{ 172, -1 },
@@ -138637,11 +138686,11 @@
138637138686
case 41: /* autoinc ::= */ yytestcase(yyruleno==41);
138638138687
case 56: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==56);
138639138688
case 66: /* defer_subclause_opt ::= */ yytestcase(yyruleno==66);
138640138689
case 75: /* ifexists ::= */ yytestcase(yyruleno==75);
138641138690
case 89: /* distinct ::= */ yytestcase(yyruleno==89);
138642
- case 213: /* collate ::= */ yytestcase(yyruleno==213);
138691
+ case 212: /* collate ::= */ yytestcase(yyruleno==212);
138643138692
{yymsp[1].minor.yy194 = 0;}
138644138693
break;
138645138694
case 16: /* ifnotexists ::= IF NOT EXISTS */
138646138695
{yymsp[-2].minor.yy194 = 1;}
138647138696
break;
@@ -138781,13 +138830,13 @@
138781138830
case 143: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==143);
138782138831
{yymsp[-1].minor.yy194 = yymsp[0].minor.yy194;}
138783138832
break;
138784138833
case 57: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
138785138834
case 74: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==74);
138786
- case 185: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==185);
138787
- case 188: /* in_op ::= NOT IN */ yytestcase(yyruleno==188);
138788
- case 214: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==214);
138835
+ case 184: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==184);
138836
+ case 187: /* in_op ::= NOT IN */ yytestcase(yyruleno==187);
138837
+ case 213: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==213);
138789138838
{yymsp[-1].minor.yy194 = 1;}
138790138839
break;
138791138840
case 58: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
138792138841
{yymsp[-1].minor.yy194 = 0;}
138793138842
break;
@@ -138947,13 +138996,13 @@
138947138996
{yymsp[0].minor.yy194 = SF_All;}
138948138997
break;
138949138998
case 90: /* sclp ::= */
138950138999
case 118: /* orderby_opt ::= */ yytestcase(yyruleno==118);
138951139000
case 125: /* groupby_opt ::= */ yytestcase(yyruleno==125);
138952
- case 201: /* exprlist ::= */ yytestcase(yyruleno==201);
138953
- case 204: /* paren_exprlist ::= */ yytestcase(yyruleno==204);
138954
- case 209: /* eidlist_opt ::= */ yytestcase(yyruleno==209);
139001
+ case 200: /* exprlist ::= */ yytestcase(yyruleno==200);
139002
+ case 203: /* paren_exprlist ::= */ yytestcase(yyruleno==203);
139003
+ case 208: /* eidlist_opt ::= */ yytestcase(yyruleno==208);
138955139004
{yymsp[1].minor.yy148 = 0;}
138956139005
break;
138957139006
case 91: /* selcollist ::= sclp expr as */
138958139007
{
138959139008
yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy148, yymsp[-1].minor.yy190.pExpr);
@@ -138975,12 +139024,12 @@
138975139024
yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, pDot);
138976139025
}
138977139026
break;
138978139027
case 94: /* as ::= AS nm */
138979139028
case 105: /* dbnm ::= DOT nm */ yytestcase(yyruleno==105);
138980
- case 223: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
138981
- case 224: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
139029
+ case 222: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==222);
139030
+ case 223: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
138982139031
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
138983139032
break;
138984139033
case 96: /* from ::= */
138985139034
{yymsp[1].minor.yy185 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy185));}
138986139035
break;
@@ -139059,18 +139108,18 @@
139059139108
{yymsp[-3].minor.yy194 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
139060139109
break;
139061139110
case 111: /* on_opt ::= ON expr */
139062139111
case 128: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==128);
139063139112
case 135: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==135);
139064
- case 197: /* case_else ::= ELSE expr */ yytestcase(yyruleno==197);
139113
+ case 196: /* case_else ::= ELSE expr */ yytestcase(yyruleno==196);
139065139114
{yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr;}
139066139115
break;
139067139116
case 112: /* on_opt ::= */
139068139117
case 127: /* having_opt ::= */ yytestcase(yyruleno==127);
139069139118
case 134: /* where_opt ::= */ yytestcase(yyruleno==134);
139070
- case 198: /* case_else ::= */ yytestcase(yyruleno==198);
139071
- case 200: /* case_operand ::= */ yytestcase(yyruleno==200);
139119
+ case 197: /* case_else ::= */ yytestcase(yyruleno==197);
139120
+ case 199: /* case_operand ::= */ yytestcase(yyruleno==199);
139072139121
{yymsp[1].minor.yy72 = 0;}
139073139122
break;
139074139123
case 114: /* indexed_opt ::= INDEXED BY nm */
139075139124
{yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
139076139125
break;
@@ -139181,47 +139230,45 @@
139181139230
{yymsp[0].minor.yy254 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
139182139231
break;
139183139232
case 149: /* expr ::= LP expr RP */
139184139233
{spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/ yymsp[-2].minor.yy190.pExpr = yymsp[-1].minor.yy190.pExpr;}
139185139234
break;
139186
- case 150: /* term ::= NULL */
139187
- case 155: /* term ::= FLOAT|BLOB */ yytestcase(yyruleno==155);
139188
- case 156: /* term ::= STRING */ yytestcase(yyruleno==156);
139189
-{spanExpr(&yymsp[0].minor.yy190,pParse,yymsp[0].major,yymsp[0].minor.yy0);/*A-overwrites-X*/}
139190
- break;
139191
- case 151: /* expr ::= ID|INDEXED */
139192
- case 152: /* expr ::= JOIN_KW */ yytestcase(yyruleno==152);
139235
+ case 150: /* expr ::= ID|INDEXED */
139236
+ case 151: /* expr ::= JOIN_KW */ yytestcase(yyruleno==151);
139193139237
{spanExpr(&yymsp[0].minor.yy190,pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
139194139238
break;
139195
- case 153: /* expr ::= nm DOT nm */
139239
+ case 152: /* expr ::= nm DOT nm */
139196139240
{
139197139241
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
139198139242
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
139199139243
spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139200139244
yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
139201139245
}
139202139246
break;
139203
- case 154: /* expr ::= nm DOT nm DOT nm */
139247
+ case 153: /* expr ::= nm DOT nm DOT nm */
139204139248
{
139205139249
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
139206139250
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
139207139251
Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
139208139252
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
139209139253
spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139210139254
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
139211139255
}
139212139256
break;
139213
- case 157: /* term ::= INTEGER */
139257
+ case 154: /* term ::= NULL|FLOAT|BLOB */
139258
+ case 155: /* term ::= STRING */ yytestcase(yyruleno==155);
139259
+{spanExpr(&yymsp[0].minor.yy190,pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
139260
+ break;
139261
+ case 156: /* term ::= INTEGER */
139214139262
{
139215139263
yylhsminor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
139216139264
yylhsminor.yy190.zStart = yymsp[0].minor.yy0.z;
139217139265
yylhsminor.yy190.zEnd = yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n;
139218
- if( yylhsminor.yy190.pExpr ) yylhsminor.yy190.pExpr->flags |= EP_Leaf|EP_Resolved;
139219139266
}
139220139267
yymsp[0].minor.yy190 = yylhsminor.yy190;
139221139268
break;
139222
- case 158: /* expr ::= VARIABLE */
139269
+ case 157: /* expr ::= VARIABLE */
139223139270
{
139224139271
if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
139225139272
u32 n = yymsp[0].minor.yy0.n;
139226139273
spanExpr(&yymsp[0].minor.yy190, pParse, TK_VARIABLE, yymsp[0].minor.yy0);
139227139274
sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy190.pExpr, n);
@@ -139240,24 +139287,24 @@
139240139287
if( yymsp[0].minor.yy190.pExpr ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy190.pExpr->iTable);
139241139288
}
139242139289
}
139243139290
}
139244139291
break;
139245
- case 159: /* expr ::= expr COLLATE ID|STRING */
139292
+ case 158: /* expr ::= expr COLLATE ID|STRING */
139246139293
{
139247139294
yymsp[-2].minor.yy190.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy190.pExpr, &yymsp[0].minor.yy0, 1);
139248139295
yymsp[-2].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139249139296
}
139250139297
break;
139251
- case 160: /* expr ::= CAST LP expr AS typetoken RP */
139298
+ case 159: /* expr ::= CAST LP expr AS typetoken RP */
139252139299
{
139253139300
spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139254139301
yymsp[-5].minor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
139255139302
sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, 0);
139256139303
}
139257139304
break;
139258
- case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
139305
+ case 160: /* expr ::= ID|INDEXED LP distinct exprlist RP */
139259139306
{
139260139307
if( yymsp[-1].minor.yy148 && yymsp[-1].minor.yy148->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
139261139308
sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
139262139309
}
139263139310
yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy148, &yymsp[-4].minor.yy0);
@@ -139266,25 +139313,25 @@
139266139313
yylhsminor.yy190.pExpr->flags |= EP_Distinct;
139267139314
}
139268139315
}
139269139316
yymsp[-4].minor.yy190 = yylhsminor.yy190;
139270139317
break;
139271
- case 162: /* expr ::= ID|INDEXED LP STAR RP */
139318
+ case 161: /* expr ::= ID|INDEXED LP STAR RP */
139272139319
{
139273139320
yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
139274139321
spanSet(&yylhsminor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
139275139322
}
139276139323
yymsp[-3].minor.yy190 = yylhsminor.yy190;
139277139324
break;
139278
- case 163: /* term ::= CTIME_KW */
139325
+ case 162: /* term ::= CTIME_KW */
139279139326
{
139280139327
yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
139281139328
spanSet(&yylhsminor.yy190, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
139282139329
}
139283139330
yymsp[0].minor.yy190 = yylhsminor.yy190;
139284139331
break;
139285
- case 164: /* expr ::= LP nexprlist COMMA expr RP */
139332
+ case 163: /* expr ::= LP nexprlist COMMA expr RP */
139286139333
{
139287139334
ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy148, yymsp[-1].minor.yy190.pExpr);
139288139335
yylhsminor.yy190.pExpr = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
139289139336
if( yylhsminor.yy190.pExpr ){
139290139337
yylhsminor.yy190.pExpr->x.pList = pList;
@@ -139293,24 +139340,24 @@
139293139340
sqlite3ExprListDelete(pParse->db, pList);
139294139341
}
139295139342
}
139296139343
yymsp[-4].minor.yy190 = yylhsminor.yy190;
139297139344
break;
139298
- case 165: /* expr ::= expr AND expr */
139299
- case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
139300
- case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
139301
- case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
139302
- case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
139303
- case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
139304
- case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
139305
- case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
139345
+ case 164: /* expr ::= expr AND expr */
139346
+ case 165: /* expr ::= expr OR expr */ yytestcase(yyruleno==165);
139347
+ case 166: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==166);
139348
+ case 167: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==167);
139349
+ case 168: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==168);
139350
+ case 169: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==169);
139351
+ case 170: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==170);
139352
+ case 171: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==171);
139306139353
{spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);}
139307139354
break;
139308
- case 173: /* likeop ::= NOT LIKE_KW|MATCH */
139355
+ case 172: /* likeop ::= NOT LIKE_KW|MATCH */
139309139356
{yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
139310139357
break;
139311
- case 174: /* expr ::= expr likeop expr */
139358
+ case 173: /* expr ::= expr likeop expr */
139312139359
{
139313139360
ExprList *pList;
139314139361
int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
139315139362
yymsp[-1].minor.yy0.n &= 0x7fffffff;
139316139363
pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy190.pExpr);
@@ -139319,11 +139366,11 @@
139319139366
exprNot(pParse, bNot, &yymsp[-2].minor.yy190);
139320139367
yymsp[-2].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139321139368
if( yymsp[-2].minor.yy190.pExpr ) yymsp[-2].minor.yy190.pExpr->flags |= EP_InfixFunc;
139322139369
}
139323139370
break;
139324
- case 175: /* expr ::= expr likeop expr ESCAPE expr */
139371
+ case 174: /* expr ::= expr likeop expr ESCAPE expr */
139325139372
{
139326139373
ExprList *pList;
139327139374
int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
139328139375
yymsp[-3].minor.yy0.n &= 0x7fffffff;
139329139376
pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
@@ -139333,43 +139380,43 @@
139333139380
exprNot(pParse, bNot, &yymsp[-4].minor.yy190);
139334139381
yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139335139382
if( yymsp[-4].minor.yy190.pExpr ) yymsp[-4].minor.yy190.pExpr->flags |= EP_InfixFunc;
139336139383
}
139337139384
break;
139338
- case 176: /* expr ::= expr ISNULL|NOTNULL */
139385
+ case 175: /* expr ::= expr ISNULL|NOTNULL */
139339139386
{spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy190,&yymsp[0].minor.yy0);}
139340139387
break;
139341
- case 177: /* expr ::= expr NOT NULL */
139388
+ case 176: /* expr ::= expr NOT NULL */
139342139389
{spanUnaryPostfix(pParse,TK_NOTNULL,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy0);}
139343139390
break;
139344
- case 178: /* expr ::= expr IS expr */
139391
+ case 177: /* expr ::= expr IS expr */
139345139392
{
139346139393
spanBinaryExpr(pParse,TK_IS,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);
139347139394
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-2].minor.yy190.pExpr, TK_ISNULL);
139348139395
}
139349139396
break;
139350
- case 179: /* expr ::= expr IS NOT expr */
139397
+ case 178: /* expr ::= expr IS NOT expr */
139351139398
{
139352139399
spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy190,&yymsp[0].minor.yy190);
139353139400
binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, TK_NOTNULL);
139354139401
}
139355139402
break;
139356
- case 180: /* expr ::= NOT expr */
139357
- case 181: /* expr ::= BITNOT expr */ yytestcase(yyruleno==181);
139403
+ case 179: /* expr ::= NOT expr */
139404
+ case 180: /* expr ::= BITNOT expr */ yytestcase(yyruleno==180);
139358139405
{spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,yymsp[-1].major,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139359139406
break;
139360
- case 182: /* expr ::= MINUS expr */
139407
+ case 181: /* expr ::= MINUS expr */
139361139408
{spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UMINUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139362139409
break;
139363
- case 183: /* expr ::= PLUS expr */
139410
+ case 182: /* expr ::= PLUS expr */
139364139411
{spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UPLUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139365139412
break;
139366
- case 184: /* between_op ::= BETWEEN */
139367
- case 187: /* in_op ::= IN */ yytestcase(yyruleno==187);
139413
+ case 183: /* between_op ::= BETWEEN */
139414
+ case 186: /* in_op ::= IN */ yytestcase(yyruleno==186);
139368139415
{yymsp[0].minor.yy194 = 0;}
139369139416
break;
139370
- case 186: /* expr ::= expr between_op expr AND expr */
139417
+ case 185: /* expr ::= expr between_op expr AND expr */
139371139418
{
139372139419
ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
139373139420
pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
139374139421
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy190.pExpr, 0);
139375139422
if( yymsp[-4].minor.yy190.pExpr ){
@@ -139379,11 +139426,11 @@
139379139426
}
139380139427
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139381139428
yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139382139429
}
139383139430
break;
139384
- case 189: /* expr ::= expr in_op LP exprlist RP */
139431
+ case 188: /* expr ::= expr in_op LP exprlist RP */
139385139432
{
139386139433
if( yymsp[-1].minor.yy148==0 ){
139387139434
/* Expressions of the form
139388139435
**
139389139436
** expr1 IN ()
@@ -139432,26 +139479,26 @@
139432139479
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139433139480
}
139434139481
yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139435139482
}
139436139483
break;
139437
- case 190: /* expr ::= LP select RP */
139484
+ case 189: /* expr ::= LP select RP */
139438139485
{
139439139486
spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
139440139487
yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
139441139488
sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy190.pExpr, yymsp[-1].minor.yy243);
139442139489
}
139443139490
break;
139444
- case 191: /* expr ::= expr in_op LP select RP */
139491
+ case 190: /* expr ::= expr in_op LP select RP */
139445139492
{
139446139493
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0);
139447139494
sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, yymsp[-1].minor.yy243);
139448139495
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139449139496
yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139450139497
}
139451139498
break;
139452
- case 192: /* expr ::= expr in_op nm dbnm paren_exprlist */
139499
+ case 191: /* expr ::= expr in_op nm dbnm paren_exprlist */
139453139500
{
139454139501
SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
139455139502
Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
139456139503
if( yymsp[0].minor.yy148 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy148);
139457139504
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0);
@@ -139458,19 +139505,19 @@
139458139505
sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, pSelect);
139459139506
exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139460139507
yymsp[-4].minor.yy190.zEnd = yymsp[-1].minor.yy0.z ? &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n] : &yymsp[-2].minor.yy0.z[yymsp[-2].minor.yy0.n];
139461139508
}
139462139509
break;
139463
- case 193: /* expr ::= EXISTS LP select RP */
139510
+ case 192: /* expr ::= EXISTS LP select RP */
139464139511
{
139465139512
Expr *p;
139466139513
spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
139467139514
p = yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
139468139515
sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy243);
139469139516
}
139470139517
break;
139471
- case 194: /* expr ::= CASE case_operand case_exprlist case_else END */
139518
+ case 193: /* expr ::= CASE case_operand case_exprlist case_else END */
139472139519
{
139473139520
spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-C*/
139474139521
yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy72, 0);
139475139522
if( yymsp[-4].minor.yy190.pExpr ){
139476139523
yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy72 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[-1].minor.yy72) : yymsp[-2].minor.yy148;
@@ -139479,332 +139526,332 @@
139479139526
sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy148);
139480139527
sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy72);
139481139528
}
139482139529
}
139483139530
break;
139484
- case 195: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
139531
+ case 194: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
139485139532
{
139486139533
yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[-2].minor.yy190.pExpr);
139487139534
yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[0].minor.yy190.pExpr);
139488139535
}
139489139536
break;
139490
- case 196: /* case_exprlist ::= WHEN expr THEN expr */
139537
+ case 195: /* case_exprlist ::= WHEN expr THEN expr */
139491139538
{
139492139539
yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
139493139540
yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, yymsp[0].minor.yy190.pExpr);
139494139541
}
139495139542
break;
139496
- case 199: /* case_operand ::= expr */
139543
+ case 198: /* case_operand ::= expr */
139497139544
{yymsp[0].minor.yy72 = yymsp[0].minor.yy190.pExpr; /*A-overwrites-X*/}
139498139545
break;
139499
- case 202: /* nexprlist ::= nexprlist COMMA expr */
139546
+ case 201: /* nexprlist ::= nexprlist COMMA expr */
139500139547
{yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[0].minor.yy190.pExpr);}
139501139548
break;
139502
- case 203: /* nexprlist ::= expr */
139549
+ case 202: /* nexprlist ::= expr */
139503139550
{yymsp[0].minor.yy148 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy190.pExpr); /*A-overwrites-Y*/}
139504139551
break;
139505
- case 205: /* paren_exprlist ::= LP exprlist RP */
139506
- case 210: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==210);
139552
+ case 204: /* paren_exprlist ::= LP exprlist RP */
139553
+ case 209: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==209);
139507139554
{yymsp[-2].minor.yy148 = yymsp[-1].minor.yy148;}
139508139555
break;
139509
- case 206: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
139556
+ case 205: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
139510139557
{
139511139558
sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
139512139559
sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy148, yymsp[-10].minor.yy194,
139513139560
&yymsp[-11].minor.yy0, yymsp[0].minor.yy72, SQLITE_SO_ASC, yymsp[-8].minor.yy194, SQLITE_IDXTYPE_APPDEF);
139514139561
}
139515139562
break;
139516
- case 207: /* uniqueflag ::= UNIQUE */
139517
- case 247: /* raisetype ::= ABORT */ yytestcase(yyruleno==247);
139563
+ case 206: /* uniqueflag ::= UNIQUE */
139564
+ case 246: /* raisetype ::= ABORT */ yytestcase(yyruleno==246);
139518139565
{yymsp[0].minor.yy194 = OE_Abort;}
139519139566
break;
139520
- case 208: /* uniqueflag ::= */
139567
+ case 207: /* uniqueflag ::= */
139521139568
{yymsp[1].minor.yy194 = OE_None;}
139522139569
break;
139523
- case 211: /* eidlist ::= eidlist COMMA nm collate sortorder */
139570
+ case 210: /* eidlist ::= eidlist COMMA nm collate sortorder */
139524139571
{
139525139572
yymsp[-4].minor.yy148 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy148, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194);
139526139573
}
139527139574
break;
139528
- case 212: /* eidlist ::= nm collate sortorder */
139575
+ case 211: /* eidlist ::= nm collate sortorder */
139529139576
{
139530139577
yymsp[-2].minor.yy148 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194); /*A-overwrites-Y*/
139531139578
}
139532139579
break;
139533
- case 215: /* cmd ::= DROP INDEX ifexists fullname */
139580
+ case 214: /* cmd ::= DROP INDEX ifexists fullname */
139534139581
{sqlite3DropIndex(pParse, yymsp[0].minor.yy185, yymsp[-1].minor.yy194);}
139535139582
break;
139536
- case 216: /* cmd ::= VACUUM */
139583
+ case 215: /* cmd ::= VACUUM */
139537139584
{sqlite3Vacuum(pParse,0);}
139538139585
break;
139539
- case 217: /* cmd ::= VACUUM nm */
139586
+ case 216: /* cmd ::= VACUUM nm */
139540139587
{sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
139541139588
break;
139542
- case 218: /* cmd ::= PRAGMA nm dbnm */
139589
+ case 217: /* cmd ::= PRAGMA nm dbnm */
139543139590
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
139544139591
break;
139545
- case 219: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
139592
+ case 218: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
139546139593
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
139547139594
break;
139548
- case 220: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
139595
+ case 219: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
139549139596
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
139550139597
break;
139551
- case 221: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
139598
+ case 220: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
139552139599
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
139553139600
break;
139554
- case 222: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
139601
+ case 221: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
139555139602
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
139556139603
break;
139557
- case 225: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
139604
+ case 224: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
139558139605
{
139559139606
Token all;
139560139607
all.z = yymsp[-3].minor.yy0.z;
139561139608
all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
139562139609
sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy145, &all);
139563139610
}
139564139611
break;
139565
- case 226: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
139612
+ case 225: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
139566139613
{
139567139614
sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy194, yymsp[-4].minor.yy332.a, yymsp[-4].minor.yy332.b, yymsp[-2].minor.yy185, yymsp[0].minor.yy72, yymsp[-10].minor.yy194, yymsp[-8].minor.yy194);
139568139615
yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
139569139616
}
139570139617
break;
139571
- case 227: /* trigger_time ::= BEFORE|AFTER */
139618
+ case 226: /* trigger_time ::= BEFORE|AFTER */
139572139619
{ yymsp[0].minor.yy194 = yymsp[0].major; /*A-overwrites-X*/ }
139573139620
break;
139574
- case 228: /* trigger_time ::= INSTEAD OF */
139621
+ case 227: /* trigger_time ::= INSTEAD OF */
139575139622
{ yymsp[-1].minor.yy194 = TK_INSTEAD;}
139576139623
break;
139577
- case 229: /* trigger_time ::= */
139624
+ case 228: /* trigger_time ::= */
139578139625
{ yymsp[1].minor.yy194 = TK_BEFORE; }
139579139626
break;
139580
- case 230: /* trigger_event ::= DELETE|INSERT */
139581
- case 231: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==231);
139627
+ case 229: /* trigger_event ::= DELETE|INSERT */
139628
+ case 230: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==230);
139582139629
{yymsp[0].minor.yy332.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy332.b = 0;}
139583139630
break;
139584
- case 232: /* trigger_event ::= UPDATE OF idlist */
139631
+ case 231: /* trigger_event ::= UPDATE OF idlist */
139585139632
{yymsp[-2].minor.yy332.a = TK_UPDATE; yymsp[-2].minor.yy332.b = yymsp[0].minor.yy254;}
139586139633
break;
139587
- case 233: /* when_clause ::= */
139588
- case 252: /* key_opt ::= */ yytestcase(yyruleno==252);
139634
+ case 232: /* when_clause ::= */
139635
+ case 251: /* key_opt ::= */ yytestcase(yyruleno==251);
139589139636
{ yymsp[1].minor.yy72 = 0; }
139590139637
break;
139591
- case 234: /* when_clause ::= WHEN expr */
139592
- case 253: /* key_opt ::= KEY expr */ yytestcase(yyruleno==253);
139638
+ case 233: /* when_clause ::= WHEN expr */
139639
+ case 252: /* key_opt ::= KEY expr */ yytestcase(yyruleno==252);
139593139640
{ yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr; }
139594139641
break;
139595
- case 235: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
139642
+ case 234: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
139596139643
{
139597139644
assert( yymsp[-2].minor.yy145!=0 );
139598139645
yymsp[-2].minor.yy145->pLast->pNext = yymsp[-1].minor.yy145;
139599139646
yymsp[-2].minor.yy145->pLast = yymsp[-1].minor.yy145;
139600139647
}
139601139648
break;
139602
- case 236: /* trigger_cmd_list ::= trigger_cmd SEMI */
139649
+ case 235: /* trigger_cmd_list ::= trigger_cmd SEMI */
139603139650
{
139604139651
assert( yymsp[-1].minor.yy145!=0 );
139605139652
yymsp[-1].minor.yy145->pLast = yymsp[-1].minor.yy145;
139606139653
}
139607139654
break;
139608
- case 237: /* trnm ::= nm DOT nm */
139655
+ case 236: /* trnm ::= nm DOT nm */
139609139656
{
139610139657
yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
139611139658
sqlite3ErrorMsg(pParse,
139612139659
"qualified table names are not allowed on INSERT, UPDATE, and DELETE "
139613139660
"statements within triggers");
139614139661
}
139615139662
break;
139616
- case 238: /* tridxby ::= INDEXED BY nm */
139663
+ case 237: /* tridxby ::= INDEXED BY nm */
139617139664
{
139618139665
sqlite3ErrorMsg(pParse,
139619139666
"the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
139620139667
"within triggers");
139621139668
}
139622139669
break;
139623
- case 239: /* tridxby ::= NOT INDEXED */
139670
+ case 238: /* tridxby ::= NOT INDEXED */
139624139671
{
139625139672
sqlite3ErrorMsg(pParse,
139626139673
"the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
139627139674
"within triggers");
139628139675
}
139629139676
break;
139630
- case 240: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
139677
+ case 239: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
139631139678
{yymsp[-6].minor.yy145 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy148, yymsp[0].minor.yy72, yymsp[-5].minor.yy194);}
139632139679
break;
139633
- case 241: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
139680
+ case 240: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
139634139681
{yymsp[-4].minor.yy145 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy254, yymsp[0].minor.yy243, yymsp[-4].minor.yy194);/*A-overwrites-R*/}
139635139682
break;
139636
- case 242: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
139683
+ case 241: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
139637139684
{yymsp[-4].minor.yy145 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy72);}
139638139685
break;
139639
- case 243: /* trigger_cmd ::= select */
139686
+ case 242: /* trigger_cmd ::= select */
139640139687
{yymsp[0].minor.yy145 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy243); /*A-overwrites-X*/}
139641139688
break;
139642
- case 244: /* expr ::= RAISE LP IGNORE RP */
139689
+ case 243: /* expr ::= RAISE LP IGNORE RP */
139643139690
{
139644139691
spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139645139692
yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
139646139693
if( yymsp[-3].minor.yy190.pExpr ){
139647139694
yymsp[-3].minor.yy190.pExpr->affinity = OE_Ignore;
139648139695
}
139649139696
}
139650139697
break;
139651
- case 245: /* expr ::= RAISE LP raisetype COMMA nm RP */
139698
+ case 244: /* expr ::= RAISE LP raisetype COMMA nm RP */
139652139699
{
139653139700
spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139654139701
yymsp[-5].minor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
139655139702
if( yymsp[-5].minor.yy190.pExpr ) {
139656139703
yymsp[-5].minor.yy190.pExpr->affinity = (char)yymsp[-3].minor.yy194;
139657139704
}
139658139705
}
139659139706
break;
139660
- case 246: /* raisetype ::= ROLLBACK */
139707
+ case 245: /* raisetype ::= ROLLBACK */
139661139708
{yymsp[0].minor.yy194 = OE_Rollback;}
139662139709
break;
139663
- case 248: /* raisetype ::= FAIL */
139710
+ case 247: /* raisetype ::= FAIL */
139664139711
{yymsp[0].minor.yy194 = OE_Fail;}
139665139712
break;
139666
- case 249: /* cmd ::= DROP TRIGGER ifexists fullname */
139713
+ case 248: /* cmd ::= DROP TRIGGER ifexists fullname */
139667139714
{
139668139715
sqlite3DropTrigger(pParse,yymsp[0].minor.yy185,yymsp[-1].minor.yy194);
139669139716
}
139670139717
break;
139671
- case 250: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
139718
+ case 249: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
139672139719
{
139673139720
sqlite3Attach(pParse, yymsp[-3].minor.yy190.pExpr, yymsp[-1].minor.yy190.pExpr, yymsp[0].minor.yy72);
139674139721
}
139675139722
break;
139676
- case 251: /* cmd ::= DETACH database_kw_opt expr */
139723
+ case 250: /* cmd ::= DETACH database_kw_opt expr */
139677139724
{
139678139725
sqlite3Detach(pParse, yymsp[0].minor.yy190.pExpr);
139679139726
}
139680139727
break;
139681
- case 254: /* cmd ::= REINDEX */
139728
+ case 253: /* cmd ::= REINDEX */
139682139729
{sqlite3Reindex(pParse, 0, 0);}
139683139730
break;
139684
- case 255: /* cmd ::= REINDEX nm dbnm */
139731
+ case 254: /* cmd ::= REINDEX nm dbnm */
139685139732
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
139686139733
break;
139687
- case 256: /* cmd ::= ANALYZE */
139734
+ case 255: /* cmd ::= ANALYZE */
139688139735
{sqlite3Analyze(pParse, 0, 0);}
139689139736
break;
139690
- case 257: /* cmd ::= ANALYZE nm dbnm */
139737
+ case 256: /* cmd ::= ANALYZE nm dbnm */
139691139738
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
139692139739
break;
139693
- case 258: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
139740
+ case 257: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
139694139741
{
139695139742
sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy185,&yymsp[0].minor.yy0);
139696139743
}
139697139744
break;
139698
- case 259: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
139745
+ case 258: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
139699139746
{
139700139747
yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
139701139748
sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
139702139749
}
139703139750
break;
139704
- case 260: /* add_column_fullname ::= fullname */
139751
+ case 259: /* add_column_fullname ::= fullname */
139705139752
{
139706139753
disableLookaside(pParse);
139707139754
sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy185);
139708139755
}
139709139756
break;
139710
- case 261: /* cmd ::= create_vtab */
139757
+ case 260: /* cmd ::= create_vtab */
139711139758
{sqlite3VtabFinishParse(pParse,0);}
139712139759
break;
139713
- case 262: /* cmd ::= create_vtab LP vtabarglist RP */
139760
+ case 261: /* cmd ::= create_vtab LP vtabarglist RP */
139714139761
{sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
139715139762
break;
139716
- case 263: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
139763
+ case 262: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
139717139764
{
139718139765
sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy194);
139719139766
}
139720139767
break;
139721
- case 264: /* vtabarg ::= */
139768
+ case 263: /* vtabarg ::= */
139722139769
{sqlite3VtabArgInit(pParse);}
139723139770
break;
139724
- case 265: /* vtabargtoken ::= ANY */
139725
- case 266: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==266);
139726
- case 267: /* lp ::= LP */ yytestcase(yyruleno==267);
139771
+ case 264: /* vtabargtoken ::= ANY */
139772
+ case 265: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==265);
139773
+ case 266: /* lp ::= LP */ yytestcase(yyruleno==266);
139727139774
{sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
139728139775
break;
139729
- case 268: /* with ::= */
139776
+ case 267: /* with ::= */
139730139777
{yymsp[1].minor.yy285 = 0;}
139731139778
break;
139732
- case 269: /* with ::= WITH wqlist */
139779
+ case 268: /* with ::= WITH wqlist */
139733139780
{ yymsp[-1].minor.yy285 = yymsp[0].minor.yy285; }
139734139781
break;
139735
- case 270: /* with ::= WITH RECURSIVE wqlist */
139782
+ case 269: /* with ::= WITH RECURSIVE wqlist */
139736139783
{ yymsp[-2].minor.yy285 = yymsp[0].minor.yy285; }
139737139784
break;
139738
- case 271: /* wqlist ::= nm eidlist_opt AS LP select RP */
139785
+ case 270: /* wqlist ::= nm eidlist_opt AS LP select RP */
139739139786
{
139740139787
yymsp[-5].minor.yy285 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243); /*A-overwrites-X*/
139741139788
}
139742139789
break;
139743
- case 272: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
139790
+ case 271: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
139744139791
{
139745139792
yymsp[-7].minor.yy285 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy285, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243);
139746139793
}
139747139794
break;
139748139795
default:
139749
- /* (273) input ::= cmdlist */ yytestcase(yyruleno==273);
139750
- /* (274) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==274);
139751
- /* (275) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=275);
139752
- /* (276) ecmd ::= SEMI */ yytestcase(yyruleno==276);
139753
- /* (277) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==277);
139754
- /* (278) explain ::= */ yytestcase(yyruleno==278);
139755
- /* (279) trans_opt ::= */ yytestcase(yyruleno==279);
139756
- /* (280) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==280);
139757
- /* (281) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==281);
139758
- /* (282) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==282);
139759
- /* (283) savepoint_opt ::= */ yytestcase(yyruleno==283);
139760
- /* (284) cmd ::= create_table create_table_args */ yytestcase(yyruleno==284);
139761
- /* (285) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==285);
139762
- /* (286) columnlist ::= columnname carglist */ yytestcase(yyruleno==286);
139763
- /* (287) nm ::= ID|INDEXED */ yytestcase(yyruleno==287);
139764
- /* (288) nm ::= STRING */ yytestcase(yyruleno==288);
139765
- /* (289) nm ::= JOIN_KW */ yytestcase(yyruleno==289);
139766
- /* (290) typetoken ::= typename */ yytestcase(yyruleno==290);
139767
- /* (291) typename ::= ID|STRING */ yytestcase(yyruleno==291);
139768
- /* (292) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
139769
- /* (293) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=293);
139770
- /* (294) carglist ::= carglist ccons */ yytestcase(yyruleno==294);
139771
- /* (295) carglist ::= */ yytestcase(yyruleno==295);
139772
- /* (296) ccons ::= NULL onconf */ yytestcase(yyruleno==296);
139773
- /* (297) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==297);
139774
- /* (298) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==298);
139775
- /* (299) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=299);
139776
- /* (300) tconscomma ::= */ yytestcase(yyruleno==300);
139777
- /* (301) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=301);
139778
- /* (302) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=302);
139779
- /* (303) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=303);
139780
- /* (304) oneselect ::= values */ yytestcase(yyruleno==304);
139781
- /* (305) sclp ::= selcollist COMMA */ yytestcase(yyruleno==305);
139782
- /* (306) as ::= ID|STRING */ yytestcase(yyruleno==306);
139783
- /* (307) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=307);
139784
- /* (308) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==308);
139785
- /* (309) exprlist ::= nexprlist */ yytestcase(yyruleno==309);
139786
- /* (310) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=310);
139787
- /* (311) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=311);
139788
- /* (312) nmnum ::= ON */ yytestcase(yyruleno==312);
139789
- /* (313) nmnum ::= DELETE */ yytestcase(yyruleno==313);
139790
- /* (314) nmnum ::= DEFAULT */ yytestcase(yyruleno==314);
139791
- /* (315) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==315);
139792
- /* (316) foreach_clause ::= */ yytestcase(yyruleno==316);
139793
- /* (317) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==317);
139794
- /* (318) trnm ::= nm */ yytestcase(yyruleno==318);
139795
- /* (319) tridxby ::= */ yytestcase(yyruleno==319);
139796
- /* (320) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==320);
139797
- /* (321) database_kw_opt ::= */ yytestcase(yyruleno==321);
139798
- /* (322) kwcolumn_opt ::= */ yytestcase(yyruleno==322);
139799
- /* (323) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==323);
139800
- /* (324) vtabarglist ::= vtabarg */ yytestcase(yyruleno==324);
139801
- /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==325);
139802
- /* (326) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==326);
139803
- /* (327) anylist ::= */ yytestcase(yyruleno==327);
139804
- /* (328) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==328);
139805
- /* (329) anylist ::= anylist ANY */ yytestcase(yyruleno==329);
139796
+ /* (272) input ::= cmdlist */ yytestcase(yyruleno==272);
139797
+ /* (273) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==273);
139798
+ /* (274) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=274);
139799
+ /* (275) ecmd ::= SEMI */ yytestcase(yyruleno==275);
139800
+ /* (276) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==276);
139801
+ /* (277) explain ::= */ yytestcase(yyruleno==277);
139802
+ /* (278) trans_opt ::= */ yytestcase(yyruleno==278);
139803
+ /* (279) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==279);
139804
+ /* (280) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==280);
139805
+ /* (281) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==281);
139806
+ /* (282) savepoint_opt ::= */ yytestcase(yyruleno==282);
139807
+ /* (283) cmd ::= create_table create_table_args */ yytestcase(yyruleno==283);
139808
+ /* (284) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==284);
139809
+ /* (285) columnlist ::= columnname carglist */ yytestcase(yyruleno==285);
139810
+ /* (286) nm ::= ID|INDEXED */ yytestcase(yyruleno==286);
139811
+ /* (287) nm ::= STRING */ yytestcase(yyruleno==287);
139812
+ /* (288) nm ::= JOIN_KW */ yytestcase(yyruleno==288);
139813
+ /* (289) typetoken ::= typename */ yytestcase(yyruleno==289);
139814
+ /* (290) typename ::= ID|STRING */ yytestcase(yyruleno==290);
139815
+ /* (291) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=291);
139816
+ /* (292) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
139817
+ /* (293) carglist ::= carglist ccons */ yytestcase(yyruleno==293);
139818
+ /* (294) carglist ::= */ yytestcase(yyruleno==294);
139819
+ /* (295) ccons ::= NULL onconf */ yytestcase(yyruleno==295);
139820
+ /* (296) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==296);
139821
+ /* (297) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==297);
139822
+ /* (298) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=298);
139823
+ /* (299) tconscomma ::= */ yytestcase(yyruleno==299);
139824
+ /* (300) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=300);
139825
+ /* (301) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=301);
139826
+ /* (302) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=302);
139827
+ /* (303) oneselect ::= values */ yytestcase(yyruleno==303);
139828
+ /* (304) sclp ::= selcollist COMMA */ yytestcase(yyruleno==304);
139829
+ /* (305) as ::= ID|STRING */ yytestcase(yyruleno==305);
139830
+ /* (306) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=306);
139831
+ /* (307) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==307);
139832
+ /* (308) exprlist ::= nexprlist */ yytestcase(yyruleno==308);
139833
+ /* (309) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=309);
139834
+ /* (310) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=310);
139835
+ /* (311) nmnum ::= ON */ yytestcase(yyruleno==311);
139836
+ /* (312) nmnum ::= DELETE */ yytestcase(yyruleno==312);
139837
+ /* (313) nmnum ::= DEFAULT */ yytestcase(yyruleno==313);
139838
+ /* (314) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==314);
139839
+ /* (315) foreach_clause ::= */ yytestcase(yyruleno==315);
139840
+ /* (316) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==316);
139841
+ /* (317) trnm ::= nm */ yytestcase(yyruleno==317);
139842
+ /* (318) tridxby ::= */ yytestcase(yyruleno==318);
139843
+ /* (319) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==319);
139844
+ /* (320) database_kw_opt ::= */ yytestcase(yyruleno==320);
139845
+ /* (321) kwcolumn_opt ::= */ yytestcase(yyruleno==321);
139846
+ /* (322) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==322);
139847
+ /* (323) vtabarglist ::= vtabarg */ yytestcase(yyruleno==323);
139848
+ /* (324) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==324);
139849
+ /* (325) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==325);
139850
+ /* (326) anylist ::= */ yytestcase(yyruleno==326);
139851
+ /* (327) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==327);
139852
+ /* (328) anylist ::= anylist ANY */ yytestcase(yyruleno==328);
139806139853
break;
139807139854
/********** End reduce actions ************************************************/
139808139855
};
139809139856
assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
139810139857
yygoto = yyRuleInfo[yyruleno].lhs;
@@ -175738,10 +175785,13 @@
175738175785
0, /* xSync */
175739175786
0, /* xCommit */
175740175787
0, /* xRollback */
175741175788
0, /* xFindMethod */
175742175789
0, /* xRename */
175790
+ 0, /* xSavepoint */
175791
+ 0, /* xRelease */
175792
+ 0, /* xRollbackTo */
175743175793
};
175744175794
return sqlite3_create_module(db, "dbstat", &dbstat_module, 0);
175745175795
}
175746175796
#elif defined(SQLITE_ENABLE_DBSTAT_VTAB)
175747175797
SQLITE_PRIVATE int sqlite3DbstatRegister(sqlite3 *db){ return SQLITE_OK; }
@@ -200077,11 +200127,11 @@
200077200127
int nArg, /* Number of args */
200078200128
sqlite3_value **apUnused /* Function arguments */
200079200129
){
200080200130
assert( nArg==0 );
200081200131
UNUSED_PARAM2(nArg, apUnused);
200082
- sqlite3_result_text(pCtx, "fts5: 2017-07-11 13:59:07 95cd1d9f8baa6be305c9a8bfa26fef2a403f2d5b3b5c9c55382ec04f0bc98d40", -1, SQLITE_TRANSIENT);
200132
+ sqlite3_result_text(pCtx, "fts5: 2017-07-12 18:05:54 604c11d1a39f09e47b6fcee0f8b1c1054f9dbbc7b2c1cf93312aeaa4b7095018", -1, SQLITE_TRANSIENT);
200083200133
}
200084200134
200085200135
static int fts5Init(sqlite3 *db){
200086200136
static const sqlite3_module fts5Mod = {
200087200137
/* iVersion */ 2,
@@ -204220,10 +204270,13 @@
204220204270
0, /* xSync */
204221204271
0, /* xCommit */
204222204272
0, /* xRollback */
204223204273
0, /* xFindMethod */
204224204274
0, /* xRename */
204275
+ 0, /* xSavepoint */
204276
+ 0, /* xRelease */
204277
+ 0, /* xRollbackTo */
204225204278
};
204226204279
204227204280
#endif /* SQLITE_OMIT_VIRTUALTABLE */
204228204281
204229204282
SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3 *db){
204230204283
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1150,11 +1150,11 @@
1150 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1151 ** [sqlite_version()] and [sqlite_source_id()].
1152 */
1153 #define SQLITE_VERSION "3.20.0"
1154 #define SQLITE_VERSION_NUMBER 3020000
1155 #define SQLITE_SOURCE_ID "2017-07-11 13:59:07 95cd1d9f8baa6be305c9a8bfa26fef2a403f2d5b3b5c9c55382ec04f0bc98d40"
1156
1157 /*
1158 ** CAPI3REF: Run-Time Library Version Numbers
1159 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1160 **
@@ -16074,11 +16074,11 @@
16074 /*
16075 ** The following are the meanings of bits in the Expr.flags field.
16076 */
16077 #define EP_FromJoin 0x000001 /* Originates in ON/USING clause of outer join */
16078 #define EP_Agg 0x000002 /* Contains one or more aggregate functions */
16079 #define EP_Resolved 0x000004 /* IDs have been resolved to COLUMNs */
16080 /* 0x000008 // available for use */
16081 #define EP_Distinct 0x000010 /* Aggregate function with DISTINCT keyword */
16082 #define EP_VarSelect 0x000020 /* pSelect is correlated, not constant */
16083 #define EP_DblQuoted 0x000040 /* token.z was originally in "..." */
16084 #define EP_InfixFunc 0x000080 /* True for an infix function: LIKE, GLOB, etc */
@@ -17627,11 +17627,13 @@
17627 SQLITE_PRIVATE int sqlite3FixExprList(DbFixer*, ExprList*);
17628 SQLITE_PRIVATE int sqlite3FixTriggerStep(DbFixer*, TriggerStep*);
17629 SQLITE_PRIVATE int sqlite3AtoF(const char *z, double*, int, u8);
17630 SQLITE_PRIVATE int sqlite3GetInt32(const char *, int*);
17631 SQLITE_PRIVATE int sqlite3Atoi(const char*);
 
17632 SQLITE_PRIVATE int sqlite3Utf16ByteLen(const void *pData, int nChar);
 
17633 SQLITE_PRIVATE int sqlite3Utf8CharLen(const char *pData, int nByte);
17634 SQLITE_PRIVATE u32 sqlite3Utf8Read(const u8**);
17635 SQLITE_PRIVATE LogEst sqlite3LogEst(u64);
17636 SQLITE_PRIVATE LogEst sqlite3LogEstAdd(LogEst,LogEst);
17637 #ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -17716,11 +17718,13 @@
17716 SQLITE_PRIVATE void sqlite3ValueSetStr(sqlite3_value*, int, const void *,u8,
17717 void(*)(void*));
17718 SQLITE_PRIVATE void sqlite3ValueSetNull(sqlite3_value*);
17719 SQLITE_PRIVATE void sqlite3ValueFree(sqlite3_value*);
17720 SQLITE_PRIVATE sqlite3_value *sqlite3ValueNew(sqlite3 *);
 
17721 SQLITE_PRIVATE char *sqlite3Utf16to8(sqlite3 *, const void*, int, u8);
 
17722 SQLITE_PRIVATE int sqlite3ValueFromExpr(sqlite3 *, Expr *, u8, u8, sqlite3_value **);
17723 SQLITE_PRIVATE void sqlite3ValueApplyAffinity(sqlite3_value *, u8, u8);
17724 #ifndef SQLITE_AMALGAMATION
17725 SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty[];
17726 SQLITE_PRIVATE const char sqlite3StrBINARY[];
@@ -18080,11 +18084,13 @@
18080 SQLITE_PRIVATE int sqlite3ExprIsVector(Expr *pExpr);
18081 SQLITE_PRIVATE Expr *sqlite3VectorFieldSubexpr(Expr*, int);
18082 SQLITE_PRIVATE Expr *sqlite3ExprForVectorField(Parse*,Expr*,int);
18083 SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse*, Expr*);
18084
 
18085 SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt);
 
18086
18087 #endif /* SQLITEINT_H */
18088
18089 /************** End of sqliteInt.h *******************************************/
18090 /************** Begin file global.c ******************************************/
@@ -18941,16 +18947,18 @@
18941 SQLITE_PRIVATE int sqlite3VdbeCheckFk(Vdbe *, int);
18942 #else
18943 # define sqlite3VdbeCheckFk(p,i) 0
18944 #endif
18945
18946 SQLITE_PRIVATE int sqlite3VdbeMemTranslate(Mem*, u8);
18947 #ifdef SQLITE_DEBUG
18948 SQLITE_PRIVATE void sqlite3VdbePrintSql(Vdbe*);
18949 SQLITE_PRIVATE void sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf);
18950 #endif
18951 SQLITE_PRIVATE int sqlite3VdbeMemHandleBom(Mem *pMem);
 
 
 
18952
18953 #ifndef SQLITE_OMIT_INCRBLOB
18954 SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *);
18955 #define ExpandBlob(P) (((P)->flags&MEM_Zero)?sqlite3VdbeMemExpandBlob(P):0)
18956 #else
@@ -27928,11 +27936,13 @@
27928 fprintf(stderr, "OUTPUT: %s\n", zBuf);
27929 }
27930 #endif
27931 return SQLITE_OK;
27932 }
 
27933
 
27934 /*
27935 ** This routine checks for a byte-order mark at the beginning of the
27936 ** UTF-16 string stored in *pMem. If one is present, it is removed and
27937 ** the encoding of the Mem adjusted. This routine does not do any
27938 ** byte-swapping, it just sets Mem.enc appropriately.
@@ -64949,23 +64959,23 @@
64949 ** for the common case of merely incrementing the cell counter BtCursor.aiIdx
64950 ** to the next cell on the current page. The (slower) btreeNext() helper
64951 ** routine is called when it is necessary to move to a different page or
64952 ** to restore the cursor.
64953 **
64954 ** If bit 0x01 of the flags argument is 1, then the cursor corresponds to
64955 ** an SQL index and this routine could have been skipped if the SQL index
64956 ** had been a unique index. The flags argument is a hint to the implement.
64957 ** SQLite btree implementation does not use this hint, but COMDB2 does.
 
64958 */
64959 static SQLITE_NOINLINE int btreeNext(BtCursor *pCur, int flags){
64960 int rc;
64961 int idx;
64962 MemPage *pPage;
64963
64964 assert( cursorOwnsBtShared(pCur) );
64965 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
64966 assert( flags==0 );
64967 if( pCur->eState!=CURSOR_VALID ){
64968 assert( (pCur->curFlags & BTCF_ValidOvfl)==0 );
64969 rc = restoreCursorPosition(pCur);
64970 if( rc!=SQLITE_OK ){
64971 return rc;
@@ -65008,11 +65018,11 @@
65008 }
65009 moveToParent(pCur);
65010 pPage = pCur->apPage[pCur->iPage];
65011 }while( pCur->ix>=pPage->nCell );
65012 if( pPage->intKey ){
65013 return sqlite3BtreeNext(pCur, flags);
65014 }else{
65015 return SQLITE_OK;
65016 }
65017 }
65018 if( pPage->leaf ){
@@ -65021,20 +65031,21 @@
65021 return moveToLeftmost(pCur);
65022 }
65023 }
65024 SQLITE_PRIVATE int sqlite3BtreeNext(BtCursor *pCur, int flags){
65025 MemPage *pPage;
 
65026 assert( cursorOwnsBtShared(pCur) );
65027 assert( flags==0 || flags==1 );
65028 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
65029 pCur->info.nSize = 0;
65030 pCur->curFlags &= ~(BTCF_ValidNKey|BTCF_ValidOvfl);
65031 if( pCur->eState!=CURSOR_VALID ) return btreeNext(pCur, 0);
65032 pPage = pCur->apPage[pCur->iPage];
65033 if( (++pCur->ix)>=pPage->nCell ){
65034 pCur->ix--;
65035 return btreeNext(pCur, 0);
65036 }
65037 if( pPage->leaf ){
65038 return SQLITE_OK;
65039 }else{
65040 return moveToLeftmost(pCur);
@@ -65053,22 +65064,21 @@
65053 ** for the common case of merely decrementing the cell counter BtCursor.aiIdx
65054 ** to the previous cell on the current page. The (slower) btreePrevious()
65055 ** helper routine is called when it is necessary to move to a different page
65056 ** or to restore the cursor.
65057 **
65058 **
65059 ** If bit 0x01 of the flags argument is 1, then the cursor corresponds to
65060 ** an SQL index and this routine could have been skipped if the SQL index
65061 ** had been a unique index. The flags argument is a hint to the implement.
65062 ** SQLite btree implementation does not use this hint, but COMDB2 does.
65063 */
65064 static SQLITE_NOINLINE int btreePrevious(BtCursor *pCur, int flags){
65065 int rc;
65066 MemPage *pPage;
65067
65068 assert( cursorOwnsBtShared(pCur) );
65069 assert( flags==0 );
65070 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
65071 assert( (pCur->curFlags & (BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey))==0 );
65072 assert( pCur->info.nSize==0 );
65073 if( pCur->eState!=CURSOR_VALID ){
65074 rc = restoreCursorPosition(pCur);
@@ -65108,11 +65118,11 @@
65108 assert( (pCur->curFlags & (BTCF_ValidOvfl))==0 );
65109
65110 pCur->ix--;
65111 pPage = pCur->apPage[pCur->iPage];
65112 if( pPage->intKey && !pPage->leaf ){
65113 rc = sqlite3BtreePrevious(pCur, flags);
65114 }else{
65115 rc = SQLITE_OK;
65116 }
65117 }
65118 return rc;
@@ -65119,17 +65129,18 @@
65119 }
65120 SQLITE_PRIVATE int sqlite3BtreePrevious(BtCursor *pCur, int flags){
65121 assert( cursorOwnsBtShared(pCur) );
65122 assert( flags==0 || flags==1 );
65123 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
 
65124 pCur->curFlags &= ~(BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey);
65125 pCur->info.nSize = 0;
65126 if( pCur->eState!=CURSOR_VALID
65127 || pCur->ix==0
65128 || pCur->apPage[pCur->iPage]->leaf==0
65129 ){
65130 return btreePrevious(pCur, 0);
65131 }
65132 pCur->ix--;
65133 return SQLITE_OK;
65134 }
65135
@@ -90394,11 +90405,10 @@
90394 p->iColumn = (ynVar)iCol;
90395 testcase( iCol==BMS );
90396 testcase( iCol==BMS-1 );
90397 pItem->colUsed |= ((Bitmask)1)<<(iCol>=BMS ? BMS-1 : iCol);
90398 }
90399 ExprSetProperty(p, EP_Resolved);
90400 }
90401 return p;
90402 }
90403
90404 /*
@@ -90454,12 +90464,10 @@
90454 pNC = pWalker->u.pNC;
90455 assert( pNC!=0 );
90456 pParse = pNC->pParse;
90457 assert( pParse==pWalker->pParse );
90458
90459 if( ExprHasProperty(pExpr, EP_Resolved) ) return WRC_Prune;
90460 ExprSetProperty(pExpr, EP_Resolved);
90461 #ifndef NDEBUG
90462 if( pNC->pSrcList && pNC->pSrcList->nAlloc>0 ){
90463 SrcList *pSrcList = pNC->pSrcList;
90464 int i;
90465 for(i=0; i<pNC->pSrcList->nSrc; i++){
@@ -112127,10 +112135,15 @@
112127 /* Version 3.14.0 and later */
112128 int (*trace_v2)(sqlite3*,unsigned,int(*)(unsigned,void*,void*,void*),void*);
112129 char *(*expanded_sql)(sqlite3_stmt*);
112130 /* Version 3.18.0 and later */
112131 void (*set_last_insert_rowid)(sqlite3*,sqlite3_int64);
 
 
 
 
 
112132 };
112133
112134 /*
112135 ** This is the function signature used for all extension entry points. It
112136 ** is also defined in the file "loadext.c".
@@ -112387,10 +112400,13 @@
112387 /* Version 3.14.0 and later */
112388 #define sqlite3_trace_v2 sqlite3_api->trace_v2
112389 #define sqlite3_expanded_sql sqlite3_api->expanded_sql
112390 /* Version 3.18.0 and later */
112391 #define sqlite3_set_last_insert_rowid sqlite3_api->set_last_insert_rowid
 
 
 
112392 #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
112393
112394 #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
112395 /* This case when the file really is being compiled as a loadable
112396 ** extension */
@@ -112442,10 +112458,11 @@
112442 # define sqlite3_create_function16 0
112443 # define sqlite3_errmsg16 0
112444 # define sqlite3_open16 0
112445 # define sqlite3_prepare16 0
112446 # define sqlite3_prepare16_v2 0
 
112447 # define sqlite3_result_error16 0
112448 # define sqlite3_result_text16 0
112449 # define sqlite3_result_text16be 0
112450 # define sqlite3_result_text16le 0
112451 # define sqlite3_value_text16 0
@@ -112814,11 +112831,14 @@
112814 sqlite3_system_errno,
112815 /* Version 3.14.0 and later */
112816 sqlite3_trace_v2,
112817 sqlite3_expanded_sql,
112818 /* Version 3.18.0 and later */
112819 sqlite3_set_last_insert_rowid
 
 
 
112820 };
112821
112822 /*
112823 ** Attempt to load an SQLite extension library contained in the file
112824 ** zFile. The entry point is zProc. zProc may be 0 in which case a
@@ -118780,24 +118800,50 @@
118780 return 0;
118781 }
118782
118783
118784 /*
118785 ** Generate code that will tell the VDBE the names of columns
118786 ** in the result set. This information is used to provide the
118787 ** azCol[] values in the callback.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118788 */
118789 static void generateColumnNames(
118790 Parse *pParse, /* Parser context */
118791 SrcList *pTabList, /* List of tables */
118792 ExprList *pEList /* Expressions defining the result set */
118793 ){
118794 Vdbe *v = pParse->pVdbe;
118795 int i;
118796 Table *pTab;
118797 sqlite3 *db = pParse->db;
118798 int fullNames, shortNames;
 
118799
118800 #ifndef SQLITE_OMIT_EXPLAIN
118801 /* If this is an EXPLAIN, skip this step */
118802 if( pParse->explain ){
118803 return;
@@ -118806,21 +118852,23 @@
118806
118807 if( pParse->colNamesSet || db->mallocFailed ) return;
118808 assert( v!=0 );
118809 assert( pTabList!=0 );
118810 pParse->colNamesSet = 1;
118811 fullNames = (db->flags & SQLITE_FullColNames)!=0;
118812 shortNames = (db->flags & SQLITE_ShortColNames)!=0;
118813 sqlite3VdbeSetNumCols(v, pEList->nExpr);
118814 for(i=0; i<pEList->nExpr; i++){
118815 Expr *p;
118816 p = pEList->a[i].pExpr;
118817 if( NEVER(p==0) ) continue;
118818 if( pEList->a[i].zName ){
 
118819 char *zName = pEList->a[i].zName;
118820 sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, SQLITE_TRANSIENT);
118821 }else if( (p->op==TK_COLUMN || p->op==TK_AGG_COLUMN)
 
118822 && (pTab = tableWithCursor(pTabList, p->iTable))!=0
118823 ){
118824 char *zCol;
118825 int iCol = p->iColumn;
118826 if( iCol<0 ) iCol = pTab->iPKey;
@@ -118828,14 +118876,11 @@
118828 if( iCol<0 ){
118829 zCol = "rowid";
118830 }else{
118831 zCol = pTab->aCol[iCol].zName;
118832 }
118833 if( !shortNames && !fullNames ){
118834 sqlite3VdbeSetColName(v, i, COLNAME_NAME,
118835 sqlite3DbStrDup(db, pEList->a[i].zSpan), SQLITE_DYNAMIC);
118836 }else if( fullNames ){
118837 char *zName = 0;
118838 zName = sqlite3MPrintf(db, "%s.%s", pTab->zName, zCol);
118839 sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, SQLITE_DYNAMIC);
118840 }else{
118841 sqlite3VdbeSetColName(v, i, COLNAME_NAME, zCol, SQLITE_TRANSIENT);
@@ -118859,10 +118904,19 @@
118859 ** Only the column names are computed. Column.zType, Column.zColl,
118860 ** and other fields of Column are zeroed.
118861 **
118862 ** Return SQLITE_OK on success. If a memory allocation error occurs,
118863 ** store NULL in *paCol and 0 in *pnCol and return SQLITE_NOMEM.
 
 
 
 
 
 
 
 
 
118864 */
118865 SQLITE_PRIVATE int sqlite3ColumnsFromExprList(
118866 Parse *pParse, /* Parsing context */
118867 ExprList *pEList, /* Expr list from which to derive column names */
118868 i16 *pnCol, /* Write the number of columns here */
@@ -118871,11 +118925,10 @@
118871 sqlite3 *db = pParse->db; /* Database connection */
118872 int i, j; /* Loop counters */
118873 u32 cnt; /* Index added to make the name unique */
118874 Column *aCol, *pCol; /* For looping over result columns */
118875 int nCol; /* Number of columns in the result set */
118876 Expr *p; /* Expression for a single result column */
118877 char *zName; /* Column name */
118878 int nName; /* Size of name in zName[] */
118879 Hash ht; /* Hash table of column names */
118880
118881 sqlite3HashInit(&ht);
@@ -118892,24 +118945,22 @@
118892 *paCol = aCol;
118893
118894 for(i=0, pCol=aCol; i<nCol && !db->mallocFailed; i++, pCol++){
118895 /* Get an appropriate name for the column
118896 */
118897 p = sqlite3ExprSkipCollate(pEList->a[i].pExpr);
118898 if( (zName = pEList->a[i].zName)!=0 ){
118899 /* If the column contains an "AS <name>" phrase, use <name> as the name */
118900 }else{
118901 Expr *pColExpr = p; /* The expression that is the result column name */
118902 Table *pTab; /* Table associated with this expression */
118903 while( pColExpr->op==TK_DOT ){
118904 pColExpr = pColExpr->pRight;
118905 assert( pColExpr!=0 );
118906 }
118907 if( pColExpr->op==TK_COLUMN && pColExpr->pTab!=0 ){
118908 /* For columns use the column name name */
118909 int iCol = pColExpr->iColumn;
118910 pTab = pColExpr->pTab;
118911 if( iCol<0 ) iCol = pTab->iPKey;
118912 zName = iCol>=0 ? pTab->aCol[iCol].zName : "rowid";
118913 }else if( pColExpr->op==TK_ID ){
118914 assert( !ExprHasProperty(pColExpr, EP_IntValue) );
118915 zName = pColExpr->u.zToken;
@@ -136634,19 +136685,19 @@
136634 #define sqlite3ParserARG_PDECL ,Parse *pParse
136635 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
136636 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
136637 #define YYFALLBACK 1
136638 #define YYNSTATE 455
136639 #define YYNRULE 330
136640 #define YY_MAX_SHIFT 454
136641 #define YY_MIN_SHIFTREDUCE 665
136642 #define YY_MAX_SHIFTREDUCE 994
136643 #define YY_MIN_REDUCE 995
136644 #define YY_MAX_REDUCE 1324
136645 #define YY_ERROR_ACTION 1325
136646 #define YY_ACCEPT_ACTION 1326
136647 #define YY_NO_ACTION 1327
136648 /************* End control #defines *******************************************/
136649
136650 /* Define the yytestcase() macro to be a no-op if is not already defined
136651 ** otherwise.
136652 **
@@ -136716,167 +136767,167 @@
136716 ** yy_default[] Default action for each state.
136717 **
136718 *********** Begin parsing tables **********************************************/
136719 #define YY_ACTTAB_COUNT (1565)
136720 static const YYACTIONTYPE yy_action[] = {
136721 /* 0 */ 324, 410, 342, 748, 748, 203, 941, 353, 971, 98,
136722 /* 10 */ 98, 98, 98, 91, 96, 96, 96, 96, 95, 95,
136723 /* 20 */ 94, 94, 94, 93, 350, 1326, 155, 155, 2, 809,
136724 /* 30 */ 973, 973, 98, 98, 98, 98, 20, 96, 96, 96,
136725 /* 40 */ 96, 95, 95, 94, 94, 94, 93, 350, 92, 89,
136726 /* 50 */ 178, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136727 /* 60 */ 98, 98, 98, 98, 350, 96, 96, 96, 96, 95,
136728 /* 70 */ 95, 94, 94, 94, 93, 350, 324, 339, 971, 262,
136729 /* 80 */ 364, 251, 212, 169, 287, 404, 282, 403, 199, 787,
136730 /* 90 */ 242, 411, 21, 952, 378, 280, 93, 350, 788, 95,
136731 /* 100 */ 95, 94, 94, 94, 93, 350, 973, 973, 96, 96,
136732 /* 110 */ 96, 96, 95, 95, 94, 94, 94, 93, 350, 809,
136733 /* 120 */ 328, 242, 411, 1238, 828, 1238, 132, 99, 100, 90,
136734 /* 130 */ 849, 852, 841, 841, 97, 97, 98, 98, 98, 98,
136735 /* 140 */ 449, 96, 96, 96, 96, 95, 95, 94, 94, 94,
136736 /* 150 */ 93, 350, 324, 821, 348, 347, 120, 815, 120, 75,
136737 /* 160 */ 52, 52, 952, 953, 954, 1086, 979, 146, 360, 262,
136738 /* 170 */ 369, 261, 952, 977, 956, 978, 92, 89, 178, 370,
136739 /* 180 */ 230, 370, 973, 973, 1143, 360, 359, 101, 820, 820,
136740 /* 190 */ 822, 383, 24, 1289, 380, 427, 412, 368, 980, 379,
136741 /* 200 */ 980, 1034, 324, 99, 100, 90, 849, 852, 841, 841,
136742 /* 210 */ 97, 97, 98, 98, 98, 98, 372, 96, 96, 96,
136743 /* 220 */ 96, 95, 95, 94, 94, 94, 93, 350, 952, 132,
136744 /* 230 */ 892, 449, 973, 973, 892, 60, 94, 94, 94, 93,
136745 /* 240 */ 350, 952, 953, 954, 956, 103, 360, 952, 384, 333,
136746 /* 250 */ 698, 52, 52, 99, 100, 90, 849, 852, 841, 841,
136747 /* 260 */ 97, 97, 98, 98, 98, 98, 1024, 96, 96, 96,
136748 /* 270 */ 96, 95, 95, 94, 94, 94, 93, 350, 324, 454,
136749 /* 280 */ 997, 449, 227, 61, 157, 243, 343, 114, 1027, 1214,
136750 /* 290 */ 147, 828, 952, 372, 1073, 952, 319, 952, 953, 954,
136751 /* 300 */ 194, 10, 10, 401, 398, 397, 1214, 1216, 973, 973,
136752 /* 310 */ 758, 171, 170, 157, 396, 336, 952, 953, 954, 698,
136753 /* 320 */ 821, 310, 153, 952, 815, 320, 82, 23, 80, 99,
136754 /* 330 */ 100, 90, 849, 852, 841, 841, 97, 97, 98, 98,
136755 /* 340 */ 98, 98, 890, 96, 96, 96, 96, 95, 95, 94,
136756 /* 350 */ 94, 94, 93, 350, 324, 820, 820, 822, 277, 231,
136757 /* 360 */ 300, 952, 953, 954, 952, 953, 954, 1214, 194, 25,
136758 /* 370 */ 449, 401, 398, 397, 952, 354, 300, 449, 952, 74,
136759 /* 380 */ 449, 1, 396, 132, 973, 973, 952, 224, 224, 809,
136760 /* 390 */ 10, 10, 952, 953, 954, 1293, 132, 52, 52, 414,
136761 /* 400 */ 52, 52, 1065, 1065, 338, 99, 100, 90, 849, 852,
136762 /* 410 */ 841, 841, 97, 97, 98, 98, 98, 98, 1116, 96,
136763 /* 420 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 350,
136764 /* 430 */ 324, 1115, 427, 417, 702, 427, 426, 1263, 1263, 262,
136765 /* 440 */ 369, 261, 952, 952, 953, 954, 753, 952, 953, 954,
136766 /* 450 */ 449, 752, 449, 1060, 1039, 952, 953, 954, 442, 707,
136767 /* 460 */ 973, 973, 1060, 393, 92, 89, 178, 446, 446, 446,
136768 /* 470 */ 51, 51, 52, 52, 438, 774, 1026, 92, 89, 178,
136769 /* 480 */ 172, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136770 /* 490 */ 98, 98, 98, 98, 198, 96, 96, 96, 96, 95,
136771 /* 500 */ 95, 94, 94, 94, 93, 350, 324, 427, 407, 911,
136772 /* 510 */ 695, 952, 953, 954, 92, 89, 178, 224, 224, 157,
136773 /* 520 */ 241, 221, 418, 299, 772, 912, 415, 374, 449, 414,
136774 /* 530 */ 58, 323, 1063, 1063, 1245, 378, 973, 973, 378, 773,
136775 /* 540 */ 448, 913, 362, 736, 296, 682, 9, 9, 52, 52,
136776 /* 550 */ 234, 329, 234, 256, 416, 737, 280, 99, 100, 90,
136777 /* 560 */ 849, 852, 841, 841, 97, 97, 98, 98, 98, 98,
136778 /* 570 */ 449, 96, 96, 96, 96, 95, 95, 94, 94, 94,
136779 /* 580 */ 93, 350, 324, 422, 72, 449, 829, 120, 367, 449,
136780 /* 590 */ 10, 10, 5, 301, 203, 449, 177, 971, 253, 419,
136781 /* 600 */ 255, 772, 200, 175, 233, 10, 10, 838, 838, 36,
136782 /* 610 */ 36, 1292, 973, 973, 725, 37, 37, 348, 347, 424,
136783 /* 620 */ 203, 260, 772, 971, 232, 932, 1319, 872, 337, 1319,
136784 /* 630 */ 421, 850, 853, 99, 100, 90, 849, 852, 841, 841,
136785 /* 640 */ 97, 97, 98, 98, 98, 98, 268, 96, 96, 96,
136786 /* 650 */ 96, 95, 95, 94, 94, 94, 93, 350, 324, 842,
136787 /* 660 */ 449, 980, 814, 980, 1203, 449, 911, 971, 716, 349,
136788 /* 670 */ 349, 349, 930, 177, 449, 932, 1320, 254, 198, 1320,
136789 /* 680 */ 12, 12, 912, 402, 449, 27, 27, 250, 973, 973,
136790 /* 690 */ 118, 717, 162, 971, 38, 38, 268, 176, 913, 772,
136791 /* 700 */ 432, 1268, 941, 353, 39, 39, 316, 993, 324, 99,
136792 /* 710 */ 100, 90, 849, 852, 841, 841, 97, 97, 98, 98,
136793 /* 720 */ 98, 98, 930, 96, 96, 96, 96, 95, 95, 94,
136794 /* 730 */ 94, 94, 93, 350, 449, 329, 449, 357, 973, 973,
136795 /* 740 */ 1043, 316, 931, 340, 895, 895, 386, 670, 671, 672,
136796 /* 750 */ 275, 1321, 317, 994, 40, 40, 41, 41, 268, 99,
136797 /* 760 */ 100, 90, 849, 852, 841, 841, 97, 97, 98, 98,
136798 /* 770 */ 98, 98, 449, 96, 96, 96, 96, 95, 95, 94,
136799 /* 780 */ 94, 94, 93, 350, 324, 449, 355, 449, 994, 449,
136800 /* 790 */ 1018, 330, 42, 42, 787, 270, 449, 273, 449, 228,
136801 /* 800 */ 449, 298, 449, 788, 449, 28, 28, 29, 29, 31,
136802 /* 810 */ 31, 449, 1143, 449, 973, 973, 43, 43, 44, 44,
136803 /* 820 */ 45, 45, 11, 11, 46, 46, 889, 78, 889, 268,
136804 /* 830 */ 268, 105, 105, 47, 47, 99, 100, 90, 849, 852,
136805 /* 840 */ 841, 841, 97, 97, 98, 98, 98, 98, 449, 96,
136806 /* 850 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 350,
136807 /* 860 */ 324, 449, 117, 449, 1075, 158, 449, 692, 48, 48,
136808 /* 870 */ 229, 1244, 449, 1253, 449, 414, 449, 334, 449, 245,
136809 /* 880 */ 449, 33, 33, 49, 49, 449, 50, 50, 246, 1143,
136810 /* 890 */ 973, 973, 34, 34, 122, 122, 123, 123, 124, 124,
136811 /* 900 */ 56, 56, 268, 81, 249, 35, 35, 197, 196, 195,
136812 /* 910 */ 324, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136813 /* 920 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136814 /* 930 */ 95, 94, 94, 94, 93, 350, 449, 692, 449, 1143,
136815 /* 940 */ 973, 973, 970, 1210, 106, 106, 268, 1212, 268, 1269,
136816 /* 950 */ 2, 888, 268, 888, 335, 1042, 53, 53, 107, 107,
136817 /* 960 */ 324, 99, 100, 90, 849, 852, 841, 841, 97, 97,
136818 /* 970 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136819 /* 980 */ 95, 94, 94, 94, 93, 350, 449, 1072, 449, 1068,
136820 /* 990 */ 973, 973, 1041, 267, 108, 108, 445, 330, 331, 133,
136821 /* 1000 */ 223, 175, 301, 225, 385, 1258, 104, 104, 121, 121,
136822 /* 1010 */ 324, 99, 88, 90, 849, 852, 841, 841, 97, 97,
136823 /* 1020 */ 98, 98, 98, 98, 1143, 96, 96, 96, 96, 95,
136824 /* 1030 */ 95, 94, 94, 94, 93, 350, 449, 346, 449, 167,
136825 /* 1040 */ 973, 973, 927, 811, 371, 318, 202, 202, 373, 263,
136826 /* 1050 */ 394, 202, 74, 208, 722, 723, 119, 119, 112, 112,
136827 /* 1060 */ 324, 406, 100, 90, 849, 852, 841, 841, 97, 97,
136828 /* 1070 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136829 /* 1080 */ 95, 94, 94, 94, 93, 350, 449, 753, 449, 344,
136830 /* 1090 */ 973, 973, 752, 278, 111, 111, 74, 715, 714, 705,
136831 /* 1100 */ 286, 879, 750, 1282, 257, 77, 109, 109, 110, 110,
136832 /* 1110 */ 1233, 285, 1136, 90, 849, 852, 841, 841, 97, 97,
136833 /* 1120 */ 98, 98, 98, 98, 1236, 96, 96, 96, 96, 95,
136834 /* 1130 */ 95, 94, 94, 94, 93, 350, 86, 444, 449, 3,
136835 /* 1140 */ 1196, 449, 1071, 132, 351, 120, 1015, 86, 444, 781,
136836 /* 1150 */ 3, 1093, 202, 376, 447, 351, 1232, 120, 55, 55,
136837 /* 1160 */ 449, 57, 57, 824, 875, 447, 449, 208, 449, 705,
136838 /* 1170 */ 449, 879, 237, 433, 435, 120, 439, 428, 361, 120,
136839 /* 1180 */ 54, 54, 132, 449, 433, 828, 52, 52, 26, 26,
136840 /* 1190 */ 30, 30, 381, 132, 408, 443, 828, 690, 264, 389,
136841 /* 1200 */ 116, 269, 272, 32, 32, 83, 84, 120, 274, 120,
136842 /* 1210 */ 120, 276, 85, 351, 451, 450, 83, 84, 815, 1056,
136843 /* 1220 */ 1040, 427, 429, 85, 351, 451, 450, 120, 120, 815,
136844 /* 1230 */ 377, 218, 281, 824, 1109, 1142, 86, 444, 409, 3,
136845 /* 1240 */ 1089, 1100, 430, 431, 351, 302, 303, 1149, 1023, 820,
136846 /* 1250 */ 820, 822, 823, 19, 447, 1017, 1006, 1005, 1007, 1276,
136847 /* 1260 */ 820, 820, 822, 823, 19, 289, 159, 291, 293, 7,
136848 /* 1270 */ 315, 173, 259, 433, 1131, 363, 252, 1235, 375, 1039,
136849 /* 1280 */ 295, 434, 168, 988, 399, 828, 284, 1207, 1206, 205,
136850 /* 1290 */ 1279, 308, 1252, 86, 444, 985, 3, 1250, 332, 144,
136851 /* 1300 */ 130, 351, 72, 135, 59, 83, 84, 757, 137, 365,
136852 /* 1310 */ 1128, 447, 85, 351, 451, 450, 139, 226, 815, 140,
136853 /* 1320 */ 156, 62, 314, 314, 313, 215, 311, 366, 392, 679,
136854 /* 1330 */ 433, 185, 141, 1237, 142, 160, 148, 1138, 1201, 382,
136855 /* 1340 */ 189, 67, 828, 180, 388, 248, 1221, 1101, 219, 820,
136856 /* 1350 */ 820, 822, 823, 19, 247, 190, 266, 154, 390, 271,
136857 /* 1360 */ 191, 192, 83, 84, 1008, 405, 1059, 182, 321, 85,
136858 /* 1370 */ 351, 451, 450, 1058, 183, 815, 341, 132, 181, 707,
136859 /* 1380 */ 1057, 420, 76, 444, 1031, 3, 322, 1030, 283, 1050,
136860 /* 1390 */ 351, 1097, 1029, 1291, 1049, 71, 204, 6, 288, 290,
136861 /* 1400 */ 447, 1098, 1096, 1095, 79, 292, 820, 820, 822, 823,
136862 /* 1410 */ 19, 294, 297, 437, 345, 441, 102, 1187, 1079, 433,
136863 /* 1420 */ 238, 425, 73, 305, 239, 304, 325, 240, 423, 306,
136864 /* 1430 */ 307, 828, 213, 1014, 22, 947, 452, 214, 216, 217,
136865 /* 1440 */ 453, 1003, 115, 998, 125, 126, 235, 127, 666, 352,
136866 /* 1450 */ 326, 83, 84, 358, 166, 244, 179, 327, 85, 351,
136867 /* 1460 */ 451, 450, 134, 356, 815, 113, 887, 807, 885, 136,
136868 /* 1470 */ 128, 138, 739, 258, 184, 901, 143, 145, 63, 64,
136869 /* 1480 */ 65, 66, 129, 904, 187, 186, 900, 8, 13, 188,
136870 /* 1490 */ 265, 893, 149, 202, 982, 820, 820, 822, 823, 19,
136871 /* 1500 */ 150, 387, 161, 681, 285, 391, 151, 395, 400, 193,
136872 /* 1510 */ 68, 14, 236, 279, 15, 69, 718, 827, 131, 826,
136873 /* 1520 */ 855, 70, 747, 16, 413, 751, 4, 174, 220, 222,
136874 /* 1530 */ 152, 780, 859, 775, 201, 77, 74, 870, 17, 856,
136875 /* 1540 */ 854, 910, 18, 909, 207, 206, 936, 163, 436, 210,
136876 /* 1550 */ 937, 164, 209, 165, 440, 858, 825, 691, 87, 211,
136877 /* 1560 */ 309, 312, 1284, 942, 1283,
136878 };
136879 static const YYCODETYPE yy_lookahead[] = {
136880 /* 0 */ 19, 115, 19, 117, 118, 24, 1, 2, 27, 79,
136881 /* 10 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
136882 /* 20 */ 90, 91, 92, 93, 94, 144, 145, 146, 147, 58,
@@ -137125,56 +137176,56 @@
137125 /* 300 */ 1236, 1195, 1198, 1238, 1213, 1221, 1220, 1227, 1229, 1271,
137126 /* 310 */ 1275, 1284, 1285, 1289, 1290, 1292, 1201, 1208, 1216, 1279,
137127 /* 320 */ 1280, 1264, 1268, 1282,
137128 };
137129 static const YYACTIONTYPE yy_default[] = {
137130 /* 0 */ 1273, 1263, 1263, 1263, 1196, 1196, 1196, 1196, 1263, 1090,
137131 /* 10 */ 1119, 1119, 1247, 1325, 1325, 1325, 1325, 1325, 1325, 1195,
137132 /* 20 */ 1325, 1325, 1325, 1325, 1263, 1094, 1125, 1325, 1325, 1325,
137133 /* 30 */ 1325, 1197, 1198, 1325, 1325, 1325, 1246, 1248, 1135, 1134,
137134 /* 40 */ 1133, 1132, 1229, 1106, 1130, 1123, 1127, 1197, 1191, 1192,
137135 /* 50 */ 1190, 1194, 1198, 1325, 1126, 1161, 1175, 1160, 1325, 1325,
137136 /* 60 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137137 /* 70 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137138 /* 80 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137139 /* 90 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137140 /* 100 */ 1325, 1325, 1325, 1325, 1169, 1174, 1181, 1173, 1170, 1163,
137141 /* 110 */ 1162, 1164, 1165, 1325, 1013, 1061, 1325, 1325, 1325, 1166,
137142 /* 120 */ 1325, 1167, 1178, 1177, 1176, 1254, 1281, 1280, 1325, 1325,
137143 /* 130 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137144 /* 140 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137145 /* 150 */ 1325, 1325, 1325, 1325, 1325, 1273, 1263, 1019, 1019, 1325,
137146 /* 160 */ 1263, 1263, 1263, 1263, 1263, 1263, 1259, 1094, 1085, 1325,
137147 /* 170 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137148 /* 180 */ 1251, 1249, 1325, 1211, 1325, 1325, 1325, 1325, 1325, 1325,
137149 /* 190 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137150 /* 200 */ 1325, 1325, 1325, 1325, 1090, 1325, 1325, 1325, 1325, 1325,
137151 /* 210 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1275, 1325, 1224,
137152 /* 220 */ 1090, 1090, 1090, 1092, 1074, 1084, 999, 1129, 1108, 1108,
137153 /* 230 */ 1314, 1129, 1314, 1036, 1295, 1033, 1119, 1108, 1193, 1119,
137154 /* 240 */ 1119, 1091, 1084, 1325, 1317, 1099, 1099, 1316, 1316, 1099,
137155 /* 250 */ 1140, 1064, 1129, 1070, 1070, 1070, 1070, 1099, 1010, 1129,
137156 /* 260 */ 1140, 1064, 1064, 1129, 1099, 1010, 1228, 1311, 1099, 1099,
137157 /* 270 */ 1010, 1204, 1099, 1010, 1099, 1010, 1204, 1062, 1062, 1062,
137158 /* 280 */ 1051, 1204, 1062, 1036, 1062, 1051, 1062, 1062, 1112, 1107,
137159 /* 290 */ 1112, 1107, 1112, 1107, 1112, 1107, 1099, 1199, 1099, 1325,
137160 /* 300 */ 1204, 1208, 1208, 1204, 1124, 1113, 1122, 1120, 1129, 1016,
137161 /* 310 */ 1054, 1278, 1278, 1274, 1274, 1274, 1322, 1322, 1259, 1290,
137162 /* 320 */ 1290, 1038, 1038, 1290, 1325, 1325, 1325, 1325, 1325, 1325,
137163 /* 330 */ 1285, 1325, 1213, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137164 /* 340 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137165 /* 350 */ 1325, 1146, 1325, 995, 1256, 1325, 1325, 1255, 1325, 1325,
137166 /* 360 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137167 /* 370 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1313, 1325,
137168 /* 380 */ 1325, 1325, 1325, 1325, 1325, 1227, 1226, 1325, 1325, 1325,
137169 /* 390 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137170 /* 400 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
137171 /* 410 */ 1076, 1325, 1325, 1325, 1299, 1325, 1325, 1325, 1325, 1325,
137172 /* 420 */ 1325, 1325, 1121, 1325, 1114, 1325, 1325, 1304, 1325, 1325,
137173 /* 430 */ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1265, 1325,
137174 /* 440 */ 1325, 1325, 1264, 1325, 1325, 1325, 1325, 1325, 1148, 1325,
137175 /* 450 */ 1147, 1151, 1325, 1004, 1325,
137176 };
137177 /********** End of lemon-generated parsing tables *****************************/
137178
137179 /* The next table maps tokens (terminal symbols) into fallback tokens.
137180 ** If a construct like the following:
@@ -137565,190 +137616,189 @@
137565 /* 145 */ "idlist_opt ::=",
137566 /* 146 */ "idlist_opt ::= LP idlist RP",
137567 /* 147 */ "idlist ::= idlist COMMA nm",
137568 /* 148 */ "idlist ::= nm",
137569 /* 149 */ "expr ::= LP expr RP",
137570 /* 150 */ "term ::= NULL",
137571 /* 151 */ "expr ::= ID|INDEXED",
137572 /* 152 */ "expr ::= JOIN_KW",
137573 /* 153 */ "expr ::= nm DOT nm",
137574 /* 154 */ "expr ::= nm DOT nm DOT nm",
137575 /* 155 */ "term ::= FLOAT|BLOB",
137576 /* 156 */ "term ::= STRING",
137577 /* 157 */ "term ::= INTEGER",
137578 /* 158 */ "expr ::= VARIABLE",
137579 /* 159 */ "expr ::= expr COLLATE ID|STRING",
137580 /* 160 */ "expr ::= CAST LP expr AS typetoken RP",
137581 /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
137582 /* 162 */ "expr ::= ID|INDEXED LP STAR RP",
137583 /* 163 */ "term ::= CTIME_KW",
137584 /* 164 */ "expr ::= LP nexprlist COMMA expr RP",
137585 /* 165 */ "expr ::= expr AND expr",
137586 /* 166 */ "expr ::= expr OR expr",
137587 /* 167 */ "expr ::= expr LT|GT|GE|LE expr",
137588 /* 168 */ "expr ::= expr EQ|NE expr",
137589 /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
137590 /* 170 */ "expr ::= expr PLUS|MINUS expr",
137591 /* 171 */ "expr ::= expr STAR|SLASH|REM expr",
137592 /* 172 */ "expr ::= expr CONCAT expr",
137593 /* 173 */ "likeop ::= NOT LIKE_KW|MATCH",
137594 /* 174 */ "expr ::= expr likeop expr",
137595 /* 175 */ "expr ::= expr likeop expr ESCAPE expr",
137596 /* 176 */ "expr ::= expr ISNULL|NOTNULL",
137597 /* 177 */ "expr ::= expr NOT NULL",
137598 /* 178 */ "expr ::= expr IS expr",
137599 /* 179 */ "expr ::= expr IS NOT expr",
137600 /* 180 */ "expr ::= NOT expr",
137601 /* 181 */ "expr ::= BITNOT expr",
137602 /* 182 */ "expr ::= MINUS expr",
137603 /* 183 */ "expr ::= PLUS expr",
137604 /* 184 */ "between_op ::= BETWEEN",
137605 /* 185 */ "between_op ::= NOT BETWEEN",
137606 /* 186 */ "expr ::= expr between_op expr AND expr",
137607 /* 187 */ "in_op ::= IN",
137608 /* 188 */ "in_op ::= NOT IN",
137609 /* 189 */ "expr ::= expr in_op LP exprlist RP",
137610 /* 190 */ "expr ::= LP select RP",
137611 /* 191 */ "expr ::= expr in_op LP select RP",
137612 /* 192 */ "expr ::= expr in_op nm dbnm paren_exprlist",
137613 /* 193 */ "expr ::= EXISTS LP select RP",
137614 /* 194 */ "expr ::= CASE case_operand case_exprlist case_else END",
137615 /* 195 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
137616 /* 196 */ "case_exprlist ::= WHEN expr THEN expr",
137617 /* 197 */ "case_else ::= ELSE expr",
137618 /* 198 */ "case_else ::=",
137619 /* 199 */ "case_operand ::= expr",
137620 /* 200 */ "case_operand ::=",
137621 /* 201 */ "exprlist ::=",
137622 /* 202 */ "nexprlist ::= nexprlist COMMA expr",
137623 /* 203 */ "nexprlist ::= expr",
137624 /* 204 */ "paren_exprlist ::=",
137625 /* 205 */ "paren_exprlist ::= LP exprlist RP",
137626 /* 206 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
137627 /* 207 */ "uniqueflag ::= UNIQUE",
137628 /* 208 */ "uniqueflag ::=",
137629 /* 209 */ "eidlist_opt ::=",
137630 /* 210 */ "eidlist_opt ::= LP eidlist RP",
137631 /* 211 */ "eidlist ::= eidlist COMMA nm collate sortorder",
137632 /* 212 */ "eidlist ::= nm collate sortorder",
137633 /* 213 */ "collate ::=",
137634 /* 214 */ "collate ::= COLLATE ID|STRING",
137635 /* 215 */ "cmd ::= DROP INDEX ifexists fullname",
137636 /* 216 */ "cmd ::= VACUUM",
137637 /* 217 */ "cmd ::= VACUUM nm",
137638 /* 218 */ "cmd ::= PRAGMA nm dbnm",
137639 /* 219 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
137640 /* 220 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
137641 /* 221 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
137642 /* 222 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
137643 /* 223 */ "plus_num ::= PLUS INTEGER|FLOAT",
137644 /* 224 */ "minus_num ::= MINUS INTEGER|FLOAT",
137645 /* 225 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
137646 /* 226 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
137647 /* 227 */ "trigger_time ::= BEFORE|AFTER",
137648 /* 228 */ "trigger_time ::= INSTEAD OF",
137649 /* 229 */ "trigger_time ::=",
137650 /* 230 */ "trigger_event ::= DELETE|INSERT",
137651 /* 231 */ "trigger_event ::= UPDATE",
137652 /* 232 */ "trigger_event ::= UPDATE OF idlist",
137653 /* 233 */ "when_clause ::=",
137654 /* 234 */ "when_clause ::= WHEN expr",
137655 /* 235 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
137656 /* 236 */ "trigger_cmd_list ::= trigger_cmd SEMI",
137657 /* 237 */ "trnm ::= nm DOT nm",
137658 /* 238 */ "tridxby ::= INDEXED BY nm",
137659 /* 239 */ "tridxby ::= NOT INDEXED",
137660 /* 240 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
137661 /* 241 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
137662 /* 242 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
137663 /* 243 */ "trigger_cmd ::= select",
137664 /* 244 */ "expr ::= RAISE LP IGNORE RP",
137665 /* 245 */ "expr ::= RAISE LP raisetype COMMA nm RP",
137666 /* 246 */ "raisetype ::= ROLLBACK",
137667 /* 247 */ "raisetype ::= ABORT",
137668 /* 248 */ "raisetype ::= FAIL",
137669 /* 249 */ "cmd ::= DROP TRIGGER ifexists fullname",
137670 /* 250 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
137671 /* 251 */ "cmd ::= DETACH database_kw_opt expr",
137672 /* 252 */ "key_opt ::=",
137673 /* 253 */ "key_opt ::= KEY expr",
137674 /* 254 */ "cmd ::= REINDEX",
137675 /* 255 */ "cmd ::= REINDEX nm dbnm",
137676 /* 256 */ "cmd ::= ANALYZE",
137677 /* 257 */ "cmd ::= ANALYZE nm dbnm",
137678 /* 258 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
137679 /* 259 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
137680 /* 260 */ "add_column_fullname ::= fullname",
137681 /* 261 */ "cmd ::= create_vtab",
137682 /* 262 */ "cmd ::= create_vtab LP vtabarglist RP",
137683 /* 263 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
137684 /* 264 */ "vtabarg ::=",
137685 /* 265 */ "vtabargtoken ::= ANY",
137686 /* 266 */ "vtabargtoken ::= lp anylist RP",
137687 /* 267 */ "lp ::= LP",
137688 /* 268 */ "with ::=",
137689 /* 269 */ "with ::= WITH wqlist",
137690 /* 270 */ "with ::= WITH RECURSIVE wqlist",
137691 /* 271 */ "wqlist ::= nm eidlist_opt AS LP select RP",
137692 /* 272 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
137693 /* 273 */ "input ::= cmdlist",
137694 /* 274 */ "cmdlist ::= cmdlist ecmd",
137695 /* 275 */ "cmdlist ::= ecmd",
137696 /* 276 */ "ecmd ::= SEMI",
137697 /* 277 */ "ecmd ::= explain cmdx SEMI",
137698 /* 278 */ "explain ::=",
137699 /* 279 */ "trans_opt ::=",
137700 /* 280 */ "trans_opt ::= TRANSACTION",
137701 /* 281 */ "trans_opt ::= TRANSACTION nm",
137702 /* 282 */ "savepoint_opt ::= SAVEPOINT",
137703 /* 283 */ "savepoint_opt ::=",
137704 /* 284 */ "cmd ::= create_table create_table_args",
137705 /* 285 */ "columnlist ::= columnlist COMMA columnname carglist",
137706 /* 286 */ "columnlist ::= columnname carglist",
137707 /* 287 */ "nm ::= ID|INDEXED",
137708 /* 288 */ "nm ::= STRING",
137709 /* 289 */ "nm ::= JOIN_KW",
137710 /* 290 */ "typetoken ::= typename",
137711 /* 291 */ "typename ::= ID|STRING",
137712 /* 292 */ "signed ::= plus_num",
137713 /* 293 */ "signed ::= minus_num",
137714 /* 294 */ "carglist ::= carglist ccons",
137715 /* 295 */ "carglist ::=",
137716 /* 296 */ "ccons ::= NULL onconf",
137717 /* 297 */ "conslist_opt ::= COMMA conslist",
137718 /* 298 */ "conslist ::= conslist tconscomma tcons",
137719 /* 299 */ "conslist ::= tcons",
137720 /* 300 */ "tconscomma ::=",
137721 /* 301 */ "defer_subclause_opt ::= defer_subclause",
137722 /* 302 */ "resolvetype ::= raisetype",
137723 /* 303 */ "selectnowith ::= oneselect",
137724 /* 304 */ "oneselect ::= values",
137725 /* 305 */ "sclp ::= selcollist COMMA",
137726 /* 306 */ "as ::= ID|STRING",
137727 /* 307 */ "expr ::= term",
137728 /* 308 */ "likeop ::= LIKE_KW|MATCH",
137729 /* 309 */ "exprlist ::= nexprlist",
137730 /* 310 */ "nmnum ::= plus_num",
137731 /* 311 */ "nmnum ::= nm",
137732 /* 312 */ "nmnum ::= ON",
137733 /* 313 */ "nmnum ::= DELETE",
137734 /* 314 */ "nmnum ::= DEFAULT",
137735 /* 315 */ "plus_num ::= INTEGER|FLOAT",
137736 /* 316 */ "foreach_clause ::=",
137737 /* 317 */ "foreach_clause ::= FOR EACH ROW",
137738 /* 318 */ "trnm ::= nm",
137739 /* 319 */ "tridxby ::=",
137740 /* 320 */ "database_kw_opt ::= DATABASE",
137741 /* 321 */ "database_kw_opt ::=",
137742 /* 322 */ "kwcolumn_opt ::=",
137743 /* 323 */ "kwcolumn_opt ::= COLUMNKW",
137744 /* 324 */ "vtabarglist ::= vtabarg",
137745 /* 325 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
137746 /* 326 */ "vtabarg ::= vtabarg vtabargtoken",
137747 /* 327 */ "anylist ::=",
137748 /* 328 */ "anylist ::= anylist LP anylist RP",
137749 /* 329 */ "anylist ::= anylist ANY",
137750 };
137751 #endif /* NDEBUG */
137752
137753
137754 #if YYSTACKDEPTH<=0
@@ -138339,11 +138389,10 @@
138339 { 220, 0 },
138340 { 220, -3 },
138341 { 217, -3 },
138342 { 217, -1 },
138343 { 173, -3 },
138344 { 172, -1 },
138345 { 173, -1 },
138346 { 173, -1 },
138347 { 173, -3 },
138348 { 173, -5 },
138349 { 172, -1 },
@@ -138637,11 +138686,11 @@
138637 case 41: /* autoinc ::= */ yytestcase(yyruleno==41);
138638 case 56: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==56);
138639 case 66: /* defer_subclause_opt ::= */ yytestcase(yyruleno==66);
138640 case 75: /* ifexists ::= */ yytestcase(yyruleno==75);
138641 case 89: /* distinct ::= */ yytestcase(yyruleno==89);
138642 case 213: /* collate ::= */ yytestcase(yyruleno==213);
138643 {yymsp[1].minor.yy194 = 0;}
138644 break;
138645 case 16: /* ifnotexists ::= IF NOT EXISTS */
138646 {yymsp[-2].minor.yy194 = 1;}
138647 break;
@@ -138781,13 +138830,13 @@
138781 case 143: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==143);
138782 {yymsp[-1].minor.yy194 = yymsp[0].minor.yy194;}
138783 break;
138784 case 57: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
138785 case 74: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==74);
138786 case 185: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==185);
138787 case 188: /* in_op ::= NOT IN */ yytestcase(yyruleno==188);
138788 case 214: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==214);
138789 {yymsp[-1].minor.yy194 = 1;}
138790 break;
138791 case 58: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
138792 {yymsp[-1].minor.yy194 = 0;}
138793 break;
@@ -138947,13 +138996,13 @@
138947 {yymsp[0].minor.yy194 = SF_All;}
138948 break;
138949 case 90: /* sclp ::= */
138950 case 118: /* orderby_opt ::= */ yytestcase(yyruleno==118);
138951 case 125: /* groupby_opt ::= */ yytestcase(yyruleno==125);
138952 case 201: /* exprlist ::= */ yytestcase(yyruleno==201);
138953 case 204: /* paren_exprlist ::= */ yytestcase(yyruleno==204);
138954 case 209: /* eidlist_opt ::= */ yytestcase(yyruleno==209);
138955 {yymsp[1].minor.yy148 = 0;}
138956 break;
138957 case 91: /* selcollist ::= sclp expr as */
138958 {
138959 yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy148, yymsp[-1].minor.yy190.pExpr);
@@ -138975,12 +139024,12 @@
138975 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, pDot);
138976 }
138977 break;
138978 case 94: /* as ::= AS nm */
138979 case 105: /* dbnm ::= DOT nm */ yytestcase(yyruleno==105);
138980 case 223: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
138981 case 224: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==224);
138982 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
138983 break;
138984 case 96: /* from ::= */
138985 {yymsp[1].minor.yy185 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy185));}
138986 break;
@@ -139059,18 +139108,18 @@
139059 {yymsp[-3].minor.yy194 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
139060 break;
139061 case 111: /* on_opt ::= ON expr */
139062 case 128: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==128);
139063 case 135: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==135);
139064 case 197: /* case_else ::= ELSE expr */ yytestcase(yyruleno==197);
139065 {yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr;}
139066 break;
139067 case 112: /* on_opt ::= */
139068 case 127: /* having_opt ::= */ yytestcase(yyruleno==127);
139069 case 134: /* where_opt ::= */ yytestcase(yyruleno==134);
139070 case 198: /* case_else ::= */ yytestcase(yyruleno==198);
139071 case 200: /* case_operand ::= */ yytestcase(yyruleno==200);
139072 {yymsp[1].minor.yy72 = 0;}
139073 break;
139074 case 114: /* indexed_opt ::= INDEXED BY nm */
139075 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
139076 break;
@@ -139181,47 +139230,45 @@
139181 {yymsp[0].minor.yy254 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
139182 break;
139183 case 149: /* expr ::= LP expr RP */
139184 {spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/ yymsp[-2].minor.yy190.pExpr = yymsp[-1].minor.yy190.pExpr;}
139185 break;
139186 case 150: /* term ::= NULL */
139187 case 155: /* term ::= FLOAT|BLOB */ yytestcase(yyruleno==155);
139188 case 156: /* term ::= STRING */ yytestcase(yyruleno==156);
139189 {spanExpr(&yymsp[0].minor.yy190,pParse,yymsp[0].major,yymsp[0].minor.yy0);/*A-overwrites-X*/}
139190 break;
139191 case 151: /* expr ::= ID|INDEXED */
139192 case 152: /* expr ::= JOIN_KW */ yytestcase(yyruleno==152);
139193 {spanExpr(&yymsp[0].minor.yy190,pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
139194 break;
139195 case 153: /* expr ::= nm DOT nm */
139196 {
139197 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
139198 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
139199 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139200 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
139201 }
139202 break;
139203 case 154: /* expr ::= nm DOT nm DOT nm */
139204 {
139205 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
139206 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
139207 Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
139208 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
139209 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139210 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
139211 }
139212 break;
139213 case 157: /* term ::= INTEGER */
 
 
 
 
139214 {
139215 yylhsminor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
139216 yylhsminor.yy190.zStart = yymsp[0].minor.yy0.z;
139217 yylhsminor.yy190.zEnd = yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n;
139218 if( yylhsminor.yy190.pExpr ) yylhsminor.yy190.pExpr->flags |= EP_Leaf|EP_Resolved;
139219 }
139220 yymsp[0].minor.yy190 = yylhsminor.yy190;
139221 break;
139222 case 158: /* expr ::= VARIABLE */
139223 {
139224 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
139225 u32 n = yymsp[0].minor.yy0.n;
139226 spanExpr(&yymsp[0].minor.yy190, pParse, TK_VARIABLE, yymsp[0].minor.yy0);
139227 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy190.pExpr, n);
@@ -139240,24 +139287,24 @@
139240 if( yymsp[0].minor.yy190.pExpr ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy190.pExpr->iTable);
139241 }
139242 }
139243 }
139244 break;
139245 case 159: /* expr ::= expr COLLATE ID|STRING */
139246 {
139247 yymsp[-2].minor.yy190.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy190.pExpr, &yymsp[0].minor.yy0, 1);
139248 yymsp[-2].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139249 }
139250 break;
139251 case 160: /* expr ::= CAST LP expr AS typetoken RP */
139252 {
139253 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139254 yymsp[-5].minor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
139255 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, 0);
139256 }
139257 break;
139258 case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */
139259 {
139260 if( yymsp[-1].minor.yy148 && yymsp[-1].minor.yy148->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
139261 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
139262 }
139263 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy148, &yymsp[-4].minor.yy0);
@@ -139266,25 +139313,25 @@
139266 yylhsminor.yy190.pExpr->flags |= EP_Distinct;
139267 }
139268 }
139269 yymsp[-4].minor.yy190 = yylhsminor.yy190;
139270 break;
139271 case 162: /* expr ::= ID|INDEXED LP STAR RP */
139272 {
139273 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
139274 spanSet(&yylhsminor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
139275 }
139276 yymsp[-3].minor.yy190 = yylhsminor.yy190;
139277 break;
139278 case 163: /* term ::= CTIME_KW */
139279 {
139280 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
139281 spanSet(&yylhsminor.yy190, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
139282 }
139283 yymsp[0].minor.yy190 = yylhsminor.yy190;
139284 break;
139285 case 164: /* expr ::= LP nexprlist COMMA expr RP */
139286 {
139287 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy148, yymsp[-1].minor.yy190.pExpr);
139288 yylhsminor.yy190.pExpr = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
139289 if( yylhsminor.yy190.pExpr ){
139290 yylhsminor.yy190.pExpr->x.pList = pList;
@@ -139293,24 +139340,24 @@
139293 sqlite3ExprListDelete(pParse->db, pList);
139294 }
139295 }
139296 yymsp[-4].minor.yy190 = yylhsminor.yy190;
139297 break;
139298 case 165: /* expr ::= expr AND expr */
139299 case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166);
139300 case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167);
139301 case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168);
139302 case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169);
139303 case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170);
139304 case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171);
139305 case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172);
139306 {spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);}
139307 break;
139308 case 173: /* likeop ::= NOT LIKE_KW|MATCH */
139309 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
139310 break;
139311 case 174: /* expr ::= expr likeop expr */
139312 {
139313 ExprList *pList;
139314 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
139315 yymsp[-1].minor.yy0.n &= 0x7fffffff;
139316 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy190.pExpr);
@@ -139319,11 +139366,11 @@
139319 exprNot(pParse, bNot, &yymsp[-2].minor.yy190);
139320 yymsp[-2].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139321 if( yymsp[-2].minor.yy190.pExpr ) yymsp[-2].minor.yy190.pExpr->flags |= EP_InfixFunc;
139322 }
139323 break;
139324 case 175: /* expr ::= expr likeop expr ESCAPE expr */
139325 {
139326 ExprList *pList;
139327 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
139328 yymsp[-3].minor.yy0.n &= 0x7fffffff;
139329 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
@@ -139333,43 +139380,43 @@
139333 exprNot(pParse, bNot, &yymsp[-4].minor.yy190);
139334 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139335 if( yymsp[-4].minor.yy190.pExpr ) yymsp[-4].minor.yy190.pExpr->flags |= EP_InfixFunc;
139336 }
139337 break;
139338 case 176: /* expr ::= expr ISNULL|NOTNULL */
139339 {spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy190,&yymsp[0].minor.yy0);}
139340 break;
139341 case 177: /* expr ::= expr NOT NULL */
139342 {spanUnaryPostfix(pParse,TK_NOTNULL,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy0);}
139343 break;
139344 case 178: /* expr ::= expr IS expr */
139345 {
139346 spanBinaryExpr(pParse,TK_IS,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);
139347 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-2].minor.yy190.pExpr, TK_ISNULL);
139348 }
139349 break;
139350 case 179: /* expr ::= expr IS NOT expr */
139351 {
139352 spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy190,&yymsp[0].minor.yy190);
139353 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, TK_NOTNULL);
139354 }
139355 break;
139356 case 180: /* expr ::= NOT expr */
139357 case 181: /* expr ::= BITNOT expr */ yytestcase(yyruleno==181);
139358 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,yymsp[-1].major,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139359 break;
139360 case 182: /* expr ::= MINUS expr */
139361 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UMINUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139362 break;
139363 case 183: /* expr ::= PLUS expr */
139364 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UPLUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139365 break;
139366 case 184: /* between_op ::= BETWEEN */
139367 case 187: /* in_op ::= IN */ yytestcase(yyruleno==187);
139368 {yymsp[0].minor.yy194 = 0;}
139369 break;
139370 case 186: /* expr ::= expr between_op expr AND expr */
139371 {
139372 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
139373 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
139374 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy190.pExpr, 0);
139375 if( yymsp[-4].minor.yy190.pExpr ){
@@ -139379,11 +139426,11 @@
139379 }
139380 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139381 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139382 }
139383 break;
139384 case 189: /* expr ::= expr in_op LP exprlist RP */
139385 {
139386 if( yymsp[-1].minor.yy148==0 ){
139387 /* Expressions of the form
139388 **
139389 ** expr1 IN ()
@@ -139432,26 +139479,26 @@
139432 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139433 }
139434 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139435 }
139436 break;
139437 case 190: /* expr ::= LP select RP */
139438 {
139439 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
139440 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
139441 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy190.pExpr, yymsp[-1].minor.yy243);
139442 }
139443 break;
139444 case 191: /* expr ::= expr in_op LP select RP */
139445 {
139446 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0);
139447 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, yymsp[-1].minor.yy243);
139448 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139449 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139450 }
139451 break;
139452 case 192: /* expr ::= expr in_op nm dbnm paren_exprlist */
139453 {
139454 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
139455 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
139456 if( yymsp[0].minor.yy148 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy148);
139457 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0);
@@ -139458,19 +139505,19 @@
139458 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, pSelect);
139459 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139460 yymsp[-4].minor.yy190.zEnd = yymsp[-1].minor.yy0.z ? &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n] : &yymsp[-2].minor.yy0.z[yymsp[-2].minor.yy0.n];
139461 }
139462 break;
139463 case 193: /* expr ::= EXISTS LP select RP */
139464 {
139465 Expr *p;
139466 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
139467 p = yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
139468 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy243);
139469 }
139470 break;
139471 case 194: /* expr ::= CASE case_operand case_exprlist case_else END */
139472 {
139473 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-C*/
139474 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy72, 0);
139475 if( yymsp[-4].minor.yy190.pExpr ){
139476 yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy72 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[-1].minor.yy72) : yymsp[-2].minor.yy148;
@@ -139479,332 +139526,332 @@
139479 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy148);
139480 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy72);
139481 }
139482 }
139483 break;
139484 case 195: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
139485 {
139486 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[-2].minor.yy190.pExpr);
139487 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[0].minor.yy190.pExpr);
139488 }
139489 break;
139490 case 196: /* case_exprlist ::= WHEN expr THEN expr */
139491 {
139492 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
139493 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, yymsp[0].minor.yy190.pExpr);
139494 }
139495 break;
139496 case 199: /* case_operand ::= expr */
139497 {yymsp[0].minor.yy72 = yymsp[0].minor.yy190.pExpr; /*A-overwrites-X*/}
139498 break;
139499 case 202: /* nexprlist ::= nexprlist COMMA expr */
139500 {yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[0].minor.yy190.pExpr);}
139501 break;
139502 case 203: /* nexprlist ::= expr */
139503 {yymsp[0].minor.yy148 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy190.pExpr); /*A-overwrites-Y*/}
139504 break;
139505 case 205: /* paren_exprlist ::= LP exprlist RP */
139506 case 210: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==210);
139507 {yymsp[-2].minor.yy148 = yymsp[-1].minor.yy148;}
139508 break;
139509 case 206: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
139510 {
139511 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
139512 sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy148, yymsp[-10].minor.yy194,
139513 &yymsp[-11].minor.yy0, yymsp[0].minor.yy72, SQLITE_SO_ASC, yymsp[-8].minor.yy194, SQLITE_IDXTYPE_APPDEF);
139514 }
139515 break;
139516 case 207: /* uniqueflag ::= UNIQUE */
139517 case 247: /* raisetype ::= ABORT */ yytestcase(yyruleno==247);
139518 {yymsp[0].minor.yy194 = OE_Abort;}
139519 break;
139520 case 208: /* uniqueflag ::= */
139521 {yymsp[1].minor.yy194 = OE_None;}
139522 break;
139523 case 211: /* eidlist ::= eidlist COMMA nm collate sortorder */
139524 {
139525 yymsp[-4].minor.yy148 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy148, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194);
139526 }
139527 break;
139528 case 212: /* eidlist ::= nm collate sortorder */
139529 {
139530 yymsp[-2].minor.yy148 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194); /*A-overwrites-Y*/
139531 }
139532 break;
139533 case 215: /* cmd ::= DROP INDEX ifexists fullname */
139534 {sqlite3DropIndex(pParse, yymsp[0].minor.yy185, yymsp[-1].minor.yy194);}
139535 break;
139536 case 216: /* cmd ::= VACUUM */
139537 {sqlite3Vacuum(pParse,0);}
139538 break;
139539 case 217: /* cmd ::= VACUUM nm */
139540 {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
139541 break;
139542 case 218: /* cmd ::= PRAGMA nm dbnm */
139543 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
139544 break;
139545 case 219: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
139546 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
139547 break;
139548 case 220: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
139549 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
139550 break;
139551 case 221: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
139552 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
139553 break;
139554 case 222: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
139555 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
139556 break;
139557 case 225: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
139558 {
139559 Token all;
139560 all.z = yymsp[-3].minor.yy0.z;
139561 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
139562 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy145, &all);
139563 }
139564 break;
139565 case 226: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
139566 {
139567 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy194, yymsp[-4].minor.yy332.a, yymsp[-4].minor.yy332.b, yymsp[-2].minor.yy185, yymsp[0].minor.yy72, yymsp[-10].minor.yy194, yymsp[-8].minor.yy194);
139568 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
139569 }
139570 break;
139571 case 227: /* trigger_time ::= BEFORE|AFTER */
139572 { yymsp[0].minor.yy194 = yymsp[0].major; /*A-overwrites-X*/ }
139573 break;
139574 case 228: /* trigger_time ::= INSTEAD OF */
139575 { yymsp[-1].minor.yy194 = TK_INSTEAD;}
139576 break;
139577 case 229: /* trigger_time ::= */
139578 { yymsp[1].minor.yy194 = TK_BEFORE; }
139579 break;
139580 case 230: /* trigger_event ::= DELETE|INSERT */
139581 case 231: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==231);
139582 {yymsp[0].minor.yy332.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy332.b = 0;}
139583 break;
139584 case 232: /* trigger_event ::= UPDATE OF idlist */
139585 {yymsp[-2].minor.yy332.a = TK_UPDATE; yymsp[-2].minor.yy332.b = yymsp[0].minor.yy254;}
139586 break;
139587 case 233: /* when_clause ::= */
139588 case 252: /* key_opt ::= */ yytestcase(yyruleno==252);
139589 { yymsp[1].minor.yy72 = 0; }
139590 break;
139591 case 234: /* when_clause ::= WHEN expr */
139592 case 253: /* key_opt ::= KEY expr */ yytestcase(yyruleno==253);
139593 { yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr; }
139594 break;
139595 case 235: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
139596 {
139597 assert( yymsp[-2].minor.yy145!=0 );
139598 yymsp[-2].minor.yy145->pLast->pNext = yymsp[-1].minor.yy145;
139599 yymsp[-2].minor.yy145->pLast = yymsp[-1].minor.yy145;
139600 }
139601 break;
139602 case 236: /* trigger_cmd_list ::= trigger_cmd SEMI */
139603 {
139604 assert( yymsp[-1].minor.yy145!=0 );
139605 yymsp[-1].minor.yy145->pLast = yymsp[-1].minor.yy145;
139606 }
139607 break;
139608 case 237: /* trnm ::= nm DOT nm */
139609 {
139610 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
139611 sqlite3ErrorMsg(pParse,
139612 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
139613 "statements within triggers");
139614 }
139615 break;
139616 case 238: /* tridxby ::= INDEXED BY nm */
139617 {
139618 sqlite3ErrorMsg(pParse,
139619 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
139620 "within triggers");
139621 }
139622 break;
139623 case 239: /* tridxby ::= NOT INDEXED */
139624 {
139625 sqlite3ErrorMsg(pParse,
139626 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
139627 "within triggers");
139628 }
139629 break;
139630 case 240: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
139631 {yymsp[-6].minor.yy145 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy148, yymsp[0].minor.yy72, yymsp[-5].minor.yy194);}
139632 break;
139633 case 241: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
139634 {yymsp[-4].minor.yy145 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy254, yymsp[0].minor.yy243, yymsp[-4].minor.yy194);/*A-overwrites-R*/}
139635 break;
139636 case 242: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
139637 {yymsp[-4].minor.yy145 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy72);}
139638 break;
139639 case 243: /* trigger_cmd ::= select */
139640 {yymsp[0].minor.yy145 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy243); /*A-overwrites-X*/}
139641 break;
139642 case 244: /* expr ::= RAISE LP IGNORE RP */
139643 {
139644 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139645 yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
139646 if( yymsp[-3].minor.yy190.pExpr ){
139647 yymsp[-3].minor.yy190.pExpr->affinity = OE_Ignore;
139648 }
139649 }
139650 break;
139651 case 245: /* expr ::= RAISE LP raisetype COMMA nm RP */
139652 {
139653 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139654 yymsp[-5].minor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
139655 if( yymsp[-5].minor.yy190.pExpr ) {
139656 yymsp[-5].minor.yy190.pExpr->affinity = (char)yymsp[-3].minor.yy194;
139657 }
139658 }
139659 break;
139660 case 246: /* raisetype ::= ROLLBACK */
139661 {yymsp[0].minor.yy194 = OE_Rollback;}
139662 break;
139663 case 248: /* raisetype ::= FAIL */
139664 {yymsp[0].minor.yy194 = OE_Fail;}
139665 break;
139666 case 249: /* cmd ::= DROP TRIGGER ifexists fullname */
139667 {
139668 sqlite3DropTrigger(pParse,yymsp[0].minor.yy185,yymsp[-1].minor.yy194);
139669 }
139670 break;
139671 case 250: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
139672 {
139673 sqlite3Attach(pParse, yymsp[-3].minor.yy190.pExpr, yymsp[-1].minor.yy190.pExpr, yymsp[0].minor.yy72);
139674 }
139675 break;
139676 case 251: /* cmd ::= DETACH database_kw_opt expr */
139677 {
139678 sqlite3Detach(pParse, yymsp[0].minor.yy190.pExpr);
139679 }
139680 break;
139681 case 254: /* cmd ::= REINDEX */
139682 {sqlite3Reindex(pParse, 0, 0);}
139683 break;
139684 case 255: /* cmd ::= REINDEX nm dbnm */
139685 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
139686 break;
139687 case 256: /* cmd ::= ANALYZE */
139688 {sqlite3Analyze(pParse, 0, 0);}
139689 break;
139690 case 257: /* cmd ::= ANALYZE nm dbnm */
139691 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
139692 break;
139693 case 258: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
139694 {
139695 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy185,&yymsp[0].minor.yy0);
139696 }
139697 break;
139698 case 259: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
139699 {
139700 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
139701 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
139702 }
139703 break;
139704 case 260: /* add_column_fullname ::= fullname */
139705 {
139706 disableLookaside(pParse);
139707 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy185);
139708 }
139709 break;
139710 case 261: /* cmd ::= create_vtab */
139711 {sqlite3VtabFinishParse(pParse,0);}
139712 break;
139713 case 262: /* cmd ::= create_vtab LP vtabarglist RP */
139714 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
139715 break;
139716 case 263: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
139717 {
139718 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy194);
139719 }
139720 break;
139721 case 264: /* vtabarg ::= */
139722 {sqlite3VtabArgInit(pParse);}
139723 break;
139724 case 265: /* vtabargtoken ::= ANY */
139725 case 266: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==266);
139726 case 267: /* lp ::= LP */ yytestcase(yyruleno==267);
139727 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
139728 break;
139729 case 268: /* with ::= */
139730 {yymsp[1].minor.yy285 = 0;}
139731 break;
139732 case 269: /* with ::= WITH wqlist */
139733 { yymsp[-1].minor.yy285 = yymsp[0].minor.yy285; }
139734 break;
139735 case 270: /* with ::= WITH RECURSIVE wqlist */
139736 { yymsp[-2].minor.yy285 = yymsp[0].minor.yy285; }
139737 break;
139738 case 271: /* wqlist ::= nm eidlist_opt AS LP select RP */
139739 {
139740 yymsp[-5].minor.yy285 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243); /*A-overwrites-X*/
139741 }
139742 break;
139743 case 272: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
139744 {
139745 yymsp[-7].minor.yy285 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy285, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243);
139746 }
139747 break;
139748 default:
139749 /* (273) input ::= cmdlist */ yytestcase(yyruleno==273);
139750 /* (274) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==274);
139751 /* (275) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=275);
139752 /* (276) ecmd ::= SEMI */ yytestcase(yyruleno==276);
139753 /* (277) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==277);
139754 /* (278) explain ::= */ yytestcase(yyruleno==278);
139755 /* (279) trans_opt ::= */ yytestcase(yyruleno==279);
139756 /* (280) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==280);
139757 /* (281) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==281);
139758 /* (282) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==282);
139759 /* (283) savepoint_opt ::= */ yytestcase(yyruleno==283);
139760 /* (284) cmd ::= create_table create_table_args */ yytestcase(yyruleno==284);
139761 /* (285) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==285);
139762 /* (286) columnlist ::= columnname carglist */ yytestcase(yyruleno==286);
139763 /* (287) nm ::= ID|INDEXED */ yytestcase(yyruleno==287);
139764 /* (288) nm ::= STRING */ yytestcase(yyruleno==288);
139765 /* (289) nm ::= JOIN_KW */ yytestcase(yyruleno==289);
139766 /* (290) typetoken ::= typename */ yytestcase(yyruleno==290);
139767 /* (291) typename ::= ID|STRING */ yytestcase(yyruleno==291);
139768 /* (292) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
139769 /* (293) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=293);
139770 /* (294) carglist ::= carglist ccons */ yytestcase(yyruleno==294);
139771 /* (295) carglist ::= */ yytestcase(yyruleno==295);
139772 /* (296) ccons ::= NULL onconf */ yytestcase(yyruleno==296);
139773 /* (297) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==297);
139774 /* (298) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==298);
139775 /* (299) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=299);
139776 /* (300) tconscomma ::= */ yytestcase(yyruleno==300);
139777 /* (301) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=301);
139778 /* (302) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=302);
139779 /* (303) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=303);
139780 /* (304) oneselect ::= values */ yytestcase(yyruleno==304);
139781 /* (305) sclp ::= selcollist COMMA */ yytestcase(yyruleno==305);
139782 /* (306) as ::= ID|STRING */ yytestcase(yyruleno==306);
139783 /* (307) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=307);
139784 /* (308) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==308);
139785 /* (309) exprlist ::= nexprlist */ yytestcase(yyruleno==309);
139786 /* (310) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=310);
139787 /* (311) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=311);
139788 /* (312) nmnum ::= ON */ yytestcase(yyruleno==312);
139789 /* (313) nmnum ::= DELETE */ yytestcase(yyruleno==313);
139790 /* (314) nmnum ::= DEFAULT */ yytestcase(yyruleno==314);
139791 /* (315) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==315);
139792 /* (316) foreach_clause ::= */ yytestcase(yyruleno==316);
139793 /* (317) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==317);
139794 /* (318) trnm ::= nm */ yytestcase(yyruleno==318);
139795 /* (319) tridxby ::= */ yytestcase(yyruleno==319);
139796 /* (320) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==320);
139797 /* (321) database_kw_opt ::= */ yytestcase(yyruleno==321);
139798 /* (322) kwcolumn_opt ::= */ yytestcase(yyruleno==322);
139799 /* (323) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==323);
139800 /* (324) vtabarglist ::= vtabarg */ yytestcase(yyruleno==324);
139801 /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==325);
139802 /* (326) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==326);
139803 /* (327) anylist ::= */ yytestcase(yyruleno==327);
139804 /* (328) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==328);
139805 /* (329) anylist ::= anylist ANY */ yytestcase(yyruleno==329);
139806 break;
139807 /********** End reduce actions ************************************************/
139808 };
139809 assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
139810 yygoto = yyRuleInfo[yyruleno].lhs;
@@ -175738,10 +175785,13 @@
175738 0, /* xSync */
175739 0, /* xCommit */
175740 0, /* xRollback */
175741 0, /* xFindMethod */
175742 0, /* xRename */
 
 
 
175743 };
175744 return sqlite3_create_module(db, "dbstat", &dbstat_module, 0);
175745 }
175746 #elif defined(SQLITE_ENABLE_DBSTAT_VTAB)
175747 SQLITE_PRIVATE int sqlite3DbstatRegister(sqlite3 *db){ return SQLITE_OK; }
@@ -200077,11 +200127,11 @@
200077 int nArg, /* Number of args */
200078 sqlite3_value **apUnused /* Function arguments */
200079 ){
200080 assert( nArg==0 );
200081 UNUSED_PARAM2(nArg, apUnused);
200082 sqlite3_result_text(pCtx, "fts5: 2017-07-11 13:59:07 95cd1d9f8baa6be305c9a8bfa26fef2a403f2d5b3b5c9c55382ec04f0bc98d40", -1, SQLITE_TRANSIENT);
200083 }
200084
200085 static int fts5Init(sqlite3 *db){
200086 static const sqlite3_module fts5Mod = {
200087 /* iVersion */ 2,
@@ -204220,10 +204270,13 @@
204220 0, /* xSync */
204221 0, /* xCommit */
204222 0, /* xRollback */
204223 0, /* xFindMethod */
204224 0, /* xRename */
 
 
 
204225 };
204226
204227 #endif /* SQLITE_OMIT_VIRTUALTABLE */
204228
204229 SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3 *db){
204230
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1150,11 +1150,11 @@
1150 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1151 ** [sqlite_version()] and [sqlite_source_id()].
1152 */
1153 #define SQLITE_VERSION "3.20.0"
1154 #define SQLITE_VERSION_NUMBER 3020000
1155 #define SQLITE_SOURCE_ID "2017-07-12 18:05:54 604c11d1a39f09e47b6fcee0f8b1c1054f9dbbc7b2c1cf93312aeaa4b7095018"
1156
1157 /*
1158 ** CAPI3REF: Run-Time Library Version Numbers
1159 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1160 **
@@ -16074,11 +16074,11 @@
16074 /*
16075 ** The following are the meanings of bits in the Expr.flags field.
16076 */
16077 #define EP_FromJoin 0x000001 /* Originates in ON/USING clause of outer join */
16078 #define EP_Agg 0x000002 /* Contains one or more aggregate functions */
16079 /* 0x000004 // available for use */
16080 /* 0x000008 // available for use */
16081 #define EP_Distinct 0x000010 /* Aggregate function with DISTINCT keyword */
16082 #define EP_VarSelect 0x000020 /* pSelect is correlated, not constant */
16083 #define EP_DblQuoted 0x000040 /* token.z was originally in "..." */
16084 #define EP_InfixFunc 0x000080 /* True for an infix function: LIKE, GLOB, etc */
@@ -17627,11 +17627,13 @@
17627 SQLITE_PRIVATE int sqlite3FixExprList(DbFixer*, ExprList*);
17628 SQLITE_PRIVATE int sqlite3FixTriggerStep(DbFixer*, TriggerStep*);
17629 SQLITE_PRIVATE int sqlite3AtoF(const char *z, double*, int, u8);
17630 SQLITE_PRIVATE int sqlite3GetInt32(const char *, int*);
17631 SQLITE_PRIVATE int sqlite3Atoi(const char*);
17632 #ifndef SQLITE_OMIT_UTF16
17633 SQLITE_PRIVATE int sqlite3Utf16ByteLen(const void *pData, int nChar);
17634 #endif
17635 SQLITE_PRIVATE int sqlite3Utf8CharLen(const char *pData, int nByte);
17636 SQLITE_PRIVATE u32 sqlite3Utf8Read(const u8**);
17637 SQLITE_PRIVATE LogEst sqlite3LogEst(u64);
17638 SQLITE_PRIVATE LogEst sqlite3LogEstAdd(LogEst,LogEst);
17639 #ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -17716,11 +17718,13 @@
17718 SQLITE_PRIVATE void sqlite3ValueSetStr(sqlite3_value*, int, const void *,u8,
17719 void(*)(void*));
17720 SQLITE_PRIVATE void sqlite3ValueSetNull(sqlite3_value*);
17721 SQLITE_PRIVATE void sqlite3ValueFree(sqlite3_value*);
17722 SQLITE_PRIVATE sqlite3_value *sqlite3ValueNew(sqlite3 *);
17723 #ifndef SQLITE_OMIT_UTF16
17724 SQLITE_PRIVATE char *sqlite3Utf16to8(sqlite3 *, const void*, int, u8);
17725 #endif
17726 SQLITE_PRIVATE int sqlite3ValueFromExpr(sqlite3 *, Expr *, u8, u8, sqlite3_value **);
17727 SQLITE_PRIVATE void sqlite3ValueApplyAffinity(sqlite3_value *, u8, u8);
17728 #ifndef SQLITE_AMALGAMATION
17729 SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty[];
17730 SQLITE_PRIVATE const char sqlite3StrBINARY[];
@@ -18080,11 +18084,13 @@
18084 SQLITE_PRIVATE int sqlite3ExprIsVector(Expr *pExpr);
18085 SQLITE_PRIVATE Expr *sqlite3VectorFieldSubexpr(Expr*, int);
18086 SQLITE_PRIVATE Expr *sqlite3ExprForVectorField(Parse*,Expr*,int);
18087 SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse*, Expr*);
18088
18089 #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
18090 SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt);
18091 #endif
18092
18093 #endif /* SQLITEINT_H */
18094
18095 /************** End of sqliteInt.h *******************************************/
18096 /************** Begin file global.c ******************************************/
@@ -18941,16 +18947,18 @@
18947 SQLITE_PRIVATE int sqlite3VdbeCheckFk(Vdbe *, int);
18948 #else
18949 # define sqlite3VdbeCheckFk(p,i) 0
18950 #endif
18951
 
18952 #ifdef SQLITE_DEBUG
18953 SQLITE_PRIVATE void sqlite3VdbePrintSql(Vdbe*);
18954 SQLITE_PRIVATE void sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf);
18955 #endif
18956 #ifndef SQLITE_OMIT_UTF16
18957 SQLITE_PRIVATE int sqlite3VdbeMemTranslate(Mem*, u8);
18958 SQLITE_PRIVATE int sqlite3VdbeMemHandleBom(Mem *pMem);
18959 #endif
18960
18961 #ifndef SQLITE_OMIT_INCRBLOB
18962 SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *);
18963 #define ExpandBlob(P) (((P)->flags&MEM_Zero)?sqlite3VdbeMemExpandBlob(P):0)
18964 #else
@@ -27928,11 +27936,13 @@
27936 fprintf(stderr, "OUTPUT: %s\n", zBuf);
27937 }
27938 #endif
27939 return SQLITE_OK;
27940 }
27941 #endif /* SQLITE_OMIT_UTF16 */
27942
27943 #ifndef SQLITE_OMIT_UTF16
27944 /*
27945 ** This routine checks for a byte-order mark at the beginning of the
27946 ** UTF-16 string stored in *pMem. If one is present, it is removed and
27947 ** the encoding of the Mem adjusted. This routine does not do any
27948 ** byte-swapping, it just sets Mem.enc appropriately.
@@ -64949,23 +64959,23 @@
64959 ** for the common case of merely incrementing the cell counter BtCursor.aiIdx
64960 ** to the next cell on the current page. The (slower) btreeNext() helper
64961 ** routine is called when it is necessary to move to a different page or
64962 ** to restore the cursor.
64963 **
64964 ** If bit 0x01 of the F argument in sqlite3BtreeNext(C,F) is 1, then the
64965 ** cursor corresponds to an SQL index and this routine could have been
64966 ** skipped if the SQL index had been a unique index. The F argument
64967 ** is a hint to the implement. SQLite btree implementation does not use
64968 ** this hint, but COMDB2 does.
64969 */
64970 static SQLITE_NOINLINE int btreeNext(BtCursor *pCur){
64971 int rc;
64972 int idx;
64973 MemPage *pPage;
64974
64975 assert( cursorOwnsBtShared(pCur) );
64976 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
 
64977 if( pCur->eState!=CURSOR_VALID ){
64978 assert( (pCur->curFlags & BTCF_ValidOvfl)==0 );
64979 rc = restoreCursorPosition(pCur);
64980 if( rc!=SQLITE_OK ){
64981 return rc;
@@ -65008,11 +65018,11 @@
65018 }
65019 moveToParent(pCur);
65020 pPage = pCur->apPage[pCur->iPage];
65021 }while( pCur->ix>=pPage->nCell );
65022 if( pPage->intKey ){
65023 return sqlite3BtreeNext(pCur, 0);
65024 }else{
65025 return SQLITE_OK;
65026 }
65027 }
65028 if( pPage->leaf ){
@@ -65021,20 +65031,21 @@
65031 return moveToLeftmost(pCur);
65032 }
65033 }
65034 SQLITE_PRIVATE int sqlite3BtreeNext(BtCursor *pCur, int flags){
65035 MemPage *pPage;
65036 UNUSED_PARAMETER( flags ); /* Used in COMDB2 but not native SQLite */
65037 assert( cursorOwnsBtShared(pCur) );
65038 assert( flags==0 || flags==1 );
65039 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
65040 pCur->info.nSize = 0;
65041 pCur->curFlags &= ~(BTCF_ValidNKey|BTCF_ValidOvfl);
65042 if( pCur->eState!=CURSOR_VALID ) return btreeNext(pCur);
65043 pPage = pCur->apPage[pCur->iPage];
65044 if( (++pCur->ix)>=pPage->nCell ){
65045 pCur->ix--;
65046 return btreeNext(pCur);
65047 }
65048 if( pPage->leaf ){
65049 return SQLITE_OK;
65050 }else{
65051 return moveToLeftmost(pCur);
@@ -65053,22 +65064,21 @@
65064 ** for the common case of merely decrementing the cell counter BtCursor.aiIdx
65065 ** to the previous cell on the current page. The (slower) btreePrevious()
65066 ** helper routine is called when it is necessary to move to a different page
65067 ** or to restore the cursor.
65068 **
65069 ** If bit 0x01 of the F argument to sqlite3BtreePrevious(C,F) is 1, then
65070 ** the cursor corresponds to an SQL index and this routine could have been
65071 ** skipped if the SQL index had been a unique index. The F argument is a
65072 ** hint to the implement. The native SQLite btree implementation does not
65073 ** use this hint, but COMDB2 does.
65074 */
65075 static SQLITE_NOINLINE int btreePrevious(BtCursor *pCur){
65076 int rc;
65077 MemPage *pPage;
65078
65079 assert( cursorOwnsBtShared(pCur) );
 
65080 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
65081 assert( (pCur->curFlags & (BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey))==0 );
65082 assert( pCur->info.nSize==0 );
65083 if( pCur->eState!=CURSOR_VALID ){
65084 rc = restoreCursorPosition(pCur);
@@ -65108,11 +65118,11 @@
65118 assert( (pCur->curFlags & (BTCF_ValidOvfl))==0 );
65119
65120 pCur->ix--;
65121 pPage = pCur->apPage[pCur->iPage];
65122 if( pPage->intKey && !pPage->leaf ){
65123 rc = sqlite3BtreePrevious(pCur, 0);
65124 }else{
65125 rc = SQLITE_OK;
65126 }
65127 }
65128 return rc;
@@ -65119,17 +65129,18 @@
65129 }
65130 SQLITE_PRIVATE int sqlite3BtreePrevious(BtCursor *pCur, int flags){
65131 assert( cursorOwnsBtShared(pCur) );
65132 assert( flags==0 || flags==1 );
65133 assert( pCur->skipNext==0 || pCur->eState!=CURSOR_VALID );
65134 UNUSED_PARAMETER( flags ); /* Used in COMDB2 but not native SQLite */
65135 pCur->curFlags &= ~(BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey);
65136 pCur->info.nSize = 0;
65137 if( pCur->eState!=CURSOR_VALID
65138 || pCur->ix==0
65139 || pCur->apPage[pCur->iPage]->leaf==0
65140 ){
65141 return btreePrevious(pCur);
65142 }
65143 pCur->ix--;
65144 return SQLITE_OK;
65145 }
65146
@@ -90394,11 +90405,10 @@
90405 p->iColumn = (ynVar)iCol;
90406 testcase( iCol==BMS );
90407 testcase( iCol==BMS-1 );
90408 pItem->colUsed |= ((Bitmask)1)<<(iCol>=BMS ? BMS-1 : iCol);
90409 }
 
90410 }
90411 return p;
90412 }
90413
90414 /*
@@ -90454,12 +90464,10 @@
90464 pNC = pWalker->u.pNC;
90465 assert( pNC!=0 );
90466 pParse = pNC->pParse;
90467 assert( pParse==pWalker->pParse );
90468
 
 
90469 #ifndef NDEBUG
90470 if( pNC->pSrcList && pNC->pSrcList->nAlloc>0 ){
90471 SrcList *pSrcList = pNC->pSrcList;
90472 int i;
90473 for(i=0; i<pNC->pSrcList->nSrc; i++){
@@ -112127,10 +112135,15 @@
112135 /* Version 3.14.0 and later */
112136 int (*trace_v2)(sqlite3*,unsigned,int(*)(unsigned,void*,void*,void*),void*);
112137 char *(*expanded_sql)(sqlite3_stmt*);
112138 /* Version 3.18.0 and later */
112139 void (*set_last_insert_rowid)(sqlite3*,sqlite3_int64);
112140 /* Version 3.20.0 and later */
112141 int (*prepare_v3)(sqlite3*,const char*,int,unsigned int,
112142 sqlite3_stmt**,const char**);
112143 int (*prepare16_v3)(sqlite3*,const void*,int,unsigned int,
112144 sqlite3_stmt**,const void**);
112145 };
112146
112147 /*
112148 ** This is the function signature used for all extension entry points. It
112149 ** is also defined in the file "loadext.c".
@@ -112387,10 +112400,13 @@
112400 /* Version 3.14.0 and later */
112401 #define sqlite3_trace_v2 sqlite3_api->trace_v2
112402 #define sqlite3_expanded_sql sqlite3_api->expanded_sql
112403 /* Version 3.18.0 and later */
112404 #define sqlite3_set_last_insert_rowid sqlite3_api->set_last_insert_rowid
112405 /* Version 3.20.0 and later */
112406 #define sqlite3_prepare_v3 sqlite3_api->prepare_v3
112407 #define sqlite3_prepare16_v3 sqlite3_api->prepare16_v3
112408 #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
112409
112410 #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
112411 /* This case when the file really is being compiled as a loadable
112412 ** extension */
@@ -112442,10 +112458,11 @@
112458 # define sqlite3_create_function16 0
112459 # define sqlite3_errmsg16 0
112460 # define sqlite3_open16 0
112461 # define sqlite3_prepare16 0
112462 # define sqlite3_prepare16_v2 0
112463 # define sqlite3_prepare16_v3 0
112464 # define sqlite3_result_error16 0
112465 # define sqlite3_result_text16 0
112466 # define sqlite3_result_text16be 0
112467 # define sqlite3_result_text16le 0
112468 # define sqlite3_value_text16 0
@@ -112814,11 +112831,14 @@
112831 sqlite3_system_errno,
112832 /* Version 3.14.0 and later */
112833 sqlite3_trace_v2,
112834 sqlite3_expanded_sql,
112835 /* Version 3.18.0 and later */
112836 sqlite3_set_last_insert_rowid,
112837 /* Version 3.20.0 and later */
112838 sqlite3_prepare_v3,
112839 sqlite3_prepare16_v3
112840 };
112841
112842 /*
112843 ** Attempt to load an SQLite extension library contained in the file
112844 ** zFile. The entry point is zProc. zProc may be 0 in which case a
@@ -118780,24 +118800,50 @@
118800 return 0;
118801 }
118802
118803
118804 /*
118805 ** Compute the column names for a SELECT statement.
118806 **
118807 ** The only guarantee that SQLite makes about column names is that if the
118808 ** column has an AS clause assigning it a name, that will be the name used.
118809 ** That is the only documented guarantee. However, countless applications
118810 ** developed over the years have made baseless assumptions about column names
118811 ** and will break if those assumptions changes. Hence, use extreme caution
118812 ** when modifying this routine to avoid breaking legacy.
118813 **
118814 ** See Also: sqlite3ColumnsFromExprList()
118815 **
118816 ** The PRAGMA short_column_names and PRAGMA full_column_names settings are
118817 ** deprecated. The default setting is short=ON, full=OFF. 99.9% of all
118818 ** applications should operate this way. Nevertheless, we need to support the
118819 ** other modes for legacy:
118820 **
118821 ** short=OFF, full=OFF: Column name is the text of the expression has it
118822 ** originally appears in the SELECT statement. In
118823 ** other words, the zSpan of the result expression.
118824 **
118825 ** short=ON, full=OFF: (This is the default setting). If the result
118826 ** refers directly to a table column, then the result
118827 ** column name is just the table column name: COLUMN.
118828 ** Otherwise use zSpan.
118829 **
118830 ** full=ON, short=ANY: If the result refers directly to a table column,
118831 ** then the result column name with the table name
118832 ** prefix, ex: TABLE.COLUMN. Otherwise use zSpan.
118833 */
118834 static void generateColumnNames(
118835 Parse *pParse, /* Parser context */
118836 SrcList *pTabList, /* The FROM clause of the SELECT */
118837 ExprList *pEList /* Expressions defining the result set */
118838 ){
118839 Vdbe *v = pParse->pVdbe;
118840 int i;
118841 Table *pTab;
118842 sqlite3 *db = pParse->db;
118843 int fullName; /* TABLE.COLUMN if no AS clause and is a direct table ref */
118844 int srcName; /* COLUMN or TABLE.COLUMN if no AS clause and is direct */
118845
118846 #ifndef SQLITE_OMIT_EXPLAIN
118847 /* If this is an EXPLAIN, skip this step */
118848 if( pParse->explain ){
118849 return;
@@ -118806,21 +118852,23 @@
118852
118853 if( pParse->colNamesSet || db->mallocFailed ) return;
118854 assert( v!=0 );
118855 assert( pTabList!=0 );
118856 pParse->colNamesSet = 1;
118857 fullName = (db->flags & SQLITE_FullColNames)!=0;
118858 srcName = (db->flags & SQLITE_ShortColNames)!=0 || fullName;
118859 sqlite3VdbeSetNumCols(v, pEList->nExpr);
118860 for(i=0; i<pEList->nExpr; i++){
118861 Expr *p = pEList->a[i].pExpr;
118862
118863 assert( p!=0 );
118864 if( pEList->a[i].zName ){
118865 /* An AS clause always takes first priority */
118866 char *zName = pEList->a[i].zName;
118867 sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, SQLITE_TRANSIENT);
118868 }else if( srcName
118869 && (p->op==TK_COLUMN || p->op==TK_AGG_COLUMN)
118870 && (pTab = tableWithCursor(pTabList, p->iTable))!=0
118871 ){
118872 char *zCol;
118873 int iCol = p->iColumn;
118874 if( iCol<0 ) iCol = pTab->iPKey;
@@ -118828,14 +118876,11 @@
118876 if( iCol<0 ){
118877 zCol = "rowid";
118878 }else{
118879 zCol = pTab->aCol[iCol].zName;
118880 }
118881 if( fullName ){
 
 
 
118882 char *zName = 0;
118883 zName = sqlite3MPrintf(db, "%s.%s", pTab->zName, zCol);
118884 sqlite3VdbeSetColName(v, i, COLNAME_NAME, zName, SQLITE_DYNAMIC);
118885 }else{
118886 sqlite3VdbeSetColName(v, i, COLNAME_NAME, zCol, SQLITE_TRANSIENT);
@@ -118859,10 +118904,19 @@
118904 ** Only the column names are computed. Column.zType, Column.zColl,
118905 ** and other fields of Column are zeroed.
118906 **
118907 ** Return SQLITE_OK on success. If a memory allocation error occurs,
118908 ** store NULL in *paCol and 0 in *pnCol and return SQLITE_NOMEM.
118909 **
118910 ** The only guarantee that SQLite makes about column names is that if the
118911 ** column has an AS clause assigning it a name, that will be the name used.
118912 ** That is the only documented guarantee. However, countless applications
118913 ** developed over the years have made baseless assumptions about column names
118914 ** and will break if those assumptions changes. Hence, use extreme caution
118915 ** when modifying this routine to avoid breaking legacy.
118916 **
118917 ** See Also: generateColumnNames()
118918 */
118919 SQLITE_PRIVATE int sqlite3ColumnsFromExprList(
118920 Parse *pParse, /* Parsing context */
118921 ExprList *pEList, /* Expr list from which to derive column names */
118922 i16 *pnCol, /* Write the number of columns here */
@@ -118871,11 +118925,10 @@
118925 sqlite3 *db = pParse->db; /* Database connection */
118926 int i, j; /* Loop counters */
118927 u32 cnt; /* Index added to make the name unique */
118928 Column *aCol, *pCol; /* For looping over result columns */
118929 int nCol; /* Number of columns in the result set */
 
118930 char *zName; /* Column name */
118931 int nName; /* Size of name in zName[] */
118932 Hash ht; /* Hash table of column names */
118933
118934 sqlite3HashInit(&ht);
@@ -118892,24 +118945,22 @@
118945 *paCol = aCol;
118946
118947 for(i=0, pCol=aCol; i<nCol && !db->mallocFailed; i++, pCol++){
118948 /* Get an appropriate name for the column
118949 */
 
118950 if( (zName = pEList->a[i].zName)!=0 ){
118951 /* If the column contains an "AS <name>" phrase, use <name> as the name */
118952 }else{
118953 Expr *pColExpr = sqlite3ExprSkipCollate(pEList->a[i].pExpr);
 
118954 while( pColExpr->op==TK_DOT ){
118955 pColExpr = pColExpr->pRight;
118956 assert( pColExpr!=0 );
118957 }
118958 if( pColExpr->op==TK_COLUMN && pColExpr->pTab!=0 ){
118959 /* For columns use the column name name */
118960 int iCol = pColExpr->iColumn;
118961 Table *pTab = pColExpr->pTab;
118962 if( iCol<0 ) iCol = pTab->iPKey;
118963 zName = iCol>=0 ? pTab->aCol[iCol].zName : "rowid";
118964 }else if( pColExpr->op==TK_ID ){
118965 assert( !ExprHasProperty(pColExpr, EP_IntValue) );
118966 zName = pColExpr->u.zToken;
@@ -136634,19 +136685,19 @@
136685 #define sqlite3ParserARG_PDECL ,Parse *pParse
136686 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
136687 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
136688 #define YYFALLBACK 1
136689 #define YYNSTATE 455
136690 #define YYNRULE 329
136691 #define YY_MAX_SHIFT 454
136692 #define YY_MIN_SHIFTREDUCE 664
136693 #define YY_MAX_SHIFTREDUCE 992
136694 #define YY_MIN_REDUCE 993
136695 #define YY_MAX_REDUCE 1321
136696 #define YY_ERROR_ACTION 1322
136697 #define YY_ACCEPT_ACTION 1323
136698 #define YY_NO_ACTION 1324
136699 /************* End control #defines *******************************************/
136700
136701 /* Define the yytestcase() macro to be a no-op if is not already defined
136702 ** otherwise.
136703 **
@@ -136716,167 +136767,167 @@
136767 ** yy_default[] Default action for each state.
136768 **
136769 *********** Begin parsing tables **********************************************/
136770 #define YY_ACTTAB_COUNT (1565)
136771 static const YYACTIONTYPE yy_action[] = {
136772 /* 0 */ 324, 410, 342, 747, 747, 203, 939, 353, 969, 98,
136773 /* 10 */ 98, 98, 98, 91, 96, 96, 96, 96, 95, 95,
136774 /* 20 */ 94, 94, 94, 93, 350, 1323, 155, 155, 2, 808,
136775 /* 30 */ 971, 971, 98, 98, 98, 98, 20, 96, 96, 96,
136776 /* 40 */ 96, 95, 95, 94, 94, 94, 93, 350, 92, 89,
136777 /* 50 */ 178, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136778 /* 60 */ 98, 98, 98, 98, 350, 96, 96, 96, 96, 95,
136779 /* 70 */ 95, 94, 94, 94, 93, 350, 324, 339, 969, 262,
136780 /* 80 */ 364, 251, 212, 169, 287, 404, 282, 403, 199, 786,
136781 /* 90 */ 242, 411, 21, 950, 378, 280, 93, 350, 787, 95,
136782 /* 100 */ 95, 94, 94, 94, 93, 350, 971, 971, 96, 96,
136783 /* 110 */ 96, 96, 95, 95, 94, 94, 94, 93, 350, 808,
136784 /* 120 */ 328, 242, 411, 1235, 826, 1235, 132, 99, 100, 90,
136785 /* 130 */ 847, 850, 839, 839, 97, 97, 98, 98, 98, 98,
136786 /* 140 */ 449, 96, 96, 96, 96, 95, 95, 94, 94, 94,
136787 /* 150 */ 93, 350, 324, 819, 348, 347, 120, 818, 120, 75,
136788 /* 160 */ 52, 52, 950, 951, 952, 1084, 977, 146, 360, 262,
136789 /* 170 */ 369, 261, 950, 975, 954, 976, 92, 89, 178, 370,
136790 /* 180 */ 230, 370, 971, 971, 1141, 360, 359, 101, 818, 818,
136791 /* 190 */ 820, 383, 24, 1286, 380, 427, 412, 368, 978, 379,
136792 /* 200 */ 978, 1032, 324, 99, 100, 90, 847, 850, 839, 839,
136793 /* 210 */ 97, 97, 98, 98, 98, 98, 372, 96, 96, 96,
136794 /* 220 */ 96, 95, 95, 94, 94, 94, 93, 350, 950, 132,
136795 /* 230 */ 890, 449, 971, 971, 890, 60, 94, 94, 94, 93,
136796 /* 240 */ 350, 950, 951, 952, 954, 103, 360, 950, 384, 333,
136797 /* 250 */ 697, 52, 52, 99, 100, 90, 847, 850, 839, 839,
136798 /* 260 */ 97, 97, 98, 98, 98, 98, 1022, 96, 96, 96,
136799 /* 270 */ 96, 95, 95, 94, 94, 94, 93, 350, 324, 454,
136800 /* 280 */ 995, 449, 227, 61, 157, 243, 343, 114, 1025, 1211,
136801 /* 290 */ 147, 826, 950, 372, 1071, 950, 319, 950, 951, 952,
136802 /* 300 */ 194, 10, 10, 401, 398, 397, 1211, 1213, 971, 971,
136803 /* 310 */ 757, 171, 170, 157, 396, 336, 950, 951, 952, 697,
136804 /* 320 */ 819, 310, 153, 950, 818, 320, 82, 23, 80, 99,
136805 /* 330 */ 100, 90, 847, 850, 839, 839, 97, 97, 98, 98,
136806 /* 340 */ 98, 98, 888, 96, 96, 96, 96, 95, 95, 94,
136807 /* 350 */ 94, 94, 93, 350, 324, 818, 818, 820, 277, 231,
136808 /* 360 */ 300, 950, 951, 952, 950, 951, 952, 1211, 194, 25,
136809 /* 370 */ 449, 401, 398, 397, 950, 354, 300, 449, 950, 74,
136810 /* 380 */ 449, 1, 396, 132, 971, 971, 950, 224, 224, 808,
136811 /* 390 */ 10, 10, 950, 951, 952, 1290, 132, 52, 52, 414,
136812 /* 400 */ 52, 52, 1063, 1063, 338, 99, 100, 90, 847, 850,
136813 /* 410 */ 839, 839, 97, 97, 98, 98, 98, 98, 1114, 96,
136814 /* 420 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 350,
136815 /* 430 */ 324, 1113, 427, 417, 701, 427, 426, 1260, 1260, 262,
136816 /* 440 */ 369, 261, 950, 950, 951, 952, 752, 950, 951, 952,
136817 /* 450 */ 449, 751, 449, 1058, 1037, 950, 951, 952, 442, 706,
136818 /* 460 */ 971, 971, 1058, 393, 92, 89, 178, 446, 446, 446,
136819 /* 470 */ 51, 51, 52, 52, 438, 773, 1024, 92, 89, 178,
136820 /* 480 */ 172, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136821 /* 490 */ 98, 98, 98, 98, 198, 96, 96, 96, 96, 95,
136822 /* 500 */ 95, 94, 94, 94, 93, 350, 324, 427, 407, 909,
136823 /* 510 */ 694, 950, 951, 952, 92, 89, 178, 224, 224, 157,
136824 /* 520 */ 241, 221, 418, 299, 771, 910, 415, 374, 449, 414,
136825 /* 530 */ 58, 323, 1061, 1061, 1242, 378, 971, 971, 378, 772,
136826 /* 540 */ 448, 911, 362, 735, 296, 681, 9, 9, 52, 52,
136827 /* 550 */ 234, 329, 234, 256, 416, 736, 280, 99, 100, 90,
136828 /* 560 */ 847, 850, 839, 839, 97, 97, 98, 98, 98, 98,
136829 /* 570 */ 449, 96, 96, 96, 96, 95, 95, 94, 94, 94,
136830 /* 580 */ 93, 350, 324, 422, 72, 449, 827, 120, 367, 449,
136831 /* 590 */ 10, 10, 5, 301, 203, 449, 177, 969, 253, 419,
136832 /* 600 */ 255, 771, 200, 175, 233, 10, 10, 836, 836, 36,
136833 /* 610 */ 36, 1289, 971, 971, 724, 37, 37, 348, 347, 424,
136834 /* 620 */ 203, 260, 771, 969, 232, 930, 1316, 870, 337, 1316,
136835 /* 630 */ 421, 848, 851, 99, 100, 90, 847, 850, 839, 839,
136836 /* 640 */ 97, 97, 98, 98, 98, 98, 268, 96, 96, 96,
136837 /* 650 */ 96, 95, 95, 94, 94, 94, 93, 350, 324, 840,
136838 /* 660 */ 449, 978, 813, 978, 1200, 449, 909, 969, 715, 349,
136839 /* 670 */ 349, 349, 928, 177, 449, 930, 1317, 254, 198, 1317,
136840 /* 680 */ 12, 12, 910, 402, 449, 27, 27, 250, 971, 971,
136841 /* 690 */ 118, 716, 162, 969, 38, 38, 268, 176, 911, 771,
136842 /* 700 */ 432, 1265, 939, 353, 39, 39, 316, 991, 324, 99,
136843 /* 710 */ 100, 90, 847, 850, 839, 839, 97, 97, 98, 98,
136844 /* 720 */ 98, 98, 928, 96, 96, 96, 96, 95, 95, 94,
136845 /* 730 */ 94, 94, 93, 350, 449, 329, 449, 357, 971, 971,
136846 /* 740 */ 1041, 316, 929, 340, 893, 893, 386, 669, 670, 671,
136847 /* 750 */ 275, 1318, 317, 992, 40, 40, 41, 41, 268, 99,
136848 /* 760 */ 100, 90, 847, 850, 839, 839, 97, 97, 98, 98,
136849 /* 770 */ 98, 98, 449, 96, 96, 96, 96, 95, 95, 94,
136850 /* 780 */ 94, 94, 93, 350, 324, 449, 355, 449, 992, 449,
136851 /* 790 */ 1016, 330, 42, 42, 786, 270, 449, 273, 449, 228,
136852 /* 800 */ 449, 298, 449, 787, 449, 28, 28, 29, 29, 31,
136853 /* 810 */ 31, 449, 1141, 449, 971, 971, 43, 43, 44, 44,
136854 /* 820 */ 45, 45, 11, 11, 46, 46, 887, 78, 887, 268,
136855 /* 830 */ 268, 105, 105, 47, 47, 99, 100, 90, 847, 850,
136856 /* 840 */ 839, 839, 97, 97, 98, 98, 98, 98, 449, 96,
136857 /* 850 */ 96, 96, 96, 95, 95, 94, 94, 94, 93, 350,
136858 /* 860 */ 324, 449, 117, 449, 1073, 158, 449, 691, 48, 48,
136859 /* 870 */ 229, 1241, 449, 1250, 449, 414, 449, 334, 449, 245,
136860 /* 880 */ 449, 33, 33, 49, 49, 449, 50, 50, 246, 1141,
136861 /* 890 */ 971, 971, 34, 34, 122, 122, 123, 123, 124, 124,
136862 /* 900 */ 56, 56, 268, 81, 249, 35, 35, 197, 196, 195,
136863 /* 910 */ 324, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136864 /* 920 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136865 /* 930 */ 95, 94, 94, 94, 93, 350, 449, 691, 449, 1141,
136866 /* 940 */ 971, 971, 968, 1207, 106, 106, 268, 1209, 268, 1266,
136867 /* 950 */ 2, 886, 268, 886, 335, 1040, 53, 53, 107, 107,
136868 /* 960 */ 324, 99, 100, 90, 847, 850, 839, 839, 97, 97,
136869 /* 970 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136870 /* 980 */ 95, 94, 94, 94, 93, 350, 449, 1070, 449, 1066,
136871 /* 990 */ 971, 971, 1039, 267, 108, 108, 445, 330, 331, 133,
136872 /* 1000 */ 223, 175, 301, 225, 385, 1255, 104, 104, 121, 121,
136873 /* 1010 */ 324, 99, 88, 90, 847, 850, 839, 839, 97, 97,
136874 /* 1020 */ 98, 98, 98, 98, 1141, 96, 96, 96, 96, 95,
136875 /* 1030 */ 95, 94, 94, 94, 93, 350, 449, 346, 449, 167,
136876 /* 1040 */ 971, 971, 925, 810, 371, 318, 202, 202, 373, 263,
136877 /* 1050 */ 394, 202, 74, 208, 721, 722, 119, 119, 112, 112,
136878 /* 1060 */ 324, 406, 100, 90, 847, 850, 839, 839, 97, 97,
136879 /* 1070 */ 98, 98, 98, 98, 449, 96, 96, 96, 96, 95,
136880 /* 1080 */ 95, 94, 94, 94, 93, 350, 449, 752, 449, 344,
136881 /* 1090 */ 971, 971, 751, 278, 111, 111, 74, 714, 713, 704,
136882 /* 1100 */ 286, 877, 749, 1279, 257, 77, 109, 109, 110, 110,
136883 /* 1110 */ 1230, 285, 1134, 90, 847, 850, 839, 839, 97, 97,
136884 /* 1120 */ 98, 98, 98, 98, 1233, 96, 96, 96, 96, 95,
136885 /* 1130 */ 95, 94, 94, 94, 93, 350, 86, 444, 449, 3,
136886 /* 1140 */ 1193, 449, 1069, 132, 351, 120, 1013, 86, 444, 780,
136887 /* 1150 */ 3, 1091, 202, 376, 447, 351, 1229, 120, 55, 55,
136888 /* 1160 */ 449, 57, 57, 822, 873, 447, 449, 208, 449, 704,
136889 /* 1170 */ 449, 877, 237, 433, 435, 120, 439, 428, 361, 120,
136890 /* 1180 */ 54, 54, 132, 449, 433, 826, 52, 52, 26, 26,
136891 /* 1190 */ 30, 30, 381, 132, 408, 443, 826, 689, 264, 389,
136892 /* 1200 */ 116, 269, 272, 32, 32, 83, 84, 120, 274, 120,
136893 /* 1210 */ 120, 276, 85, 351, 451, 450, 83, 84, 818, 1054,
136894 /* 1220 */ 1038, 427, 429, 85, 351, 451, 450, 120, 120, 818,
136895 /* 1230 */ 377, 218, 281, 822, 1107, 1140, 86, 444, 409, 3,
136896 /* 1240 */ 1087, 1098, 430, 431, 351, 302, 303, 1146, 1021, 818,
136897 /* 1250 */ 818, 820, 821, 19, 447, 1015, 1004, 1003, 1005, 1273,
136898 /* 1260 */ 818, 818, 820, 821, 19, 289, 159, 291, 293, 7,
136899 /* 1270 */ 315, 173, 259, 433, 1129, 363, 252, 1232, 375, 1037,
136900 /* 1280 */ 295, 434, 168, 986, 399, 826, 284, 1204, 1203, 205,
136901 /* 1290 */ 1276, 308, 1249, 86, 444, 983, 3, 1247, 332, 144,
136902 /* 1300 */ 130, 351, 72, 135, 59, 83, 84, 756, 137, 365,
136903 /* 1310 */ 1126, 447, 85, 351, 451, 450, 139, 226, 818, 140,
136904 /* 1320 */ 156, 62, 314, 314, 313, 215, 311, 366, 392, 678,
136905 /* 1330 */ 433, 185, 141, 1234, 142, 160, 148, 1136, 1198, 382,
136906 /* 1340 */ 189, 67, 826, 180, 388, 248, 1218, 1099, 219, 818,
136907 /* 1350 */ 818, 820, 821, 19, 247, 190, 266, 154, 390, 271,
136908 /* 1360 */ 191, 192, 83, 84, 1006, 405, 1057, 182, 321, 85,
136909 /* 1370 */ 351, 451, 450, 1056, 183, 818, 341, 132, 181, 706,
136910 /* 1380 */ 1055, 420, 76, 444, 1029, 3, 322, 1028, 283, 1048,
136911 /* 1390 */ 351, 1095, 1027, 1288, 1047, 71, 204, 6, 288, 290,
136912 /* 1400 */ 447, 1096, 1094, 1093, 79, 292, 818, 818, 820, 821,
136913 /* 1410 */ 19, 294, 297, 437, 345, 441, 102, 1184, 1077, 433,
136914 /* 1420 */ 238, 425, 73, 305, 239, 304, 325, 240, 423, 306,
136915 /* 1430 */ 307, 826, 213, 1012, 22, 945, 452, 214, 216, 217,
136916 /* 1440 */ 453, 1001, 115, 996, 125, 126, 235, 127, 665, 352,
136917 /* 1450 */ 326, 83, 84, 358, 166, 244, 179, 327, 85, 351,
136918 /* 1460 */ 451, 450, 134, 356, 818, 113, 885, 806, 883, 136,
136919 /* 1470 */ 128, 138, 738, 258, 184, 899, 143, 145, 63, 64,
136920 /* 1480 */ 65, 66, 129, 902, 187, 186, 898, 8, 13, 188,
136921 /* 1490 */ 265, 891, 149, 202, 980, 818, 818, 820, 821, 19,
136922 /* 1500 */ 150, 387, 161, 680, 285, 391, 151, 395, 400, 193,
136923 /* 1510 */ 68, 14, 236, 279, 15, 69, 717, 825, 131, 824,
136924 /* 1520 */ 853, 70, 746, 16, 413, 750, 4, 174, 220, 222,
136925 /* 1530 */ 152, 779, 857, 774, 201, 77, 74, 868, 17, 854,
136926 /* 1540 */ 852, 908, 18, 907, 207, 206, 934, 163, 436, 210,
136927 /* 1550 */ 935, 164, 209, 165, 440, 856, 823, 690, 87, 211,
136928 /* 1560 */ 309, 312, 1281, 940, 1280,
136929 };
136930 static const YYCODETYPE yy_lookahead[] = {
136931 /* 0 */ 19, 115, 19, 117, 118, 24, 1, 2, 27, 79,
136932 /* 10 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
136933 /* 20 */ 90, 91, 92, 93, 94, 144, 145, 146, 147, 58,
@@ -137125,56 +137176,56 @@
137176 /* 300 */ 1236, 1195, 1198, 1238, 1213, 1221, 1220, 1227, 1229, 1271,
137177 /* 310 */ 1275, 1284, 1285, 1289, 1290, 1292, 1201, 1208, 1216, 1279,
137178 /* 320 */ 1280, 1264, 1268, 1282,
137179 };
137180 static const YYACTIONTYPE yy_default[] = {
137181 /* 0 */ 1270, 1260, 1260, 1260, 1193, 1193, 1193, 1193, 1260, 1088,
137182 /* 10 */ 1117, 1117, 1244, 1322, 1322, 1322, 1322, 1322, 1322, 1192,
137183 /* 20 */ 1322, 1322, 1322, 1322, 1260, 1092, 1123, 1322, 1322, 1322,
137184 /* 30 */ 1322, 1194, 1195, 1322, 1322, 1322, 1243, 1245, 1133, 1132,
137185 /* 40 */ 1131, 1130, 1226, 1104, 1128, 1121, 1125, 1194, 1188, 1189,
137186 /* 50 */ 1187, 1191, 1195, 1322, 1124, 1158, 1172, 1157, 1322, 1322,
137187 /* 60 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137188 /* 70 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137189 /* 80 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137190 /* 90 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137191 /* 100 */ 1322, 1322, 1322, 1322, 1166, 1171, 1178, 1170, 1167, 1160,
137192 /* 110 */ 1159, 1161, 1162, 1322, 1011, 1059, 1322, 1322, 1322, 1163,
137193 /* 120 */ 1322, 1164, 1175, 1174, 1173, 1251, 1278, 1277, 1322, 1322,
137194 /* 130 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137195 /* 140 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137196 /* 150 */ 1322, 1322, 1322, 1322, 1322, 1270, 1260, 1017, 1017, 1322,
137197 /* 160 */ 1260, 1260, 1260, 1260, 1260, 1260, 1256, 1092, 1083, 1322,
137198 /* 170 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137199 /* 180 */ 1248, 1246, 1322, 1208, 1322, 1322, 1322, 1322, 1322, 1322,
137200 /* 190 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137201 /* 200 */ 1322, 1322, 1322, 1322, 1088, 1322, 1322, 1322, 1322, 1322,
137202 /* 210 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1272, 1322, 1221,
137203 /* 220 */ 1088, 1088, 1088, 1090, 1072, 1082, 997, 1127, 1106, 1106,
137204 /* 230 */ 1311, 1127, 1311, 1034, 1292, 1031, 1117, 1106, 1190, 1117,
137205 /* 240 */ 1117, 1089, 1082, 1322, 1314, 1097, 1097, 1313, 1313, 1097,
137206 /* 250 */ 1138, 1062, 1127, 1068, 1068, 1068, 1068, 1097, 1008, 1127,
137207 /* 260 */ 1138, 1062, 1062, 1127, 1097, 1008, 1225, 1308, 1097, 1097,
137208 /* 270 */ 1008, 1201, 1097, 1008, 1097, 1008, 1201, 1060, 1060, 1060,
137209 /* 280 */ 1049, 1201, 1060, 1034, 1060, 1049, 1060, 1060, 1110, 1105,
137210 /* 290 */ 1110, 1105, 1110, 1105, 1110, 1105, 1097, 1196, 1097, 1322,
137211 /* 300 */ 1201, 1205, 1205, 1201, 1122, 1111, 1120, 1118, 1127, 1014,
137212 /* 310 */ 1052, 1275, 1275, 1271, 1271, 1271, 1319, 1319, 1256, 1287,
137213 /* 320 */ 1287, 1036, 1036, 1287, 1322, 1322, 1322, 1322, 1322, 1322,
137214 /* 330 */ 1282, 1322, 1210, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137215 /* 340 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137216 /* 350 */ 1322, 1143, 1322, 993, 1253, 1322, 1322, 1252, 1322, 1322,
137217 /* 360 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137218 /* 370 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1310, 1322,
137219 /* 380 */ 1322, 1322, 1322, 1322, 1322, 1224, 1223, 1322, 1322, 1322,
137220 /* 390 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137221 /* 400 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
137222 /* 410 */ 1074, 1322, 1322, 1322, 1296, 1322, 1322, 1322, 1322, 1322,
137223 /* 420 */ 1322, 1322, 1119, 1322, 1112, 1322, 1322, 1301, 1322, 1322,
137224 /* 430 */ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1262, 1322,
137225 /* 440 */ 1322, 1322, 1261, 1322, 1322, 1322, 1322, 1322, 1145, 1322,
137226 /* 450 */ 1144, 1148, 1322, 1002, 1322,
137227 };
137228 /********** End of lemon-generated parsing tables *****************************/
137229
137230 /* The next table maps tokens (terminal symbols) into fallback tokens.
137231 ** If a construct like the following:
@@ -137565,190 +137616,189 @@
137616 /* 145 */ "idlist_opt ::=",
137617 /* 146 */ "idlist_opt ::= LP idlist RP",
137618 /* 147 */ "idlist ::= idlist COMMA nm",
137619 /* 148 */ "idlist ::= nm",
137620 /* 149 */ "expr ::= LP expr RP",
137621 /* 150 */ "expr ::= ID|INDEXED",
137622 /* 151 */ "expr ::= JOIN_KW",
137623 /* 152 */ "expr ::= nm DOT nm",
137624 /* 153 */ "expr ::= nm DOT nm DOT nm",
137625 /* 154 */ "term ::= NULL|FLOAT|BLOB",
137626 /* 155 */ "term ::= STRING",
137627 /* 156 */ "term ::= INTEGER",
137628 /* 157 */ "expr ::= VARIABLE",
137629 /* 158 */ "expr ::= expr COLLATE ID|STRING",
137630 /* 159 */ "expr ::= CAST LP expr AS typetoken RP",
137631 /* 160 */ "expr ::= ID|INDEXED LP distinct exprlist RP",
137632 /* 161 */ "expr ::= ID|INDEXED LP STAR RP",
137633 /* 162 */ "term ::= CTIME_KW",
137634 /* 163 */ "expr ::= LP nexprlist COMMA expr RP",
137635 /* 164 */ "expr ::= expr AND expr",
137636 /* 165 */ "expr ::= expr OR expr",
137637 /* 166 */ "expr ::= expr LT|GT|GE|LE expr",
137638 /* 167 */ "expr ::= expr EQ|NE expr",
137639 /* 168 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
137640 /* 169 */ "expr ::= expr PLUS|MINUS expr",
137641 /* 170 */ "expr ::= expr STAR|SLASH|REM expr",
137642 /* 171 */ "expr ::= expr CONCAT expr",
137643 /* 172 */ "likeop ::= NOT LIKE_KW|MATCH",
137644 /* 173 */ "expr ::= expr likeop expr",
137645 /* 174 */ "expr ::= expr likeop expr ESCAPE expr",
137646 /* 175 */ "expr ::= expr ISNULL|NOTNULL",
137647 /* 176 */ "expr ::= expr NOT NULL",
137648 /* 177 */ "expr ::= expr IS expr",
137649 /* 178 */ "expr ::= expr IS NOT expr",
137650 /* 179 */ "expr ::= NOT expr",
137651 /* 180 */ "expr ::= BITNOT expr",
137652 /* 181 */ "expr ::= MINUS expr",
137653 /* 182 */ "expr ::= PLUS expr",
137654 /* 183 */ "between_op ::= BETWEEN",
137655 /* 184 */ "between_op ::= NOT BETWEEN",
137656 /* 185 */ "expr ::= expr between_op expr AND expr",
137657 /* 186 */ "in_op ::= IN",
137658 /* 187 */ "in_op ::= NOT IN",
137659 /* 188 */ "expr ::= expr in_op LP exprlist RP",
137660 /* 189 */ "expr ::= LP select RP",
137661 /* 190 */ "expr ::= expr in_op LP select RP",
137662 /* 191 */ "expr ::= expr in_op nm dbnm paren_exprlist",
137663 /* 192 */ "expr ::= EXISTS LP select RP",
137664 /* 193 */ "expr ::= CASE case_operand case_exprlist case_else END",
137665 /* 194 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
137666 /* 195 */ "case_exprlist ::= WHEN expr THEN expr",
137667 /* 196 */ "case_else ::= ELSE expr",
137668 /* 197 */ "case_else ::=",
137669 /* 198 */ "case_operand ::= expr",
137670 /* 199 */ "case_operand ::=",
137671 /* 200 */ "exprlist ::=",
137672 /* 201 */ "nexprlist ::= nexprlist COMMA expr",
137673 /* 202 */ "nexprlist ::= expr",
137674 /* 203 */ "paren_exprlist ::=",
137675 /* 204 */ "paren_exprlist ::= LP exprlist RP",
137676 /* 205 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt",
137677 /* 206 */ "uniqueflag ::= UNIQUE",
137678 /* 207 */ "uniqueflag ::=",
137679 /* 208 */ "eidlist_opt ::=",
137680 /* 209 */ "eidlist_opt ::= LP eidlist RP",
137681 /* 210 */ "eidlist ::= eidlist COMMA nm collate sortorder",
137682 /* 211 */ "eidlist ::= nm collate sortorder",
137683 /* 212 */ "collate ::=",
137684 /* 213 */ "collate ::= COLLATE ID|STRING",
137685 /* 214 */ "cmd ::= DROP INDEX ifexists fullname",
137686 /* 215 */ "cmd ::= VACUUM",
137687 /* 216 */ "cmd ::= VACUUM nm",
137688 /* 217 */ "cmd ::= PRAGMA nm dbnm",
137689 /* 218 */ "cmd ::= PRAGMA nm dbnm EQ nmnum",
137690 /* 219 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP",
137691 /* 220 */ "cmd ::= PRAGMA nm dbnm EQ minus_num",
137692 /* 221 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP",
137693 /* 222 */ "plus_num ::= PLUS INTEGER|FLOAT",
137694 /* 223 */ "minus_num ::= MINUS INTEGER|FLOAT",
137695 /* 224 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END",
137696 /* 225 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause",
137697 /* 226 */ "trigger_time ::= BEFORE|AFTER",
137698 /* 227 */ "trigger_time ::= INSTEAD OF",
137699 /* 228 */ "trigger_time ::=",
137700 /* 229 */ "trigger_event ::= DELETE|INSERT",
137701 /* 230 */ "trigger_event ::= UPDATE",
137702 /* 231 */ "trigger_event ::= UPDATE OF idlist",
137703 /* 232 */ "when_clause ::=",
137704 /* 233 */ "when_clause ::= WHEN expr",
137705 /* 234 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI",
137706 /* 235 */ "trigger_cmd_list ::= trigger_cmd SEMI",
137707 /* 236 */ "trnm ::= nm DOT nm",
137708 /* 237 */ "tridxby ::= INDEXED BY nm",
137709 /* 238 */ "tridxby ::= NOT INDEXED",
137710 /* 239 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt",
137711 /* 240 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select",
137712 /* 241 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt",
137713 /* 242 */ "trigger_cmd ::= select",
137714 /* 243 */ "expr ::= RAISE LP IGNORE RP",
137715 /* 244 */ "expr ::= RAISE LP raisetype COMMA nm RP",
137716 /* 245 */ "raisetype ::= ROLLBACK",
137717 /* 246 */ "raisetype ::= ABORT",
137718 /* 247 */ "raisetype ::= FAIL",
137719 /* 248 */ "cmd ::= DROP TRIGGER ifexists fullname",
137720 /* 249 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt",
137721 /* 250 */ "cmd ::= DETACH database_kw_opt expr",
137722 /* 251 */ "key_opt ::=",
137723 /* 252 */ "key_opt ::= KEY expr",
137724 /* 253 */ "cmd ::= REINDEX",
137725 /* 254 */ "cmd ::= REINDEX nm dbnm",
137726 /* 255 */ "cmd ::= ANALYZE",
137727 /* 256 */ "cmd ::= ANALYZE nm dbnm",
137728 /* 257 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
137729 /* 258 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
137730 /* 259 */ "add_column_fullname ::= fullname",
137731 /* 260 */ "cmd ::= create_vtab",
137732 /* 261 */ "cmd ::= create_vtab LP vtabarglist RP",
137733 /* 262 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
137734 /* 263 */ "vtabarg ::=",
137735 /* 264 */ "vtabargtoken ::= ANY",
137736 /* 265 */ "vtabargtoken ::= lp anylist RP",
137737 /* 266 */ "lp ::= LP",
137738 /* 267 */ "with ::=",
137739 /* 268 */ "with ::= WITH wqlist",
137740 /* 269 */ "with ::= WITH RECURSIVE wqlist",
137741 /* 270 */ "wqlist ::= nm eidlist_opt AS LP select RP",
137742 /* 271 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
137743 /* 272 */ "input ::= cmdlist",
137744 /* 273 */ "cmdlist ::= cmdlist ecmd",
137745 /* 274 */ "cmdlist ::= ecmd",
137746 /* 275 */ "ecmd ::= SEMI",
137747 /* 276 */ "ecmd ::= explain cmdx SEMI",
137748 /* 277 */ "explain ::=",
137749 /* 278 */ "trans_opt ::=",
137750 /* 279 */ "trans_opt ::= TRANSACTION",
137751 /* 280 */ "trans_opt ::= TRANSACTION nm",
137752 /* 281 */ "savepoint_opt ::= SAVEPOINT",
137753 /* 282 */ "savepoint_opt ::=",
137754 /* 283 */ "cmd ::= create_table create_table_args",
137755 /* 284 */ "columnlist ::= columnlist COMMA columnname carglist",
137756 /* 285 */ "columnlist ::= columnname carglist",
137757 /* 286 */ "nm ::= ID|INDEXED",
137758 /* 287 */ "nm ::= STRING",
137759 /* 288 */ "nm ::= JOIN_KW",
137760 /* 289 */ "typetoken ::= typename",
137761 /* 290 */ "typename ::= ID|STRING",
137762 /* 291 */ "signed ::= plus_num",
137763 /* 292 */ "signed ::= minus_num",
137764 /* 293 */ "carglist ::= carglist ccons",
137765 /* 294 */ "carglist ::=",
137766 /* 295 */ "ccons ::= NULL onconf",
137767 /* 296 */ "conslist_opt ::= COMMA conslist",
137768 /* 297 */ "conslist ::= conslist tconscomma tcons",
137769 /* 298 */ "conslist ::= tcons",
137770 /* 299 */ "tconscomma ::=",
137771 /* 300 */ "defer_subclause_opt ::= defer_subclause",
137772 /* 301 */ "resolvetype ::= raisetype",
137773 /* 302 */ "selectnowith ::= oneselect",
137774 /* 303 */ "oneselect ::= values",
137775 /* 304 */ "sclp ::= selcollist COMMA",
137776 /* 305 */ "as ::= ID|STRING",
137777 /* 306 */ "expr ::= term",
137778 /* 307 */ "likeop ::= LIKE_KW|MATCH",
137779 /* 308 */ "exprlist ::= nexprlist",
137780 /* 309 */ "nmnum ::= plus_num",
137781 /* 310 */ "nmnum ::= nm",
137782 /* 311 */ "nmnum ::= ON",
137783 /* 312 */ "nmnum ::= DELETE",
137784 /* 313 */ "nmnum ::= DEFAULT",
137785 /* 314 */ "plus_num ::= INTEGER|FLOAT",
137786 /* 315 */ "foreach_clause ::=",
137787 /* 316 */ "foreach_clause ::= FOR EACH ROW",
137788 /* 317 */ "trnm ::= nm",
137789 /* 318 */ "tridxby ::=",
137790 /* 319 */ "database_kw_opt ::= DATABASE",
137791 /* 320 */ "database_kw_opt ::=",
137792 /* 321 */ "kwcolumn_opt ::=",
137793 /* 322 */ "kwcolumn_opt ::= COLUMNKW",
137794 /* 323 */ "vtabarglist ::= vtabarg",
137795 /* 324 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
137796 /* 325 */ "vtabarg ::= vtabarg vtabargtoken",
137797 /* 326 */ "anylist ::=",
137798 /* 327 */ "anylist ::= anylist LP anylist RP",
137799 /* 328 */ "anylist ::= anylist ANY",
 
137800 };
137801 #endif /* NDEBUG */
137802
137803
137804 #if YYSTACKDEPTH<=0
@@ -138339,11 +138389,10 @@
138389 { 220, 0 },
138390 { 220, -3 },
138391 { 217, -3 },
138392 { 217, -1 },
138393 { 173, -3 },
 
138394 { 173, -1 },
138395 { 173, -1 },
138396 { 173, -3 },
138397 { 173, -5 },
138398 { 172, -1 },
@@ -138637,11 +138686,11 @@
138686 case 41: /* autoinc ::= */ yytestcase(yyruleno==41);
138687 case 56: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==56);
138688 case 66: /* defer_subclause_opt ::= */ yytestcase(yyruleno==66);
138689 case 75: /* ifexists ::= */ yytestcase(yyruleno==75);
138690 case 89: /* distinct ::= */ yytestcase(yyruleno==89);
138691 case 212: /* collate ::= */ yytestcase(yyruleno==212);
138692 {yymsp[1].minor.yy194 = 0;}
138693 break;
138694 case 16: /* ifnotexists ::= IF NOT EXISTS */
138695 {yymsp[-2].minor.yy194 = 1;}
138696 break;
@@ -138781,13 +138830,13 @@
138830 case 143: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==143);
138831 {yymsp[-1].minor.yy194 = yymsp[0].minor.yy194;}
138832 break;
138833 case 57: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */
138834 case 74: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==74);
138835 case 184: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==184);
138836 case 187: /* in_op ::= NOT IN */ yytestcase(yyruleno==187);
138837 case 213: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==213);
138838 {yymsp[-1].minor.yy194 = 1;}
138839 break;
138840 case 58: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */
138841 {yymsp[-1].minor.yy194 = 0;}
138842 break;
@@ -138947,13 +138996,13 @@
138996 {yymsp[0].minor.yy194 = SF_All;}
138997 break;
138998 case 90: /* sclp ::= */
138999 case 118: /* orderby_opt ::= */ yytestcase(yyruleno==118);
139000 case 125: /* groupby_opt ::= */ yytestcase(yyruleno==125);
139001 case 200: /* exprlist ::= */ yytestcase(yyruleno==200);
139002 case 203: /* paren_exprlist ::= */ yytestcase(yyruleno==203);
139003 case 208: /* eidlist_opt ::= */ yytestcase(yyruleno==208);
139004 {yymsp[1].minor.yy148 = 0;}
139005 break;
139006 case 91: /* selcollist ::= sclp expr as */
139007 {
139008 yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy148, yymsp[-1].minor.yy190.pExpr);
@@ -138975,12 +139024,12 @@
139024 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, pDot);
139025 }
139026 break;
139027 case 94: /* as ::= AS nm */
139028 case 105: /* dbnm ::= DOT nm */ yytestcase(yyruleno==105);
139029 case 222: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==222);
139030 case 223: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==223);
139031 {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
139032 break;
139033 case 96: /* from ::= */
139034 {yymsp[1].minor.yy185 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy185));}
139035 break;
@@ -139059,18 +139108,18 @@
139108 {yymsp[-3].minor.yy194 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/}
139109 break;
139110 case 111: /* on_opt ::= ON expr */
139111 case 128: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==128);
139112 case 135: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==135);
139113 case 196: /* case_else ::= ELSE expr */ yytestcase(yyruleno==196);
139114 {yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr;}
139115 break;
139116 case 112: /* on_opt ::= */
139117 case 127: /* having_opt ::= */ yytestcase(yyruleno==127);
139118 case 134: /* where_opt ::= */ yytestcase(yyruleno==134);
139119 case 197: /* case_else ::= */ yytestcase(yyruleno==197);
139120 case 199: /* case_operand ::= */ yytestcase(yyruleno==199);
139121 {yymsp[1].minor.yy72 = 0;}
139122 break;
139123 case 114: /* indexed_opt ::= INDEXED BY nm */
139124 {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;}
139125 break;
@@ -139181,47 +139230,45 @@
139230 {yymsp[0].minor.yy254 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/}
139231 break;
139232 case 149: /* expr ::= LP expr RP */
139233 {spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/ yymsp[-2].minor.yy190.pExpr = yymsp[-1].minor.yy190.pExpr;}
139234 break;
139235 case 150: /* expr ::= ID|INDEXED */
139236 case 151: /* expr ::= JOIN_KW */ yytestcase(yyruleno==151);
 
 
 
 
 
139237 {spanExpr(&yymsp[0].minor.yy190,pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/}
139238 break;
139239 case 152: /* expr ::= nm DOT nm */
139240 {
139241 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
139242 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
139243 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139244 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
139245 }
139246 break;
139247 case 153: /* expr ::= nm DOT nm DOT nm */
139248 {
139249 Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1);
139250 Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1);
139251 Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1);
139252 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
139253 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139254 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
139255 }
139256 break;
139257 case 154: /* term ::= NULL|FLOAT|BLOB */
139258 case 155: /* term ::= STRING */ yytestcase(yyruleno==155);
139259 {spanExpr(&yymsp[0].minor.yy190,pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/}
139260 break;
139261 case 156: /* term ::= INTEGER */
139262 {
139263 yylhsminor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1);
139264 yylhsminor.yy190.zStart = yymsp[0].minor.yy0.z;
139265 yylhsminor.yy190.zEnd = yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n;
 
139266 }
139267 yymsp[0].minor.yy190 = yylhsminor.yy190;
139268 break;
139269 case 157: /* expr ::= VARIABLE */
139270 {
139271 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
139272 u32 n = yymsp[0].minor.yy0.n;
139273 spanExpr(&yymsp[0].minor.yy190, pParse, TK_VARIABLE, yymsp[0].minor.yy0);
139274 sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy190.pExpr, n);
@@ -139240,24 +139287,24 @@
139287 if( yymsp[0].minor.yy190.pExpr ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy190.pExpr->iTable);
139288 }
139289 }
139290 }
139291 break;
139292 case 158: /* expr ::= expr COLLATE ID|STRING */
139293 {
139294 yymsp[-2].minor.yy190.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy190.pExpr, &yymsp[0].minor.yy0, 1);
139295 yymsp[-2].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139296 }
139297 break;
139298 case 159: /* expr ::= CAST LP expr AS typetoken RP */
139299 {
139300 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139301 yymsp[-5].minor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1);
139302 sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, 0);
139303 }
139304 break;
139305 case 160: /* expr ::= ID|INDEXED LP distinct exprlist RP */
139306 {
139307 if( yymsp[-1].minor.yy148 && yymsp[-1].minor.yy148->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
139308 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0);
139309 }
139310 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy148, &yymsp[-4].minor.yy0);
@@ -139266,25 +139313,25 @@
139313 yylhsminor.yy190.pExpr->flags |= EP_Distinct;
139314 }
139315 }
139316 yymsp[-4].minor.yy190 = yylhsminor.yy190;
139317 break;
139318 case 161: /* expr ::= ID|INDEXED LP STAR RP */
139319 {
139320 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0);
139321 spanSet(&yylhsminor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
139322 }
139323 yymsp[-3].minor.yy190 = yylhsminor.yy190;
139324 break;
139325 case 162: /* term ::= CTIME_KW */
139326 {
139327 yylhsminor.yy190.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0);
139328 spanSet(&yylhsminor.yy190, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
139329 }
139330 yymsp[0].minor.yy190 = yylhsminor.yy190;
139331 break;
139332 case 163: /* expr ::= LP nexprlist COMMA expr RP */
139333 {
139334 ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy148, yymsp[-1].minor.yy190.pExpr);
139335 yylhsminor.yy190.pExpr = sqlite3PExpr(pParse, TK_VECTOR, 0, 0);
139336 if( yylhsminor.yy190.pExpr ){
139337 yylhsminor.yy190.pExpr->x.pList = pList;
@@ -139293,24 +139340,24 @@
139340 sqlite3ExprListDelete(pParse->db, pList);
139341 }
139342 }
139343 yymsp[-4].minor.yy190 = yylhsminor.yy190;
139344 break;
139345 case 164: /* expr ::= expr AND expr */
139346 case 165: /* expr ::= expr OR expr */ yytestcase(yyruleno==165);
139347 case 166: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==166);
139348 case 167: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==167);
139349 case 168: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==168);
139350 case 169: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==169);
139351 case 170: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==170);
139352 case 171: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==171);
139353 {spanBinaryExpr(pParse,yymsp[-1].major,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);}
139354 break;
139355 case 172: /* likeop ::= NOT LIKE_KW|MATCH */
139356 {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/}
139357 break;
139358 case 173: /* expr ::= expr likeop expr */
139359 {
139360 ExprList *pList;
139361 int bNot = yymsp[-1].minor.yy0.n & 0x80000000;
139362 yymsp[-1].minor.yy0.n &= 0x7fffffff;
139363 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy190.pExpr);
@@ -139319,11 +139366,11 @@
139366 exprNot(pParse, bNot, &yymsp[-2].minor.yy190);
139367 yymsp[-2].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139368 if( yymsp[-2].minor.yy190.pExpr ) yymsp[-2].minor.yy190.pExpr->flags |= EP_InfixFunc;
139369 }
139370 break;
139371 case 174: /* expr ::= expr likeop expr ESCAPE expr */
139372 {
139373 ExprList *pList;
139374 int bNot = yymsp[-3].minor.yy0.n & 0x80000000;
139375 yymsp[-3].minor.yy0.n &= 0x7fffffff;
139376 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
@@ -139333,43 +139380,43 @@
139380 exprNot(pParse, bNot, &yymsp[-4].minor.yy190);
139381 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139382 if( yymsp[-4].minor.yy190.pExpr ) yymsp[-4].minor.yy190.pExpr->flags |= EP_InfixFunc;
139383 }
139384 break;
139385 case 175: /* expr ::= expr ISNULL|NOTNULL */
139386 {spanUnaryPostfix(pParse,yymsp[0].major,&yymsp[-1].minor.yy190,&yymsp[0].minor.yy0);}
139387 break;
139388 case 176: /* expr ::= expr NOT NULL */
139389 {spanUnaryPostfix(pParse,TK_NOTNULL,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy0);}
139390 break;
139391 case 177: /* expr ::= expr IS expr */
139392 {
139393 spanBinaryExpr(pParse,TK_IS,&yymsp[-2].minor.yy190,&yymsp[0].minor.yy190);
139394 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-2].minor.yy190.pExpr, TK_ISNULL);
139395 }
139396 break;
139397 case 178: /* expr ::= expr IS NOT expr */
139398 {
139399 spanBinaryExpr(pParse,TK_ISNOT,&yymsp[-3].minor.yy190,&yymsp[0].minor.yy190);
139400 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy190.pExpr, yymsp[-3].minor.yy190.pExpr, TK_NOTNULL);
139401 }
139402 break;
139403 case 179: /* expr ::= NOT expr */
139404 case 180: /* expr ::= BITNOT expr */ yytestcase(yyruleno==180);
139405 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,yymsp[-1].major,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139406 break;
139407 case 181: /* expr ::= MINUS expr */
139408 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UMINUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139409 break;
139410 case 182: /* expr ::= PLUS expr */
139411 {spanUnaryPrefix(&yymsp[-1].minor.yy190,pParse,TK_UPLUS,&yymsp[0].minor.yy190,&yymsp[-1].minor.yy0);/*A-overwrites-B*/}
139412 break;
139413 case 183: /* between_op ::= BETWEEN */
139414 case 186: /* in_op ::= IN */ yytestcase(yyruleno==186);
139415 {yymsp[0].minor.yy194 = 0;}
139416 break;
139417 case 185: /* expr ::= expr between_op expr AND expr */
139418 {
139419 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
139420 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy190.pExpr);
139421 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy190.pExpr, 0);
139422 if( yymsp[-4].minor.yy190.pExpr ){
@@ -139379,11 +139426,11 @@
139426 }
139427 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139428 yymsp[-4].minor.yy190.zEnd = yymsp[0].minor.yy190.zEnd;
139429 }
139430 break;
139431 case 188: /* expr ::= expr in_op LP exprlist RP */
139432 {
139433 if( yymsp[-1].minor.yy148==0 ){
139434 /* Expressions of the form
139435 **
139436 ** expr1 IN ()
@@ -139432,26 +139479,26 @@
139479 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139480 }
139481 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139482 }
139483 break;
139484 case 189: /* expr ::= LP select RP */
139485 {
139486 spanSet(&yymsp[-2].minor.yy190,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
139487 yymsp[-2].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0);
139488 sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy190.pExpr, yymsp[-1].minor.yy243);
139489 }
139490 break;
139491 case 190: /* expr ::= expr in_op LP select RP */
139492 {
139493 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0);
139494 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, yymsp[-1].minor.yy243);
139495 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139496 yymsp[-4].minor.yy190.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
139497 }
139498 break;
139499 case 191: /* expr ::= expr in_op nm dbnm paren_exprlist */
139500 {
139501 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);
139502 Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
139503 if( yymsp[0].minor.yy148 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy148);
139504 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy190.pExpr, 0);
@@ -139458,19 +139505,19 @@
139505 sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy190.pExpr, pSelect);
139506 exprNot(pParse, yymsp[-3].minor.yy194, &yymsp[-4].minor.yy190);
139507 yymsp[-4].minor.yy190.zEnd = yymsp[-1].minor.yy0.z ? &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n] : &yymsp[-2].minor.yy0.z[yymsp[-2].minor.yy0.n];
139508 }
139509 break;
139510 case 192: /* expr ::= EXISTS LP select RP */
139511 {
139512 Expr *p;
139513 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-B*/
139514 p = yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0);
139515 sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy243);
139516 }
139517 break;
139518 case 193: /* expr ::= CASE case_operand case_exprlist case_else END */
139519 {
139520 spanSet(&yymsp[-4].minor.yy190,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-C*/
139521 yymsp[-4].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy72, 0);
139522 if( yymsp[-4].minor.yy190.pExpr ){
139523 yymsp[-4].minor.yy190.pExpr->x.pList = yymsp[-1].minor.yy72 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[-1].minor.yy72) : yymsp[-2].minor.yy148;
@@ -139479,332 +139526,332 @@
139526 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy148);
139527 sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy72);
139528 }
139529 }
139530 break;
139531 case 194: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
139532 {
139533 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[-2].minor.yy190.pExpr);
139534 yymsp[-4].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy148, yymsp[0].minor.yy190.pExpr);
139535 }
139536 break;
139537 case 195: /* case_exprlist ::= WHEN expr THEN expr */
139538 {
139539 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy190.pExpr);
139540 yymsp[-3].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy148, yymsp[0].minor.yy190.pExpr);
139541 }
139542 break;
139543 case 198: /* case_operand ::= expr */
139544 {yymsp[0].minor.yy72 = yymsp[0].minor.yy190.pExpr; /*A-overwrites-X*/}
139545 break;
139546 case 201: /* nexprlist ::= nexprlist COMMA expr */
139547 {yymsp[-2].minor.yy148 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy148,yymsp[0].minor.yy190.pExpr);}
139548 break;
139549 case 202: /* nexprlist ::= expr */
139550 {yymsp[0].minor.yy148 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy190.pExpr); /*A-overwrites-Y*/}
139551 break;
139552 case 204: /* paren_exprlist ::= LP exprlist RP */
139553 case 209: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==209);
139554 {yymsp[-2].minor.yy148 = yymsp[-1].minor.yy148;}
139555 break;
139556 case 205: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */
139557 {
139558 sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0,
139559 sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy148, yymsp[-10].minor.yy194,
139560 &yymsp[-11].minor.yy0, yymsp[0].minor.yy72, SQLITE_SO_ASC, yymsp[-8].minor.yy194, SQLITE_IDXTYPE_APPDEF);
139561 }
139562 break;
139563 case 206: /* uniqueflag ::= UNIQUE */
139564 case 246: /* raisetype ::= ABORT */ yytestcase(yyruleno==246);
139565 {yymsp[0].minor.yy194 = OE_Abort;}
139566 break;
139567 case 207: /* uniqueflag ::= */
139568 {yymsp[1].minor.yy194 = OE_None;}
139569 break;
139570 case 210: /* eidlist ::= eidlist COMMA nm collate sortorder */
139571 {
139572 yymsp[-4].minor.yy148 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy148, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194);
139573 }
139574 break;
139575 case 211: /* eidlist ::= nm collate sortorder */
139576 {
139577 yymsp[-2].minor.yy148 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy194, yymsp[0].minor.yy194); /*A-overwrites-Y*/
139578 }
139579 break;
139580 case 214: /* cmd ::= DROP INDEX ifexists fullname */
139581 {sqlite3DropIndex(pParse, yymsp[0].minor.yy185, yymsp[-1].minor.yy194);}
139582 break;
139583 case 215: /* cmd ::= VACUUM */
139584 {sqlite3Vacuum(pParse,0);}
139585 break;
139586 case 216: /* cmd ::= VACUUM nm */
139587 {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);}
139588 break;
139589 case 217: /* cmd ::= PRAGMA nm dbnm */
139590 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
139591 break;
139592 case 218: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
139593 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);}
139594 break;
139595 case 219: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
139596 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);}
139597 break;
139598 case 220: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
139599 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);}
139600 break;
139601 case 221: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
139602 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);}
139603 break;
139604 case 224: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
139605 {
139606 Token all;
139607 all.z = yymsp[-3].minor.yy0.z;
139608 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n;
139609 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy145, &all);
139610 }
139611 break;
139612 case 225: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */
139613 {
139614 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy194, yymsp[-4].minor.yy332.a, yymsp[-4].minor.yy332.b, yymsp[-2].minor.yy185, yymsp[0].minor.yy72, yymsp[-10].minor.yy194, yymsp[-8].minor.yy194);
139615 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
139616 }
139617 break;
139618 case 226: /* trigger_time ::= BEFORE|AFTER */
139619 { yymsp[0].minor.yy194 = yymsp[0].major; /*A-overwrites-X*/ }
139620 break;
139621 case 227: /* trigger_time ::= INSTEAD OF */
139622 { yymsp[-1].minor.yy194 = TK_INSTEAD;}
139623 break;
139624 case 228: /* trigger_time ::= */
139625 { yymsp[1].minor.yy194 = TK_BEFORE; }
139626 break;
139627 case 229: /* trigger_event ::= DELETE|INSERT */
139628 case 230: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==230);
139629 {yymsp[0].minor.yy332.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy332.b = 0;}
139630 break;
139631 case 231: /* trigger_event ::= UPDATE OF idlist */
139632 {yymsp[-2].minor.yy332.a = TK_UPDATE; yymsp[-2].minor.yy332.b = yymsp[0].minor.yy254;}
139633 break;
139634 case 232: /* when_clause ::= */
139635 case 251: /* key_opt ::= */ yytestcase(yyruleno==251);
139636 { yymsp[1].minor.yy72 = 0; }
139637 break;
139638 case 233: /* when_clause ::= WHEN expr */
139639 case 252: /* key_opt ::= KEY expr */ yytestcase(yyruleno==252);
139640 { yymsp[-1].minor.yy72 = yymsp[0].minor.yy190.pExpr; }
139641 break;
139642 case 234: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
139643 {
139644 assert( yymsp[-2].minor.yy145!=0 );
139645 yymsp[-2].minor.yy145->pLast->pNext = yymsp[-1].minor.yy145;
139646 yymsp[-2].minor.yy145->pLast = yymsp[-1].minor.yy145;
139647 }
139648 break;
139649 case 235: /* trigger_cmd_list ::= trigger_cmd SEMI */
139650 {
139651 assert( yymsp[-1].minor.yy145!=0 );
139652 yymsp[-1].minor.yy145->pLast = yymsp[-1].minor.yy145;
139653 }
139654 break;
139655 case 236: /* trnm ::= nm DOT nm */
139656 {
139657 yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;
139658 sqlite3ErrorMsg(pParse,
139659 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
139660 "statements within triggers");
139661 }
139662 break;
139663 case 237: /* tridxby ::= INDEXED BY nm */
139664 {
139665 sqlite3ErrorMsg(pParse,
139666 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
139667 "within triggers");
139668 }
139669 break;
139670 case 238: /* tridxby ::= NOT INDEXED */
139671 {
139672 sqlite3ErrorMsg(pParse,
139673 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
139674 "within triggers");
139675 }
139676 break;
139677 case 239: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */
139678 {yymsp[-6].minor.yy145 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy148, yymsp[0].minor.yy72, yymsp[-5].minor.yy194);}
139679 break;
139680 case 240: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */
139681 {yymsp[-4].minor.yy145 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy254, yymsp[0].minor.yy243, yymsp[-4].minor.yy194);/*A-overwrites-R*/}
139682 break;
139683 case 241: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
139684 {yymsp[-4].minor.yy145 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy72);}
139685 break;
139686 case 242: /* trigger_cmd ::= select */
139687 {yymsp[0].minor.yy145 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy243); /*A-overwrites-X*/}
139688 break;
139689 case 243: /* expr ::= RAISE LP IGNORE RP */
139690 {
139691 spanSet(&yymsp[-3].minor.yy190,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139692 yymsp[-3].minor.yy190.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0);
139693 if( yymsp[-3].minor.yy190.pExpr ){
139694 yymsp[-3].minor.yy190.pExpr->affinity = OE_Ignore;
139695 }
139696 }
139697 break;
139698 case 244: /* expr ::= RAISE LP raisetype COMMA nm RP */
139699 {
139700 spanSet(&yymsp[-5].minor.yy190,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/
139701 yymsp[-5].minor.yy190.pExpr = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1);
139702 if( yymsp[-5].minor.yy190.pExpr ) {
139703 yymsp[-5].minor.yy190.pExpr->affinity = (char)yymsp[-3].minor.yy194;
139704 }
139705 }
139706 break;
139707 case 245: /* raisetype ::= ROLLBACK */
139708 {yymsp[0].minor.yy194 = OE_Rollback;}
139709 break;
139710 case 247: /* raisetype ::= FAIL */
139711 {yymsp[0].minor.yy194 = OE_Fail;}
139712 break;
139713 case 248: /* cmd ::= DROP TRIGGER ifexists fullname */
139714 {
139715 sqlite3DropTrigger(pParse,yymsp[0].minor.yy185,yymsp[-1].minor.yy194);
139716 }
139717 break;
139718 case 249: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
139719 {
139720 sqlite3Attach(pParse, yymsp[-3].minor.yy190.pExpr, yymsp[-1].minor.yy190.pExpr, yymsp[0].minor.yy72);
139721 }
139722 break;
139723 case 250: /* cmd ::= DETACH database_kw_opt expr */
139724 {
139725 sqlite3Detach(pParse, yymsp[0].minor.yy190.pExpr);
139726 }
139727 break;
139728 case 253: /* cmd ::= REINDEX */
139729 {sqlite3Reindex(pParse, 0, 0);}
139730 break;
139731 case 254: /* cmd ::= REINDEX nm dbnm */
139732 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
139733 break;
139734 case 255: /* cmd ::= ANALYZE */
139735 {sqlite3Analyze(pParse, 0, 0);}
139736 break;
139737 case 256: /* cmd ::= ANALYZE nm dbnm */
139738 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
139739 break;
139740 case 257: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
139741 {
139742 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy185,&yymsp[0].minor.yy0);
139743 }
139744 break;
139745 case 258: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
139746 {
139747 yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
139748 sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
139749 }
139750 break;
139751 case 259: /* add_column_fullname ::= fullname */
139752 {
139753 disableLookaside(pParse);
139754 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy185);
139755 }
139756 break;
139757 case 260: /* cmd ::= create_vtab */
139758 {sqlite3VtabFinishParse(pParse,0);}
139759 break;
139760 case 261: /* cmd ::= create_vtab LP vtabarglist RP */
139761 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
139762 break;
139763 case 262: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
139764 {
139765 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy194);
139766 }
139767 break;
139768 case 263: /* vtabarg ::= */
139769 {sqlite3VtabArgInit(pParse);}
139770 break;
139771 case 264: /* vtabargtoken ::= ANY */
139772 case 265: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==265);
139773 case 266: /* lp ::= LP */ yytestcase(yyruleno==266);
139774 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
139775 break;
139776 case 267: /* with ::= */
139777 {yymsp[1].minor.yy285 = 0;}
139778 break;
139779 case 268: /* with ::= WITH wqlist */
139780 { yymsp[-1].minor.yy285 = yymsp[0].minor.yy285; }
139781 break;
139782 case 269: /* with ::= WITH RECURSIVE wqlist */
139783 { yymsp[-2].minor.yy285 = yymsp[0].minor.yy285; }
139784 break;
139785 case 270: /* wqlist ::= nm eidlist_opt AS LP select RP */
139786 {
139787 yymsp[-5].minor.yy285 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243); /*A-overwrites-X*/
139788 }
139789 break;
139790 case 271: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
139791 {
139792 yymsp[-7].minor.yy285 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy285, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy148, yymsp[-1].minor.yy243);
139793 }
139794 break;
139795 default:
139796 /* (272) input ::= cmdlist */ yytestcase(yyruleno==272);
139797 /* (273) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==273);
139798 /* (274) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=274);
139799 /* (275) ecmd ::= SEMI */ yytestcase(yyruleno==275);
139800 /* (276) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==276);
139801 /* (277) explain ::= */ yytestcase(yyruleno==277);
139802 /* (278) trans_opt ::= */ yytestcase(yyruleno==278);
139803 /* (279) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==279);
139804 /* (280) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==280);
139805 /* (281) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==281);
139806 /* (282) savepoint_opt ::= */ yytestcase(yyruleno==282);
139807 /* (283) cmd ::= create_table create_table_args */ yytestcase(yyruleno==283);
139808 /* (284) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==284);
139809 /* (285) columnlist ::= columnname carglist */ yytestcase(yyruleno==285);
139810 /* (286) nm ::= ID|INDEXED */ yytestcase(yyruleno==286);
139811 /* (287) nm ::= STRING */ yytestcase(yyruleno==287);
139812 /* (288) nm ::= JOIN_KW */ yytestcase(yyruleno==288);
139813 /* (289) typetoken ::= typename */ yytestcase(yyruleno==289);
139814 /* (290) typename ::= ID|STRING */ yytestcase(yyruleno==290);
139815 /* (291) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=291);
139816 /* (292) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=292);
139817 /* (293) carglist ::= carglist ccons */ yytestcase(yyruleno==293);
139818 /* (294) carglist ::= */ yytestcase(yyruleno==294);
139819 /* (295) ccons ::= NULL onconf */ yytestcase(yyruleno==295);
139820 /* (296) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==296);
139821 /* (297) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==297);
139822 /* (298) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=298);
139823 /* (299) tconscomma ::= */ yytestcase(yyruleno==299);
139824 /* (300) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=300);
139825 /* (301) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=301);
139826 /* (302) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=302);
139827 /* (303) oneselect ::= values */ yytestcase(yyruleno==303);
139828 /* (304) sclp ::= selcollist COMMA */ yytestcase(yyruleno==304);
139829 /* (305) as ::= ID|STRING */ yytestcase(yyruleno==305);
139830 /* (306) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=306);
139831 /* (307) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==307);
139832 /* (308) exprlist ::= nexprlist */ yytestcase(yyruleno==308);
139833 /* (309) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=309);
139834 /* (310) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=310);
139835 /* (311) nmnum ::= ON */ yytestcase(yyruleno==311);
139836 /* (312) nmnum ::= DELETE */ yytestcase(yyruleno==312);
139837 /* (313) nmnum ::= DEFAULT */ yytestcase(yyruleno==313);
139838 /* (314) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==314);
139839 /* (315) foreach_clause ::= */ yytestcase(yyruleno==315);
139840 /* (316) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==316);
139841 /* (317) trnm ::= nm */ yytestcase(yyruleno==317);
139842 /* (318) tridxby ::= */ yytestcase(yyruleno==318);
139843 /* (319) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==319);
139844 /* (320) database_kw_opt ::= */ yytestcase(yyruleno==320);
139845 /* (321) kwcolumn_opt ::= */ yytestcase(yyruleno==321);
139846 /* (322) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==322);
139847 /* (323) vtabarglist ::= vtabarg */ yytestcase(yyruleno==323);
139848 /* (324) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==324);
139849 /* (325) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==325);
139850 /* (326) anylist ::= */ yytestcase(yyruleno==326);
139851 /* (327) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==327);
139852 /* (328) anylist ::= anylist ANY */ yytestcase(yyruleno==328);
139853 break;
139854 /********** End reduce actions ************************************************/
139855 };
139856 assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
139857 yygoto = yyRuleInfo[yyruleno].lhs;
@@ -175738,10 +175785,13 @@
175785 0, /* xSync */
175786 0, /* xCommit */
175787 0, /* xRollback */
175788 0, /* xFindMethod */
175789 0, /* xRename */
175790 0, /* xSavepoint */
175791 0, /* xRelease */
175792 0, /* xRollbackTo */
175793 };
175794 return sqlite3_create_module(db, "dbstat", &dbstat_module, 0);
175795 }
175796 #elif defined(SQLITE_ENABLE_DBSTAT_VTAB)
175797 SQLITE_PRIVATE int sqlite3DbstatRegister(sqlite3 *db){ return SQLITE_OK; }
@@ -200077,11 +200127,11 @@
200127 int nArg, /* Number of args */
200128 sqlite3_value **apUnused /* Function arguments */
200129 ){
200130 assert( nArg==0 );
200131 UNUSED_PARAM2(nArg, apUnused);
200132 sqlite3_result_text(pCtx, "fts5: 2017-07-12 18:05:54 604c11d1a39f09e47b6fcee0f8b1c1054f9dbbc7b2c1cf93312aeaa4b7095018", -1, SQLITE_TRANSIENT);
200133 }
200134
200135 static int fts5Init(sqlite3 *db){
200136 static const sqlite3_module fts5Mod = {
200137 /* iVersion */ 2,
@@ -204220,10 +204270,13 @@
204270 0, /* xSync */
204271 0, /* xCommit */
204272 0, /* xRollback */
204273 0, /* xFindMethod */
204274 0, /* xRename */
204275 0, /* xSavepoint */
204276 0, /* xRelease */
204277 0, /* xRollbackTo */
204278 };
204279
204280 #endif /* SQLITE_OMIT_VIRTUALTABLE */
204281
204282 SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3 *db){
204283
+1 -1
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121121
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122122
** [sqlite_version()] and [sqlite_source_id()].
123123
*/
124124
#define SQLITE_VERSION "3.20.0"
125125
#define SQLITE_VERSION_NUMBER 3020000
126
-#define SQLITE_SOURCE_ID "2017-07-11 13:59:07 95cd1d9f8baa6be305c9a8bfa26fef2a403f2d5b3b5c9c55382ec04f0bc98d40"
126
+#define SQLITE_SOURCE_ID "2017-07-12 18:05:54 604c11d1a39f09e47b6fcee0f8b1c1054f9dbbc7b2c1cf93312aeaa4b7095018"
127127
128128
/*
129129
** CAPI3REF: Run-Time Library Version Numbers
130130
** KEYWORDS: sqlite3_version sqlite3_sourceid
131131
**
132132
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122 ** [sqlite_version()] and [sqlite_source_id()].
123 */
124 #define SQLITE_VERSION "3.20.0"
125 #define SQLITE_VERSION_NUMBER 3020000
126 #define SQLITE_SOURCE_ID "2017-07-11 13:59:07 95cd1d9f8baa6be305c9a8bfa26fef2a403f2d5b3b5c9c55382ec04f0bc98d40"
127
128 /*
129 ** CAPI3REF: Run-Time Library Version Numbers
130 ** KEYWORDS: sqlite3_version sqlite3_sourceid
131 **
132
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,11 +121,11 @@
121 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
122 ** [sqlite_version()] and [sqlite_source_id()].
123 */
124 #define SQLITE_VERSION "3.20.0"
125 #define SQLITE_VERSION_NUMBER 3020000
126 #define SQLITE_SOURCE_ID "2017-07-12 18:05:54 604c11d1a39f09e47b6fcee0f8b1c1054f9dbbc7b2c1cf93312aeaa4b7095018"
127
128 /*
129 ** CAPI3REF: Run-Time Library Version Numbers
130 ** KEYWORDS: sqlite3_version sqlite3_sourceid
131 **
132

Keyboard Shortcuts

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