Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Update the built-in SQLite to the first 3.28.0 beta. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
cbc21e52904aac60495f2728c1964dd8 |
User & Date: | drh 2019-04-11 01:17:26 |
Context
2019-04-11
| ||
14:12 | Fix private content push bug mentioned on Forum. It's possible that this content has already been recorded as private so ignore unique constraint error. ... (check-in: 82aded4c user: andybradford tags: trunk) | |
01:17 | Update the built-in SQLite to the first 3.28.0 beta. ... (check-in: cbc21e52 user: drh tags: trunk) | |
2019-04-08
| ||
15:36 | Try to suppress an SQLite scan warning on servers for repositories with a large number of shunned or private artifacts. ... (check-in: 85dd55db user: drh tags: trunk) | |
Changes
Changes to src/sqlite3.c.
︙ | ︙ | |||
1160 1161 1162 1163 1164 1165 1166 | ** ** See also: [sqlite3_libversion()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ #define SQLITE_VERSION "3.28.0" #define SQLITE_VERSION_NUMBER 3028000 | | | 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 | ** ** See also: [sqlite3_libversion()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ #define SQLITE_VERSION "3.28.0" #define SQLITE_VERSION_NUMBER 3028000 #define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f" /* ** CAPI3REF: Run-Time Library Version Numbers ** KEYWORDS: sqlite3_version sqlite3_sourceid ** ** These interfaces provide the same information as the [SQLITE_VERSION], ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros |
︙ | ︙ | |||
6015 6016 6017 6018 6019 6020 6021 | ** datatype of the value ** <tr><td><b>sqlite3_value_numeric_type </b> ** <td>→ <td>Best numeric datatype of the value ** <tr><td><b>sqlite3_value_nochange </b> ** <td>→ <td>True if the column is unchanged in an UPDATE ** against a virtual table. ** <tr><td><b>sqlite3_value_frombind </b> | | | 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 | ** datatype of the value ** <tr><td><b>sqlite3_value_numeric_type </b> ** <td>→ <td>Best numeric datatype of the value ** <tr><td><b>sqlite3_value_nochange </b> ** <td>→ <td>True if the column is unchanged in an UPDATE ** against a virtual table. ** <tr><td><b>sqlite3_value_frombind </b> ** <td>→ <td>True if value originated from a [bound parameter] ** </table></blockquote> ** ** <b>Details:</b> ** ** These routines extract type, size, and content information from ** [protected sqlite3_value] objects. Protected sqlite3_value objects ** are used to pass parameter information into implementation of |
︙ | ︙ | |||
13641 13642 13643 13644 13645 13646 13647 | #define TK_TRUTH 167 #define TK_REGISTER 168 #define TK_VECTOR 169 #define TK_SELECT_COLUMN 170 #define TK_IF_NULL_ROW 171 #define TK_ASTERISK 172 #define TK_SPAN 173 | < < | | < < < < < < < | 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 | #define TK_TRUTH 167 #define TK_REGISTER 168 #define TK_VECTOR 169 #define TK_SELECT_COLUMN 170 #define TK_IF_NULL_ROW 171 #define TK_ASTERISK 172 #define TK_SPAN 173 #define TK_SPACE 174 #define TK_ILLEGAL 175 /************** End of parse.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> |
︙ | ︙ | |||
16493 16494 16495 16496 16497 16498 16499 | /* ** Allowed values for sqlite3.mDbFlags */ #define DBFLAG_SchemaChange 0x0001 /* Uncommitted Hash table changes */ #define DBFLAG_PreferBuiltin 0x0002 /* Preference to built-in funcs */ #define DBFLAG_Vacuum 0x0004 /* Currently in a VACUUM */ | > | | 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 | /* ** Allowed values for sqlite3.mDbFlags */ #define DBFLAG_SchemaChange 0x0001 /* Uncommitted Hash table changes */ #define DBFLAG_PreferBuiltin 0x0002 /* Preference to built-in funcs */ #define DBFLAG_Vacuum 0x0004 /* Currently in a VACUUM */ #define DBFLAG_VacuumInto 0x0008 /* Currently running VACUUM INTO */ #define DBFLAG_SchemaKnownOk 0x0010 /* Schema is known to be valid */ /* ** Bits of the sqlite3.dbOptFlags field that are used by the ** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to ** selectively disable various optimizations. */ #define SQLITE_QueryFlattener 0x0001 /* Query flattening */ |
︙ | ︙ | |||
18761 18762 18763 18764 18765 18766 18767 18768 18769 18770 18771 18772 18773 18774 | SQLITE_PRIVATE void sqlite3TreeViewWinFunc(TreeView*, const Window*, u8); #endif #endif SQLITE_PRIVATE void sqlite3SetString(char **, sqlite3*, const char*); SQLITE_PRIVATE void sqlite3ErrorMsg(Parse*, const char*, ...); SQLITE_PRIVATE void sqlite3Dequote(char*); SQLITE_PRIVATE void sqlite3DequoteExpr(Expr*); SQLITE_PRIVATE void sqlite3TokenInit(Token*,char*); SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char*, int); SQLITE_PRIVATE int sqlite3RunParser(Parse*, const char*, char **); SQLITE_PRIVATE void sqlite3FinishCoding(Parse*); SQLITE_PRIVATE int sqlite3GetTempReg(Parse*); | > | 18753 18754 18755 18756 18757 18758 18759 18760 18761 18762 18763 18764 18765 18766 18767 | SQLITE_PRIVATE void sqlite3TreeViewWinFunc(TreeView*, const Window*, u8); #endif #endif SQLITE_PRIVATE void sqlite3SetString(char **, sqlite3*, const char*); SQLITE_PRIVATE void sqlite3ErrorMsg(Parse*, const char*, ...); SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3*,int); SQLITE_PRIVATE void sqlite3Dequote(char*); SQLITE_PRIVATE void sqlite3DequoteExpr(Expr*); SQLITE_PRIVATE void sqlite3TokenInit(Token*,char*); SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char*, int); SQLITE_PRIVATE int sqlite3RunParser(Parse*, const char*, char **); SQLITE_PRIVATE void sqlite3FinishCoding(Parse*); SQLITE_PRIVATE int sqlite3GetTempReg(Parse*); |
︙ | ︙ | |||
20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 | /* ** Clear any existing type flags from a Mem and replace them with f */ #define MemSetTypeFlag(p, f) \ ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f) /* ** Return true if a memory cell is not marked as invalid. This macro ** is for use inside assert() statements only. */ #ifdef SQLITE_DEBUG #define memIsValid(M) ((M)->flags & MEM_Undefined)==0 #endif | > > > > > > | 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 | /* ** Clear any existing type flags from a Mem and replace them with f */ #define MemSetTypeFlag(p, f) \ ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f) /* ** True if Mem X is a NULL-nochng type. */ #define MemNullNochng(X) \ ((X)->flags==(MEM_Null|MEM_Zero) && (X)->n==0 && (X)->u.nZero==0) /* ** Return true if a memory cell is not marked as invalid. This macro ** is for use inside assert() statements only. */ #ifdef SQLITE_DEBUG #define memIsValid(M) ((M)->flags & MEM_Undefined)==0 #endif |
︙ | ︙ | |||
27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 | /* ** Set the StrAccum object to an error mode. */ static void setStrAccumError(StrAccum *p, u8 eError){ assert( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG ); p->accError = eError; if( p->mxAlloc ) sqlite3_str_reset(p); } /* ** Extra argument values from a PrintfArguments object */ static sqlite3_int64 getIntArg(PrintfArguments *p){ if( p->nArg<=p->nUsed ) return 0; | > | 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 | /* ** Set the StrAccum object to an error mode. */ static void setStrAccumError(StrAccum *p, u8 eError){ assert( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG ); p->accError = eError; if( p->mxAlloc ) sqlite3_str_reset(p); if( eError==SQLITE_TOOBIG ) sqlite3ErrorToParser(p->db, eError); } /* ** Extra argument values from a PrintfArguments object */ static sqlite3_int64 getIntArg(PrintfArguments *p){ if( p->nArg<=p->nUsed ) return 0; |
︙ | ︙ | |||
30223 30224 30225 30226 30227 30228 30229 | SQLITE_PRIVATE void sqlite3Coverage(int x){ static unsigned dummy = 0; dummy += (unsigned)x; } #endif /* | | | | | | > > > | | > > > > > | 30223 30224 30225 30226 30227 30228 30229 30230 30231 30232 30233 30234 30235 30236 30237 30238 30239 30240 30241 30242 30243 30244 30245 30246 30247 30248 30249 30250 30251 30252 30253 | SQLITE_PRIVATE void sqlite3Coverage(int x){ static unsigned dummy = 0; dummy += (unsigned)x; } #endif /* ** Calls to sqlite3FaultSim() are used to simulate a failure during testing, ** or to bypass normal error detection during testing in order to let ** execute proceed futher downstream. ** ** In deployment, sqlite3FaultSim() *always* return SQLITE_OK (0). The ** sqlite3FaultSim() function only returns non-zero during testing. ** ** During testing, if the test harness has set a fault-sim callback using ** a call to sqlite3_test_control(SQLITE_TESTCTRL_FAULT_INSTALL), then ** each call to sqlite3FaultSim() is relayed to that application-supplied ** callback and the integer return value form the application-supplied ** callback is returned by sqlite3FaultSim(). ** ** The integer argument to sqlite3FaultSim() is a code to identify which ** sqlite3FaultSim() instance is being invoked. Each call to sqlite3FaultSim() ** should have a unique code. To prevent legacy testing applications from ** breaking, the codes should not be changed or reused. */ #ifndef SQLITE_UNTESTABLE SQLITE_PRIVATE int sqlite3FaultSim(int iTest){ int (*xCallback)(int) = sqlite3GlobalConfig.xTestCallback; return xCallback ? xCallback(iTest) : SQLITE_OK; } #endif |
︙ | ︙ | |||
30415 30416 30417 30418 30419 30420 30421 30422 30423 30424 30425 30426 30427 30428 | }else{ pParse->nErr++; sqlite3DbFree(db, pParse->zErrMsg); pParse->zErrMsg = zMsg; pParse->rc = SQLITE_ERROR; } } /* ** Convert an SQL-style quoted string into a normal string by removing ** the quote characters. The conversion is done in-place. If the ** input does not begin with a quote character, then this routine ** is a no-op. ** | > > > > > > > > > > > > > | 30423 30424 30425 30426 30427 30428 30429 30430 30431 30432 30433 30434 30435 30436 30437 30438 30439 30440 30441 30442 30443 30444 30445 30446 30447 30448 30449 | }else{ pParse->nErr++; sqlite3DbFree(db, pParse->zErrMsg); pParse->zErrMsg = zMsg; pParse->rc = SQLITE_ERROR; } } /* ** If database connection db is currently parsing SQL, then transfer ** error code errCode to that parser if the parser has not already ** encountered some other kind of error. */ SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3 *db, int errCode){ Parse *pParse; if( db==0 || (pParse = db->pParse)==0 ) return errCode; pParse->rc = errCode; pParse->nErr++; return errCode; } /* ** Convert an SQL-style quoted string into a normal string by removing ** the quote characters. The conversion is done in-place. If the ** input does not begin with a quote character, then this routine ** is a no-op. ** |
︙ | ︙ | |||
69334 69335 69336 69337 69338 69339 69340 | */ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){ MemPage *pTrunk = 0; /* Free-list trunk page */ Pgno iTrunk = 0; /* Page number of free-list trunk page */ MemPage *pPage1 = pBt->pPage1; /* Local reference to page 1 */ MemPage *pPage; /* Page being freed. May be NULL. */ int rc; /* Return Code */ | | | 69355 69356 69357 69358 69359 69360 69361 69362 69363 69364 69365 69366 69367 69368 69369 | */ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){ MemPage *pTrunk = 0; /* Free-list trunk page */ Pgno iTrunk = 0; /* Page number of free-list trunk page */ MemPage *pPage1 = pBt->pPage1; /* Local reference to page 1 */ MemPage *pPage; /* Page being freed. May be NULL. */ int rc; /* Return Code */ u32 nFree; /* Initial number of pages on free-list */ assert( sqlite3_mutex_held(pBt->mutex) ); assert( CORRUPT_DB || iPage>1 ); assert( !pMemPage || pMemPage->pgno==iPage ); if( iPage<2 || iPage>pBt->nPage ){ return SQLITE_CORRUPT_BKPT; |
︙ | ︙ | |||
74695 74696 74697 74698 74699 74700 74701 | ** If the given Mem* has a zero-filled tail, turn it into an ordinary ** blob stored in dynamically allocated space. */ #ifndef SQLITE_OMIT_INCRBLOB SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *pMem){ int nByte; assert( pMem->flags & MEM_Zero ); | | > > | 74716 74717 74718 74719 74720 74721 74722 74723 74724 74725 74726 74727 74728 74729 74730 74731 74732 74733 74734 74735 74736 74737 74738 | ** If the given Mem* has a zero-filled tail, turn it into an ordinary ** blob stored in dynamically allocated space. */ #ifndef SQLITE_OMIT_INCRBLOB SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *pMem){ int nByte; assert( pMem->flags & MEM_Zero ); assert( (pMem->flags&MEM_Blob)!=0 || MemNullNochng(pMem) ); testcase( sqlite3_value_nochange(pMem) ); assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); /* Set nByte to the number of bytes required to store the expanded blob. */ nByte = pMem->n + pMem->u.nZero; if( nByte<=0 ){ if( (pMem->flags & MEM_Blob)==0 ) return SQLITE_OK; nByte = 1; } if( sqlite3VdbeMemGrow(pMem, nByte, 1) ){ return SQLITE_NOMEM_BKPT; } memset(&pMem->z[pMem->n], 0, pMem->u.nZero); |
︙ | ︙ | |||
75458 75459 75460 75461 75462 75463 75464 | */ if( xDel==SQLITE_TRANSIENT ){ u32 nAlloc = nByte; if( flags&MEM_Term ){ nAlloc += (enc==SQLITE_UTF8?1:2); } if( nByte>iLimit ){ | | | 75481 75482 75483 75484 75485 75486 75487 75488 75489 75490 75491 75492 75493 75494 75495 | */ if( xDel==SQLITE_TRANSIENT ){ u32 nAlloc = nByte; if( flags&MEM_Term ){ nAlloc += (enc==SQLITE_UTF8?1:2); } if( nByte>iLimit ){ return sqlite3ErrorToParser(pMem->db, SQLITE_TOOBIG); } testcase( nAlloc==0 ); testcase( nAlloc==31 ); testcase( nAlloc==32 ); if( sqlite3VdbeMemClearAndResize(pMem, (int)MAX(nAlloc,32)) ){ return SQLITE_NOMEM_BKPT; } |
︙ | ︙ | |||
97714 97715 97716 97717 97718 97719 97720 | if( op==TK_AND && pParse->nErr==0 && !IN_RENAME_OBJECT ){ /* Take advantage of short-circuit false optimization for AND */ p = sqlite3ExprAnd(pParse->db, pLeft, pRight); }else{ p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)); if( p ){ memset(p, 0, sizeof(Expr)); | | | 97737 97738 97739 97740 97741 97742 97743 97744 97745 97746 97747 97748 97749 97750 97751 | if( op==TK_AND && pParse->nErr==0 && !IN_RENAME_OBJECT ){ /* Take advantage of short-circuit false optimization for AND */ p = sqlite3ExprAnd(pParse->db, pLeft, pRight); }else{ p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)); if( p ){ memset(p, 0, sizeof(Expr)); p->op = op & 0xff; p->iAgg = -1; } sqlite3ExprAttachSubtrees(pParse->db, p, pLeft, pRight); } if( p ) { sqlite3ExprCheckHeight(pParse, p->nHeight); } |
︙ | ︙ | |||
111207 111208 111209 111210 111211 111212 111213 | Index *pIdx /* The index that triggers the constraint */ ){ char *zErr; int j; StrAccum errMsg; Table *pTab = pIdx->pTable; | | > | 111230 111231 111232 111233 111234 111235 111236 111237 111238 111239 111240 111241 111242 111243 111244 111245 | Index *pIdx /* The index that triggers the constraint */ ){ char *zErr; int j; StrAccum errMsg; Table *pTab = pIdx->pTable; sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, pParse->db->aLimit[SQLITE_LIMIT_LENGTH]); if( pIdx->aColExpr ){ sqlite3_str_appendf(&errMsg, "index '%q'", pIdx->zName); }else{ for(j=0; j<pIdx->nKeyCol; j++){ char *zCol; assert( pIdx->aiColumn[j]>=0 ); zCol = pTab->aCol[pIdx->aiColumn[j]].zName; |
︙ | ︙ | |||
118696 118697 118698 118699 118700 118701 118702 118703 118704 118705 118706 118707 118708 118709 | } for(pSrcIdx=pSrc->pIndex; pSrcIdx; pSrcIdx=pSrcIdx->pNext){ if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break; } if( pSrcIdx==0 ){ return 0; /* pDestIdx has no corresponding index in pSrc */ } } #ifndef SQLITE_OMIT_CHECK if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){ return 0; /* Tables have different CHECK constraints. Ticket #2252 */ } #endif #ifndef SQLITE_OMIT_FOREIGN_KEY | > > > > > > > | 118720 118721 118722 118723 118724 118725 118726 118727 118728 118729 118730 118731 118732 118733 118734 118735 118736 118737 118738 118739 118740 | } for(pSrcIdx=pSrc->pIndex; pSrcIdx; pSrcIdx=pSrcIdx->pNext){ if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break; } if( pSrcIdx==0 ){ return 0; /* pDestIdx has no corresponding index in pSrc */ } if( pSrcIdx->tnum==pDestIdx->tnum && pSrc->pSchema==pDest->pSchema && sqlite3FaultSim(411)==SQLITE_OK ){ /* The sqlite3FaultSim() call allows this corruption test to be ** bypassed during testing, in order to exercise other corruption tests ** further downstream. */ return 0; /* Corrupt schema - two indexes on the same btree */ } } #ifndef SQLITE_OMIT_CHECK if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){ return 0; /* Tables have different CHECK constraints. Ticket #2252 */ } #endif #ifndef SQLITE_OMIT_FOREIGN_KEY |
︙ | ︙ | |||
118773 118774 118775 118776 118777 118778 118779 | addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid); sqlite3VdbeVerifyAbortable(v, onError); addr2 = sqlite3VdbeAddOp3(v, OP_NotExists, iDest, 0, regRowid); VdbeCoverage(v); sqlite3RowidConstraint(pParse, onError, pDest); sqlite3VdbeJumpHere(v, addr2); autoIncStep(pParse, regAutoinc, regRowid); | | | 118804 118805 118806 118807 118808 118809 118810 118811 118812 118813 118814 118815 118816 118817 118818 | addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid); sqlite3VdbeVerifyAbortable(v, onError); addr2 = sqlite3VdbeAddOp3(v, OP_NotExists, iDest, 0, regRowid); VdbeCoverage(v); sqlite3RowidConstraint(pParse, onError, pDest); sqlite3VdbeJumpHere(v, addr2); autoIncStep(pParse, regAutoinc, regRowid); }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_VacuumInto) ){ addr1 = sqlite3VdbeAddOp2(v, OP_NewRowid, iDest, regRowid); }else{ addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid); assert( (pDest->tabFlags & TF_Autoincrement)==0 ); } sqlite3VdbeAddOp3(v, OP_RowData, iSrc, regData, 1); if( db->mDbFlags & DBFLAG_Vacuum ){ |
︙ | ︙ | |||
120102 120103 120104 120105 120106 120107 120108 | sqlite3_str_errcode, sqlite3_str_length, sqlite3_str_value, /* Version 3.25.0 and later */ sqlite3_create_window_function, /* Version 3.26.0 and later */ #ifdef SQLITE_ENABLE_NORMALIZE | | | > > > | 120133 120134 120135 120136 120137 120138 120139 120140 120141 120142 120143 120144 120145 120146 120147 120148 120149 120150 120151 120152 120153 | sqlite3_str_errcode, sqlite3_str_length, sqlite3_str_value, /* Version 3.25.0 and later */ sqlite3_create_window_function, /* Version 3.26.0 and later */ #ifdef SQLITE_ENABLE_NORMALIZE sqlite3_normalized_sql, #else 0, #endif /* Version 3.28.0 and later */ sqlite3_stmt_isexplain, sqlite3_value_frombind }; /* ** Attempt to load an SQLite extension library contained in the file ** zFile. The entry point is zProc. zProc may be 0 in which case a ** default entry point name (sqlite3_extension_init) is used. Use ** of the default name is recommended. |
︙ | ︙ | |||
133977 133978 133979 133980 133981 133982 133983 | sqlite3ExprDelete(pParse->db, pInto); return; } /* ** This routine implements the OP_Vacuum opcode of the VDBE. */ | | | 134011 134012 134013 134014 134015 134016 134017 134018 134019 134020 134021 134022 134023 134024 134025 | sqlite3ExprDelete(pParse->db, pInto); return; } /* ** This routine implements the OP_Vacuum opcode of the VDBE. */ SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3RunVacuum( char **pzErrMsg, /* Write error message here */ sqlite3 *db, /* Database connection */ int iDb, /* Which attached DB to vacuum */ sqlite3_value *pOut /* Write results here, if not NULL. VACUUM INTO */ ){ int rc = SQLITE_OK; /* Return code from service routines */ Btree *pMain; /* The database being vacuumed */ |
︙ | ︙ | |||
134001 134002 134003 134004 134005 134006 134007 | int nRes; /* Bytes of reserved space at the end of each page */ int nDb; /* Number of attached databases */ const char *zDbMain; /* Schema name of database to vacuum */ const char *zOut; /* Name of output file */ if( !db->autoCommit ){ sqlite3SetString(pzErrMsg, db, "cannot VACUUM from within a transaction"); | | | | 134035 134036 134037 134038 134039 134040 134041 134042 134043 134044 134045 134046 134047 134048 134049 134050 134051 134052 134053 | int nRes; /* Bytes of reserved space at the end of each page */ int nDb; /* Number of attached databases */ const char *zDbMain; /* Schema name of database to vacuum */ const char *zOut; /* Name of output file */ if( !db->autoCommit ){ sqlite3SetString(pzErrMsg, db, "cannot VACUUM from within a transaction"); return SQLITE_ERROR; /* IMP: R-12218-18073 */ } if( db->nVdbeActive>1 ){ sqlite3SetString(pzErrMsg, db,"cannot VACUUM - SQL statements in progress"); return SQLITE_ERROR; /* IMP: R-15610-35227 */ } saved_openFlags = db->openFlags; if( pOut ){ if( sqlite3_value_type(pOut)!=SQLITE_TEXT ){ sqlite3SetString(pzErrMsg, db, "non-text filename"); return SQLITE_ERROR; } |
︙ | ︙ | |||
134068 134069 134070 134071 134072 134073 134074 134075 134076 134077 134078 134079 134080 134081 | sqlite3_file *id = sqlite3PagerFile(sqlite3BtreePager(pTemp)); i64 sz = 0; if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){ rc = SQLITE_ERROR; sqlite3SetString(pzErrMsg, db, "output file already exists"); goto end_of_vacuum; } } nRes = sqlite3BtreeGetOptimalReserve(pMain); /* A VACUUM cannot change the pagesize of an encrypted database. */ #ifdef SQLITE_HAS_CODEC if( db->nextPagesize ){ extern void sqlite3CodecGetKey(sqlite3*, int, void**, int*); | > | 134102 134103 134104 134105 134106 134107 134108 134109 134110 134111 134112 134113 134114 134115 134116 | sqlite3_file *id = sqlite3PagerFile(sqlite3BtreePager(pTemp)); i64 sz = 0; if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){ rc = SQLITE_ERROR; sqlite3SetString(pzErrMsg, db, "output file already exists"); goto end_of_vacuum; } db->mDbFlags |= DBFLAG_VacuumInto; } nRes = sqlite3BtreeGetOptimalReserve(pMain); /* A VACUUM cannot change the pagesize of an encrypted database. */ #ifdef SQLITE_HAS_CODEC if( db->nextPagesize ){ extern void sqlite3CodecGetKey(sqlite3*, int, void**, int*); |
︙ | ︙ | |||
138061 138062 138063 138064 138065 138066 138067 | if( (pWC->a[iTerm].wtFlags & (TERM_VIRTUAL|TERM_CODED))!=0 ) continue; if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue; testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO ); pExpr = sqlite3ExprDup(db, pExpr, 0); pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr); } if( pAndExpr ){ | > > > > > | | 138096 138097 138098 138099 138100 138101 138102 138103 138104 138105 138106 138107 138108 138109 138110 138111 138112 138113 138114 138115 | if( (pWC->a[iTerm].wtFlags & (TERM_VIRTUAL|TERM_CODED))!=0 ) continue; if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue; testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO ); pExpr = sqlite3ExprDup(db, pExpr, 0); pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr); } if( pAndExpr ){ /* The extra 0x10000 bit on the opcode is masked off and does not ** become part of the new Expr.op. However, it does make the ** op==TK_AND comparison inside of sqlite3PExpr() false, and this ** prevents sqlite3PExpr() from implementing AND short-circuit ** optimization, which we do not want here. */ pAndExpr = sqlite3PExpr(pParse, TK_AND|0x10000, 0, pAndExpr); } } /* Run a separate WHERE clause for each term of the OR clause. After ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ |
︙ | ︙ | |||
148245 148246 148247 148248 148249 148250 148251 148252 148253 148254 148255 148256 148257 148258 | ){ sqlite3ErrorMsg(pParse, "syntax error after column name \"%.*s\"", pIdToken->n, pIdToken->z); } sqlite3ExprListSetName(pParse, p, pIdToken, 1); return p; } /**************** End of %include directives **********************************/ /* These constants specify the various numeric values for terminal symbols ** in a format understandable to "makeheaders". This section is blank unless ** "lemon" is run with the "-m" command-line option. ***************** Begin makeheaders token definitions *************************/ /**************** End makeheaders token definitions ***************************/ | > > > > | 148285 148286 148287 148288 148289 148290 148291 148292 148293 148294 148295 148296 148297 148298 148299 148300 148301 148302 | ){ sqlite3ErrorMsg(pParse, "syntax error after column name \"%.*s\"", pIdToken->n, pIdToken->z); } sqlite3ExprListSetName(pParse, p, pIdToken, 1); return p; } #if TK_SPAN>255 # error too many tokens in the grammar #endif /**************** End of %include directives **********************************/ /* These constants specify the various numeric values for terminal symbols ** in a format understandable to "makeheaders". This section is blank unless ** "lemon" is run with the "-m" command-line option. ***************** Begin makeheaders token definitions *************************/ /**************** End makeheaders token definitions ***************************/ |
︙ | ︙ | |||
148308 148309 148310 148311 148312 148313 148314 | ** YY_MAX_REDUCE Maximum value for reduce actions */ #ifndef INTERFACE # define INTERFACE 1 #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int | | < < | | > | | > > | | < | > | | | | < | | 148352 148353 148354 148355 148356 148357 148358 148359 148360 148361 148362 148363 148364 148365 148366 148367 148368 148369 148370 148371 148372 148373 148374 148375 148376 148377 148378 148379 148380 148381 148382 148383 148384 148385 148386 148387 148388 148389 148390 148391 148392 148393 148394 148395 148396 148397 148398 148399 148400 148401 148402 148403 148404 148405 | ** YY_MAX_REDUCE Maximum value for reduce actions */ #ifndef INTERFACE # define INTERFACE 1 #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int #define YYNOCODE 301 #define YYACTIONTYPE unsigned short int #define YYWILDCARD 95 #define sqlite3ParserTOKENTYPE Token typedef union { int yyinit; sqlite3ParserTOKENTYPE yy0; With* yy59; IdList* yy62; struct TrigEvent yy90; Upsert* yy136; struct FrameBound yy201; u8 yy238; const char* yy294; Window* yy295; struct {int value; int mask;} yy355; ExprList* yy434; TriggerStep* yy455; Select* yy457; SrcList* yy483; int yy494; Expr* yy524; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 #endif #define sqlite3ParserARG_SDECL #define sqlite3ParserARG_PDECL #define sqlite3ParserARG_PARAM #define sqlite3ParserARG_FETCH #define sqlite3ParserARG_STORE #define sqlite3ParserCTX_SDECL Parse *pParse; #define sqlite3ParserCTX_PDECL ,Parse *pParse #define sqlite3ParserCTX_PARAM ,pParse #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; #define YYFALLBACK 1 #define YYNSTATE 541 #define YYNRULE 375 #define YYNTOKEN 176 #define YY_MAX_SHIFT 540 #define YY_MIN_SHIFTREDUCE 784 #define YY_MAX_SHIFTREDUCE 1158 #define YY_ERROR_ACTION 1159 #define YY_ACCEPT_ACTION 1160 #define YY_NO_ACTION 1161 #define YY_MIN_REDUCE 1162 |
︙ | ︙ | |||
148424 148425 148426 148427 148428 148429 148430 | ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (2142) static const YYACTIONTYPE yy_action[] = { | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 148468 148469 148470 148471 148472 148473 148474 148475 148476 148477 148478 148479 148480 148481 148482 148483 148484 148485 148486 148487 148488 148489 148490 148491 148492 148493 148494 148495 148496 148497 148498 148499 148500 148501 148502 148503 148504 148505 148506 148507 148508 148509 148510 148511 148512 148513 148514 148515 148516 148517 148518 148519 148520 148521 148522 148523 148524 148525 148526 148527 148528 148529 148530 148531 148532 148533 148534 148535 148536 148537 148538 148539 148540 148541 148542 148543 148544 148545 148546 148547 148548 148549 148550 148551 148552 148553 148554 148555 148556 148557 148558 148559 148560 148561 148562 148563 148564 148565 148566 148567 148568 148569 148570 148571 148572 148573 148574 148575 148576 148577 148578 148579 148580 148581 148582 148583 148584 148585 148586 148587 148588 148589 148590 148591 148592 148593 148594 148595 148596 148597 148598 148599 148600 148601 148602 148603 148604 148605 148606 148607 148608 148609 148610 148611 148612 148613 148614 148615 148616 148617 148618 148619 148620 148621 148622 148623 148624 148625 148626 148627 148628 148629 148630 148631 148632 148633 148634 148635 148636 148637 148638 148639 148640 148641 148642 148643 148644 148645 148646 148647 148648 148649 148650 148651 148652 148653 148654 148655 148656 148657 148658 148659 148660 148661 | ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (2142) static const YYACTIONTYPE yy_action[] = { /* 0 */ 535, 1323, 112, 109, 209, 112, 109, 209, 1160, 1, /* 10 */ 1, 540, 2, 1164, 535, 1292, 1228, 1207, 289, 384, /* 20 */ 134, 42, 42, 1427, 382, 1228, 9, 1241, 242, 492, /* 30 */ 1291, 915, 373, 379, 1026, 70, 70, 427, 1026, 916, /* 40 */ 529, 529, 529, 119, 120, 110, 1136, 1136, 981, 984, /* 50 */ 974, 974, 117, 117, 118, 118, 118, 118, 380, 264, /* 60 */ 264, 264, 264, 1134, 264, 264, 112, 109, 209, 397, /* 70 */ 454, 517, 532, 491, 532, 1233, 1233, 532, 239, 206, /* 80 */ 493, 112, 109, 209, 464, 219, 118, 118, 118, 118, /* 90 */ 111, 393, 440, 444, 16, 16, 116, 116, 116, 116, /* 100 */ 115, 115, 114, 114, 114, 113, 415, 971, 971, 982, /* 110 */ 985, 235, 1463, 351, 1134, 419, 384, 116, 116, 116, /* 120 */ 116, 115, 115, 114, 114, 114, 113, 415, 116, 116, /* 130 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 961, /* 140 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117, /* 150 */ 117, 118, 118, 118, 118, 952, 415, 941, 298, 951, /* 160 */ 941, 1480, 540, 2, 1164, 1115, 535, 1458, 160, 289, /* 170 */ 6, 134, 1504, 389, 406, 975, 338, 1024, 1241, 337, /* 180 */ 1089, 1476, 1089, 118, 118, 118, 118, 42, 42, 329, /* 190 */ 951, 951, 953, 116, 116, 116, 116, 115, 115, 114, /* 200 */ 114, 114, 113, 415, 311, 430, 299, 311, 881, 160, /* 210 */ 264, 264, 401, 384, 324, 1115, 1116, 1117, 288, 526, /* 220 */ 96, 159, 1441, 532, 141, 116, 116, 116, 116, 115, /* 230 */ 115, 114, 114, 114, 113, 415, 219, 119, 120, 110, /* 240 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118, /* 250 */ 118, 118, 115, 115, 114, 114, 114, 113, 415, 288, /* 260 */ 526, 403, 533, 121, 870, 870, 419, 250, 267, 336, /* 270 */ 475, 331, 474, 236, 160, 319, 1084, 322, 1465, 329, /* 280 */ 350, 12, 535, 384, 502, 1115, 1084, 435, 312, 1084, /* 290 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113, /* 300 */ 415, 535, 836, 42, 42, 138, 426, 119, 120, 110, /* 310 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118, /* 320 */ 118, 118, 70, 70, 288, 526, 412, 411, 480, 1457, /* 330 */ 335, 79, 6, 473, 1140, 1115, 1116, 1117, 501, 1142, /* 340 */ 334, 837, 811, 1484, 512, 1164, 534, 1141, 123, 187, /* 350 */ 289, 384, 134, 448, 434, 1115, 80, 349, 498, 1241, /* 360 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113, /* 370 */ 415, 1143, 1115, 1143, 459, 119, 120, 110, 1136, 1136, /* 380 */ 981, 984, 974, 974, 117, 117, 118, 118, 118, 118, /* 390 */ 404, 264, 264, 811, 1463, 506, 368, 1156, 535, 114, /* 400 */ 114, 114, 113, 415, 532, 1115, 1116, 1117, 231, 518, /* 410 */ 1500, 472, 469, 468, 175, 497, 422, 219, 1202, 70, /* 420 */ 70, 467, 1115, 1116, 1117, 176, 201, 200, 116, 116, /* 430 */ 116, 116, 115, 115, 114, 114, 114, 113, 415, 535, /* 440 */ 1115, 264, 264, 435, 312, 1115, 273, 419, 384, 513, /* 450 */ 1450, 1115, 326, 1084, 532, 517, 82, 1084, 167, 388, /* 460 */ 69, 69, 1115, 1084, 519, 509, 1084, 1084, 12, 1157, /* 470 */ 1084, 420, 119, 120, 110, 1136, 1136, 981, 984, 974, /* 480 */ 974, 117, 117, 118, 118, 118, 118, 258, 258, 535, /* 490 */ 1115, 1116, 1117, 1045, 535, 1115, 1116, 1117, 1323, 535, /* 500 */ 532, 1115, 1116, 1117, 296, 483, 1211, 818, 1046, 448, /* 510 */ 70, 70, 1115, 1116, 1117, 50, 50, 448, 356, 500, /* 520 */ 70, 70, 207, 1047, 32, 116, 116, 116, 116, 115, /* 530 */ 115, 114, 114, 114, 113, 415, 453, 264, 264, 1115, /* 540 */ 450, 449, 961, 508, 856, 384, 517, 5, 900, 822, /* 550 */ 532, 484, 181, 1115, 857, 516, 517, 818, 952, 507, /* 560 */ 3, 1115, 951, 1231, 1231, 482, 398, 1115, 1095, 119, /* 570 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117, /* 580 */ 118, 118, 118, 118, 1115, 535, 238, 1115, 1391, 1115, /* 590 */ 1116, 1117, 159, 951, 951, 953, 231, 1115, 259, 472, /* 600 */ 469, 468, 310, 1115, 1116, 1117, 13, 13, 297, 467, /* 610 */ 276, 1115, 1116, 1117, 412, 411, 1095, 1115, 1116, 1117, /* 620 */ 395, 355, 116, 116, 116, 116, 115, 115, 114, 114, /* 630 */ 114, 113, 415, 208, 1115, 1116, 1117, 1115, 1116, 1117, /* 640 */ 264, 264, 384, 337, 902, 393, 815, 1115, 1116, 1117, /* 650 */ 413, 413, 413, 532, 112, 109, 209, 309, 900, 1143, /* 660 */ 535, 1143, 535, 393, 901, 1210, 119, 120, 110, 1136, /* 670 */ 1136, 981, 984, 974, 974, 117, 117, 118, 118, 118, /* 680 */ 118, 13, 13, 13, 13, 265, 265, 535, 143, 264, /* 690 */ 264, 288, 526, 535, 1119, 400, 535, 402, 532, 510, /* 700 */ 1457, 512, 532, 6, 113, 415, 1067, 1530, 70, 70, /* 710 */ 1530, 535, 271, 535, 70, 70, 535, 13, 13, 116, /* 720 */ 116, 116, 116, 115, 115, 114, 114, 114, 113, 415, /* 730 */ 272, 277, 13, 13, 13, 13, 535, 13, 13, 384, /* 740 */ 535, 304, 425, 1100, 284, 1119, 184, 801, 185, 338, /* 750 */ 285, 514, 1532, 369, 1239, 1438, 1182, 70, 70, 425, /* 760 */ 424, 70, 70, 119, 120, 110, 1136, 1136, 981, 984, /* 770 */ 974, 974, 117, 117, 118, 118, 118, 118, 190, 1065, /* 780 */ 1067, 1531, 442, 107, 1531, 408, 264, 264, 264, 264, /* 790 */ 383, 1396, 261, 410, 95, 900, 485, 414, 421, 532, /* 800 */ 1045, 532, 301, 1133, 303, 488, 433, 1451, 1396, 1398, /* 810 */ 278, 535, 278, 520, 1435, 1046, 116, 116, 116, 116, /* 820 */ 115, 115, 114, 114, 114, 113, 415, 425, 264, 264, /* 830 */ 1047, 190, 54, 54, 535, 291, 384, 264, 264, 362, /* 840 */ 962, 532, 1004, 376, 1084, 264, 264, 1029, 1029, 456, /* 850 */ 532, 523, 270, 1065, 1084, 55, 55, 1084, 532, 442, /* 860 */ 119, 120, 110, 1136, 1136, 981, 984, 974, 974, 117, /* 870 */ 117, 118, 118, 118, 118, 535, 1396, 190, 302, 1383, /* 880 */ 208, 535, 789, 790, 791, 535, 515, 535, 1323, 371, /* 890 */ 337, 234, 233, 232, 459, 515, 15, 15, 459, 477, /* 900 */ 459, 459, 44, 44, 136, 900, 56, 56, 57, 57, /* 910 */ 1185, 390, 197, 116, 116, 116, 116, 115, 115, 114, /* 920 */ 114, 114, 113, 415, 535, 876, 535, 442, 535, 274, /* 930 */ 875, 1323, 357, 384, 353, 140, 1426, 946, 1455, 1323, /* 940 */ 1390, 6, 1240, 1236, 292, 58, 58, 59, 59, 60, /* 950 */ 60, 535, 1456, 384, 535, 6, 399, 119, 120, 110, /* 960 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118, /* 970 */ 118, 118, 61, 61, 535, 45, 45, 119, 120, 110, /* 980 */ 1136, 1136, 981, 984, 974, 974, 117, 117, 118, 118, /* 990 */ 118, 118, 1477, 479, 202, 46, 46, 275, 95, 455, /* 1000 */ 535, 212, 535, 337, 535, 1454, 535, 409, 6, 242, /* 1010 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113, /* 1020 */ 415, 48, 48, 49, 49, 62, 62, 63, 63, 535, /* 1030 */ 116, 116, 116, 116, 115, 115, 114, 114, 114, 113, /* 1040 */ 415, 535, 459, 535, 1134, 535, 1151, 535, 142, 535, /* 1050 */ 64, 64, 535, 1338, 535, 494, 535, 446, 535, 1264, /* 1060 */ 535, 1337, 14, 14, 65, 65, 125, 125, 66, 66, /* 1070 */ 51, 51, 535, 67, 67, 68, 68, 52, 52, 147, /* 1080 */ 147, 148, 148, 1453, 317, 98, 6, 535, 1245, 481, /* 1090 */ 535, 827, 535, 75, 75, 1134, 102, 481, 100, 535, /* 1100 */ 532, 535, 368, 1066, 1503, 384, 535, 845, 53, 53, /* 1110 */ 93, 71, 71, 126, 126, 295, 528, 390, 288, 526, /* 1120 */ 72, 72, 127, 127, 139, 384, 38, 128, 128, 119, /* 1130 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117, /* 1140 */ 118, 118, 118, 118, 535, 495, 535, 447, 535, 119, /* 1150 */ 120, 110, 1136, 1136, 981, 984, 974, 974, 117, 117, /* 1160 */ 118, 118, 118, 118, 235, 124, 124, 146, 146, 145, /* 1170 */ 145, 287, 535, 1277, 535, 1157, 535, 391, 161, 263, /* 1180 */ 206, 381, 116, 116, 116, 116, 115, 115, 114, 114, /* 1190 */ 114, 113, 415, 132, 132, 131, 131, 129, 129, 535, /* 1200 */ 30, 535, 116, 116, 116, 116, 115, 115, 114, 114, /* 1210 */ 114, 113, 415, 535, 216, 1062, 1276, 535, 370, 535, /* 1220 */ 130, 130, 74, 74, 535, 915, 389, 876, 17, 437, /* 1230 */ 429, 31, 875, 916, 76, 76, 266, 101, 73, 73, /* 1240 */ 43, 43, 835, 834, 308, 47, 47, 95, 825, 943, /* 1250 */ 441, 938, 241, 241, 305, 443, 313, 384, 241, 95, /* 1260 */ 842, 843, 193, 465, 1209, 327, 237, 436, 95, 1011, /* 1270 */ 1007, 909, 873, 237, 241, 107, 1023, 384, 1023, 955, /* 1280 */ 1415, 119, 120, 110, 1136, 1136, 981, 984, 974, 974, /* 1290 */ 117, 117, 118, 118, 118, 118, 1022, 809, 1022, 825, /* 1300 */ 137, 119, 108, 110, 1136, 1136, 981, 984, 974, 974, /* 1310 */ 117, 117, 118, 118, 118, 118, 874, 1414, 451, 107, /* 1320 */ 1011, 314, 1273, 318, 218, 321, 323, 325, 1224, 1208, /* 1330 */ 955, 330, 339, 340, 116, 116, 116, 116, 115, 115, /* 1340 */ 114, 114, 114, 113, 415, 1285, 1322, 1260, 1493, 1470, /* 1350 */ 1271, 283, 521, 1328, 116, 116, 116, 116, 115, 115, /* 1360 */ 114, 114, 114, 113, 415, 1191, 1184, 1173, 1172, 1174, /* 1370 */ 522, 1487, 211, 460, 384, 256, 199, 367, 1257, 342, /* 1380 */ 195, 470, 307, 344, 11, 333, 525, 445, 1307, 1315, /* 1390 */ 375, 203, 1207, 1151, 384, 346, 1387, 188, 360, 120, /* 1400 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118, /* 1410 */ 118, 118, 118, 1386, 428, 1490, 245, 300, 348, 1148, /* 1420 */ 110, 1136, 1136, 981, 984, 974, 974, 117, 117, 118, /* 1430 */ 118, 118, 118, 189, 198, 1434, 1432, 78, 81, 163, /* 1440 */ 82, 392, 439, 1392, 173, 105, 527, 35, 4, 157, /* 1450 */ 1312, 116, 116, 116, 116, 115, 115, 114, 114, 114, /* 1460 */ 113, 415, 530, 165, 93, 1304, 431, 432, 168, 463, /* 1470 */ 221, 116, 116, 116, 116, 115, 115, 114, 114, 114, /* 1480 */ 113, 415, 169, 452, 170, 416, 171, 374, 372, 438, /* 1490 */ 36, 1318, 177, 225, 1381, 87, 458, 524, 1403, 316, /* 1500 */ 257, 105, 527, 227, 4, 182, 461, 160, 320, 228, /* 1510 */ 377, 1175, 476, 229, 1227, 1226, 405, 1225, 530, 1218, /* 1520 */ 961, 378, 1199, 1198, 827, 332, 103, 103, 1197, 407, /* 1530 */ 8, 1217, 1502, 104, 487, 416, 537, 536, 281, 282, /* 1540 */ 951, 416, 490, 1268, 496, 92, 341, 243, 1269, 343, /* 1550 */ 244, 1267, 122, 524, 345, 1461, 515, 288, 526, 10, /* 1560 */ 354, 1266, 1460, 352, 504, 1250, 99, 1367, 94, 503, /* 1570 */ 499, 951, 951, 953, 954, 27, 961, 347, 1249, 194, /* 1580 */ 251, 358, 103, 103, 359, 1181, 34, 538, 1110, 104, /* 1590 */ 255, 416, 537, 536, 286, 252, 951, 254, 539, 149, /* 1600 */ 1170, 1419, 1165, 1420, 1418, 150, 1417, 135, 279, 785, /* 1610 */ 151, 417, 1195, 196, 290, 210, 386, 1194, 269, 387, /* 1620 */ 162, 1021, 133, 77, 1192, 1019, 935, 951, 951, 953, /* 1630 */ 954, 27, 1479, 1104, 418, 164, 153, 268, 217, 166, /* 1640 */ 859, 306, 366, 366, 365, 253, 363, 220, 1035, 798, /* 1650 */ 172, 939, 105, 527, 155, 4, 394, 174, 396, 156, /* 1660 */ 83, 1038, 213, 84, 294, 85, 86, 223, 222, 530, /* 1670 */ 1034, 144, 293, 18, 224, 315, 241, 1027, 1145, 178, /* 1680 */ 457, 226, 179, 37, 800, 334, 462, 230, 328, 466, /* 1690 */ 180, 471, 416, 88, 19, 20, 89, 280, 838, 158, /* 1700 */ 191, 90, 215, 478, 524, 1097, 204, 192, 987, 91, /* 1710 */ 152, 1070, 39, 154, 1071, 504, 486, 40, 489, 205, /* 1720 */ 505, 260, 105, 527, 214, 4, 908, 961, 262, 183, /* 1730 */ 240, 21, 903, 103, 103, 107, 22, 1086, 23, 530, /* 1740 */ 104, 1088, 416, 537, 536, 24, 1093, 951, 25, 1074, /* 1750 */ 1090, 1094, 7, 33, 511, 186, 26, 1002, 385, 95, /* 1760 */ 988, 986, 416, 288, 526, 990, 1044, 246, 1043, 247, /* 1770 */ 991, 28, 41, 106, 524, 956, 810, 29, 951, 951, /* 1780 */ 953, 954, 27, 531, 361, 504, 423, 248, 869, 249, /* 1790 */ 503, 1495, 364, 1105, 1161, 1494, 1161, 961, 1161, 1161, /* 1800 */ 1161, 1161, 1161, 103, 103, 1161, 1161, 1161, 1161, 1161, /* 1810 */ 104, 1161, 416, 537, 536, 1104, 418, 951, 1161, 268, /* 1820 */ 1161, 1161, 1161, 1161, 366, 366, 365, 253, 363, 1161, /* 1830 */ 1161, 798, 1161, 1161, 1161, 1161, 105, 527, 1161, 4, /* 1840 */ 1161, 1161, 1161, 1161, 213, 1161, 294, 1161, 951, 951, /* 1850 */ 953, 954, 27, 530, 293, 1161, 1161, 1161, 1161, 1161, /* 1860 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, |
︙ | ︙ | |||
148641 148642 148643 148644 148645 148646 148647 | /* 2100 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, /* 2110 */ 1161, 1161, 1161, 385, 1161, 1161, 1161, 1161, 288, 526, /* 2120 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, /* 2130 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, /* 2140 */ 1161, 423, }; static const YYCODETYPE yy_lookahead[] = { | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 148685 148686 148687 148688 148689 148690 148691 148692 148693 148694 148695 148696 148697 148698 148699 148700 148701 148702 148703 148704 148705 148706 148707 148708 148709 148710 148711 148712 148713 148714 148715 148716 148717 148718 148719 148720 148721 148722 148723 148724 148725 148726 148727 148728 148729 148730 148731 148732 148733 148734 148735 148736 148737 148738 148739 148740 148741 148742 148743 148744 148745 148746 148747 148748 148749 148750 148751 148752 148753 148754 148755 148756 148757 148758 148759 148760 148761 148762 148763 148764 148765 148766 148767 148768 148769 148770 148771 148772 148773 148774 148775 148776 148777 148778 148779 148780 148781 148782 148783 148784 148785 148786 148787 148788 148789 148790 148791 148792 148793 148794 148795 148796 148797 148798 148799 148800 148801 148802 148803 148804 148805 148806 148807 148808 148809 148810 148811 148812 148813 148814 148815 148816 148817 148818 148819 148820 148821 148822 148823 148824 148825 148826 148827 148828 148829 148830 148831 148832 148833 148834 148835 148836 148837 148838 148839 148840 148841 148842 148843 148844 148845 148846 148847 148848 148849 148850 148851 148852 148853 148854 148855 148856 148857 148858 148859 148860 148861 148862 148863 148864 148865 148866 148867 148868 148869 148870 148871 148872 148873 148874 148875 148876 148877 148878 148879 148880 148881 148882 148883 148884 148885 148886 148887 148888 148889 148890 148891 148892 148893 148894 148895 148896 148897 148898 148899 148900 148901 148902 148903 148904 148905 148906 148907 148908 148909 148910 148911 148912 148913 148914 148915 148916 148917 148918 148919 148920 148921 148922 148923 148924 148925 148926 148927 148928 148929 148930 148931 148932 148933 148934 148935 148936 148937 148938 148939 148940 148941 148942 148943 148944 148945 148946 148947 148948 148949 148950 148951 148952 148953 148954 148955 148956 148957 148958 148959 148960 148961 148962 148963 148964 148965 148966 148967 148968 148969 148970 148971 148972 148973 148974 148975 148976 148977 148978 148979 148980 148981 148982 148983 148984 148985 148986 148987 148988 148989 148990 148991 148992 148993 148994 148995 148996 148997 148998 148999 149000 149001 149002 149003 149004 149005 149006 149007 149008 149009 149010 149011 149012 149013 149014 149015 149016 149017 149018 149019 | /* 2100 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, /* 2110 */ 1161, 1161, 1161, 385, 1161, 1161, 1161, 1161, 288, 526, /* 2120 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, /* 2130 */ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, /* 2140 */ 1161, 423, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 184, 184, 259, 260, 261, 259, 260, 261, 176, 177, /* 10 */ 178, 179, 180, 181, 184, 208, 212, 213, 186, 19, /* 20 */ 188, 205, 206, 280, 205, 221, 22, 195, 24, 195, /* 30 */ 208, 31, 195, 205, 29, 205, 206, 255, 33, 39, /* 40 */ 200, 201, 202, 43, 44, 45, 46, 47, 48, 49, /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 205, 227, /* 60 */ 228, 227, 228, 59, 227, 228, 259, 260, 261, 252, /* 70 */ 65, 241, 240, 184, 240, 223, 224, 240, 244, 245, /* 80 */ 250, 259, 260, 261, 19, 253, 54, 55, 56, 57, /* 90 */ 58, 184, 255, 184, 205, 206, 96, 97, 98, 99, /* 100 */ 100, 101, 102, 103, 104, 105, 106, 46, 47, 48, /* 110 */ 49, 46, 296, 297, 110, 283, 19, 96, 97, 98, /* 120 */ 99, 100, 101, 102, 103, 104, 105, 106, 96, 97, /* 130 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 94, /* 140 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, /* 150 */ 53, 54, 55, 56, 57, 110, 106, 73, 251, 114, /* 160 */ 73, 178, 179, 180, 181, 59, 184, 292, 81, 186, /* 170 */ 295, 188, 218, 108, 19, 114, 184, 11, 195, 184, /* 180 */ 83, 184, 85, 54, 55, 56, 57, 205, 206, 124, /* 190 */ 145, 146, 147, 96, 97, 98, 99, 100, 101, 102, /* 200 */ 103, 104, 105, 106, 120, 121, 122, 120, 102, 81, /* 210 */ 227, 228, 220, 19, 16, 109, 110, 111, 131, 132, /* 220 */ 26, 184, 184, 240, 229, 96, 97, 98, 99, 100, /* 230 */ 101, 102, 103, 104, 105, 106, 253, 43, 44, 45, /* 240 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, /* 250 */ 56, 57, 100, 101, 102, 103, 104, 105, 106, 131, /* 260 */ 132, 106, 127, 69, 129, 130, 283, 112, 113, 114, /* 270 */ 115, 116, 117, 118, 81, 77, 76, 79, 296, 124, /* 280 */ 298, 203, 184, 19, 84, 59, 86, 121, 122, 89, /* 290 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, /* 300 */ 106, 184, 35, 205, 206, 22, 113, 43, 44, 45, /* 310 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, /* 320 */ 56, 57, 205, 206, 131, 132, 100, 101, 291, 292, /* 330 */ 114, 67, 295, 66, 108, 109, 110, 111, 138, 113, /* 340 */ 124, 74, 59, 179, 184, 181, 184, 121, 22, 271, /* 350 */ 186, 19, 188, 184, 276, 59, 24, 184, 241, 195, /* 360 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, /* 370 */ 106, 145, 59, 147, 184, 43, 44, 45, 46, 47, /* 380 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, /* 390 */ 123, 227, 228, 110, 296, 297, 22, 23, 184, 102, /* 400 */ 103, 104, 105, 106, 240, 109, 110, 111, 112, 195, /* 410 */ 204, 115, 116, 117, 22, 184, 226, 253, 212, 205, /* 420 */ 206, 125, 109, 110, 111, 22, 100, 101, 96, 97, /* 430 */ 98, 99, 100, 101, 102, 103, 104, 105, 106, 184, /* 440 */ 59, 227, 228, 121, 122, 59, 277, 283, 19, 289, /* 450 */ 290, 59, 23, 76, 240, 241, 143, 76, 72, 189, /* 460 */ 205, 206, 59, 86, 250, 84, 89, 86, 203, 95, /* 470 */ 89, 281, 43, 44, 45, 46, 47, 48, 49, 50, /* 480 */ 51, 52, 53, 54, 55, 56, 57, 227, 228, 184, /* 490 */ 109, 110, 111, 12, 184, 109, 110, 111, 184, 184, /* 500 */ 240, 109, 110, 111, 184, 195, 214, 59, 27, 184, /* 510 */ 205, 206, 109, 110, 111, 205, 206, 184, 263, 138, /* 520 */ 205, 206, 184, 42, 22, 96, 97, 98, 99, 100, /* 530 */ 101, 102, 103, 104, 105, 106, 266, 227, 228, 59, /* 540 */ 270, 276, 94, 66, 63, 19, 241, 22, 26, 23, /* 550 */ 240, 241, 72, 59, 73, 250, 241, 109, 110, 82, /* 560 */ 22, 59, 114, 223, 224, 250, 252, 59, 91, 43, /* 570 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, /* 580 */ 54, 55, 56, 57, 59, 184, 26, 59, 268, 109, /* 590 */ 110, 111, 184, 145, 146, 147, 112, 59, 203, 115, /* 600 */ 116, 117, 277, 109, 110, 111, 205, 206, 195, 125, /* 610 */ 277, 109, 110, 111, 100, 101, 139, 109, 110, 111, /* 620 */ 219, 184, 96, 97, 98, 99, 100, 101, 102, 103, /* 630 */ 104, 105, 106, 111, 109, 110, 111, 109, 110, 111, /* 640 */ 227, 228, 19, 184, 136, 184, 23, 109, 110, 111, /* 650 */ 200, 201, 202, 240, 259, 260, 261, 195, 136, 145, /* 660 */ 184, 147, 184, 184, 136, 214, 43, 44, 45, 46, /* 670 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, /* 680 */ 57, 205, 206, 205, 206, 227, 228, 184, 229, 227, /* 690 */ 228, 131, 132, 184, 59, 219, 184, 219, 240, 291, /* 700 */ 292, 184, 240, 295, 105, 106, 22, 23, 205, 206, /* 710 */ 26, 184, 251, 184, 205, 206, 184, 205, 206, 96, /* 720 */ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, /* 730 */ 251, 219, 205, 206, 205, 206, 184, 205, 206, 19, /* 740 */ 184, 16, 184, 23, 241, 110, 219, 21, 219, 184, /* 750 */ 241, 219, 286, 287, 195, 184, 195, 205, 206, 201, /* 760 */ 202, 205, 206, 43, 44, 45, 46, 47, 48, 49, /* 770 */ 50, 51, 52, 53, 54, 55, 56, 57, 184, 95, /* 780 */ 22, 23, 184, 26, 26, 220, 227, 228, 227, 228, /* 790 */ 196, 184, 23, 241, 26, 26, 195, 241, 184, 240, /* 800 */ 12, 240, 77, 26, 79, 195, 80, 290, 201, 202, /* 810 */ 216, 184, 218, 195, 184, 27, 96, 97, 98, 99, /* 820 */ 100, 101, 102, 103, 104, 105, 106, 269, 227, 228, /* 830 */ 42, 184, 205, 206, 184, 184, 19, 227, 228, 192, /* 840 */ 23, 240, 116, 196, 76, 227, 228, 120, 121, 122, /* 850 */ 240, 63, 254, 95, 86, 205, 206, 89, 240, 184, /* 860 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, /* 870 */ 53, 54, 55, 56, 57, 184, 269, 184, 153, 153, /* 880 */ 111, 184, 7, 8, 9, 184, 138, 184, 184, 196, /* 890 */ 184, 120, 121, 122, 184, 138, 205, 206, 184, 102, /* 900 */ 184, 184, 205, 206, 156, 136, 205, 206, 205, 206, /* 910 */ 198, 199, 135, 96, 97, 98, 99, 100, 101, 102, /* 920 */ 103, 104, 105, 106, 184, 128, 184, 184, 184, 254, /* 930 */ 133, 184, 237, 19, 239, 229, 226, 23, 292, 184, /* 940 */ 226, 295, 226, 226, 184, 205, 206, 205, 206, 205, /* 950 */ 206, 184, 292, 19, 184, 295, 252, 43, 44, 45, /* 960 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, /* 970 */ 56, 57, 205, 206, 184, 205, 206, 43, 44, 45, /* 980 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, /* 990 */ 56, 57, 157, 158, 26, 205, 206, 254, 26, 252, /* 1000 */ 184, 15, 184, 184, 184, 292, 184, 252, 295, 24, /* 1010 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, /* 1020 */ 106, 205, 206, 205, 206, 205, 206, 205, 206, 184, /* 1030 */ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, /* 1040 */ 106, 184, 184, 184, 59, 184, 60, 184, 229, 184, /* 1050 */ 205, 206, 184, 258, 184, 19, 184, 19, 184, 246, /* 1060 */ 184, 258, 205, 206, 205, 206, 205, 206, 205, 206, /* 1070 */ 205, 206, 184, 205, 206, 205, 206, 205, 206, 205, /* 1080 */ 206, 205, 206, 292, 226, 151, 295, 184, 228, 294, /* 1090 */ 184, 119, 184, 205, 206, 110, 150, 294, 152, 184, /* 1100 */ 240, 184, 22, 23, 23, 19, 184, 26, 205, 206, /* 1110 */ 142, 205, 206, 205, 206, 184, 198, 199, 131, 132, /* 1120 */ 205, 206, 205, 206, 22, 19, 24, 205, 206, 43, /* 1130 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, /* 1140 */ 54, 55, 56, 57, 184, 109, 184, 109, 184, 43, /* 1150 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, /* 1160 */ 54, 55, 56, 57, 46, 205, 206, 205, 206, 205, /* 1170 */ 206, 232, 184, 184, 184, 95, 184, 284, 285, 244, /* 1180 */ 245, 242, 96, 97, 98, 99, 100, 101, 102, 103, /* 1190 */ 104, 105, 106, 205, 206, 205, 206, 205, 206, 184, /* 1200 */ 22, 184, 96, 97, 98, 99, 100, 101, 102, 103, /* 1210 */ 104, 105, 106, 184, 24, 23, 184, 184, 26, 184, /* 1220 */ 205, 206, 205, 206, 184, 31, 108, 128, 22, 122, /* 1230 */ 184, 53, 133, 39, 205, 206, 22, 151, 205, 206, /* 1240 */ 205, 206, 113, 114, 23, 205, 206, 26, 59, 23, /* 1250 */ 23, 144, 26, 26, 184, 23, 23, 19, 26, 26, /* 1260 */ 7, 8, 24, 23, 214, 23, 26, 61, 26, 59, /* 1270 */ 23, 23, 23, 26, 26, 26, 145, 19, 147, 59, /* 1280 */ 184, 43, 44, 45, 46, 47, 48, 49, 50, 51, /* 1290 */ 52, 53, 54, 55, 56, 57, 145, 23, 147, 110, /* 1300 */ 26, 43, 44, 45, 46, 47, 48, 49, 50, 51, /* 1310 */ 52, 53, 54, 55, 56, 57, 23, 184, 184, 26, /* 1320 */ 110, 184, 184, 184, 134, 184, 184, 184, 184, 184, /* 1330 */ 110, 184, 184, 184, 96, 97, 98, 99, 100, 101, /* 1340 */ 102, 103, 104, 105, 106, 184, 184, 184, 134, 300, /* 1350 */ 184, 243, 184, 184, 96, 97, 98, 99, 100, 101, /* 1360 */ 102, 103, 104, 105, 106, 184, 184, 184, 184, 184, /* 1370 */ 224, 184, 282, 273, 19, 272, 203, 182, 243, 243, /* 1380 */ 230, 209, 278, 243, 231, 208, 265, 278, 234, 234, /* 1390 */ 234, 217, 213, 60, 19, 243, 208, 237, 233, 44, /* 1400 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, /* 1410 */ 55, 56, 57, 208, 247, 187, 134, 247, 247, 38, /* 1420 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, /* 1430 */ 55, 56, 57, 237, 231, 191, 191, 279, 279, 282, /* 1440 */ 143, 191, 108, 268, 22, 19, 20, 256, 22, 43, /* 1450 */ 257, 96, 97, 98, 99, 100, 101, 102, 103, 104, /* 1460 */ 105, 106, 36, 222, 142, 234, 18, 191, 225, 18, /* 1470 */ 190, 96, 97, 98, 99, 100, 101, 102, 103, 104, /* 1480 */ 105, 106, 225, 191, 225, 59, 225, 257, 234, 234, /* 1490 */ 256, 222, 222, 190, 234, 150, 62, 71, 275, 274, /* 1500 */ 191, 19, 20, 190, 22, 22, 210, 81, 191, 190, /* 1510 */ 210, 191, 108, 190, 207, 207, 64, 207, 36, 215, /* 1520 */ 94, 210, 207, 209, 119, 207, 100, 101, 207, 106, /* 1530 */ 48, 215, 207, 107, 210, 109, 110, 111, 267, 267, /* 1540 */ 114, 59, 210, 249, 137, 108, 248, 191, 249, 248, /* 1550 */ 88, 249, 141, 71, 248, 299, 138, 131, 132, 22, /* 1560 */ 191, 249, 299, 237, 82, 238, 150, 262, 140, 87, /* 1570 */ 139, 145, 146, 147, 148, 149, 94, 248, 238, 236, /* 1580 */ 25, 235, 100, 101, 234, 194, 26, 193, 13, 107, /* 1590 */ 6, 109, 110, 111, 264, 185, 114, 185, 183, 197, /* 1600 */ 183, 203, 183, 203, 203, 197, 203, 211, 211, 4, /* 1610 */ 197, 3, 203, 22, 155, 15, 288, 203, 93, 288, /* 1620 */ 285, 23, 16, 203, 203, 23, 132, 145, 146, 147, /* 1630 */ 148, 149, 0, 1, 2, 143, 123, 5, 24, 135, /* 1640 */ 20, 16, 10, 11, 12, 13, 14, 137, 1, 17, /* 1650 */ 135, 144, 19, 20, 123, 22, 61, 143, 37, 123, /* 1660 */ 53, 109, 30, 53, 32, 53, 53, 134, 34, 36, /* 1670 */ 1, 5, 40, 22, 108, 153, 26, 68, 75, 68, /* 1680 */ 41, 134, 108, 24, 20, 124, 19, 118, 23, 67, /* 1690 */ 22, 67, 59, 22, 22, 22, 22, 67, 28, 37, /* 1700 */ 23, 142, 70, 22, 71, 23, 157, 23, 23, 26, /* 1710 */ 78, 23, 22, 81, 23, 82, 24, 22, 24, 134, /* 1720 */ 87, 23, 19, 20, 92, 22, 109, 94, 23, 22, /* 1730 */ 34, 34, 136, 100, 101, 26, 34, 85, 34, 36, /* 1740 */ 107, 83, 109, 110, 111, 34, 90, 114, 34, 23, /* 1750 */ 75, 75, 44, 22, 24, 26, 34, 23, 126, 26, /* 1760 */ 23, 23, 59, 131, 132, 23, 23, 26, 23, 22, /* 1770 */ 11, 22, 22, 22, 71, 23, 23, 22, 145, 146, /* 1780 */ 147, 148, 149, 26, 23, 82, 154, 134, 128, 134, /* 1790 */ 87, 134, 15, 1, 301, 134, 301, 94, 301, 301, /* 1800 */ 301, 301, 301, 100, 101, 301, 301, 301, 301, 301, /* 1810 */ 107, 301, 109, 110, 111, 1, 2, 114, 301, 5, /* 1820 */ 301, 301, 301, 301, 10, 11, 12, 13, 14, 301, /* 1830 */ 301, 17, 301, 301, 301, 301, 19, 20, 301, 22, /* 1840 */ 301, 301, 301, 301, 30, 301, 32, 301, 145, 146, /* 1850 */ 147, 148, 149, 36, 40, 301, 301, 301, 301, 301, /* 1860 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, /* 1870 */ 301, 301, 301, 301, 301, 301, 59, 301, 301, 301, /* 1880 */ 301, 301, 301, 301, 70, 301, 301, 301, 71, 301, /* 1890 */ 301, 301, 78, 301, 301, 81, 19, 20, 301, 22, /* 1900 */ 301, 301, 301, 301, 301, 301, 92, 301, 301, 301, /* 1910 */ 301, 94, 301, 36, 301, 301, 301, 100, 101, 102, /* 1920 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301, /* 1930 */ 301, 114, 301, 301, 301, 301, 59, 301, 301, 301, /* 1940 */ 126, 301, 301, 301, 301, 131, 132, 301, 71, 301, /* 1950 */ 301, 301, 301, 301, 301, 301, 19, 20, 301, 22, /* 1960 */ 301, 301, 145, 146, 147, 148, 149, 301, 154, 301, /* 1970 */ 301, 94, 301, 36, 301, 301, 301, 100, 101, 301, /* 1980 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301, /* 1990 */ 301, 114, 5, 301, 301, 301, 59, 10, 11, 12, /* 2000 */ 13, 14, 301, 301, 17, 301, 301, 301, 71, 301, /* 2010 */ 301, 301, 301, 301, 301, 301, 301, 30, 301, 32, /* 2020 */ 301, 301, 145, 146, 147, 148, 149, 40, 301, 301, /* 2030 */ 301, 94, 301, 301, 301, 301, 301, 100, 101, 301, /* 2040 */ 301, 301, 301, 301, 107, 301, 109, 110, 111, 301, /* 2050 */ 301, 114, 301, 301, 301, 301, 301, 70, 301, 301, /* 2060 */ 301, 301, 301, 301, 301, 78, 301, 301, 81, 301, /* 2070 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 92, /* 2080 */ 301, 301, 145, 146, 147, 148, 149, 301, 301, 301, /* 2090 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, /* 2100 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, /* 2110 */ 301, 301, 301, 126, 301, 301, 301, 301, 131, 132, /* 2120 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, /* 2130 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, /* 2140 */ 301, 154, 301, 301, 301, 301, 301, 301, 301, 301, /* 2150 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, /* 2160 */ 301, 301, 301, 301, 301, 301, 301, 301, 301, }; #define YY_SHIFT_COUNT (540) #define YY_SHIFT_MIN (0) #define YY_SHIFT_MAX (1987) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 1814, 1632, 1987, 1426, 1426, 128, 1482, 1633, 1703, 1877, /* 10 */ 1877, 1877, 87, 0, 0, 264, 1106, 1877, 1877, 1877, /* 20 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, /* 30 */ 226, 226, 381, 381, 296, 193, 128, 128, 128, 128, /* 40 */ 128, 128, 97, 194, 332, 429, 526, 623, 720, 817, /* 50 */ 914, 934, 1086, 1238, 1106, 1106, 1106, 1106, 1106, 1106, /* 60 */ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, /* 70 */ 1106, 1106, 1258, 1106, 1355, 1375, 1375, 1817, 1877, 1877, /* 80 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, /* 90 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, /* 100 */ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, /* 110 */ 1937, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, /* 120 */ 1877, 1877, 1877, 1877, 32, 129, 129, 129, 129, 129, /* 130 */ 21, 152, 297, 494, 726, 65, 494, 514, 514, 494, /* 140 */ 560, 560, 560, 560, 322, 599, 50, 2142, 2142, 155, /* 150 */ 155, 155, 313, 392, 386, 392, 392, 481, 481, 200, /* 160 */ 480, 684, 758, 494, 494, 494, 494, 494, 494, 494, /* 170 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, /* 180 */ 494, 494, 494, 494, 768, 768, 494, 166, 377, 377, /* 190 */ 635, 835, 835, 635, 748, 987, 2142, 2142, 2142, 448, /* 200 */ 45, 45, 403, 484, 502, 106, 525, 508, 528, 538, /* 210 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 84, /* 220 */ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, /* 230 */ 494, 494, 267, 267, 267, 494, 494, 494, 494, 769, /* 240 */ 494, 494, 494, 4, 477, 494, 494, 788, 494, 494, /* 250 */ 494, 494, 494, 494, 494, 494, 727, 5, 135, 985, /* 260 */ 985, 985, 985, 522, 135, 135, 797, 326, 875, 986, /* 270 */ 968, 1036, 1036, 1038, 968, 968, 1038, 972, 1081, 1118, /* 280 */ 1194, 1194, 1194, 1036, 757, 757, 946, 777, 1099, 1102, /* 290 */ 1333, 1282, 1282, 1381, 1381, 1282, 1297, 1334, 1422, 1406, /* 300 */ 1322, 1448, 1448, 1448, 1448, 1282, 1451, 1322, 1322, 1334, /* 310 */ 1422, 1406, 1406, 1322, 1282, 1451, 1345, 1434, 1282, 1451, /* 320 */ 1483, 1282, 1451, 1282, 1451, 1483, 1404, 1404, 1404, 1452, /* 330 */ 1483, 1404, 1405, 1404, 1452, 1404, 1404, 1483, 1423, 1423, /* 340 */ 1483, 1407, 1437, 1407, 1437, 1407, 1437, 1407, 1437, 1282, /* 350 */ 1462, 1462, 1411, 1418, 1537, 1282, 1416, 1411, 1428, 1431, /* 360 */ 1322, 1555, 1560, 1575, 1575, 1584, 1584, 1584, 2142, 2142, /* 370 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, /* 380 */ 2142, 2142, 2142, 2142, 61, 725, 374, 1080, 198, 771, /* 390 */ 283, 1192, 1178, 1190, 1107, 1221, 1206, 1226, 1227, 1232, /* 400 */ 1233, 1240, 1242, 1189, 1129, 1253, 216, 1210, 1247, 1248, /* 410 */ 1249, 1131, 1151, 1274, 1293, 1220, 1214, 1605, 1608, 1591, /* 420 */ 1459, 1600, 1525, 1606, 1598, 1602, 1494, 1492, 1513, 1614, /* 430 */ 1504, 1620, 1510, 1625, 1647, 1515, 1507, 1531, 1595, 1621, /* 440 */ 1514, 1607, 1610, 1612, 1613, 1536, 1552, 1634, 1533, 1669, /* 450 */ 1666, 1651, 1566, 1522, 1609, 1650, 1611, 1603, 1639, 1547, /* 460 */ 1574, 1659, 1664, 1667, 1561, 1569, 1668, 1622, 1671, 1672, /* 470 */ 1665, 1673, 1624, 1670, 1674, 1630, 1662, 1677, 1559, 1681, /* 480 */ 1682, 1549, 1684, 1685, 1683, 1688, 1690, 1692, 1691, 1695, /* 490 */ 1694, 1585, 1698, 1705, 1617, 1696, 1707, 1596, 1709, 1697, /* 500 */ 1702, 1704, 1711, 1652, 1675, 1658, 1708, 1676, 1656, 1714, /* 510 */ 1726, 1731, 1730, 1729, 1733, 1722, 1734, 1709, 1737, 1738, /* 520 */ 1742, 1743, 1741, 1745, 1747, 1759, 1749, 1750, 1752, 1753, /* 530 */ 1751, 1755, 1757, 1660, 1653, 1655, 1657, 1661, 1761, 1777, /* 540 */ 1792, }; #define YY_REDUCE_COUNT (383) #define YY_REDUCE_MIN (-257) #define YY_REDUCE_MAX (1421) static const short yy_reduce_ofst[] = { /* 0 */ -168, -17, 164, 214, 310, -166, -184, -18, 98, -170, /* 10 */ 305, 315, -163, -193, -178, -257, 395, 401, 476, 478, /* 20 */ 512, 117, 527, 529, 503, 509, 532, 255, 552, 556, /* 30 */ 558, 607, 37, 408, 594, 413, 462, 559, 561, 601, /* 40 */ 610, 618, -254, -254, -254, -254, -254, -254, -254, -254, /* 50 */ -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, /* 60 */ -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, /* 70 */ -254, -254, -254, -254, -254, -254, -254, -111, 627, 650, /* 80 */ 691, 697, 701, 703, 740, 742, 744, 767, 770, 790, /* 90 */ 816, 818, 820, 822, 845, 857, 859, 861, 863, 865, /* 100 */ 868, 870, 872, 874, 876, 888, 903, 906, 908, 915, /* 110 */ 917, 922, 960, 962, 964, 988, 990, 992, 1015, 1017, /* 120 */ 1029, 1033, 1035, 1040, -254, -254, -254, -254, -254, -254, /* 130 */ -254, -254, -254, 190, 270, -196, 160, -160, 450, 647, /* 140 */ 260, 458, 260, 458, 78, -254, -254, -254, -254, 206, /* 150 */ 206, 206, 320, 598, -5, 675, 743, -148, 340, -125, /* 160 */ 459, 466, 466, 693, -93, 461, 479, 706, 710, 714, /* 170 */ 716, 717, 169, -183, 325, 314, 704, 333, 747, 858, /* 180 */ -8, 819, 565, 755, 646, 660, 517, 265, 713, 791, /* 190 */ 712, 795, 803, 918, 695, 860, 893, 935, 939, -181, /* 200 */ -172, -147, -91, -46, -3, 162, 173, 231, 338, 437, /* 210 */ 571, 614, 630, 651, 760, 931, 989, 1032, 1046, -218, /* 220 */ 38, 1070, 1096, 1133, 1134, 1137, 1138, 1139, 1141, 1142, /* 230 */ 1143, 1144, 292, 451, 1050, 1145, 1147, 1148, 1149, 813, /* 240 */ 1161, 1162, 1163, 1108, 1049, 1166, 1168, 1146, 1169, 162, /* 250 */ 1181, 1182, 1183, 1184, 1185, 1187, 1100, 1103, 1150, 1135, /* 260 */ 1136, 1140, 1152, 813, 1150, 1150, 1153, 1173, 1195, 1090, /* 270 */ 1154, 1167, 1170, 1104, 1155, 1156, 1109, 1172, 1174, 1179, /* 280 */ 1177, 1188, 1205, 1171, 1160, 1196, 1121, 1165, 1203, 1228, /* 290 */ 1157, 1244, 1245, 1158, 1159, 1250, 1175, 1193, 1191, 1241, /* 300 */ 1231, 1243, 1257, 1259, 1261, 1276, 1280, 1254, 1255, 1230, /* 310 */ 1234, 1269, 1270, 1260, 1292, 1303, 1223, 1225, 1309, 1313, /* 320 */ 1296, 1317, 1319, 1320, 1323, 1300, 1307, 1308, 1310, 1304, /* 330 */ 1311, 1315, 1314, 1318, 1316, 1321, 1325, 1324, 1271, 1272, /* 340 */ 1332, 1294, 1298, 1299, 1301, 1302, 1306, 1312, 1329, 1356, /* 350 */ 1256, 1263, 1327, 1326, 1305, 1369, 1330, 1340, 1343, 1346, /* 360 */ 1350, 1391, 1394, 1410, 1412, 1415, 1417, 1419, 1328, 1331, /* 370 */ 1335, 1402, 1398, 1400, 1401, 1403, 1408, 1396, 1397, 1409, /* 380 */ 1414, 1420, 1421, 1413, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 1536, 1536, 1536, 1376, 1159, 1265, 1159, 1159, 1159, 1376, /* 10 */ 1376, 1376, 1159, 1295, 1295, 1429, 1190, 1159, 1159, 1159, /* 20 */ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1375, 1159, 1159, /* 30 */ 1159, 1159, 1459, 1459, 1159, 1159, 1159, 1159, 1159, 1159, /* 40 */ 1159, 1159, 1159, 1301, 1159, 1159, 1159, 1159, 1159, 1377, |
︙ | ︙ | |||
149378 149379 149380 149381 149382 149383 149384 | /* 152 */ "ELSE", /* 153 */ "INDEX", /* 154 */ "ALTER", /* 155 */ "ADD", /* 156 */ "WINDOW", /* 157 */ "OVER", /* 158 */ "FILTER", | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > > > > > > > > > > > > > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 149423 149424 149425 149426 149427 149428 149429 149430 149431 149432 149433 149434 149435 149436 149437 149438 149439 149440 149441 149442 149443 149444 149445 149446 149447 149448 149449 149450 149451 149452 149453 149454 149455 149456 149457 149458 149459 149460 149461 149462 149463 149464 149465 149466 149467 149468 149469 149470 149471 149472 149473 149474 149475 149476 149477 149478 149479 149480 149481 149482 149483 149484 149485 149486 149487 149488 149489 149490 149491 149492 149493 149494 149495 149496 149497 149498 149499 149500 149501 149502 149503 149504 149505 149506 149507 149508 149509 149510 149511 149512 149513 149514 149515 149516 149517 149518 149519 149520 149521 149522 149523 149524 149525 149526 149527 149528 149529 149530 149531 149532 149533 149534 149535 149536 149537 149538 149539 149540 149541 149542 149543 149544 149545 149546 149547 149548 149549 149550 149551 149552 149553 149554 149555 149556 149557 149558 149559 149560 149561 149562 149563 149564 149565 149566 149567 149568 149569 149570 149571 149572 149573 149574 149575 149576 149577 149578 | /* 152 */ "ELSE", /* 153 */ "INDEX", /* 154 */ "ALTER", /* 155 */ "ADD", /* 156 */ "WINDOW", /* 157 */ "OVER", /* 158 */ "FILTER", /* 159 */ "TRUEFALSE", /* 160 */ "ISNOT", /* 161 */ "FUNCTION", /* 162 */ "COLUMN", /* 163 */ "AGG_FUNCTION", /* 164 */ "AGG_COLUMN", /* 165 */ "UMINUS", /* 166 */ "UPLUS", /* 167 */ "TRUTH", /* 168 */ "REGISTER", /* 169 */ "VECTOR", /* 170 */ "SELECT_COLUMN", /* 171 */ "IF_NULL_ROW", /* 172 */ "ASTERISK", /* 173 */ "SPAN", /* 174 */ "SPACE", /* 175 */ "ILLEGAL", /* 176 */ "input", /* 177 */ "cmdlist", /* 178 */ "ecmd", /* 179 */ "cmdx", /* 180 */ "explain", /* 181 */ "cmd", /* 182 */ "transtype", /* 183 */ "trans_opt", /* 184 */ "nm", /* 185 */ "savepoint_opt", /* 186 */ "create_table", /* 187 */ "create_table_args", /* 188 */ "createkw", /* 189 */ "temp", /* 190 */ "ifnotexists", /* 191 */ "dbnm", /* 192 */ "columnlist", /* 193 */ "conslist_opt", /* 194 */ "table_options", /* 195 */ "select", /* 196 */ "columnname", /* 197 */ "carglist", /* 198 */ "typetoken", /* 199 */ "typename", /* 200 */ "signed", /* 201 */ "plus_num", /* 202 */ "minus_num", /* 203 */ "scanpt", /* 204 */ "ccons", /* 205 */ "term", /* 206 */ "expr", /* 207 */ "onconf", /* 208 */ "sortorder", /* 209 */ "autoinc", /* 210 */ "eidlist_opt", /* 211 */ "refargs", /* 212 */ "defer_subclause", /* 213 */ "refarg", /* 214 */ "refact", /* 215 */ "init_deferred_pred_opt", /* 216 */ "conslist", /* 217 */ "tconscomma", /* 218 */ "tcons", /* 219 */ "sortlist", /* 220 */ "eidlist", /* 221 */ "defer_subclause_opt", /* 222 */ "orconf", /* 223 */ "resolvetype", /* 224 */ "raisetype", /* 225 */ "ifexists", /* 226 */ "fullname", /* 227 */ "selectnowith", /* 228 */ "oneselect", /* 229 */ "wqlist", /* 230 */ "multiselect_op", /* 231 */ "distinct", /* 232 */ "selcollist", /* 233 */ "from", /* 234 */ "where_opt", /* 235 */ "groupby_opt", /* 236 */ "having_opt", /* 237 */ "orderby_opt", /* 238 */ "limit_opt", /* 239 */ "window_clause", /* 240 */ "values", /* 241 */ "nexprlist", /* 242 */ "sclp", /* 243 */ "as", /* 244 */ "seltablist", /* 245 */ "stl_prefix", /* 246 */ "joinop", /* 247 */ "indexed_opt", /* 248 */ "on_opt", /* 249 */ "using_opt", /* 250 */ "exprlist", /* 251 */ "xfullname", /* 252 */ "idlist", /* 253 */ "with", /* 254 */ "setlist", /* 255 */ "insert_cmd", /* 256 */ "idlist_opt", /* 257 */ "upsert", /* 258 */ "over_clause", /* 259 */ "likeop", /* 260 */ "between_op", /* 261 */ "in_op", /* 262 */ "paren_exprlist", /* 263 */ "case_operand", /* 264 */ "case_exprlist", /* 265 */ "case_else", /* 266 */ "uniqueflag", /* 267 */ "collate", /* 268 */ "vinto", /* 269 */ "nmnum", /* 270 */ "trigger_decl", /* 271 */ "trigger_cmd_list", /* 272 */ "trigger_time", /* 273 */ "trigger_event", /* 274 */ "foreach_clause", /* 275 */ "when_clause", /* 276 */ "trigger_cmd", /* 277 */ "trnm", /* 278 */ "tridxby", /* 279 */ "database_kw_opt", /* 280 */ "key_opt", /* 281 */ "add_column_fullname", /* 282 */ "kwcolumn_opt", /* 283 */ "create_vtab", /* 284 */ "vtabarglist", /* 285 */ "vtabarg", /* 286 */ "vtabargtoken", /* 287 */ "lp", /* 288 */ "anylist", /* 289 */ "windowdefn_list", /* 290 */ "windowdefn", /* 291 */ "window", /* 292 */ "frame_opt", /* 293 */ "part_opt", /* 294 */ "filter_opt", /* 295 */ "range_or_rows", /* 296 */ "frame_bound", /* 297 */ "frame_bound_s", /* 298 */ "frame_bound_e", /* 299 */ "frame_exclude_opt", /* 300 */ "frame_exclude", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { |
︙ | ︙ | |||
150010 150011 150012 150013 150014 150015 150016 | ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are *not* used ** inside the C code. */ /********* Begin destructor definitions ***************************************/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 150072 150073 150074 150075 150076 150077 150078 150079 150080 150081 150082 150083 150084 150085 150086 150087 150088 150089 150090 150091 150092 150093 150094 150095 150096 150097 150098 150099 150100 150101 150102 150103 150104 150105 150106 150107 150108 150109 150110 150111 150112 150113 150114 150115 150116 150117 150118 150119 150120 150121 150122 150123 150124 150125 150126 150127 150128 150129 150130 150131 150132 150133 150134 150135 150136 150137 150138 150139 150140 150141 150142 150143 150144 150145 150146 150147 150148 150149 150150 150151 150152 150153 150154 150155 150156 150157 150158 150159 150160 150161 150162 150163 150164 150165 150166 150167 150168 150169 150170 150171 150172 150173 150174 150175 150176 | ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are *not* used ** inside the C code. */ /********* Begin destructor definitions ***************************************/ case 195: /* select */ case 227: /* selectnowith */ case 228: /* oneselect */ case 240: /* values */ { sqlite3SelectDelete(pParse->db, (yypminor->yy457)); } break; case 205: /* term */ case 206: /* expr */ case 234: /* where_opt */ case 236: /* having_opt */ case 248: /* on_opt */ case 263: /* case_operand */ case 265: /* case_else */ case 268: /* vinto */ case 275: /* when_clause */ case 280: /* key_opt */ case 294: /* filter_opt */ { sqlite3ExprDelete(pParse->db, (yypminor->yy524)); } break; case 210: /* eidlist_opt */ case 219: /* sortlist */ case 220: /* eidlist */ case 232: /* selcollist */ case 235: /* groupby_opt */ case 237: /* orderby_opt */ case 241: /* nexprlist */ case 242: /* sclp */ case 250: /* exprlist */ case 254: /* setlist */ case 262: /* paren_exprlist */ case 264: /* case_exprlist */ case 293: /* part_opt */ { sqlite3ExprListDelete(pParse->db, (yypminor->yy434)); } break; case 226: /* fullname */ case 233: /* from */ case 244: /* seltablist */ case 245: /* stl_prefix */ case 251: /* xfullname */ { sqlite3SrcListDelete(pParse->db, (yypminor->yy483)); } break; case 229: /* wqlist */ { sqlite3WithDelete(pParse->db, (yypminor->yy59)); } break; case 239: /* window_clause */ case 289: /* windowdefn_list */ { sqlite3WindowListDelete(pParse->db, (yypminor->yy295)); } break; case 249: /* using_opt */ case 252: /* idlist */ case 256: /* idlist_opt */ { sqlite3IdListDelete(pParse->db, (yypminor->yy62)); } break; case 258: /* over_clause */ case 290: /* windowdefn */ case 291: /* window */ case 292: /* frame_opt */ { sqlite3WindowDelete(pParse->db, (yypminor->yy295)); } break; case 271: /* trigger_cmd_list */ case 276: /* trigger_cmd */ { sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy455)); } break; case 273: /* trigger_event */ { sqlite3IdListDelete(pParse->db, (yypminor->yy90).b); } break; case 296: /* frame_bound */ case 297: /* frame_bound_s */ case 298: /* frame_bound_e */ { sqlite3ExprDelete(pParse->db, (yypminor->yy201).pExpr); } break; /********* End destructor definitions *****************************************/ default: break; /* If no destructor action specified: do nothing */ } } |
︙ | ︙ | |||
150395 150396 150397 150398 150399 150400 150401 | yytos->minor.yy0 = yyMinor; yyTraceShift(yypParser, yyNewState, "Shift"); } /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side ** of that rule */ static const YYCODETYPE yyRuleInfoLhs[] = { | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 150457 150458 150459 150460 150461 150462 150463 150464 150465 150466 150467 150468 150469 150470 150471 150472 150473 150474 150475 150476 150477 150478 150479 150480 150481 150482 150483 150484 150485 150486 150487 150488 150489 150490 150491 150492 150493 150494 150495 150496 150497 150498 150499 150500 150501 150502 150503 150504 150505 150506 150507 150508 150509 150510 150511 150512 150513 150514 150515 150516 150517 150518 150519 150520 150521 150522 150523 150524 150525 150526 150527 150528 150529 150530 150531 150532 150533 150534 150535 150536 150537 150538 150539 150540 150541 150542 150543 150544 150545 150546 150547 150548 150549 150550 150551 150552 150553 150554 150555 150556 150557 150558 150559 150560 150561 150562 150563 150564 150565 150566 150567 150568 150569 150570 150571 150572 150573 150574 150575 150576 150577 150578 150579 150580 150581 150582 150583 150584 150585 150586 150587 150588 150589 150590 150591 150592 150593 150594 150595 150596 150597 150598 150599 150600 150601 150602 150603 150604 150605 150606 150607 150608 150609 150610 150611 150612 150613 150614 150615 150616 150617 150618 150619 150620 150621 150622 150623 150624 150625 150626 150627 150628 150629 150630 150631 150632 150633 150634 150635 150636 150637 150638 150639 150640 150641 150642 150643 150644 150645 150646 150647 150648 150649 150650 150651 150652 150653 150654 150655 150656 150657 150658 150659 150660 150661 150662 150663 150664 150665 150666 150667 150668 150669 150670 150671 150672 150673 150674 150675 150676 150677 150678 150679 150680 150681 150682 150683 150684 150685 150686 150687 150688 150689 150690 150691 150692 150693 150694 150695 150696 150697 150698 150699 150700 150701 150702 150703 150704 150705 150706 150707 150708 150709 150710 150711 150712 150713 150714 150715 150716 150717 150718 150719 150720 150721 150722 150723 150724 150725 150726 150727 150728 150729 150730 150731 150732 150733 150734 150735 150736 150737 150738 150739 150740 150741 150742 150743 150744 150745 150746 150747 150748 150749 150750 150751 150752 150753 150754 150755 150756 150757 150758 150759 150760 150761 150762 150763 150764 150765 150766 150767 150768 150769 150770 150771 150772 150773 150774 150775 150776 150777 150778 150779 150780 150781 150782 150783 150784 150785 150786 150787 150788 150789 150790 150791 150792 150793 150794 150795 150796 150797 150798 150799 150800 150801 150802 150803 150804 150805 150806 150807 150808 150809 150810 150811 150812 150813 150814 150815 150816 150817 150818 150819 150820 150821 150822 150823 150824 150825 150826 150827 150828 150829 150830 150831 150832 150833 150834 150835 150836 150837 150838 150839 150840 150841 150842 150843 150844 150845 | yytos->minor.yy0 = yyMinor; yyTraceShift(yypParser, yyNewState, "Shift"); } /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side ** of that rule */ static const YYCODETYPE yyRuleInfoLhs[] = { 180, /* (0) explain ::= EXPLAIN */ 180, /* (1) explain ::= EXPLAIN QUERY PLAN */ 179, /* (2) cmdx ::= cmd */ 181, /* (3) cmd ::= BEGIN transtype trans_opt */ 182, /* (4) transtype ::= */ 182, /* (5) transtype ::= DEFERRED */ 182, /* (6) transtype ::= IMMEDIATE */ 182, /* (7) transtype ::= EXCLUSIVE */ 181, /* (8) cmd ::= COMMIT|END trans_opt */ 181, /* (9) cmd ::= ROLLBACK trans_opt */ 181, /* (10) cmd ::= SAVEPOINT nm */ 181, /* (11) cmd ::= RELEASE savepoint_opt nm */ 181, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ 186, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ 188, /* (14) createkw ::= CREATE */ 190, /* (15) ifnotexists ::= */ 190, /* (16) ifnotexists ::= IF NOT EXISTS */ 189, /* (17) temp ::= TEMP */ 189, /* (18) temp ::= */ 187, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */ 187, /* (20) create_table_args ::= AS select */ 194, /* (21) table_options ::= */ 194, /* (22) table_options ::= WITHOUT nm */ 196, /* (23) columnname ::= nm typetoken */ 198, /* (24) typetoken ::= */ 198, /* (25) typetoken ::= typename LP signed RP */ 198, /* (26) typetoken ::= typename LP signed COMMA signed RP */ 199, /* (27) typename ::= typename ID|STRING */ 203, /* (28) scanpt ::= */ 204, /* (29) ccons ::= CONSTRAINT nm */ 204, /* (30) ccons ::= DEFAULT scanpt term scanpt */ 204, /* (31) ccons ::= DEFAULT LP expr RP */ 204, /* (32) ccons ::= DEFAULT PLUS term scanpt */ 204, /* (33) ccons ::= DEFAULT MINUS term scanpt */ 204, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */ 204, /* (35) ccons ::= NOT NULL onconf */ 204, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */ 204, /* (37) ccons ::= UNIQUE onconf */ 204, /* (38) ccons ::= CHECK LP expr RP */ 204, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */ 204, /* (40) ccons ::= defer_subclause */ 204, /* (41) ccons ::= COLLATE ID|STRING */ 209, /* (42) autoinc ::= */ 209, /* (43) autoinc ::= AUTOINCR */ 211, /* (44) refargs ::= */ 211, /* (45) refargs ::= refargs refarg */ 213, /* (46) refarg ::= MATCH nm */ 213, /* (47) refarg ::= ON INSERT refact */ 213, /* (48) refarg ::= ON DELETE refact */ 213, /* (49) refarg ::= ON UPDATE refact */ 214, /* (50) refact ::= SET NULL */ 214, /* (51) refact ::= SET DEFAULT */ 214, /* (52) refact ::= CASCADE */ 214, /* (53) refact ::= RESTRICT */ 214, /* (54) refact ::= NO ACTION */ 212, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ 212, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ 215, /* (57) init_deferred_pred_opt ::= */ 215, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */ 215, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ 193, /* (60) conslist_opt ::= */ 217, /* (61) tconscomma ::= COMMA */ 218, /* (62) tcons ::= CONSTRAINT nm */ 218, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ 218, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */ 218, /* (65) tcons ::= CHECK LP expr RP onconf */ 218, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ 221, /* (67) defer_subclause_opt ::= */ 207, /* (68) onconf ::= */ 207, /* (69) onconf ::= ON CONFLICT resolvetype */ 222, /* (70) orconf ::= */ 222, /* (71) orconf ::= OR resolvetype */ 223, /* (72) resolvetype ::= IGNORE */ 223, /* (73) resolvetype ::= REPLACE */ 181, /* (74) cmd ::= DROP TABLE ifexists fullname */ 225, /* (75) ifexists ::= IF EXISTS */ 225, /* (76) ifexists ::= */ 181, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ 181, /* (78) cmd ::= DROP VIEW ifexists fullname */ 181, /* (79) cmd ::= select */ 195, /* (80) select ::= WITH wqlist selectnowith */ 195, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */ 195, /* (82) select ::= selectnowith */ 227, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */ 230, /* (84) multiselect_op ::= UNION */ 230, /* (85) multiselect_op ::= UNION ALL */ 230, /* (86) multiselect_op ::= EXCEPT|INTERSECT */ 228, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ 228, /* (88) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ 240, /* (89) values ::= VALUES LP nexprlist RP */ 240, /* (90) values ::= values COMMA LP nexprlist RP */ 231, /* (91) distinct ::= DISTINCT */ 231, /* (92) distinct ::= ALL */ 231, /* (93) distinct ::= */ 242, /* (94) sclp ::= */ 232, /* (95) selcollist ::= sclp scanpt expr scanpt as */ 232, /* (96) selcollist ::= sclp scanpt STAR */ 232, /* (97) selcollist ::= sclp scanpt nm DOT STAR */ 243, /* (98) as ::= AS nm */ 243, /* (99) as ::= */ 233, /* (100) from ::= */ 233, /* (101) from ::= FROM seltablist */ 245, /* (102) stl_prefix ::= seltablist joinop */ 245, /* (103) stl_prefix ::= */ 244, /* (104) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ 244, /* (105) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ 244, /* (106) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ 244, /* (107) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ 191, /* (108) dbnm ::= */ 191, /* (109) dbnm ::= DOT nm */ 226, /* (110) fullname ::= nm */ 226, /* (111) fullname ::= nm DOT nm */ 251, /* (112) xfullname ::= nm */ 251, /* (113) xfullname ::= nm DOT nm */ 251, /* (114) xfullname ::= nm DOT nm AS nm */ 251, /* (115) xfullname ::= nm AS nm */ 246, /* (116) joinop ::= COMMA|JOIN */ 246, /* (117) joinop ::= JOIN_KW JOIN */ 246, /* (118) joinop ::= JOIN_KW nm JOIN */ 246, /* (119) joinop ::= JOIN_KW nm nm JOIN */ 248, /* (120) on_opt ::= ON expr */ 248, /* (121) on_opt ::= */ 247, /* (122) indexed_opt ::= */ 247, /* (123) indexed_opt ::= INDEXED BY nm */ 247, /* (124) indexed_opt ::= NOT INDEXED */ 249, /* (125) using_opt ::= USING LP idlist RP */ 249, /* (126) using_opt ::= */ 237, /* (127) orderby_opt ::= */ 237, /* (128) orderby_opt ::= ORDER BY sortlist */ 219, /* (129) sortlist ::= sortlist COMMA expr sortorder */ 219, /* (130) sortlist ::= expr sortorder */ 208, /* (131) sortorder ::= ASC */ 208, /* (132) sortorder ::= DESC */ 208, /* (133) sortorder ::= */ 235, /* (134) groupby_opt ::= */ 235, /* (135) groupby_opt ::= GROUP BY nexprlist */ 236, /* (136) having_opt ::= */ 236, /* (137) having_opt ::= HAVING expr */ 238, /* (138) limit_opt ::= */ 238, /* (139) limit_opt ::= LIMIT expr */ 238, /* (140) limit_opt ::= LIMIT expr OFFSET expr */ 238, /* (141) limit_opt ::= LIMIT expr COMMA expr */ 181, /* (142) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */ 234, /* (143) where_opt ::= */ 234, /* (144) where_opt ::= WHERE expr */ 181, /* (145) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */ 254, /* (146) setlist ::= setlist COMMA nm EQ expr */ 254, /* (147) setlist ::= setlist COMMA LP idlist RP EQ expr */ 254, /* (148) setlist ::= nm EQ expr */ 254, /* (149) setlist ::= LP idlist RP EQ expr */ 181, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ 181, /* (151) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */ 257, /* (152) upsert ::= */ 257, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ 257, /* (154) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ 257, /* (155) upsert ::= ON CONFLICT DO NOTHING */ 255, /* (156) insert_cmd ::= INSERT orconf */ 255, /* (157) insert_cmd ::= REPLACE */ 256, /* (158) idlist_opt ::= */ 256, /* (159) idlist_opt ::= LP idlist RP */ 252, /* (160) idlist ::= idlist COMMA nm */ 252, /* (161) idlist ::= nm */ 206, /* (162) expr ::= LP expr RP */ 206, /* (163) expr ::= ID|INDEXED */ 206, /* (164) expr ::= JOIN_KW */ 206, /* (165) expr ::= nm DOT nm */ 206, /* (166) expr ::= nm DOT nm DOT nm */ 205, /* (167) term ::= NULL|FLOAT|BLOB */ 205, /* (168) term ::= STRING */ 205, /* (169) term ::= INTEGER */ 206, /* (170) expr ::= VARIABLE */ 206, /* (171) expr ::= expr COLLATE ID|STRING */ 206, /* (172) expr ::= CAST LP expr AS typetoken RP */ 206, /* (173) expr ::= ID|INDEXED LP distinct exprlist RP */ 206, /* (174) expr ::= ID|INDEXED LP STAR RP */ 206, /* (175) expr ::= ID|INDEXED LP distinct exprlist RP over_clause */ 206, /* (176) expr ::= ID|INDEXED LP STAR RP over_clause */ 205, /* (177) term ::= CTIME_KW */ 206, /* (178) expr ::= LP nexprlist COMMA expr RP */ 206, /* (179) expr ::= expr AND expr */ 206, /* (180) expr ::= expr OR expr */ 206, /* (181) expr ::= expr LT|GT|GE|LE expr */ 206, /* (182) expr ::= expr EQ|NE expr */ 206, /* (183) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ 206, /* (184) expr ::= expr PLUS|MINUS expr */ 206, /* (185) expr ::= expr STAR|SLASH|REM expr */ 206, /* (186) expr ::= expr CONCAT expr */ 259, /* (187) likeop ::= NOT LIKE_KW|MATCH */ 206, /* (188) expr ::= expr likeop expr */ 206, /* (189) expr ::= expr likeop expr ESCAPE expr */ 206, /* (190) expr ::= expr ISNULL|NOTNULL */ 206, /* (191) expr ::= expr NOT NULL */ 206, /* (192) expr ::= expr IS expr */ 206, /* (193) expr ::= expr IS NOT expr */ 206, /* (194) expr ::= NOT expr */ 206, /* (195) expr ::= BITNOT expr */ 206, /* (196) expr ::= PLUS|MINUS expr */ 260, /* (197) between_op ::= BETWEEN */ 260, /* (198) between_op ::= NOT BETWEEN */ 206, /* (199) expr ::= expr between_op expr AND expr */ 261, /* (200) in_op ::= IN */ 261, /* (201) in_op ::= NOT IN */ 206, /* (202) expr ::= expr in_op LP exprlist RP */ 206, /* (203) expr ::= LP select RP */ 206, /* (204) expr ::= expr in_op LP select RP */ 206, /* (205) expr ::= expr in_op nm dbnm paren_exprlist */ 206, /* (206) expr ::= EXISTS LP select RP */ 206, /* (207) expr ::= CASE case_operand case_exprlist case_else END */ 264, /* (208) case_exprlist ::= case_exprlist WHEN expr THEN expr */ 264, /* (209) case_exprlist ::= WHEN expr THEN expr */ 265, /* (210) case_else ::= ELSE expr */ 265, /* (211) case_else ::= */ 263, /* (212) case_operand ::= expr */ 263, /* (213) case_operand ::= */ 250, /* (214) exprlist ::= */ 241, /* (215) nexprlist ::= nexprlist COMMA expr */ 241, /* (216) nexprlist ::= expr */ 262, /* (217) paren_exprlist ::= */ 262, /* (218) paren_exprlist ::= LP exprlist RP */ 181, /* (219) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ 266, /* (220) uniqueflag ::= UNIQUE */ 266, /* (221) uniqueflag ::= */ 210, /* (222) eidlist_opt ::= */ 210, /* (223) eidlist_opt ::= LP eidlist RP */ 220, /* (224) eidlist ::= eidlist COMMA nm collate sortorder */ 220, /* (225) eidlist ::= nm collate sortorder */ 267, /* (226) collate ::= */ 267, /* (227) collate ::= COLLATE ID|STRING */ 181, /* (228) cmd ::= DROP INDEX ifexists fullname */ 181, /* (229) cmd ::= VACUUM vinto */ 181, /* (230) cmd ::= VACUUM nm vinto */ 268, /* (231) vinto ::= INTO expr */ 268, /* (232) vinto ::= */ 181, /* (233) cmd ::= PRAGMA nm dbnm */ 181, /* (234) cmd ::= PRAGMA nm dbnm EQ nmnum */ 181, /* (235) cmd ::= PRAGMA nm dbnm LP nmnum RP */ 181, /* (236) cmd ::= PRAGMA nm dbnm EQ minus_num */ 181, /* (237) cmd ::= PRAGMA nm dbnm LP minus_num RP */ 201, /* (238) plus_num ::= PLUS INTEGER|FLOAT */ 202, /* (239) minus_num ::= MINUS INTEGER|FLOAT */ 181, /* (240) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ 270, /* (241) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ 272, /* (242) trigger_time ::= BEFORE|AFTER */ 272, /* (243) trigger_time ::= INSTEAD OF */ 272, /* (244) trigger_time ::= */ 273, /* (245) trigger_event ::= DELETE|INSERT */ 273, /* (246) trigger_event ::= UPDATE */ 273, /* (247) trigger_event ::= UPDATE OF idlist */ 275, /* (248) when_clause ::= */ 275, /* (249) when_clause ::= WHEN expr */ 271, /* (250) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ 271, /* (251) trigger_cmd_list ::= trigger_cmd SEMI */ 277, /* (252) trnm ::= nm DOT nm */ 278, /* (253) tridxby ::= INDEXED BY nm */ 278, /* (254) tridxby ::= NOT INDEXED */ 276, /* (255) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */ 276, /* (256) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ 276, /* (257) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ 276, /* (258) trigger_cmd ::= scanpt select scanpt */ 206, /* (259) expr ::= RAISE LP IGNORE RP */ 206, /* (260) expr ::= RAISE LP raisetype COMMA nm RP */ 224, /* (261) raisetype ::= ROLLBACK */ 224, /* (262) raisetype ::= ABORT */ 224, /* (263) raisetype ::= FAIL */ 181, /* (264) cmd ::= DROP TRIGGER ifexists fullname */ 181, /* (265) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ 181, /* (266) cmd ::= DETACH database_kw_opt expr */ 280, /* (267) key_opt ::= */ 280, /* (268) key_opt ::= KEY expr */ 181, /* (269) cmd ::= REINDEX */ 181, /* (270) cmd ::= REINDEX nm dbnm */ 181, /* (271) cmd ::= ANALYZE */ 181, /* (272) cmd ::= ANALYZE nm dbnm */ 181, /* (273) cmd ::= ALTER TABLE fullname RENAME TO nm */ 181, /* (274) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ 281, /* (275) add_column_fullname ::= fullname */ 181, /* (276) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ 181, /* (277) cmd ::= create_vtab */ 181, /* (278) cmd ::= create_vtab LP vtabarglist RP */ 283, /* (279) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ 285, /* (280) vtabarg ::= */ 286, /* (281) vtabargtoken ::= ANY */ 286, /* (282) vtabargtoken ::= lp anylist RP */ 287, /* (283) lp ::= LP */ 253, /* (284) with ::= WITH wqlist */ 253, /* (285) with ::= WITH RECURSIVE wqlist */ 229, /* (286) wqlist ::= nm eidlist_opt AS LP select RP */ 229, /* (287) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */ 289, /* (288) windowdefn_list ::= windowdefn */ 289, /* (289) windowdefn_list ::= windowdefn_list COMMA windowdefn */ 290, /* (290) windowdefn ::= nm AS LP window RP */ 291, /* (291) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ 291, /* (292) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ 291, /* (293) window ::= ORDER BY sortlist frame_opt */ 291, /* (294) window ::= nm ORDER BY sortlist frame_opt */ 291, /* (295) window ::= frame_opt */ 291, /* (296) window ::= nm frame_opt */ 292, /* (297) frame_opt ::= */ 292, /* (298) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ 292, /* (299) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ 295, /* (300) range_or_rows ::= RANGE|ROWS|GROUPS */ 297, /* (301) frame_bound_s ::= frame_bound */ 297, /* (302) frame_bound_s ::= UNBOUNDED PRECEDING */ 298, /* (303) frame_bound_e ::= frame_bound */ 298, /* (304) frame_bound_e ::= UNBOUNDED FOLLOWING */ 296, /* (305) frame_bound ::= expr PRECEDING|FOLLOWING */ 296, /* (306) frame_bound ::= CURRENT ROW */ 299, /* (307) frame_exclude_opt ::= */ 299, /* (308) frame_exclude_opt ::= EXCLUDE frame_exclude */ 300, /* (309) frame_exclude ::= NO OTHERS */ 300, /* (310) frame_exclude ::= CURRENT ROW */ 300, /* (311) frame_exclude ::= GROUP|TIES */ 239, /* (312) window_clause ::= WINDOW windowdefn_list */ 258, /* (313) over_clause ::= filter_opt OVER LP window RP */ 258, /* (314) over_clause ::= filter_opt OVER nm */ 294, /* (315) filter_opt ::= */ 294, /* (316) filter_opt ::= FILTER LP WHERE expr RP */ 176, /* (317) input ::= cmdlist */ 177, /* (318) cmdlist ::= cmdlist ecmd */ 177, /* (319) cmdlist ::= ecmd */ 178, /* (320) ecmd ::= SEMI */ 178, /* (321) ecmd ::= cmdx SEMI */ 178, /* (322) ecmd ::= explain cmdx */ 183, /* (323) trans_opt ::= */ 183, /* (324) trans_opt ::= TRANSACTION */ 183, /* (325) trans_opt ::= TRANSACTION nm */ 185, /* (326) savepoint_opt ::= SAVEPOINT */ 185, /* (327) savepoint_opt ::= */ 181, /* (328) cmd ::= create_table create_table_args */ 192, /* (329) columnlist ::= columnlist COMMA columnname carglist */ 192, /* (330) columnlist ::= columnname carglist */ 184, /* (331) nm ::= ID|INDEXED */ 184, /* (332) nm ::= STRING */ 184, /* (333) nm ::= JOIN_KW */ 198, /* (334) typetoken ::= typename */ 199, /* (335) typename ::= ID|STRING */ 200, /* (336) signed ::= plus_num */ 200, /* (337) signed ::= minus_num */ 197, /* (338) carglist ::= carglist ccons */ 197, /* (339) carglist ::= */ 204, /* (340) ccons ::= NULL onconf */ 193, /* (341) conslist_opt ::= COMMA conslist */ 216, /* (342) conslist ::= conslist tconscomma tcons */ 216, /* (343) conslist ::= tcons */ 217, /* (344) tconscomma ::= */ 221, /* (345) defer_subclause_opt ::= defer_subclause */ 223, /* (346) resolvetype ::= raisetype */ 227, /* (347) selectnowith ::= oneselect */ 228, /* (348) oneselect ::= values */ 242, /* (349) sclp ::= selcollist COMMA */ 243, /* (350) as ::= ID|STRING */ 206, /* (351) expr ::= term */ 259, /* (352) likeop ::= LIKE_KW|MATCH */ 250, /* (353) exprlist ::= nexprlist */ 269, /* (354) nmnum ::= plus_num */ 269, /* (355) nmnum ::= nm */ 269, /* (356) nmnum ::= ON */ 269, /* (357) nmnum ::= DELETE */ 269, /* (358) nmnum ::= DEFAULT */ 201, /* (359) plus_num ::= INTEGER|FLOAT */ 274, /* (360) foreach_clause ::= */ 274, /* (361) foreach_clause ::= FOR EACH ROW */ 277, /* (362) trnm ::= nm */ 278, /* (363) tridxby ::= */ 279, /* (364) database_kw_opt ::= DATABASE */ 279, /* (365) database_kw_opt ::= */ 282, /* (366) kwcolumn_opt ::= */ 282, /* (367) kwcolumn_opt ::= COLUMNKW */ 284, /* (368) vtabarglist ::= vtabarg */ 284, /* (369) vtabarglist ::= vtabarglist COMMA vtabarg */ 285, /* (370) vtabarg ::= vtabarg vtabargtoken */ 288, /* (371) anylist ::= */ 288, /* (372) anylist ::= anylist LP anylist RP */ 288, /* (373) anylist ::= anylist ANY */ 253, /* (374) with ::= */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number ** of symbols on the right-hand side of that rule. */ static const signed char yyRuleInfoNRhs[] = { -1, /* (0) explain ::= EXPLAIN */ -3, /* (1) explain ::= EXPLAIN QUERY PLAN */ |
︙ | ︙ | |||
151246 151247 151248 151249 151250 151251 151252 | case 1: /* explain ::= EXPLAIN QUERY PLAN */ { pParse->explain = 2; } break; case 2: /* cmdx ::= cmd */ { sqlite3FinishCoding(pParse); } break; case 3: /* cmd ::= BEGIN transtype trans_opt */ | | | | | 151308 151309 151310 151311 151312 151313 151314 151315 151316 151317 151318 151319 151320 151321 151322 151323 151324 151325 151326 151327 151328 151329 151330 151331 | case 1: /* explain ::= EXPLAIN QUERY PLAN */ { pParse->explain = 2; } break; case 2: /* cmdx ::= cmd */ { sqlite3FinishCoding(pParse); } break; case 3: /* cmd ::= BEGIN transtype trans_opt */ {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy494);} break; case 4: /* transtype ::= */ {yymsp[1].minor.yy494 = TK_DEFERRED;} break; case 5: /* transtype ::= DEFERRED */ case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); case 300: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==300); {yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-X*/} break; case 8: /* cmd ::= COMMIT|END trans_opt */ case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); {sqlite3EndTransaction(pParse,yymsp[-1].major);} break; case 10: /* cmd ::= SAVEPOINT nm */ { |
︙ | ︙ | |||
151278 151279 151280 151281 151282 151283 151284 | case 12: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ { sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); } break; case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ { | | | | | | | | | | | 151340 151341 151342 151343 151344 151345 151346 151347 151348 151349 151350 151351 151352 151353 151354 151355 151356 151357 151358 151359 151360 151361 151362 151363 151364 151365 151366 151367 151368 151369 151370 151371 151372 151373 151374 151375 151376 151377 151378 151379 151380 151381 151382 151383 151384 151385 151386 151387 151388 151389 151390 151391 151392 151393 151394 | case 12: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ { sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); } break; case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ { sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy494,0,0,yymsp[-2].minor.yy494); } break; case 14: /* createkw ::= CREATE */ {disableLookaside(pParse);} break; case 15: /* ifnotexists ::= */ case 18: /* temp ::= */ yytestcase(yyruleno==18); case 21: /* table_options ::= */ yytestcase(yyruleno==21); case 42: /* autoinc ::= */ yytestcase(yyruleno==42); case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57); case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67); case 76: /* ifexists ::= */ yytestcase(yyruleno==76); case 93: /* distinct ::= */ yytestcase(yyruleno==93); case 226: /* collate ::= */ yytestcase(yyruleno==226); {yymsp[1].minor.yy494 = 0;} break; case 16: /* ifnotexists ::= IF NOT EXISTS */ {yymsp[-2].minor.yy494 = 1;} break; case 17: /* temp ::= TEMP */ case 43: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==43); {yymsp[0].minor.yy494 = 1;} break; case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_options */ { sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy494,0); } break; case 20: /* create_table_args ::= AS select */ { sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy457); sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy457); } break; case 22: /* table_options ::= WITHOUT nm */ { if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ yymsp[-1].minor.yy494 = TF_WithoutRowid | TF_NoVisibleRowid; }else{ yymsp[-1].minor.yy494 = 0; sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); } } break; case 23: /* columnname ::= nm typetoken */ {sqlite3AddColumn(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} break; |
︙ | ︙ | |||
151347 151348 151349 151350 151351 151352 151353 | break; case 27: /* typename ::= typename ID|STRING */ {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} break; case 28: /* scanpt ::= */ { assert( yyLookahead!=YYNOCODE ); | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 151409 151410 151411 151412 151413 151414 151415 151416 151417 151418 151419 151420 151421 151422 151423 151424 151425 151426 151427 151428 151429 151430 151431 151432 151433 151434 151435 151436 151437 151438 151439 151440 151441 151442 151443 151444 151445 151446 151447 151448 151449 151450 151451 151452 151453 151454 151455 151456 151457 151458 151459 151460 151461 151462 151463 151464 151465 151466 151467 151468 151469 151470 151471 151472 151473 151474 151475 151476 151477 151478 151479 151480 151481 151482 151483 151484 151485 151486 151487 151488 151489 151490 151491 151492 151493 151494 151495 151496 151497 151498 151499 151500 151501 151502 151503 151504 151505 151506 151507 151508 151509 151510 151511 151512 151513 151514 151515 151516 151517 151518 151519 151520 151521 151522 151523 151524 151525 151526 151527 151528 151529 151530 151531 151532 151533 151534 151535 151536 151537 151538 151539 151540 151541 151542 151543 151544 151545 151546 151547 151548 151549 151550 151551 151552 151553 151554 151555 151556 151557 151558 151559 151560 151561 151562 151563 151564 151565 151566 151567 151568 151569 151570 151571 151572 151573 151574 151575 151576 151577 151578 151579 151580 151581 151582 151583 151584 151585 151586 151587 151588 151589 151590 151591 151592 151593 151594 151595 151596 151597 151598 151599 151600 151601 151602 151603 151604 151605 151606 151607 151608 151609 151610 151611 151612 151613 151614 151615 151616 151617 151618 151619 151620 151621 151622 151623 151624 151625 151626 151627 151628 151629 151630 151631 151632 151633 151634 151635 151636 151637 151638 151639 151640 151641 151642 151643 151644 151645 151646 151647 151648 151649 151650 151651 151652 151653 151654 151655 151656 151657 151658 151659 151660 151661 151662 151663 151664 151665 151666 151667 151668 151669 151670 151671 151672 151673 151674 151675 151676 151677 151678 151679 151680 151681 151682 151683 151684 151685 151686 151687 151688 151689 151690 151691 151692 151693 151694 151695 151696 151697 151698 151699 151700 151701 151702 151703 151704 151705 151706 151707 151708 151709 151710 151711 151712 151713 151714 151715 151716 151717 151718 151719 151720 151721 151722 151723 151724 151725 151726 151727 151728 151729 151730 151731 151732 151733 151734 151735 151736 151737 151738 151739 151740 151741 151742 151743 151744 151745 151746 151747 151748 151749 151750 151751 151752 151753 151754 151755 151756 151757 151758 151759 151760 151761 151762 151763 151764 151765 151766 151767 151768 151769 151770 151771 151772 151773 151774 151775 151776 151777 151778 151779 151780 151781 151782 151783 151784 151785 151786 151787 151788 151789 151790 151791 151792 151793 151794 151795 151796 151797 151798 151799 151800 151801 151802 151803 151804 151805 151806 151807 151808 151809 151810 151811 151812 151813 151814 151815 151816 151817 151818 151819 151820 151821 151822 151823 151824 151825 151826 151827 151828 151829 151830 151831 151832 151833 151834 151835 151836 151837 151838 151839 151840 151841 151842 151843 151844 151845 151846 151847 151848 151849 151850 151851 151852 151853 151854 151855 151856 151857 151858 151859 151860 151861 151862 151863 151864 151865 151866 151867 151868 151869 151870 151871 151872 151873 151874 151875 151876 151877 151878 151879 151880 151881 151882 151883 151884 151885 151886 151887 151888 151889 151890 151891 151892 151893 151894 151895 151896 151897 151898 151899 151900 151901 151902 151903 151904 151905 151906 151907 151908 151909 151910 151911 151912 151913 151914 151915 151916 151917 151918 151919 151920 151921 151922 151923 151924 151925 151926 151927 151928 151929 151930 151931 151932 151933 151934 151935 151936 151937 151938 151939 151940 151941 151942 151943 151944 151945 151946 151947 151948 151949 151950 151951 151952 151953 151954 151955 151956 151957 151958 151959 151960 151961 151962 151963 151964 151965 151966 151967 151968 151969 151970 151971 151972 151973 151974 151975 151976 151977 151978 151979 151980 151981 151982 151983 151984 151985 151986 151987 151988 151989 151990 151991 151992 151993 151994 151995 151996 151997 151998 151999 152000 152001 152002 152003 152004 152005 152006 152007 152008 152009 152010 152011 152012 152013 152014 152015 152016 152017 152018 152019 152020 152021 152022 152023 152024 152025 152026 152027 152028 152029 152030 152031 152032 152033 152034 152035 152036 152037 152038 152039 152040 152041 152042 152043 152044 152045 152046 152047 152048 152049 152050 152051 152052 152053 152054 152055 152056 152057 152058 152059 152060 152061 152062 152063 152064 152065 152066 152067 152068 152069 152070 152071 152072 152073 152074 152075 152076 152077 152078 152079 152080 152081 152082 152083 152084 152085 152086 152087 152088 152089 152090 152091 152092 152093 152094 152095 152096 152097 152098 152099 152100 152101 152102 152103 152104 152105 152106 152107 152108 152109 152110 152111 152112 152113 152114 152115 152116 152117 152118 152119 152120 152121 152122 152123 152124 152125 152126 152127 152128 152129 152130 152131 152132 152133 152134 152135 152136 152137 152138 152139 152140 152141 152142 152143 152144 152145 152146 152147 152148 152149 152150 152151 152152 152153 152154 152155 152156 152157 152158 152159 152160 152161 152162 152163 152164 152165 152166 152167 152168 152169 152170 152171 152172 152173 152174 152175 152176 152177 152178 152179 152180 152181 152182 152183 152184 152185 152186 152187 152188 152189 152190 152191 152192 152193 152194 152195 152196 152197 152198 152199 152200 152201 152202 152203 152204 152205 152206 152207 152208 152209 152210 152211 152212 152213 152214 152215 152216 152217 152218 152219 152220 152221 152222 152223 152224 152225 152226 152227 152228 152229 152230 152231 152232 152233 152234 152235 152236 152237 152238 152239 152240 152241 152242 152243 152244 152245 152246 152247 152248 152249 152250 152251 152252 152253 152254 152255 152256 152257 152258 152259 152260 152261 152262 152263 152264 152265 152266 152267 152268 152269 152270 152271 152272 152273 152274 152275 152276 152277 152278 152279 152280 152281 152282 152283 152284 152285 152286 152287 152288 152289 152290 152291 152292 152293 152294 152295 152296 152297 152298 152299 152300 152301 152302 152303 152304 152305 152306 152307 152308 152309 152310 152311 152312 152313 152314 152315 152316 152317 152318 152319 152320 152321 | break; case 27: /* typename ::= typename ID|STRING */ {yymsp[-1].minor.yy0.n=yymsp[0].minor.yy0.n+(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} break; case 28: /* scanpt ::= */ { assert( yyLookahead!=YYNOCODE ); yymsp[1].minor.yy294 = yyLookaheadToken.z; } break; case 29: /* ccons ::= CONSTRAINT nm */ case 62: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==62); {pParse->constraintName = yymsp[0].minor.yy0;} break; case 30: /* ccons ::= DEFAULT scanpt term scanpt */ {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy294,yymsp[0].minor.yy294);} break; case 31: /* ccons ::= DEFAULT LP expr RP */ {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} break; case 32: /* ccons ::= DEFAULT PLUS term scanpt */ {sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy524,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy294);} break; case 33: /* ccons ::= DEFAULT MINUS term scanpt */ { Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy524, 0); sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy294); } break; case 34: /* ccons ::= DEFAULT scanpt ID|INDEXED */ { Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0); if( p ){ sqlite3ExprIdToTrueFalse(p); testcase( p->op==TK_TRUEFALSE && sqlite3ExprTruthValue(p) ); } sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); } break; case 35: /* ccons ::= NOT NULL onconf */ {sqlite3AddNotNull(pParse, yymsp[0].minor.yy494);} break; case 36: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy494,yymsp[0].minor.yy494,yymsp[-2].minor.yy494);} break; case 37: /* ccons ::= UNIQUE onconf */ {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy494,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 38: /* ccons ::= CHECK LP expr RP */ {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy524);} break; case 39: /* ccons ::= REFERENCES nm eidlist_opt refargs */ {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy434,yymsp[0].minor.yy494);} break; case 40: /* ccons ::= defer_subclause */ {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy494);} break; case 41: /* ccons ::= COLLATE ID|STRING */ {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} break; case 44: /* refargs ::= */ { yymsp[1].minor.yy494 = OE_None*0x0101; /* EV: R-19803-45884 */} break; case 45: /* refargs ::= refargs refarg */ { yymsp[-1].minor.yy494 = (yymsp[-1].minor.yy494 & ~yymsp[0].minor.yy355.mask) | yymsp[0].minor.yy355.value; } break; case 46: /* refarg ::= MATCH nm */ { yymsp[-1].minor.yy355.value = 0; yymsp[-1].minor.yy355.mask = 0x000000; } break; case 47: /* refarg ::= ON INSERT refact */ { yymsp[-2].minor.yy355.value = 0; yymsp[-2].minor.yy355.mask = 0x000000; } break; case 48: /* refarg ::= ON DELETE refact */ { yymsp[-2].minor.yy355.value = yymsp[0].minor.yy494; yymsp[-2].minor.yy355.mask = 0x0000ff; } break; case 49: /* refarg ::= ON UPDATE refact */ { yymsp[-2].minor.yy355.value = yymsp[0].minor.yy494<<8; yymsp[-2].minor.yy355.mask = 0x00ff00; } break; case 50: /* refact ::= SET NULL */ { yymsp[-1].minor.yy494 = OE_SetNull; /* EV: R-33326-45252 */} break; case 51: /* refact ::= SET DEFAULT */ { yymsp[-1].minor.yy494 = OE_SetDflt; /* EV: R-33326-45252 */} break; case 52: /* refact ::= CASCADE */ { yymsp[0].minor.yy494 = OE_Cascade; /* EV: R-33326-45252 */} break; case 53: /* refact ::= RESTRICT */ { yymsp[0].minor.yy494 = OE_Restrict; /* EV: R-33326-45252 */} break; case 54: /* refact ::= NO ACTION */ { yymsp[-1].minor.yy494 = OE_None; /* EV: R-33326-45252 */} break; case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ {yymsp[-2].minor.yy494 = 0;} break; case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71); case 156: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==156); {yymsp[-1].minor.yy494 = yymsp[0].minor.yy494;} break; case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75); case 198: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==198); case 201: /* in_op ::= NOT IN */ yytestcase(yyruleno==201); case 227: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==227); {yymsp[-1].minor.yy494 = 1;} break; case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ {yymsp[-1].minor.yy494 = 0;} break; case 61: /* tconscomma ::= COMMA */ {pParse->constraintName.n = 0;} break; case 63: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy434,yymsp[0].minor.yy494,yymsp[-2].minor.yy494,0);} break; case 64: /* tcons ::= UNIQUE LP sortlist RP onconf */ {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy434,yymsp[0].minor.yy494,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 65: /* tcons ::= CHECK LP expr RP onconf */ {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy524);} break; case 66: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ { sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy434, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy434, yymsp[-1].minor.yy494); sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy494); } break; case 68: /* onconf ::= */ case 70: /* orconf ::= */ yytestcase(yyruleno==70); {yymsp[1].minor.yy494 = OE_Default;} break; case 69: /* onconf ::= ON CONFLICT resolvetype */ {yymsp[-2].minor.yy494 = yymsp[0].minor.yy494;} break; case 72: /* resolvetype ::= IGNORE */ {yymsp[0].minor.yy494 = OE_Ignore;} break; case 73: /* resolvetype ::= REPLACE */ case 157: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==157); {yymsp[0].minor.yy494 = OE_Replace;} break; case 74: /* cmd ::= DROP TABLE ifexists fullname */ { sqlite3DropTable(pParse, yymsp[0].minor.yy483, 0, yymsp[-1].minor.yy494); } break; case 77: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ { sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy434, yymsp[0].minor.yy457, yymsp[-7].minor.yy494, yymsp[-5].minor.yy494); } break; case 78: /* cmd ::= DROP VIEW ifexists fullname */ { sqlite3DropTable(pParse, yymsp[0].minor.yy483, 1, yymsp[-1].minor.yy494); } break; case 79: /* cmd ::= select */ { SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0}; sqlite3Select(pParse, yymsp[0].minor.yy457, &dest); sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy457); } break; case 80: /* select ::= WITH wqlist selectnowith */ { Select *p = yymsp[0].minor.yy457; if( p ){ p->pWith = yymsp[-1].minor.yy59; parserDoubleLinkSelect(pParse, p); }else{ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy59); } yymsp[-2].minor.yy457 = p; } break; case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */ { Select *p = yymsp[0].minor.yy457; if( p ){ p->pWith = yymsp[-1].minor.yy59; parserDoubleLinkSelect(pParse, p); }else{ sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy59); } yymsp[-3].minor.yy457 = p; } break; case 82: /* select ::= selectnowith */ { Select *p = yymsp[0].minor.yy457; if( p ){ parserDoubleLinkSelect(pParse, p); } yymsp[0].minor.yy457 = p; /*A-overwrites-X*/ } break; case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */ { Select *pRhs = yymsp[0].minor.yy457; Select *pLhs = yymsp[-2].minor.yy457; if( pRhs && pRhs->pPrior ){ SrcList *pFrom; Token x; x.n = 0; parserDoubleLinkSelect(pParse, pRhs); pFrom = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&x,pRhs,0,0); pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); } if( pRhs ){ pRhs->op = (u8)yymsp[-1].minor.yy494; pRhs->pPrior = pLhs; if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; pRhs->selFlags &= ~SF_MultiValue; if( yymsp[-1].minor.yy494!=TK_ALL ) pParse->hasCompound = 1; }else{ sqlite3SelectDelete(pParse->db, pLhs); } yymsp[-2].minor.yy457 = pRhs; } break; case 84: /* multiselect_op ::= UNION */ case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86); {yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-OP*/} break; case 85: /* multiselect_op ::= UNION ALL */ {yymsp[-1].minor.yy494 = TK_ALL;} break; case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ { yymsp[-8].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy434,yymsp[-5].minor.yy483,yymsp[-4].minor.yy524,yymsp[-3].minor.yy434,yymsp[-2].minor.yy524,yymsp[-1].minor.yy434,yymsp[-7].minor.yy494,yymsp[0].minor.yy524); } break; case 88: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ { yymsp[-9].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy434,yymsp[-6].minor.yy483,yymsp[-5].minor.yy524,yymsp[-4].minor.yy434,yymsp[-3].minor.yy524,yymsp[-1].minor.yy434,yymsp[-8].minor.yy494,yymsp[0].minor.yy524); if( yymsp[-9].minor.yy457 ){ yymsp[-9].minor.yy457->pWinDefn = yymsp[-2].minor.yy295; }else{ sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy295); } } break; case 89: /* values ::= VALUES LP nexprlist RP */ { yymsp[-3].minor.yy457 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy434,0,0,0,0,0,SF_Values,0); } break; case 90: /* values ::= values COMMA LP nexprlist RP */ { Select *pRight, *pLeft = yymsp[-4].minor.yy457; pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy434,0,0,0,0,0,SF_Values|SF_MultiValue,0); if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue; if( pRight ){ pRight->op = TK_ALL; pRight->pPrior = pLeft; yymsp[-4].minor.yy457 = pRight; }else{ yymsp[-4].minor.yy457 = pLeft; } } break; case 91: /* distinct ::= DISTINCT */ {yymsp[0].minor.yy494 = SF_Distinct;} break; case 92: /* distinct ::= ALL */ {yymsp[0].minor.yy494 = SF_All;} break; case 94: /* sclp ::= */ case 127: /* orderby_opt ::= */ yytestcase(yyruleno==127); case 134: /* groupby_opt ::= */ yytestcase(yyruleno==134); case 214: /* exprlist ::= */ yytestcase(yyruleno==214); case 217: /* paren_exprlist ::= */ yytestcase(yyruleno==217); case 222: /* eidlist_opt ::= */ yytestcase(yyruleno==222); {yymsp[1].minor.yy434 = 0;} break; case 95: /* selcollist ::= sclp scanpt expr scanpt as */ { yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy434, yymsp[-2].minor.yy524); if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy434, &yymsp[0].minor.yy0, 1); sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy434,yymsp[-3].minor.yy294,yymsp[-1].minor.yy294); } break; case 96: /* selcollist ::= sclp scanpt STAR */ { Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); yymsp[-2].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy434, p); } break; case 97: /* selcollist ::= sclp scanpt nm DOT STAR */ { Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, pDot); } break; case 98: /* as ::= AS nm */ case 109: /* dbnm ::= DOT nm */ yytestcase(yyruleno==109); case 238: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==238); case 239: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==239); {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} break; case 100: /* from ::= */ {yymsp[1].minor.yy483 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy483));} break; case 101: /* from ::= FROM seltablist */ { yymsp[-1].minor.yy483 = yymsp[0].minor.yy483; sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy483); } break; case 102: /* stl_prefix ::= seltablist joinop */ { if( ALWAYS(yymsp[-1].minor.yy483 && yymsp[-1].minor.yy483->nSrc>0) ) yymsp[-1].minor.yy483->a[yymsp[-1].minor.yy483->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy494; } break; case 103: /* stl_prefix ::= */ {yymsp[1].minor.yy483 = 0;} break; case 104: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ { yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62); sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy483, &yymsp[-2].minor.yy0); } break; case 105: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ { yymsp[-8].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy483,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62); sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy483, yymsp[-4].minor.yy434); } break; case 106: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ { yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy457,yymsp[-1].minor.yy524,yymsp[0].minor.yy62); } break; case 107: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ { if( yymsp[-6].minor.yy483==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy524==0 && yymsp[0].minor.yy62==0 ){ yymsp[-6].minor.yy483 = yymsp[-4].minor.yy483; }else if( yymsp[-4].minor.yy483->nSrc==1 ){ yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy524,yymsp[0].minor.yy62); if( yymsp[-6].minor.yy483 ){ struct SrcList_item *pNew = &yymsp[-6].minor.yy483->a[yymsp[-6].minor.yy483->nSrc-1]; struct SrcList_item *pOld = yymsp[-4].minor.yy483->a; pNew->zName = pOld->zName; pNew->zDatabase = pOld->zDatabase; pNew->pSelect = pOld->pSelect; if( pOld->fg.isTabFunc ){ pNew->u1.pFuncArg = pOld->u1.pFuncArg; pOld->u1.pFuncArg = 0; pOld->fg.isTabFunc = 0; pNew->fg.isTabFunc = 1; } pOld->zName = pOld->zDatabase = 0; pOld->pSelect = 0; } sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy483); }else{ Select *pSubquery; sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy483); pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy483,0,0,0,0,SF_NestedFrom,0); yymsp[-6].minor.yy483 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy483,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy524,yymsp[0].minor.yy62); } } break; case 108: /* dbnm ::= */ case 122: /* indexed_opt ::= */ yytestcase(yyruleno==122); {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} break; case 110: /* fullname ::= nm */ { yylhsminor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); if( IN_RENAME_OBJECT && yylhsminor.yy483 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy483->a[0].zName, &yymsp[0].minor.yy0); } yymsp[0].minor.yy483 = yylhsminor.yy483; break; case 111: /* fullname ::= nm DOT nm */ { yylhsminor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); if( IN_RENAME_OBJECT && yylhsminor.yy483 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy483->a[0].zName, &yymsp[0].minor.yy0); } yymsp[-2].minor.yy483 = yylhsminor.yy483; break; case 112: /* xfullname ::= nm */ {yymsp[0].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} break; case 113: /* xfullname ::= nm DOT nm */ {yymsp[-2].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} break; case 114: /* xfullname ::= nm DOT nm AS nm */ { yymsp[-4].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ if( yymsp[-4].minor.yy483 ) yymsp[-4].minor.yy483->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); } break; case 115: /* xfullname ::= nm AS nm */ { yymsp[-2].minor.yy483 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ if( yymsp[-2].minor.yy483 ) yymsp[-2].minor.yy483->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); } break; case 116: /* joinop ::= COMMA|JOIN */ { yymsp[0].minor.yy494 = JT_INNER; } break; case 117: /* joinop ::= JOIN_KW JOIN */ {yymsp[-1].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} break; case 118: /* joinop ::= JOIN_KW nm JOIN */ {yymsp[-2].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} break; case 119: /* joinop ::= JOIN_KW nm nm JOIN */ {yymsp[-3].minor.yy494 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} break; case 120: /* on_opt ::= ON expr */ case 137: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==137); case 144: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==144); case 210: /* case_else ::= ELSE expr */ yytestcase(yyruleno==210); case 231: /* vinto ::= INTO expr */ yytestcase(yyruleno==231); {yymsp[-1].minor.yy524 = yymsp[0].minor.yy524;} break; case 121: /* on_opt ::= */ case 136: /* having_opt ::= */ yytestcase(yyruleno==136); case 138: /* limit_opt ::= */ yytestcase(yyruleno==138); case 143: /* where_opt ::= */ yytestcase(yyruleno==143); case 211: /* case_else ::= */ yytestcase(yyruleno==211); case 213: /* case_operand ::= */ yytestcase(yyruleno==213); case 232: /* vinto ::= */ yytestcase(yyruleno==232); {yymsp[1].minor.yy524 = 0;} break; case 123: /* indexed_opt ::= INDEXED BY nm */ {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} break; case 124: /* indexed_opt ::= NOT INDEXED */ {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} break; case 125: /* using_opt ::= USING LP idlist RP */ {yymsp[-3].minor.yy62 = yymsp[-1].minor.yy62;} break; case 126: /* using_opt ::= */ case 158: /* idlist_opt ::= */ yytestcase(yyruleno==158); {yymsp[1].minor.yy62 = 0;} break; case 128: /* orderby_opt ::= ORDER BY sortlist */ case 135: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==135); {yymsp[-2].minor.yy434 = yymsp[0].minor.yy434;} break; case 129: /* sortlist ::= sortlist COMMA expr sortorder */ { yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy434,yymsp[-1].minor.yy524); sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy434,yymsp[0].minor.yy494); } break; case 130: /* sortlist ::= expr sortorder */ { yymsp[-1].minor.yy434 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy524); /*A-overwrites-Y*/ sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy434,yymsp[0].minor.yy494); } break; case 131: /* sortorder ::= ASC */ {yymsp[0].minor.yy494 = SQLITE_SO_ASC;} break; case 132: /* sortorder ::= DESC */ {yymsp[0].minor.yy494 = SQLITE_SO_DESC;} break; case 133: /* sortorder ::= */ {yymsp[1].minor.yy494 = SQLITE_SO_UNDEFINED;} break; case 139: /* limit_opt ::= LIMIT expr */ {yymsp[-1].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy524,0);} break; case 140: /* limit_opt ::= LIMIT expr OFFSET expr */ {yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);} break; case 141: /* limit_opt ::= LIMIT expr COMMA expr */ {yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy524,yymsp[-2].minor.yy524);} break; case 142: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt */ { sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy483, &yymsp[-1].minor.yy0); sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy483,yymsp[0].minor.yy524,0,0); } break; case 145: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */ { sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy483, &yymsp[-3].minor.yy0); sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy434,"set list"); sqlite3Update(pParse,yymsp[-4].minor.yy483,yymsp[-1].minor.yy434,yymsp[0].minor.yy524,yymsp[-5].minor.yy494,0,0,0); } break; case 146: /* setlist ::= setlist COMMA nm EQ expr */ { yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy434, yymsp[0].minor.yy524); sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy434, &yymsp[-2].minor.yy0, 1); } break; case 147: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ { yymsp[-6].minor.yy434 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy434, yymsp[-3].minor.yy62, yymsp[0].minor.yy524); } break; case 148: /* setlist ::= nm EQ expr */ { yylhsminor.yy434 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy524); sqlite3ExprListSetName(pParse, yylhsminor.yy434, &yymsp[-2].minor.yy0, 1); } yymsp[-2].minor.yy434 = yylhsminor.yy434; break; case 149: /* setlist ::= LP idlist RP EQ expr */ { yymsp[-4].minor.yy434 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy62, yymsp[0].minor.yy524); } break; case 150: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ { sqlite3Insert(pParse, yymsp[-3].minor.yy483, yymsp[-1].minor.yy457, yymsp[-2].minor.yy62, yymsp[-5].minor.yy494, yymsp[0].minor.yy136); } break; case 151: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */ { sqlite3Insert(pParse, yymsp[-3].minor.yy483, 0, yymsp[-2].minor.yy62, yymsp[-5].minor.yy494, 0); } break; case 152: /* upsert ::= */ { yymsp[1].minor.yy136 = 0; } break; case 153: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ { yymsp[-10].minor.yy136 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy434,yymsp[-5].minor.yy524,yymsp[-1].minor.yy434,yymsp[0].minor.yy524);} break; case 154: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ { yymsp[-7].minor.yy136 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy434,yymsp[-2].minor.yy524,0,0); } break; case 155: /* upsert ::= ON CONFLICT DO NOTHING */ { yymsp[-3].minor.yy136 = sqlite3UpsertNew(pParse->db,0,0,0,0); } break; case 159: /* idlist_opt ::= LP idlist RP */ {yymsp[-2].minor.yy62 = yymsp[-1].minor.yy62;} break; case 160: /* idlist ::= idlist COMMA nm */ {yymsp[-2].minor.yy62 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy62,&yymsp[0].minor.yy0);} break; case 161: /* idlist ::= nm */ {yymsp[0].minor.yy62 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} break; case 162: /* expr ::= LP expr RP */ {yymsp[-2].minor.yy524 = yymsp[-1].minor.yy524;} break; case 163: /* expr ::= ID|INDEXED */ case 164: /* expr ::= JOIN_KW */ yytestcase(yyruleno==164); {yymsp[0].minor.yy524=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; case 165: /* expr ::= nm DOT nm */ { Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); if( IN_RENAME_OBJECT ){ sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0); sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0); } yylhsminor.yy524 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); } yymsp[-2].minor.yy524 = yylhsminor.yy524; break; case 166: /* expr ::= nm DOT nm DOT nm */ { Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1); Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3); if( IN_RENAME_OBJECT ){ sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0); sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0); } yylhsminor.yy524 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); } yymsp[-4].minor.yy524 = yylhsminor.yy524; break; case 167: /* term ::= NULL|FLOAT|BLOB */ case 168: /* term ::= STRING */ yytestcase(yyruleno==168); {yymsp[0].minor.yy524=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; case 169: /* term ::= INTEGER */ { yylhsminor.yy524 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); } yymsp[0].minor.yy524 = yylhsminor.yy524; break; case 170: /* expr ::= VARIABLE */ { if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ u32 n = yymsp[0].minor.yy0.n; yymsp[0].minor.yy524 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy524, n); }else{ /* When doing a nested parse, one can include terms in an expression ** that look like this: #1 #2 ... These terms refer to registers ** in the virtual machine. #N is the N-th register. */ Token t = yymsp[0].minor.yy0; /*A-overwrites-X*/ assert( t.n>=2 ); if( pParse->nested==0 ){ sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); yymsp[0].minor.yy524 = 0; }else{ yymsp[0].minor.yy524 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); if( yymsp[0].minor.yy524 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy524->iTable); } } } break; case 171: /* expr ::= expr COLLATE ID|STRING */ { yymsp[-2].minor.yy524 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy524, &yymsp[0].minor.yy0, 1); } break; case 172: /* expr ::= CAST LP expr AS typetoken RP */ { yymsp[-5].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy524, yymsp[-3].minor.yy524, 0); } break; case 173: /* expr ::= ID|INDEXED LP distinct exprlist RP */ { yylhsminor.yy524 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy434, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy494); } yymsp[-4].minor.yy524 = yylhsminor.yy524; break; case 174: /* expr ::= ID|INDEXED LP STAR RP */ { yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); } yymsp[-3].minor.yy524 = yylhsminor.yy524; break; case 175: /* expr ::= ID|INDEXED LP distinct exprlist RP over_clause */ { yylhsminor.yy524 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy434, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy494); sqlite3WindowAttach(pParse, yylhsminor.yy524, yymsp[0].minor.yy295); } yymsp[-5].minor.yy524 = yylhsminor.yy524; break; case 176: /* expr ::= ID|INDEXED LP STAR RP over_clause */ { yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); sqlite3WindowAttach(pParse, yylhsminor.yy524, yymsp[0].minor.yy295); } yymsp[-4].minor.yy524 = yylhsminor.yy524; break; case 177: /* term ::= CTIME_KW */ { yylhsminor.yy524 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); } yymsp[0].minor.yy524 = yylhsminor.yy524; break; case 178: /* expr ::= LP nexprlist COMMA expr RP */ { ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy434, yymsp[-1].minor.yy524); yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); if( yymsp[-4].minor.yy524 ){ yymsp[-4].minor.yy524->x.pList = pList; }else{ sqlite3ExprListDelete(pParse->db, pList); } } break; case 179: /* expr ::= expr AND expr */ case 180: /* expr ::= expr OR expr */ yytestcase(yyruleno==180); case 181: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==181); case 182: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==182); case 183: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==183); case 184: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==184); case 185: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==185); case 186: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==186); {yymsp[-2].minor.yy524=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy524,yymsp[0].minor.yy524);} break; case 187: /* likeop ::= NOT LIKE_KW|MATCH */ {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} break; case 188: /* expr ::= expr likeop expr */ { ExprList *pList; int bNot = yymsp[-1].minor.yy0.n & 0x80000000; yymsp[-1].minor.yy0.n &= 0x7fffffff; pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy524); pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy524); yymsp[-2].minor.yy524 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); if( bNot ) yymsp[-2].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy524, 0); if( yymsp[-2].minor.yy524 ) yymsp[-2].minor.yy524->flags |= EP_InfixFunc; } break; case 189: /* expr ::= expr likeop expr ESCAPE expr */ { ExprList *pList; int bNot = yymsp[-3].minor.yy0.n & 0x80000000; yymsp[-3].minor.yy0.n &= 0x7fffffff; pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524); pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy524); pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy524); yymsp[-4].minor.yy524 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); if( bNot ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0); if( yymsp[-4].minor.yy524 ) yymsp[-4].minor.yy524->flags |= EP_InfixFunc; } break; case 190: /* expr ::= expr ISNULL|NOTNULL */ {yymsp[-1].minor.yy524 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy524,0);} break; case 191: /* expr ::= expr NOT NULL */ {yymsp[-2].minor.yy524 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy524,0);} break; case 192: /* expr ::= expr IS expr */ { yymsp[-2].minor.yy524 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy524,yymsp[0].minor.yy524); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy524, yymsp[-2].minor.yy524, TK_ISNULL); } break; case 193: /* expr ::= expr IS NOT expr */ { yymsp[-3].minor.yy524 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy524,yymsp[0].minor.yy524); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy524, yymsp[-3].minor.yy524, TK_NOTNULL); } break; case 194: /* expr ::= NOT expr */ case 195: /* expr ::= BITNOT expr */ yytestcase(yyruleno==195); {yymsp[-1].minor.yy524 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy524, 0);/*A-overwrites-B*/} break; case 196: /* expr ::= PLUS|MINUS expr */ { yymsp[-1].minor.yy524 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy524, 0); /*A-overwrites-B*/ } break; case 197: /* between_op ::= BETWEEN */ case 200: /* in_op ::= IN */ yytestcase(yyruleno==200); {yymsp[0].minor.yy494 = 0;} break; case 199: /* expr ::= expr between_op expr AND expr */ { ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524); pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy524); yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy524, 0); if( yymsp[-4].minor.yy524 ){ yymsp[-4].minor.yy524->x.pList = pList; }else{ sqlite3ExprListDelete(pParse->db, pList); } if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0); } break; case 202: /* expr ::= expr in_op LP exprlist RP */ { if( yymsp[-1].minor.yy434==0 ){ /* Expressions of the form ** ** expr1 IN () ** expr1 NOT IN () ** ** simplify to constants 0 (false) and 1 (true), respectively, ** regardless of the value of expr1. */ if( IN_RENAME_OBJECT==0 ){ sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy524); yymsp[-4].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy494],1); } }else if( yymsp[-1].minor.yy434->nExpr==1 ){ /* Expressions of the form: ** ** expr1 IN (?1) ** expr1 NOT IN (?2) ** ** with exactly one value on the RHS can be simplified to something ** like this: ** ** expr1 == ?1 ** expr1 <> ?2 ** ** But, the RHS of the == or <> is marked with the EP_Generic flag ** so that it may not contribute to the computation of comparison ** affinity or the collating sequence to use for comparison. Otherwise, ** the semantics would be subtly different from IN or NOT IN. */ Expr *pRHS = yymsp[-1].minor.yy434->a[0].pExpr; yymsp[-1].minor.yy434->a[0].pExpr = 0; sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy434); /* pRHS cannot be NULL because a malloc error would have been detected ** before now and control would have never reached this point */ if( ALWAYS(pRHS) ){ pRHS->flags &= ~EP_Collate; pRHS->flags |= EP_Generic; } yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, yymsp[-3].minor.yy494 ? TK_NE : TK_EQ, yymsp[-4].minor.yy524, pRHS); }else{ yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0); if( yymsp[-4].minor.yy524 ){ yymsp[-4].minor.yy524->x.pList = yymsp[-1].minor.yy434; sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy524); }else{ sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy434); } if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0); } } break; case 203: /* expr ::= LP select RP */ { yymsp[-2].minor.yy524 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy524, yymsp[-1].minor.yy457); } break; case 204: /* expr ::= expr in_op LP select RP */ { yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0); sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy524, yymsp[-1].minor.yy457); if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0); } break; case 205: /* expr ::= expr in_op nm dbnm paren_exprlist */ { SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); if( yymsp[0].minor.yy434 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy434); yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy524, 0); sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy524, pSelect); if( yymsp[-3].minor.yy494 ) yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy524, 0); } break; case 206: /* expr ::= EXISTS LP select RP */ { Expr *p; p = yymsp[-3].minor.yy524 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy457); } break; case 207: /* expr ::= CASE case_operand case_exprlist case_else END */ { yymsp[-4].minor.yy524 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy524, 0); if( yymsp[-4].minor.yy524 ){ yymsp[-4].minor.yy524->x.pList = yymsp[-1].minor.yy524 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy434,yymsp[-1].minor.yy524) : yymsp[-2].minor.yy434; sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy524); }else{ sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy434); sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy524); } } break; case 208: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, yymsp[-2].minor.yy524); yymsp[-4].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy434, yymsp[0].minor.yy524); } break; case 209: /* case_exprlist ::= WHEN expr THEN expr */ { yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy524); yymsp[-3].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy434, yymsp[0].minor.yy524); } break; case 212: /* case_operand ::= expr */ {yymsp[0].minor.yy524 = yymsp[0].minor.yy524; /*A-overwrites-X*/} break; case 215: /* nexprlist ::= nexprlist COMMA expr */ {yymsp[-2].minor.yy434 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy434,yymsp[0].minor.yy524);} break; case 216: /* nexprlist ::= expr */ {yymsp[0].minor.yy434 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy524); /*A-overwrites-Y*/} break; case 218: /* paren_exprlist ::= LP exprlist RP */ case 223: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==223); {yymsp[-2].minor.yy434 = yymsp[-1].minor.yy434;} break; case 219: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy434, yymsp[-10].minor.yy494, &yymsp[-11].minor.yy0, yymsp[0].minor.yy524, SQLITE_SO_ASC, yymsp[-8].minor.yy494, SQLITE_IDXTYPE_APPDEF); if( IN_RENAME_OBJECT && pParse->pNewIndex ){ sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); } } break; case 220: /* uniqueflag ::= UNIQUE */ case 262: /* raisetype ::= ABORT */ yytestcase(yyruleno==262); {yymsp[0].minor.yy494 = OE_Abort;} break; case 221: /* uniqueflag ::= */ {yymsp[1].minor.yy494 = OE_None;} break; case 224: /* eidlist ::= eidlist COMMA nm collate sortorder */ { yymsp[-4].minor.yy434 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy434, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy494, yymsp[0].minor.yy494); } break; case 225: /* eidlist ::= nm collate sortorder */ { yymsp[-2].minor.yy434 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy494, yymsp[0].minor.yy494); /*A-overwrites-Y*/ } break; case 228: /* cmd ::= DROP INDEX ifexists fullname */ {sqlite3DropIndex(pParse, yymsp[0].minor.yy483, yymsp[-1].minor.yy494);} break; case 229: /* cmd ::= VACUUM vinto */ {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy524);} break; case 230: /* cmd ::= VACUUM nm vinto */ {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy524);} break; case 233: /* cmd ::= PRAGMA nm dbnm */ {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} break; case 234: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} break; |
︙ | ︙ | |||
152267 152268 152269 152270 152271 152272 152273 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} break; case 240: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; | | | | | | | | | | | | | | | | 152329 152330 152331 152332 152333 152334 152335 152336 152337 152338 152339 152340 152341 152342 152343 152344 152345 152346 152347 152348 152349 152350 152351 152352 152353 152354 152355 152356 152357 152358 152359 152360 152361 152362 152363 152364 152365 152366 152367 152368 152369 152370 152371 152372 152373 152374 152375 152376 152377 152378 152379 152380 152381 152382 152383 152384 152385 152386 152387 | {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} break; case 240: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy455, &all); } break; case 241: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy494, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.yy483, yymsp[0].minor.yy524, yymsp[-10].minor.yy494, yymsp[-8].minor.yy494); yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ } break; case 242: /* trigger_time ::= BEFORE|AFTER */ { yymsp[0].minor.yy494 = yymsp[0].major; /*A-overwrites-X*/ } break; case 243: /* trigger_time ::= INSTEAD OF */ { yymsp[-1].minor.yy494 = TK_INSTEAD;} break; case 244: /* trigger_time ::= */ { yymsp[1].minor.yy494 = TK_BEFORE; } break; case 245: /* trigger_event ::= DELETE|INSERT */ case 246: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==246); {yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;} break; case 247: /* trigger_event ::= UPDATE OF idlist */ {yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy62;} break; case 248: /* when_clause ::= */ case 267: /* key_opt ::= */ yytestcase(yyruleno==267); case 315: /* filter_opt ::= */ yytestcase(yyruleno==315); { yymsp[1].minor.yy524 = 0; } break; case 249: /* when_clause ::= WHEN expr */ case 268: /* key_opt ::= KEY expr */ yytestcase(yyruleno==268); { yymsp[-1].minor.yy524 = yymsp[0].minor.yy524; } break; case 250: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { assert( yymsp[-2].minor.yy455!=0 ); yymsp[-2].minor.yy455->pLast->pNext = yymsp[-1].minor.yy455; yymsp[-2].minor.yy455->pLast = yymsp[-1].minor.yy455; } break; case 251: /* trigger_cmd_list ::= trigger_cmd SEMI */ { assert( yymsp[-1].minor.yy455!=0 ); yymsp[-1].minor.yy455->pLast = yymsp[-1].minor.yy455; } break; case 252: /* trnm ::= nm DOT nm */ { yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; sqlite3ErrorMsg(pParse, "qualified table names are not allowed on INSERT, UPDATE, and DELETE " |
︙ | ︙ | |||
152337 152338 152339 152340 152341 152342 152343 | { sqlite3ErrorMsg(pParse, "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; case 255: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 152399 152400 152401 152402 152403 152404 152405 152406 152407 152408 152409 152410 152411 152412 152413 152414 152415 152416 152417 152418 152419 152420 152421 152422 152423 152424 152425 152426 152427 152428 152429 152430 152431 152432 152433 152434 152435 152436 152437 152438 152439 152440 152441 152442 152443 152444 152445 152446 152447 152448 152449 152450 152451 152452 152453 152454 152455 152456 152457 152458 152459 152460 152461 152462 152463 152464 152465 152466 152467 152468 152469 152470 152471 152472 152473 152474 152475 152476 152477 152478 152479 152480 152481 152482 152483 152484 152485 152486 152487 152488 152489 152490 152491 152492 152493 152494 152495 152496 152497 152498 152499 152500 152501 152502 152503 152504 152505 152506 152507 152508 152509 152510 152511 152512 152513 152514 152515 152516 152517 152518 152519 152520 152521 152522 152523 152524 152525 152526 152527 152528 152529 152530 152531 152532 152533 152534 152535 152536 152537 152538 152539 152540 152541 152542 152543 152544 152545 152546 152547 152548 152549 152550 152551 152552 152553 152554 152555 152556 152557 152558 152559 152560 152561 152562 152563 152564 152565 152566 152567 152568 152569 152570 152571 152572 152573 152574 152575 152576 152577 152578 152579 152580 152581 152582 152583 152584 152585 152586 152587 152588 152589 152590 152591 152592 152593 152594 152595 152596 152597 152598 152599 152600 152601 152602 152603 152604 152605 152606 152607 152608 152609 152610 152611 152612 152613 152614 152615 152616 152617 152618 152619 152620 152621 152622 152623 152624 152625 152626 152627 152628 152629 152630 152631 152632 152633 152634 152635 152636 152637 152638 152639 152640 152641 152642 152643 152644 152645 152646 152647 152648 152649 152650 152651 152652 152653 152654 152655 152656 152657 152658 152659 | { sqlite3ErrorMsg(pParse, "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; case 255: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */ {yylhsminor.yy455 = sqlite3TriggerUpdateStep(pParse, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy434, yymsp[-1].minor.yy524, yymsp[-6].minor.yy494, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy294);} yymsp[-7].minor.yy455 = yylhsminor.yy455; break; case 256: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ { yylhsminor.yy455 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy62,yymsp[-2].minor.yy457,yymsp[-6].minor.yy494,yymsp[-1].minor.yy136,yymsp[-7].minor.yy294,yymsp[0].minor.yy294);/*yylhsminor.yy455-overwrites-yymsp[-6].minor.yy494*/ } yymsp[-7].minor.yy455 = yylhsminor.yy455; break; case 257: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ {yylhsminor.yy455 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy524, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy294);} yymsp[-5].minor.yy455 = yylhsminor.yy455; break; case 258: /* trigger_cmd ::= scanpt select scanpt */ {yylhsminor.yy455 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy457, yymsp[-2].minor.yy294, yymsp[0].minor.yy294); /*yylhsminor.yy455-overwrites-yymsp[-1].minor.yy457*/} yymsp[-2].minor.yy455 = yylhsminor.yy455; break; case 259: /* expr ::= RAISE LP IGNORE RP */ { yymsp[-3].minor.yy524 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); if( yymsp[-3].minor.yy524 ){ yymsp[-3].minor.yy524->affinity = OE_Ignore; } } break; case 260: /* expr ::= RAISE LP raisetype COMMA nm RP */ { yymsp[-5].minor.yy524 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); if( yymsp[-5].minor.yy524 ) { yymsp[-5].minor.yy524->affinity = (char)yymsp[-3].minor.yy494; } } break; case 261: /* raisetype ::= ROLLBACK */ {yymsp[0].minor.yy494 = OE_Rollback;} break; case 263: /* raisetype ::= FAIL */ {yymsp[0].minor.yy494 = OE_Fail;} break; case 264: /* cmd ::= DROP TRIGGER ifexists fullname */ { sqlite3DropTrigger(pParse,yymsp[0].minor.yy483,yymsp[-1].minor.yy494); } break; case 265: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { sqlite3Attach(pParse, yymsp[-3].minor.yy524, yymsp[-1].minor.yy524, yymsp[0].minor.yy524); } break; case 266: /* cmd ::= DETACH database_kw_opt expr */ { sqlite3Detach(pParse, yymsp[0].minor.yy524); } break; case 269: /* cmd ::= REINDEX */ {sqlite3Reindex(pParse, 0, 0);} break; case 270: /* cmd ::= REINDEX nm dbnm */ {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; case 271: /* cmd ::= ANALYZE */ {sqlite3Analyze(pParse, 0, 0);} break; case 272: /* cmd ::= ANALYZE nm dbnm */ {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; case 273: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy483,&yymsp[0].minor.yy0); } break; case 274: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ { yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); } break; case 275: /* add_column_fullname ::= fullname */ { disableLookaside(pParse); sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy483); } break; case 276: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ { sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy483, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; case 277: /* cmd ::= create_vtab */ {sqlite3VtabFinishParse(pParse,0);} break; case 278: /* cmd ::= create_vtab LP vtabarglist RP */ {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} break; case 279: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy494); } break; case 280: /* vtabarg ::= */ {sqlite3VtabArgInit(pParse);} break; case 281: /* vtabargtoken ::= ANY */ case 282: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==282); case 283: /* lp ::= LP */ yytestcase(yyruleno==283); {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} break; case 284: /* with ::= WITH wqlist */ case 285: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==285); { sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); } break; case 286: /* wqlist ::= nm eidlist_opt AS LP select RP */ { yymsp[-5].minor.yy59 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy434, yymsp[-1].minor.yy457); /*A-overwrites-X*/ } break; case 287: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */ { yymsp[-7].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy59, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy434, yymsp[-1].minor.yy457); } break; case 288: /* windowdefn_list ::= windowdefn */ { yylhsminor.yy295 = yymsp[0].minor.yy295; } yymsp[0].minor.yy295 = yylhsminor.yy295; break; case 289: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { assert( yymsp[0].minor.yy295!=0 ); sqlite3WindowChain(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy295); yymsp[0].minor.yy295->pNextWin = yymsp[-2].minor.yy295; yylhsminor.yy295 = yymsp[0].minor.yy295; } yymsp[-2].minor.yy295 = yylhsminor.yy295; break; case 290: /* windowdefn ::= nm AS LP window RP */ { if( ALWAYS(yymsp[-1].minor.yy295) ){ yymsp[-1].minor.yy295->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); } yylhsminor.yy295 = yymsp[-1].minor.yy295; } yymsp[-4].minor.yy295 = yylhsminor.yy295; break; case 291: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { yymsp[-4].minor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy434, yymsp[-1].minor.yy434, 0); } break; case 292: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, yymsp[-2].minor.yy434, yymsp[-1].minor.yy434, &yymsp[-5].minor.yy0); } yymsp[-5].minor.yy295 = yylhsminor.yy295; break; case 293: /* window ::= ORDER BY sortlist frame_opt */ { yymsp[-3].minor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, yymsp[-1].minor.yy434, 0); } break; case 294: /* window ::= nm ORDER BY sortlist frame_opt */ { yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, yymsp[-1].minor.yy434, &yymsp[-4].minor.yy0); } yymsp[-4].minor.yy295 = yylhsminor.yy295; break; case 295: /* window ::= frame_opt */ { yylhsminor.yy295 = yymsp[0].minor.yy295; } yymsp[0].minor.yy295 = yylhsminor.yy295; break; case 296: /* window ::= nm frame_opt */ { yylhsminor.yy295 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy295, 0, 0, &yymsp[-1].minor.yy0); } yymsp[-1].minor.yy295 = yylhsminor.yy295; break; case 297: /* frame_opt ::= */ { yymsp[1].minor.yy295 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); } break; case 298: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { yylhsminor.yy295 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy494, yymsp[-1].minor.yy201.eType, yymsp[-1].minor.yy201.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy238); } yymsp[-2].minor.yy295 = yylhsminor.yy295; break; case 299: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { yylhsminor.yy295 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy494, yymsp[-3].minor.yy201.eType, yymsp[-3].minor.yy201.pExpr, yymsp[-1].minor.yy201.eType, yymsp[-1].minor.yy201.pExpr, yymsp[0].minor.yy238); } yymsp[-5].minor.yy295 = yylhsminor.yy295; break; case 301: /* frame_bound_s ::= frame_bound */ case 303: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==303); {yylhsminor.yy201 = yymsp[0].minor.yy201;} yymsp[0].minor.yy201 = yylhsminor.yy201; break; case 302: /* frame_bound_s ::= UNBOUNDED PRECEDING */ case 304: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==304); case 306: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==306); {yylhsminor.yy201.eType = yymsp[-1].major; yylhsminor.yy201.pExpr = 0;} yymsp[-1].minor.yy201 = yylhsminor.yy201; break; case 305: /* frame_bound ::= expr PRECEDING|FOLLOWING */ {yylhsminor.yy201.eType = yymsp[0].major; yylhsminor.yy201.pExpr = yymsp[-1].minor.yy524;} yymsp[-1].minor.yy201 = yylhsminor.yy201; break; case 307: /* frame_exclude_opt ::= */ {yymsp[1].minor.yy238 = 0;} break; case 308: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ {yymsp[-1].minor.yy238 = yymsp[0].minor.yy238;} break; case 309: /* frame_exclude ::= NO OTHERS */ case 310: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==310); {yymsp[-1].minor.yy238 = yymsp[-1].major; /*A-overwrites-X*/} break; case 311: /* frame_exclude ::= GROUP|TIES */ {yymsp[0].minor.yy238 = yymsp[0].major; /*A-overwrites-X*/} break; case 312: /* window_clause ::= WINDOW windowdefn_list */ { yymsp[-1].minor.yy295 = yymsp[0].minor.yy295; } break; case 313: /* over_clause ::= filter_opt OVER LP window RP */ { yylhsminor.yy295 = yymsp[-1].minor.yy295; assert( yylhsminor.yy295!=0 ); yylhsminor.yy295->pFilter = yymsp[-4].minor.yy524; } yymsp[-4].minor.yy295 = yylhsminor.yy295; break; case 314: /* over_clause ::= filter_opt OVER nm */ { yylhsminor.yy295 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( yylhsminor.yy295 ){ yylhsminor.yy295->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); yylhsminor.yy295->pFilter = yymsp[-2].minor.yy524; }else{ sqlite3ExprDelete(pParse->db, yymsp[-2].minor.yy524); } } yymsp[-2].minor.yy295 = yylhsminor.yy295; break; case 316: /* filter_opt ::= FILTER LP WHERE expr RP */ { yymsp[-4].minor.yy524 = yymsp[-1].minor.yy524; } break; default: /* (317) input ::= cmdlist */ yytestcase(yyruleno==317); /* (318) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==318); /* (319) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=319); /* (320) ecmd ::= SEMI */ yytestcase(yyruleno==320); /* (321) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==321); |
︙ | ︙ | |||
211376 211377 211378 211379 211380 211381 211382 | if( p1->pLeaf==0 ){ /* If p1 is at EOF */ iRes = i2; }else if( p2->pLeaf==0 ){ /* If p2 is at EOF */ iRes = i1; }else{ int res = fts5BufferCompare(&p1->term, &p2->term); if( res==0 ){ | | | | 211438 211439 211440 211441 211442 211443 211444 211445 211446 211447 211448 211449 211450 211451 211452 211453 | if( p1->pLeaf==0 ){ /* If p1 is at EOF */ iRes = i2; }else if( p2->pLeaf==0 ){ /* If p2 is at EOF */ iRes = i1; }else{ int res = fts5BufferCompare(&p1->term, &p2->term); if( res==0 ){ assert_nc( i2>i1 ); assert_nc( i2!=0 ); pRes->bTermEq = 1; if( p1->iRowid==p2->iRowid ){ p1->bDel = p2->bDel; return i2; } res = ((p1->iRowid > p2->iRowid)==pIter->bRev) ? -1 : +1; } |
︙ | ︙ | |||
217955 217956 217957 217958 217959 217960 217961 | static void fts5SourceIdFunc( sqlite3_context *pCtx, /* Function call context */ int nArg, /* Number of args */ sqlite3_value **apUnused /* Function arguments */ ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); | | | 218017 218018 218019 218020 218021 218022 218023 218024 218025 218026 218027 218028 218029 218030 218031 | static void fts5SourceIdFunc( sqlite3_context *pCtx, /* Function call context */ int nArg, /* Number of args */ sqlite3_value **apUnused /* Function arguments */ ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); sqlite3_result_text(pCtx, "fts5: 2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f", -1, SQLITE_TRANSIENT); } /* ** Return true if zName is the extension on one of the shadow tables used ** by this module. */ static int fts5ShadowName(const char *zName){ |
︙ | ︙ | |||
222719 222720 222721 222722 222723 222724 222725 | #endif return rc; } #endif /* SQLITE_CORE */ #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */ /************** End of stmt.c ************************************************/ | | | | 222781 222782 222783 222784 222785 222786 222787 222788 222789 222790 222791 222792 222793 222794 | #endif return rc; } #endif /* SQLITE_CORE */ #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */ /************** End of stmt.c ************************************************/ #if __LINE__!=222788 #undef SQLITE_SOURCE_ID #define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35alt2" #endif /* Return the source-id for this library */ SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; } /************************** End of sqlite3.c ******************************/ |
Changes to src/sqlite3.h.
︙ | ︙ | |||
121 122 123 124 125 126 127 | ** ** See also: [sqlite3_libversion()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ #define SQLITE_VERSION "3.28.0" #define SQLITE_VERSION_NUMBER 3028000 | | | 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | ** ** See also: [sqlite3_libversion()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ #define SQLITE_VERSION "3.28.0" #define SQLITE_VERSION_NUMBER 3028000 #define SQLITE_SOURCE_ID "2019-04-10 18:29:40 f294cfc173c5653ef161dbff63b7838dbccdcad797f5163c49b3173f9f35ab0f" /* ** CAPI3REF: Run-Time Library Version Numbers ** KEYWORDS: sqlite3_version sqlite3_sourceid ** ** These interfaces provide the same information as the [SQLITE_VERSION], ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros |
︙ | ︙ | |||
4976 4977 4978 4979 4980 4981 4982 | ** datatype of the value ** <tr><td><b>sqlite3_value_numeric_type </b> ** <td>→ <td>Best numeric datatype of the value ** <tr><td><b>sqlite3_value_nochange </b> ** <td>→ <td>True if the column is unchanged in an UPDATE ** against a virtual table. ** <tr><td><b>sqlite3_value_frombind </b> | | | 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 | ** datatype of the value ** <tr><td><b>sqlite3_value_numeric_type </b> ** <td>→ <td>Best numeric datatype of the value ** <tr><td><b>sqlite3_value_nochange </b> ** <td>→ <td>True if the column is unchanged in an UPDATE ** against a virtual table. ** <tr><td><b>sqlite3_value_frombind </b> ** <td>→ <td>True if value originated from a [bound parameter] ** </table></blockquote> ** ** <b>Details:</b> ** ** These routines extract type, size, and content information from ** [protected sqlite3_value] objects. Protected sqlite3_value objects ** are used to pass parameter information into implementation of |
︙ | ︙ |