Fossil SCM
Update the built-in SQLite to the latest 3.36.0 beta, including the bug fix to the authorizer callback such that it uses SQLITE_DROP_INDEX, not SQLITE_DROP_TEMP_INDEX, for attached indexes.
Commit
a9917d4fc7da32d3479fe949bdf2f7aeb3f1aa9cf3e93b168c204e3dad7625c4
Parent
b18c06e87a49718…
2 files changed
+22
-8
+1
-1
+22
-8
| --- src/sqlite3.c | ||
| +++ src/sqlite3.c | ||
| @@ -1205,11 +1205,11 @@ | ||
| 1205 | 1205 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 1206 | 1206 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 1207 | 1207 | */ |
| 1208 | 1208 | #define SQLITE_VERSION "3.36.0" |
| 1209 | 1209 | #define SQLITE_VERSION_NUMBER 3036000 |
| 1210 | -#define SQLITE_SOURCE_ID "2021-06-14 14:52:27 3ddfe9ae55e6d0d922fbc209768b2ac4a4792f0f63af9a8fb53d66a4b8f1d94b" | |
| 1210 | +#define SQLITE_SOURCE_ID "2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9ef70" | |
| 1211 | 1211 | |
| 1212 | 1212 | /* |
| 1213 | 1213 | ** CAPI3REF: Run-Time Library Version Numbers |
| 1214 | 1214 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 1215 | 1215 | ** |
| @@ -18801,10 +18801,11 @@ | ||
| 18801 | 18801 | #define SF_View 0x0200000 /* SELECT statement is a view */ |
| 18802 | 18802 | #define SF_NoopOrderBy 0x0400000 /* ORDER BY is ignored for this query */ |
| 18803 | 18803 | #define SF_UpdateFrom 0x0800000 /* Statement is an UPDATE...FROM */ |
| 18804 | 18804 | #define SF_PushDown 0x1000000 /* SELECT has be modified by push-down opt */ |
| 18805 | 18805 | #define SF_MultiPart 0x2000000 /* Has multiple incompatible PARTITIONs */ |
| 18806 | +#define SF_CopyCte 0x4000000 /* SELECT statement is a copy of a CTE */ | |
| 18806 | 18807 | |
| 18807 | 18808 | /* |
| 18808 | 18809 | ** The results of a SELECT can be distributed in several ways, as defined |
| 18809 | 18810 | ** by one of the following macros. The "SRT" prefix means "SELECT Result |
| 18810 | 18811 | ** Type". |
| @@ -108238,11 +108239,15 @@ | ||
| 108238 | 108239 | */ |
| 108239 | 108240 | static int renameUnmapSelectCb(Walker *pWalker, Select *p){ |
| 108240 | 108241 | Parse *pParse = pWalker->pParse; |
| 108241 | 108242 | int i; |
| 108242 | 108243 | if( pParse->nErr ) return WRC_Abort; |
| 108243 | - if( p->selFlags & SF_View ) return WRC_Prune; | |
| 108244 | + if( p->selFlags & (SF_View|SF_CopyCte) ){ | |
| 108245 | + testcase( pSelect->selFlags & SF_View ); | |
| 108246 | + testcase( pSelect->selFlags & SF_CopyCte ); | |
| 108247 | + return WRC_Prune; | |
| 108248 | + } | |
| 108244 | 108249 | if( ALWAYS(p->pEList) ){ |
| 108245 | 108250 | ExprList *pList = p->pEList; |
| 108246 | 108251 | for(i=0; i<pList->nExpr; i++){ |
| 108247 | 108252 | if( pList->a[i].zEName && pList->a[i].eEName==ENAME_NAME ){ |
| 108248 | 108253 | sqlite3RenameTokenRemap(pParse, 0, (void*)pList->a[i].zEName); |
| @@ -108346,11 +108351,15 @@ | ||
| 108346 | 108351 | ** This is a Walker select callback. It does nothing. It is only required |
| 108347 | 108352 | ** because without a dummy callback, sqlite3WalkExpr() and similar do not |
| 108348 | 108353 | ** descend into sub-select statements. |
| 108349 | 108354 | */ |
| 108350 | 108355 | static int renameColumnSelectCb(Walker *pWalker, Select *p){ |
| 108351 | - if( p->selFlags & SF_View ) return WRC_Prune; | |
| 108356 | + if( p->selFlags & (SF_View|SF_CopyCte) ){ | |
| 108357 | + testcase( pSelect->selFlags & SF_View ); | |
| 108358 | + testcase( pSelect->selFlags & SF_CopyCte ); | |
| 108359 | + return WRC_Prune; | |
| 108360 | + } | |
| 108352 | 108361 | renameWalkWith(pWalker, p); |
| 108353 | 108362 | return WRC_Continue; |
| 108354 | 108363 | } |
| 108355 | 108364 | |
| 108356 | 108365 | /* |
| @@ -108982,11 +108991,15 @@ | ||
| 108982 | 108991 | */ |
| 108983 | 108992 | static int renameTableSelectCb(Walker *pWalker, Select *pSelect){ |
| 108984 | 108993 | int i; |
| 108985 | 108994 | RenameCtx *p = pWalker->u.pRename; |
| 108986 | 108995 | SrcList *pSrc = pSelect->pSrc; |
| 108987 | - if( pSelect->selFlags & SF_View ) return WRC_Prune; | |
| 108996 | + if( pSelect->selFlags & (SF_View|SF_CopyCte) ){ | |
| 108997 | + testcase( pSelect->selFlags & SF_View ); | |
| 108998 | + testcase( pSelect->selFlags & SF_CopyCte ); | |
| 108999 | + return WRC_Prune; | |
| 109000 | + } | |
| 108988 | 109001 | if( NEVER(pSrc==0) ){ |
| 108989 | 109002 | assert( pWalker->pParse->db->mallocFailed ); |
| 108990 | 109003 | return WRC_Abort; |
| 108991 | 109004 | } |
| 108992 | 109005 | for(i=0; i<pSrc->nSrc; i++){ |
| @@ -116724,11 +116737,11 @@ | ||
| 116724 | 116737 | const char *zDb = db->aDb[iDb].zDbSName; |
| 116725 | 116738 | const char *zTab = SCHEMA_TABLE(iDb); |
| 116726 | 116739 | if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){ |
| 116727 | 116740 | goto exit_drop_index; |
| 116728 | 116741 | } |
| 116729 | - if( !OMIT_TEMPDB && iDb ) code = SQLITE_DROP_TEMP_INDEX; | |
| 116742 | + if( !OMIT_TEMPDB && iDb==1 ) code = SQLITE_DROP_TEMP_INDEX; | |
| 116730 | 116743 | if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){ |
| 116731 | 116744 | goto exit_drop_index; |
| 116732 | 116745 | } |
| 116733 | 116746 | } |
| 116734 | 116747 | #endif |
| @@ -137252,10 +137265,11 @@ | ||
| 137252 | 137265 | pTab->iPKey = -1; |
| 137253 | 137266 | pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); |
| 137254 | 137267 | pTab->tabFlags |= TF_Ephemeral | TF_NoVisibleRowid; |
| 137255 | 137268 | pFrom->pSelect = sqlite3SelectDup(db, pCte->pSelect, 0); |
| 137256 | 137269 | if( db->mallocFailed ) return 2; |
| 137270 | + pFrom->pSelect->selFlags |= SF_CopyCte; | |
| 137257 | 137271 | assert( pFrom->pSelect ); |
| 137258 | 137272 | pFrom->fg.isCte = 1; |
| 137259 | 137273 | pFrom->u2.pCteUse = pCteUse; |
| 137260 | 137274 | pCteUse->nUse++; |
| 137261 | 137275 | if( pCteUse->nUse>=2 && pCteUse->eM10d==M10d_Any ){ |
| @@ -230554,11 +230568,11 @@ | ||
| 230554 | 230568 | int nArg, /* Number of args */ |
| 230555 | 230569 | sqlite3_value **apUnused /* Function arguments */ |
| 230556 | 230570 | ){ |
| 230557 | 230571 | assert( nArg==0 ); |
| 230558 | 230572 | UNUSED_PARAM2(nArg, apUnused); |
| 230559 | - sqlite3_result_text(pCtx, "fts5: 2021-06-14 11:20:30 7068f1f69b4feef49260e80902e6bdae47c21a0daa16c96ed1a0984dd1f14cdc", -1, SQLITE_TRANSIENT); | |
| 230573 | + sqlite3_result_text(pCtx, "fts5: 2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9ef70", -1, SQLITE_TRANSIENT); | |
| 230560 | 230574 | } |
| 230561 | 230575 | |
| 230562 | 230576 | /* |
| 230563 | 230577 | ** Return true if zName is the extension on one of the shadow tables used |
| 230564 | 230578 | ** by this module. |
| @@ -235480,12 +235494,12 @@ | ||
| 235480 | 235494 | } |
| 235481 | 235495 | #endif /* SQLITE_CORE */ |
| 235482 | 235496 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */ |
| 235483 | 235497 | |
| 235484 | 235498 | /************** End of stmt.c ************************************************/ |
| 235485 | -#if __LINE__!=235485 | |
| 235499 | +#if __LINE__!=235499 | |
| 235486 | 235500 | #undef SQLITE_SOURCE_ID |
| 235487 | -#define SQLITE_SOURCE_ID "2021-06-14 14:52:27 3ddfe9ae55e6d0d922fbc209768b2ac4a4792f0f63af9a8fb53d66a4b8f1alt2" | |
| 235501 | +#define SQLITE_SOURCE_ID "2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9alt2" | |
| 235488 | 235502 | #endif |
| 235489 | 235503 | /* Return the source-id for this library */ |
| 235490 | 235504 | SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; } |
| 235491 | 235505 | /************************** End of sqlite3.c ******************************/ |
| 235492 | 235506 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -1205,11 +1205,11 @@ | |
| 1205 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 1206 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 1207 | */ |
| 1208 | #define SQLITE_VERSION "3.36.0" |
| 1209 | #define SQLITE_VERSION_NUMBER 3036000 |
| 1210 | #define SQLITE_SOURCE_ID "2021-06-14 14:52:27 3ddfe9ae55e6d0d922fbc209768b2ac4a4792f0f63af9a8fb53d66a4b8f1d94b" |
| 1211 | |
| 1212 | /* |
| 1213 | ** CAPI3REF: Run-Time Library Version Numbers |
| 1214 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 1215 | ** |
| @@ -18801,10 +18801,11 @@ | |
| 18801 | #define SF_View 0x0200000 /* SELECT statement is a view */ |
| 18802 | #define SF_NoopOrderBy 0x0400000 /* ORDER BY is ignored for this query */ |
| 18803 | #define SF_UpdateFrom 0x0800000 /* Statement is an UPDATE...FROM */ |
| 18804 | #define SF_PushDown 0x1000000 /* SELECT has be modified by push-down opt */ |
| 18805 | #define SF_MultiPart 0x2000000 /* Has multiple incompatible PARTITIONs */ |
| 18806 | |
| 18807 | /* |
| 18808 | ** The results of a SELECT can be distributed in several ways, as defined |
| 18809 | ** by one of the following macros. The "SRT" prefix means "SELECT Result |
| 18810 | ** Type". |
| @@ -108238,11 +108239,15 @@ | |
| 108238 | */ |
| 108239 | static int renameUnmapSelectCb(Walker *pWalker, Select *p){ |
| 108240 | Parse *pParse = pWalker->pParse; |
| 108241 | int i; |
| 108242 | if( pParse->nErr ) return WRC_Abort; |
| 108243 | if( p->selFlags & SF_View ) return WRC_Prune; |
| 108244 | if( ALWAYS(p->pEList) ){ |
| 108245 | ExprList *pList = p->pEList; |
| 108246 | for(i=0; i<pList->nExpr; i++){ |
| 108247 | if( pList->a[i].zEName && pList->a[i].eEName==ENAME_NAME ){ |
| 108248 | sqlite3RenameTokenRemap(pParse, 0, (void*)pList->a[i].zEName); |
| @@ -108346,11 +108351,15 @@ | |
| 108346 | ** This is a Walker select callback. It does nothing. It is only required |
| 108347 | ** because without a dummy callback, sqlite3WalkExpr() and similar do not |
| 108348 | ** descend into sub-select statements. |
| 108349 | */ |
| 108350 | static int renameColumnSelectCb(Walker *pWalker, Select *p){ |
| 108351 | if( p->selFlags & SF_View ) return WRC_Prune; |
| 108352 | renameWalkWith(pWalker, p); |
| 108353 | return WRC_Continue; |
| 108354 | } |
| 108355 | |
| 108356 | /* |
| @@ -108982,11 +108991,15 @@ | |
| 108982 | */ |
| 108983 | static int renameTableSelectCb(Walker *pWalker, Select *pSelect){ |
| 108984 | int i; |
| 108985 | RenameCtx *p = pWalker->u.pRename; |
| 108986 | SrcList *pSrc = pSelect->pSrc; |
| 108987 | if( pSelect->selFlags & SF_View ) return WRC_Prune; |
| 108988 | if( NEVER(pSrc==0) ){ |
| 108989 | assert( pWalker->pParse->db->mallocFailed ); |
| 108990 | return WRC_Abort; |
| 108991 | } |
| 108992 | for(i=0; i<pSrc->nSrc; i++){ |
| @@ -116724,11 +116737,11 @@ | |
| 116724 | const char *zDb = db->aDb[iDb].zDbSName; |
| 116725 | const char *zTab = SCHEMA_TABLE(iDb); |
| 116726 | if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){ |
| 116727 | goto exit_drop_index; |
| 116728 | } |
| 116729 | if( !OMIT_TEMPDB && iDb ) code = SQLITE_DROP_TEMP_INDEX; |
| 116730 | if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){ |
| 116731 | goto exit_drop_index; |
| 116732 | } |
| 116733 | } |
| 116734 | #endif |
| @@ -137252,10 +137265,11 @@ | |
| 137252 | pTab->iPKey = -1; |
| 137253 | pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); |
| 137254 | pTab->tabFlags |= TF_Ephemeral | TF_NoVisibleRowid; |
| 137255 | pFrom->pSelect = sqlite3SelectDup(db, pCte->pSelect, 0); |
| 137256 | if( db->mallocFailed ) return 2; |
| 137257 | assert( pFrom->pSelect ); |
| 137258 | pFrom->fg.isCte = 1; |
| 137259 | pFrom->u2.pCteUse = pCteUse; |
| 137260 | pCteUse->nUse++; |
| 137261 | if( pCteUse->nUse>=2 && pCteUse->eM10d==M10d_Any ){ |
| @@ -230554,11 +230568,11 @@ | |
| 230554 | int nArg, /* Number of args */ |
| 230555 | sqlite3_value **apUnused /* Function arguments */ |
| 230556 | ){ |
| 230557 | assert( nArg==0 ); |
| 230558 | UNUSED_PARAM2(nArg, apUnused); |
| 230559 | sqlite3_result_text(pCtx, "fts5: 2021-06-14 11:20:30 7068f1f69b4feef49260e80902e6bdae47c21a0daa16c96ed1a0984dd1f14cdc", -1, SQLITE_TRANSIENT); |
| 230560 | } |
| 230561 | |
| 230562 | /* |
| 230563 | ** Return true if zName is the extension on one of the shadow tables used |
| 230564 | ** by this module. |
| @@ -235480,12 +235494,12 @@ | |
| 235480 | } |
| 235481 | #endif /* SQLITE_CORE */ |
| 235482 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */ |
| 235483 | |
| 235484 | /************** End of stmt.c ************************************************/ |
| 235485 | #if __LINE__!=235485 |
| 235486 | #undef SQLITE_SOURCE_ID |
| 235487 | #define SQLITE_SOURCE_ID "2021-06-14 14:52:27 3ddfe9ae55e6d0d922fbc209768b2ac4a4792f0f63af9a8fb53d66a4b8f1alt2" |
| 235488 | #endif |
| 235489 | /* Return the source-id for this library */ |
| 235490 | SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; } |
| 235491 | /************************** End of sqlite3.c ******************************/ |
| 235492 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -1205,11 +1205,11 @@ | |
| 1205 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 1206 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 1207 | */ |
| 1208 | #define SQLITE_VERSION "3.36.0" |
| 1209 | #define SQLITE_VERSION_NUMBER 3036000 |
| 1210 | #define SQLITE_SOURCE_ID "2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9ef70" |
| 1211 | |
| 1212 | /* |
| 1213 | ** CAPI3REF: Run-Time Library Version Numbers |
| 1214 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 1215 | ** |
| @@ -18801,10 +18801,11 @@ | |
| 18801 | #define SF_View 0x0200000 /* SELECT statement is a view */ |
| 18802 | #define SF_NoopOrderBy 0x0400000 /* ORDER BY is ignored for this query */ |
| 18803 | #define SF_UpdateFrom 0x0800000 /* Statement is an UPDATE...FROM */ |
| 18804 | #define SF_PushDown 0x1000000 /* SELECT has be modified by push-down opt */ |
| 18805 | #define SF_MultiPart 0x2000000 /* Has multiple incompatible PARTITIONs */ |
| 18806 | #define SF_CopyCte 0x4000000 /* SELECT statement is a copy of a CTE */ |
| 18807 | |
| 18808 | /* |
| 18809 | ** The results of a SELECT can be distributed in several ways, as defined |
| 18810 | ** by one of the following macros. The "SRT" prefix means "SELECT Result |
| 18811 | ** Type". |
| @@ -108238,11 +108239,15 @@ | |
| 108239 | */ |
| 108240 | static int renameUnmapSelectCb(Walker *pWalker, Select *p){ |
| 108241 | Parse *pParse = pWalker->pParse; |
| 108242 | int i; |
| 108243 | if( pParse->nErr ) return WRC_Abort; |
| 108244 | if( p->selFlags & (SF_View|SF_CopyCte) ){ |
| 108245 | testcase( pSelect->selFlags & SF_View ); |
| 108246 | testcase( pSelect->selFlags & SF_CopyCte ); |
| 108247 | return WRC_Prune; |
| 108248 | } |
| 108249 | if( ALWAYS(p->pEList) ){ |
| 108250 | ExprList *pList = p->pEList; |
| 108251 | for(i=0; i<pList->nExpr; i++){ |
| 108252 | if( pList->a[i].zEName && pList->a[i].eEName==ENAME_NAME ){ |
| 108253 | sqlite3RenameTokenRemap(pParse, 0, (void*)pList->a[i].zEName); |
| @@ -108346,11 +108351,15 @@ | |
| 108351 | ** This is a Walker select callback. It does nothing. It is only required |
| 108352 | ** because without a dummy callback, sqlite3WalkExpr() and similar do not |
| 108353 | ** descend into sub-select statements. |
| 108354 | */ |
| 108355 | static int renameColumnSelectCb(Walker *pWalker, Select *p){ |
| 108356 | if( p->selFlags & (SF_View|SF_CopyCte) ){ |
| 108357 | testcase( pSelect->selFlags & SF_View ); |
| 108358 | testcase( pSelect->selFlags & SF_CopyCte ); |
| 108359 | return WRC_Prune; |
| 108360 | } |
| 108361 | renameWalkWith(pWalker, p); |
| 108362 | return WRC_Continue; |
| 108363 | } |
| 108364 | |
| 108365 | /* |
| @@ -108982,11 +108991,15 @@ | |
| 108991 | */ |
| 108992 | static int renameTableSelectCb(Walker *pWalker, Select *pSelect){ |
| 108993 | int i; |
| 108994 | RenameCtx *p = pWalker->u.pRename; |
| 108995 | SrcList *pSrc = pSelect->pSrc; |
| 108996 | if( pSelect->selFlags & (SF_View|SF_CopyCte) ){ |
| 108997 | testcase( pSelect->selFlags & SF_View ); |
| 108998 | testcase( pSelect->selFlags & SF_CopyCte ); |
| 108999 | return WRC_Prune; |
| 109000 | } |
| 109001 | if( NEVER(pSrc==0) ){ |
| 109002 | assert( pWalker->pParse->db->mallocFailed ); |
| 109003 | return WRC_Abort; |
| 109004 | } |
| 109005 | for(i=0; i<pSrc->nSrc; i++){ |
| @@ -116724,11 +116737,11 @@ | |
| 116737 | const char *zDb = db->aDb[iDb].zDbSName; |
| 116738 | const char *zTab = SCHEMA_TABLE(iDb); |
| 116739 | if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){ |
| 116740 | goto exit_drop_index; |
| 116741 | } |
| 116742 | if( !OMIT_TEMPDB && iDb==1 ) code = SQLITE_DROP_TEMP_INDEX; |
| 116743 | if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){ |
| 116744 | goto exit_drop_index; |
| 116745 | } |
| 116746 | } |
| 116747 | #endif |
| @@ -137252,10 +137265,11 @@ | |
| 137265 | pTab->iPKey = -1; |
| 137266 | pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); |
| 137267 | pTab->tabFlags |= TF_Ephemeral | TF_NoVisibleRowid; |
| 137268 | pFrom->pSelect = sqlite3SelectDup(db, pCte->pSelect, 0); |
| 137269 | if( db->mallocFailed ) return 2; |
| 137270 | pFrom->pSelect->selFlags |= SF_CopyCte; |
| 137271 | assert( pFrom->pSelect ); |
| 137272 | pFrom->fg.isCte = 1; |
| 137273 | pFrom->u2.pCteUse = pCteUse; |
| 137274 | pCteUse->nUse++; |
| 137275 | if( pCteUse->nUse>=2 && pCteUse->eM10d==M10d_Any ){ |
| @@ -230554,11 +230568,11 @@ | |
| 230568 | int nArg, /* Number of args */ |
| 230569 | sqlite3_value **apUnused /* Function arguments */ |
| 230570 | ){ |
| 230571 | assert( nArg==0 ); |
| 230572 | UNUSED_PARAM2(nArg, apUnused); |
| 230573 | sqlite3_result_text(pCtx, "fts5: 2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9ef70", -1, SQLITE_TRANSIENT); |
| 230574 | } |
| 230575 | |
| 230576 | /* |
| 230577 | ** Return true if zName is the extension on one of the shadow tables used |
| 230578 | ** by this module. |
| @@ -235480,12 +235494,12 @@ | |
| 235494 | } |
| 235495 | #endif /* SQLITE_CORE */ |
| 235496 | #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */ |
| 235497 | |
| 235498 | /************** End of stmt.c ************************************************/ |
| 235499 | #if __LINE__!=235499 |
| 235500 | #undef SQLITE_SOURCE_ID |
| 235501 | #define SQLITE_SOURCE_ID "2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9alt2" |
| 235502 | #endif |
| 235503 | /* Return the source-id for this library */ |
| 235504 | SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; } |
| 235505 | /************************** End of sqlite3.c ******************************/ |
| 235506 |
+1
-1
| --- src/sqlite3.h | ||
| +++ src/sqlite3.h | ||
| @@ -123,11 +123,11 @@ | ||
| 123 | 123 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 124 | 124 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 125 | 125 | */ |
| 126 | 126 | #define SQLITE_VERSION "3.36.0" |
| 127 | 127 | #define SQLITE_VERSION_NUMBER 3036000 |
| 128 | -#define SQLITE_SOURCE_ID "2021-06-14 14:52:27 3ddfe9ae55e6d0d922fbc209768b2ac4a4792f0f63af9a8fb53d66a4b8f1d94b" | |
| 128 | +#define SQLITE_SOURCE_ID "2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9ef70" | |
| 129 | 129 | |
| 130 | 130 | /* |
| 131 | 131 | ** CAPI3REF: Run-Time Library Version Numbers |
| 132 | 132 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 133 | 133 | ** |
| 134 | 134 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -123,11 +123,11 @@ | |
| 123 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 124 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 125 | */ |
| 126 | #define SQLITE_VERSION "3.36.0" |
| 127 | #define SQLITE_VERSION_NUMBER 3036000 |
| 128 | #define SQLITE_SOURCE_ID "2021-06-14 14:52:27 3ddfe9ae55e6d0d922fbc209768b2ac4a4792f0f63af9a8fb53d66a4b8f1d94b" |
| 129 | |
| 130 | /* |
| 131 | ** CAPI3REF: Run-Time Library Version Numbers |
| 132 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 133 | ** |
| 134 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -123,11 +123,11 @@ | |
| 123 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 124 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 125 | */ |
| 126 | #define SQLITE_VERSION "3.36.0" |
| 127 | #define SQLITE_VERSION_NUMBER 3036000 |
| 128 | #define SQLITE_SOURCE_ID "2021-06-14 20:41:20 e5a5acd6006133c5da4a7dd79726dbaa41c0d60ebeda890f848a6aafe5f9ef70" |
| 129 | |
| 130 | /* |
| 131 | ** CAPI3REF: Run-Time Library Version Numbers |
| 132 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 133 | ** |
| 134 |