Fossil SCM
Update the built-in SQLite to the version 3.8.3.1 release candidate.
Commit
34aef781b5d47c172b0bdbdae50944d0bba8a545
Parent
0681b39b8246257…
2 files changed
+11
-7
+2
-2
+11
-7
| --- src/sqlite3.c | ||
| +++ src/sqlite3.c | ||
| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | /****************************************************************************** |
| 2 | 2 | ** This file is an amalgamation of many separate C source files from SQLite |
| 3 | -** version 3.8.3. By combining all the individual C code files into this | |
| 3 | +** version 3.8.3.1. By combining all the individual C code files into this | |
| 4 | 4 | ** single large file, the entire code can be compiled as a single translation |
| 5 | 5 | ** unit. This allows many compilers to do optimizations that would not be |
| 6 | 6 | ** possible if the files were compiled separately. Performance improvements |
| 7 | 7 | ** of 5% or more are commonly seen when SQLite is compiled as a single |
| 8 | 8 | ** translation unit. |
| @@ -133,13 +133,13 @@ | ||
| 133 | 133 | ** |
| 134 | 134 | ** See also: [sqlite3_libversion()], |
| 135 | 135 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 136 | 136 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 137 | 137 | */ |
| 138 | -#define SQLITE_VERSION "3.8.3" | |
| 138 | +#define SQLITE_VERSION "3.8.3.1" | |
| 139 | 139 | #define SQLITE_VERSION_NUMBER 3008003 |
| 140 | -#define SQLITE_SOURCE_ID "2014-01-27 15:02:07 be1acb610f7e594b417dd8409b7a7aa8f3af5f77" | |
| 140 | +#define SQLITE_SOURCE_ID "2014-02-11 03:55:33 3111df71b2a6bef08cf37c6e350f5accc506f9eb" | |
| 141 | 141 | |
| 142 | 142 | /* |
| 143 | 143 | ** CAPI3REF: Run-Time Library Version Numbers |
| 144 | 144 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 145 | 145 | ** |
| @@ -41074,11 +41074,11 @@ | ||
| 41074 | 41074 | ** Find a page in the hash table given its page number. Return |
| 41075 | 41075 | ** a pointer to the page or NULL if the requested page is not |
| 41076 | 41076 | ** already in memory. |
| 41077 | 41077 | */ |
| 41078 | 41078 | static PgHdr *pager_lookup(Pager *pPager, Pgno pgno){ |
| 41079 | - PgHdr *p; /* Return value */ | |
| 41079 | + PgHdr *p = 0; /* Return value */ | |
| 41080 | 41080 | |
| 41081 | 41081 | /* It is not possible for a call to PcacheFetch() with createFlag==0 to |
| 41082 | 41082 | ** fail, since no attempt to allocate dynamic memory will be made. |
| 41083 | 41083 | */ |
| 41084 | 41084 | (void)sqlite3PcacheFetch(pPager->pPCache, pgno, 0, &p); |
| @@ -77453,10 +77453,11 @@ | ||
| 77453 | 77453 | pNew->selFlags = p->selFlags & ~SF_UsesEphemeral; |
| 77454 | 77454 | pNew->pRightmost = 0; |
| 77455 | 77455 | pNew->addrOpenEphm[0] = -1; |
| 77456 | 77456 | pNew->addrOpenEphm[1] = -1; |
| 77457 | 77457 | pNew->addrOpenEphm[2] = -1; |
| 77458 | + pNew->nSelectRow = p->nSelectRow; | |
| 77458 | 77459 | pNew->pWith = withDup(db, p->pWith); |
| 77459 | 77460 | return pNew; |
| 77460 | 77461 | } |
| 77461 | 77462 | #else |
| 77462 | 77463 | SQLITE_PRIVATE Select *sqlite3SelectDup(sqlite3 *db, Select *p, int flags){ |
| @@ -89483,11 +89484,12 @@ | ||
| 89483 | 89484 | /* Populate the OLD.* pseudo-table register array. These values will be |
| 89484 | 89485 | ** used by any BEFORE and AFTER triggers that exist. */ |
| 89485 | 89486 | sqlite3VdbeAddOp2(v, OP_Copy, iPk, iOld); |
| 89486 | 89487 | for(iCol=0; iCol<pTab->nCol; iCol++){ |
| 89487 | 89488 | testcase( mask!=0xffffffff && iCol==31 ); |
| 89488 | - if( mask==0xffffffff || (mask & MASKBIT32(iCol))!=0 ){ | |
| 89489 | + testcase( mask!=0xffffffff && iCol==32 ); | |
| 89490 | + if( mask==0xffffffff || (iCol<=31 && (mask & MASKBIT32(iCol))!=0) ){ | |
| 89489 | 89491 | sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, iCol, iOld+iCol+1); |
| 89490 | 89492 | } |
| 89491 | 89493 | } |
| 89492 | 89494 | |
| 89493 | 89495 | /* Invoke BEFORE DELETE trigger programs. */ |
| @@ -112137,11 +112139,13 @@ | ||
| 112137 | 112139 | int iTerm; |
| 112138 | 112140 | for(iTerm=0; iTerm<pWC->nTerm; iTerm++){ |
| 112139 | 112141 | Expr *pExpr = pWC->a[iTerm].pExpr; |
| 112140 | 112142 | if( &pWC->a[iTerm] == pTerm ) continue; |
| 112141 | 112143 | if( ExprHasProperty(pExpr, EP_FromJoin) ) continue; |
| 112142 | - if( pWC->a[iTerm].wtFlags & (TERM_ORINFO) ) continue; | |
| 112144 | + testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO ); | |
| 112145 | + testcase( pWC->a[iTerm].wtFlags & TERM_VIRTUAL ); | |
| 112146 | + if( pWC->a[iTerm].wtFlags & (TERM_ORINFO|TERM_VIRTUAL) ) continue; | |
| 112143 | 112147 | if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue; |
| 112144 | 112148 | pExpr = sqlite3ExprDup(db, pExpr, 0); |
| 112145 | 112149 | pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr); |
| 112146 | 112150 | } |
| 112147 | 112151 | if( pAndExpr ){ |
| @@ -122703,11 +122707,11 @@ | ||
| 122703 | 122707 | ** database files might have arbitrary corruption. Setting the flag during |
| 122704 | 122708 | ** testing causes certain assert() statements in the code to be activated |
| 122705 | 122709 | ** that demonstrat invariants on well-formed database files. |
| 122706 | 122710 | */ |
| 122707 | 122711 | case SQLITE_TESTCTRL_NEVER_CORRUPT: { |
| 122708 | - sqlite3Config.neverCorrupt = va_arg(ap, int); | |
| 122712 | + sqlite3GlobalConfig.neverCorrupt = va_arg(ap, int); | |
| 122709 | 122713 | break; |
| 122710 | 122714 | } |
| 122711 | 122715 | |
| 122712 | 122716 | } |
| 122713 | 122717 | va_end(ap); |
| 122714 | 122718 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -1,8 +1,8 @@ | |
| 1 | /****************************************************************************** |
| 2 | ** This file is an amalgamation of many separate C source files from SQLite |
| 3 | ** version 3.8.3. By combining all the individual C code files into this |
| 4 | ** single large file, the entire code can be compiled as a single translation |
| 5 | ** unit. This allows many compilers to do optimizations that would not be |
| 6 | ** possible if the files were compiled separately. Performance improvements |
| 7 | ** of 5% or more are commonly seen when SQLite is compiled as a single |
| 8 | ** translation unit. |
| @@ -133,13 +133,13 @@ | |
| 133 | ** |
| 134 | ** See also: [sqlite3_libversion()], |
| 135 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 136 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 137 | */ |
| 138 | #define SQLITE_VERSION "3.8.3" |
| 139 | #define SQLITE_VERSION_NUMBER 3008003 |
| 140 | #define SQLITE_SOURCE_ID "2014-01-27 15:02:07 be1acb610f7e594b417dd8409b7a7aa8f3af5f77" |
| 141 | |
| 142 | /* |
| 143 | ** CAPI3REF: Run-Time Library Version Numbers |
| 144 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 145 | ** |
| @@ -41074,11 +41074,11 @@ | |
| 41074 | ** Find a page in the hash table given its page number. Return |
| 41075 | ** a pointer to the page or NULL if the requested page is not |
| 41076 | ** already in memory. |
| 41077 | */ |
| 41078 | static PgHdr *pager_lookup(Pager *pPager, Pgno pgno){ |
| 41079 | PgHdr *p; /* Return value */ |
| 41080 | |
| 41081 | /* It is not possible for a call to PcacheFetch() with createFlag==0 to |
| 41082 | ** fail, since no attempt to allocate dynamic memory will be made. |
| 41083 | */ |
| 41084 | (void)sqlite3PcacheFetch(pPager->pPCache, pgno, 0, &p); |
| @@ -77453,10 +77453,11 @@ | |
| 77453 | pNew->selFlags = p->selFlags & ~SF_UsesEphemeral; |
| 77454 | pNew->pRightmost = 0; |
| 77455 | pNew->addrOpenEphm[0] = -1; |
| 77456 | pNew->addrOpenEphm[1] = -1; |
| 77457 | pNew->addrOpenEphm[2] = -1; |
| 77458 | pNew->pWith = withDup(db, p->pWith); |
| 77459 | return pNew; |
| 77460 | } |
| 77461 | #else |
| 77462 | SQLITE_PRIVATE Select *sqlite3SelectDup(sqlite3 *db, Select *p, int flags){ |
| @@ -89483,11 +89484,12 @@ | |
| 89483 | /* Populate the OLD.* pseudo-table register array. These values will be |
| 89484 | ** used by any BEFORE and AFTER triggers that exist. */ |
| 89485 | sqlite3VdbeAddOp2(v, OP_Copy, iPk, iOld); |
| 89486 | for(iCol=0; iCol<pTab->nCol; iCol++){ |
| 89487 | testcase( mask!=0xffffffff && iCol==31 ); |
| 89488 | if( mask==0xffffffff || (mask & MASKBIT32(iCol))!=0 ){ |
| 89489 | sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, iCol, iOld+iCol+1); |
| 89490 | } |
| 89491 | } |
| 89492 | |
| 89493 | /* Invoke BEFORE DELETE trigger programs. */ |
| @@ -112137,11 +112139,13 @@ | |
| 112137 | int iTerm; |
| 112138 | for(iTerm=0; iTerm<pWC->nTerm; iTerm++){ |
| 112139 | Expr *pExpr = pWC->a[iTerm].pExpr; |
| 112140 | if( &pWC->a[iTerm] == pTerm ) continue; |
| 112141 | if( ExprHasProperty(pExpr, EP_FromJoin) ) continue; |
| 112142 | if( pWC->a[iTerm].wtFlags & (TERM_ORINFO) ) continue; |
| 112143 | if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue; |
| 112144 | pExpr = sqlite3ExprDup(db, pExpr, 0); |
| 112145 | pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr); |
| 112146 | } |
| 112147 | if( pAndExpr ){ |
| @@ -122703,11 +122707,11 @@ | |
| 122703 | ** database files might have arbitrary corruption. Setting the flag during |
| 122704 | ** testing causes certain assert() statements in the code to be activated |
| 122705 | ** that demonstrat invariants on well-formed database files. |
| 122706 | */ |
| 122707 | case SQLITE_TESTCTRL_NEVER_CORRUPT: { |
| 122708 | sqlite3Config.neverCorrupt = va_arg(ap, int); |
| 122709 | break; |
| 122710 | } |
| 122711 | |
| 122712 | } |
| 122713 | va_end(ap); |
| 122714 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -1,8 +1,8 @@ | |
| 1 | /****************************************************************************** |
| 2 | ** This file is an amalgamation of many separate C source files from SQLite |
| 3 | ** version 3.8.3.1. By combining all the individual C code files into this |
| 4 | ** single large file, the entire code can be compiled as a single translation |
| 5 | ** unit. This allows many compilers to do optimizations that would not be |
| 6 | ** possible if the files were compiled separately. Performance improvements |
| 7 | ** of 5% or more are commonly seen when SQLite is compiled as a single |
| 8 | ** translation unit. |
| @@ -133,13 +133,13 @@ | |
| 133 | ** |
| 134 | ** See also: [sqlite3_libversion()], |
| 135 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 136 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 137 | */ |
| 138 | #define SQLITE_VERSION "3.8.3.1" |
| 139 | #define SQLITE_VERSION_NUMBER 3008003 |
| 140 | #define SQLITE_SOURCE_ID "2014-02-11 03:55:33 3111df71b2a6bef08cf37c6e350f5accc506f9eb" |
| 141 | |
| 142 | /* |
| 143 | ** CAPI3REF: Run-Time Library Version Numbers |
| 144 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 145 | ** |
| @@ -41074,11 +41074,11 @@ | |
| 41074 | ** Find a page in the hash table given its page number. Return |
| 41075 | ** a pointer to the page or NULL if the requested page is not |
| 41076 | ** already in memory. |
| 41077 | */ |
| 41078 | static PgHdr *pager_lookup(Pager *pPager, Pgno pgno){ |
| 41079 | PgHdr *p = 0; /* Return value */ |
| 41080 | |
| 41081 | /* It is not possible for a call to PcacheFetch() with createFlag==0 to |
| 41082 | ** fail, since no attempt to allocate dynamic memory will be made. |
| 41083 | */ |
| 41084 | (void)sqlite3PcacheFetch(pPager->pPCache, pgno, 0, &p); |
| @@ -77453,10 +77453,11 @@ | |
| 77453 | pNew->selFlags = p->selFlags & ~SF_UsesEphemeral; |
| 77454 | pNew->pRightmost = 0; |
| 77455 | pNew->addrOpenEphm[0] = -1; |
| 77456 | pNew->addrOpenEphm[1] = -1; |
| 77457 | pNew->addrOpenEphm[2] = -1; |
| 77458 | pNew->nSelectRow = p->nSelectRow; |
| 77459 | pNew->pWith = withDup(db, p->pWith); |
| 77460 | return pNew; |
| 77461 | } |
| 77462 | #else |
| 77463 | SQLITE_PRIVATE Select *sqlite3SelectDup(sqlite3 *db, Select *p, int flags){ |
| @@ -89483,11 +89484,12 @@ | |
| 89484 | /* Populate the OLD.* pseudo-table register array. These values will be |
| 89485 | ** used by any BEFORE and AFTER triggers that exist. */ |
| 89486 | sqlite3VdbeAddOp2(v, OP_Copy, iPk, iOld); |
| 89487 | for(iCol=0; iCol<pTab->nCol; iCol++){ |
| 89488 | testcase( mask!=0xffffffff && iCol==31 ); |
| 89489 | testcase( mask!=0xffffffff && iCol==32 ); |
| 89490 | if( mask==0xffffffff || (iCol<=31 && (mask & MASKBIT32(iCol))!=0) ){ |
| 89491 | sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, iCol, iOld+iCol+1); |
| 89492 | } |
| 89493 | } |
| 89494 | |
| 89495 | /* Invoke BEFORE DELETE trigger programs. */ |
| @@ -112137,11 +112139,13 @@ | |
| 112139 | int iTerm; |
| 112140 | for(iTerm=0; iTerm<pWC->nTerm; iTerm++){ |
| 112141 | Expr *pExpr = pWC->a[iTerm].pExpr; |
| 112142 | if( &pWC->a[iTerm] == pTerm ) continue; |
| 112143 | if( ExprHasProperty(pExpr, EP_FromJoin) ) continue; |
| 112144 | testcase( pWC->a[iTerm].wtFlags & TERM_ORINFO ); |
| 112145 | testcase( pWC->a[iTerm].wtFlags & TERM_VIRTUAL ); |
| 112146 | if( pWC->a[iTerm].wtFlags & (TERM_ORINFO|TERM_VIRTUAL) ) continue; |
| 112147 | if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue; |
| 112148 | pExpr = sqlite3ExprDup(db, pExpr, 0); |
| 112149 | pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr); |
| 112150 | } |
| 112151 | if( pAndExpr ){ |
| @@ -122703,11 +122707,11 @@ | |
| 122707 | ** database files might have arbitrary corruption. Setting the flag during |
| 122708 | ** testing causes certain assert() statements in the code to be activated |
| 122709 | ** that demonstrat invariants on well-formed database files. |
| 122710 | */ |
| 122711 | case SQLITE_TESTCTRL_NEVER_CORRUPT: { |
| 122712 | sqlite3GlobalConfig.neverCorrupt = va_arg(ap, int); |
| 122713 | break; |
| 122714 | } |
| 122715 | |
| 122716 | } |
| 122717 | va_end(ap); |
| 122718 |
+2
-2
| --- src/sqlite3.h | ||
| +++ src/sqlite3.h | ||
| @@ -105,13 +105,13 @@ | ||
| 105 | 105 | ** |
| 106 | 106 | ** See also: [sqlite3_libversion()], |
| 107 | 107 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 108 | 108 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 109 | 109 | */ |
| 110 | -#define SQLITE_VERSION "3.8.3" | |
| 110 | +#define SQLITE_VERSION "3.8.3.1" | |
| 111 | 111 | #define SQLITE_VERSION_NUMBER 3008003 |
| 112 | -#define SQLITE_SOURCE_ID "2014-01-27 15:02:07 be1acb610f7e594b417dd8409b7a7aa8f3af5f77" | |
| 112 | +#define SQLITE_SOURCE_ID "2014-02-11 03:55:33 3111df71b2a6bef08cf37c6e350f5accc506f9eb" | |
| 113 | 113 | |
| 114 | 114 | /* |
| 115 | 115 | ** CAPI3REF: Run-Time Library Version Numbers |
| 116 | 116 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 117 | 117 | ** |
| 118 | 118 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -105,13 +105,13 @@ | |
| 105 | ** |
| 106 | ** See also: [sqlite3_libversion()], |
| 107 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 108 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 109 | */ |
| 110 | #define SQLITE_VERSION "3.8.3" |
| 111 | #define SQLITE_VERSION_NUMBER 3008003 |
| 112 | #define SQLITE_SOURCE_ID "2014-01-27 15:02:07 be1acb610f7e594b417dd8409b7a7aa8f3af5f77" |
| 113 | |
| 114 | /* |
| 115 | ** CAPI3REF: Run-Time Library Version Numbers |
| 116 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 117 | ** |
| 118 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -105,13 +105,13 @@ | |
| 105 | ** |
| 106 | ** See also: [sqlite3_libversion()], |
| 107 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 108 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 109 | */ |
| 110 | #define SQLITE_VERSION "3.8.3.1" |
| 111 | #define SQLITE_VERSION_NUMBER 3008003 |
| 112 | #define SQLITE_SOURCE_ID "2014-02-11 03:55:33 3111df71b2a6bef08cf37c6e350f5accc506f9eb" |
| 113 | |
| 114 | /* |
| 115 | ** CAPI3REF: Run-Time Library Version Numbers |
| 116 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 117 | ** |
| 118 |