Fossil SCM
Update the built-in SQLite to version 3.19.3.
Commit
5a6f946723bad14eb4f6279d1ab1c80c01341f8b9f2c36e2277027535fee2b80
Parent
8707e869496705c…
2 files changed
+13
-7
+3
-3
+13
-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.19.2. By combining all the individual C code files into this | |
| 3 | +** version 3.19.3. 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. |
| @@ -396,13 +396,13 @@ | ||
| 396 | 396 | ** |
| 397 | 397 | ** See also: [sqlite3_libversion()], |
| 398 | 398 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 399 | 399 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 400 | 400 | */ |
| 401 | -#define SQLITE_VERSION "3.19.2" | |
| 402 | -#define SQLITE_VERSION_NUMBER 3019002 | |
| 403 | -#define SQLITE_SOURCE_ID "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9" | |
| 401 | +#define SQLITE_VERSION "3.19.3" | |
| 402 | +#define SQLITE_VERSION_NUMBER 3019003 | |
| 403 | +#define SQLITE_SOURCE_ID "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b" | |
| 404 | 404 | |
| 405 | 405 | /* |
| 406 | 406 | ** CAPI3REF: Run-Time Library Version Numbers |
| 407 | 407 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 408 | 408 | ** |
| @@ -67206,16 +67206,22 @@ | ||
| 67206 | 67206 | oldCell = findCell(pPage, idx); |
| 67207 | 67207 | if( !pPage->leaf ){ |
| 67208 | 67208 | memcpy(newCell, oldCell, 4); |
| 67209 | 67209 | } |
| 67210 | 67210 | rc = clearCell(pPage, oldCell, &info); |
| 67211 | - if( info.nSize==szNew && info.nLocal==info.nPayload ){ | |
| 67211 | + if( info.nSize==szNew && info.nLocal==info.nPayload | |
| 67212 | + && (!ISAUTOVACUUM || szNew<pPage->minLocal) | |
| 67213 | + ){ | |
| 67212 | 67214 | /* Overwrite the old cell with the new if they are the same size. |
| 67213 | 67215 | ** We could also try to do this if the old cell is smaller, then add |
| 67214 | 67216 | ** the leftover space to the free list. But experiments show that |
| 67215 | 67217 | ** doing that is no faster then skipping this optimization and just |
| 67216 | - ** calling dropCell() and insertCell(). */ | |
| 67218 | + ** calling dropCell() and insertCell(). | |
| 67219 | + ** | |
| 67220 | + ** This optimization cannot be used on an autovacuum database if the | |
| 67221 | + ** new entry uses overflow pages, as the insertCell() call below is | |
| 67222 | + ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ | |
| 67217 | 67223 | assert( rc==SQLITE_OK ); /* clearCell never fails when nLocal==nPayload */ |
| 67218 | 67224 | if( oldCell+szNew > pPage->aDataEnd ) return SQLITE_CORRUPT_BKPT; |
| 67219 | 67225 | memcpy(oldCell, newCell, szNew); |
| 67220 | 67226 | return SQLITE_OK; |
| 67221 | 67227 | } |
| @@ -199054,11 +199060,11 @@ | ||
| 199054 | 199060 | int nArg, /* Number of args */ |
| 199055 | 199061 | sqlite3_value **apUnused /* Function arguments */ |
| 199056 | 199062 | ){ |
| 199057 | 199063 | assert( nArg==0 ); |
| 199058 | 199064 | UNUSED_PARAM2(nArg, apUnused); |
| 199059 | - sqlite3_result_text(pCtx, "fts5: 2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9", -1, SQLITE_TRANSIENT); | |
| 199065 | + sqlite3_result_text(pCtx, "fts5: 2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b", -1, SQLITE_TRANSIENT); | |
| 199060 | 199066 | } |
| 199061 | 199067 | |
| 199062 | 199068 | static int fts5Init(sqlite3 *db){ |
| 199063 | 199069 | static const sqlite3_module fts5Mod = { |
| 199064 | 199070 | /* iVersion */ 2, |
| 199065 | 199071 |
| --- 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.19.2. 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. |
| @@ -396,13 +396,13 @@ | |
| 396 | ** |
| 397 | ** See also: [sqlite3_libversion()], |
| 398 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 399 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 400 | */ |
| 401 | #define SQLITE_VERSION "3.19.2" |
| 402 | #define SQLITE_VERSION_NUMBER 3019002 |
| 403 | #define SQLITE_SOURCE_ID "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9" |
| 404 | |
| 405 | /* |
| 406 | ** CAPI3REF: Run-Time Library Version Numbers |
| 407 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 408 | ** |
| @@ -67206,16 +67206,22 @@ | |
| 67206 | oldCell = findCell(pPage, idx); |
| 67207 | if( !pPage->leaf ){ |
| 67208 | memcpy(newCell, oldCell, 4); |
| 67209 | } |
| 67210 | rc = clearCell(pPage, oldCell, &info); |
| 67211 | if( info.nSize==szNew && info.nLocal==info.nPayload ){ |
| 67212 | /* Overwrite the old cell with the new if they are the same size. |
| 67213 | ** We could also try to do this if the old cell is smaller, then add |
| 67214 | ** the leftover space to the free list. But experiments show that |
| 67215 | ** doing that is no faster then skipping this optimization and just |
| 67216 | ** calling dropCell() and insertCell(). */ |
| 67217 | assert( rc==SQLITE_OK ); /* clearCell never fails when nLocal==nPayload */ |
| 67218 | if( oldCell+szNew > pPage->aDataEnd ) return SQLITE_CORRUPT_BKPT; |
| 67219 | memcpy(oldCell, newCell, szNew); |
| 67220 | return SQLITE_OK; |
| 67221 | } |
| @@ -199054,11 +199060,11 @@ | |
| 199054 | int nArg, /* Number of args */ |
| 199055 | sqlite3_value **apUnused /* Function arguments */ |
| 199056 | ){ |
| 199057 | assert( nArg==0 ); |
| 199058 | UNUSED_PARAM2(nArg, apUnused); |
| 199059 | sqlite3_result_text(pCtx, "fts5: 2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9", -1, SQLITE_TRANSIENT); |
| 199060 | } |
| 199061 | |
| 199062 | static int fts5Init(sqlite3 *db){ |
| 199063 | static const sqlite3_module fts5Mod = { |
| 199064 | /* iVersion */ 2, |
| 199065 |
| --- 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.19.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. |
| @@ -396,13 +396,13 @@ | |
| 396 | ** |
| 397 | ** See also: [sqlite3_libversion()], |
| 398 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 399 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 400 | */ |
| 401 | #define SQLITE_VERSION "3.19.3" |
| 402 | #define SQLITE_VERSION_NUMBER 3019003 |
| 403 | #define SQLITE_SOURCE_ID "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b" |
| 404 | |
| 405 | /* |
| 406 | ** CAPI3REF: Run-Time Library Version Numbers |
| 407 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 408 | ** |
| @@ -67206,16 +67206,22 @@ | |
| 67206 | oldCell = findCell(pPage, idx); |
| 67207 | if( !pPage->leaf ){ |
| 67208 | memcpy(newCell, oldCell, 4); |
| 67209 | } |
| 67210 | rc = clearCell(pPage, oldCell, &info); |
| 67211 | if( info.nSize==szNew && info.nLocal==info.nPayload |
| 67212 | && (!ISAUTOVACUUM || szNew<pPage->minLocal) |
| 67213 | ){ |
| 67214 | /* Overwrite the old cell with the new if they are the same size. |
| 67215 | ** We could also try to do this if the old cell is smaller, then add |
| 67216 | ** the leftover space to the free list. But experiments show that |
| 67217 | ** doing that is no faster then skipping this optimization and just |
| 67218 | ** calling dropCell() and insertCell(). |
| 67219 | ** |
| 67220 | ** This optimization cannot be used on an autovacuum database if the |
| 67221 | ** new entry uses overflow pages, as the insertCell() call below is |
| 67222 | ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ |
| 67223 | assert( rc==SQLITE_OK ); /* clearCell never fails when nLocal==nPayload */ |
| 67224 | if( oldCell+szNew > pPage->aDataEnd ) return SQLITE_CORRUPT_BKPT; |
| 67225 | memcpy(oldCell, newCell, szNew); |
| 67226 | return SQLITE_OK; |
| 67227 | } |
| @@ -199054,11 +199060,11 @@ | |
| 199060 | int nArg, /* Number of args */ |
| 199061 | sqlite3_value **apUnused /* Function arguments */ |
| 199062 | ){ |
| 199063 | assert( nArg==0 ); |
| 199064 | UNUSED_PARAM2(nArg, apUnused); |
| 199065 | sqlite3_result_text(pCtx, "fts5: 2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b", -1, SQLITE_TRANSIENT); |
| 199066 | } |
| 199067 | |
| 199068 | static int fts5Init(sqlite3 *db){ |
| 199069 | static const sqlite3_module fts5Mod = { |
| 199070 | /* iVersion */ 2, |
| 199071 |
+3
-3
| --- src/sqlite3.h | ||
| +++ src/sqlite3.h | ||
| @@ -119,13 +119,13 @@ | ||
| 119 | 119 | ** |
| 120 | 120 | ** See also: [sqlite3_libversion()], |
| 121 | 121 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 122 | 122 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 123 | 123 | */ |
| 124 | -#define SQLITE_VERSION "3.19.2" | |
| 125 | -#define SQLITE_VERSION_NUMBER 3019002 | |
| 126 | -#define SQLITE_SOURCE_ID "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9" | |
| 124 | +#define SQLITE_VERSION "3.19.3" | |
| 125 | +#define SQLITE_VERSION_NUMBER 3019003 | |
| 126 | +#define SQLITE_SOURCE_ID "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b" | |
| 127 | 127 | |
| 128 | 128 | /* |
| 129 | 129 | ** CAPI3REF: Run-Time Library Version Numbers |
| 130 | 130 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 131 | 131 | ** |
| 132 | 132 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -119,13 +119,13 @@ | |
| 119 | ** |
| 120 | ** See also: [sqlite3_libversion()], |
| 121 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 122 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 123 | */ |
| 124 | #define SQLITE_VERSION "3.19.2" |
| 125 | #define SQLITE_VERSION_NUMBER 3019002 |
| 126 | #define SQLITE_SOURCE_ID "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9" |
| 127 | |
| 128 | /* |
| 129 | ** CAPI3REF: Run-Time Library Version Numbers |
| 130 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 131 | ** |
| 132 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -119,13 +119,13 @@ | |
| 119 | ** |
| 120 | ** See also: [sqlite3_libversion()], |
| 121 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 122 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 123 | */ |
| 124 | #define SQLITE_VERSION "3.19.3" |
| 125 | #define SQLITE_VERSION_NUMBER 3019003 |
| 126 | #define SQLITE_SOURCE_ID "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b" |
| 127 | |
| 128 | /* |
| 129 | ** CAPI3REF: Run-Time Library Version Numbers |
| 130 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 131 | ** |
| 132 |