summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrainwater <rainwater@43f3a57c-415d-409d-a226-9ac53bca7782>2017-06-26 18:14:23 +0000
committerrainwater <rainwater@43f3a57c-415d-409d-a226-9ac53bca7782>2017-06-26 18:14:23 +0000
commit74fc9c98bd5ff1c3c45f8f43ae017f662c949a9e (patch)
treedaba1c733c9bceee9d5b67144a4ca21ab7cbc8a1
parentd1dff755315f208cf9c514ea058ee9bae2182306 (diff)
Fix database vacuum issue
git-svn-id: svn://svn.code.sf.net/p/miranda/svn/trunk@14664 43f3a57c-415d-409d-a226-9ac53bca7782
-rw-r--r--miranda/plugins/dbrw/sqlite3/sqlite3.c20
-rw-r--r--miranda/plugins/dbrw/sqlite3/sqlite3.h6
2 files changed, 16 insertions, 10 deletions
diff --git a/miranda/plugins/dbrw/sqlite3/sqlite3.c b/miranda/plugins/dbrw/sqlite3/sqlite3.c
index 657a54efd..9c8fd6204 100644
--- a/miranda/plugins/dbrw/sqlite3/sqlite3.c
+++ b/miranda/plugins/dbrw/sqlite3/sqlite3.c
@@ -1,6 +1,6 @@
/******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite
-** version 3.19.2. By combining all the individual C code files into this
+** version 3.19.3. By combining all the individual C code files into this
** single large file, the entire code can be compiled as a single translation
** unit. This allows many compilers to do optimizations that would not be
** possible if the files were compiled separately. Performance improvements
@@ -398,9 +398,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
-#define SQLITE_VERSION "3.19.2"
-#define SQLITE_VERSION_NUMBER 3019002
-#define SQLITE_SOURCE_ID "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9"
+#define SQLITE_VERSION "3.19.3"
+#define SQLITE_VERSION_NUMBER 3019003
+#define SQLITE_SOURCE_ID "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b"
/*
** CAPI3REF: Run-Time Library Version Numbers
@@ -67208,12 +67208,18 @@ SQLITE_PRIVATE int sqlite3BtreeInsert(
memcpy(newCell, oldCell, 4);
}
rc = clearCell(pPage, oldCell, &info);
- if( info.nSize==szNew && info.nLocal==info.nPayload ){
+ if( info.nSize==szNew && info.nLocal==info.nPayload
+ && (!ISAUTOVACUUM || szNew<pPage->minLocal)
+ ){
/* Overwrite the old cell with the new if they are the same size.
** We could also try to do this if the old cell is smaller, then add
** the leftover space to the free list. But experiments show that
** doing that is no faster then skipping this optimization and just
- ** calling dropCell() and insertCell(). */
+ ** calling dropCell() and insertCell().
+ **
+ ** This optimization cannot be used on an autovacuum database if the
+ ** new entry uses overflow pages, as the insertCell() call below is
+ ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */
assert( rc==SQLITE_OK ); /* clearCell never fails when nLocal==nPayload */
if( oldCell+szNew > pPage->aDataEnd ) return SQLITE_CORRUPT_BKPT;
memcpy(oldCell, newCell, szNew);
@@ -199056,7 +199062,7 @@ static void fts5SourceIdFunc(
){
assert( nArg==0 );
UNUSED_PARAM2(nArg, apUnused);
- sqlite3_result_text(pCtx, "fts5: 2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9", -1, SQLITE_TRANSIENT);
+ sqlite3_result_text(pCtx, "fts5: 2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b", -1, SQLITE_TRANSIENT);
}
static int fts5Init(sqlite3 *db){
diff --git a/miranda/plugins/dbrw/sqlite3/sqlite3.h b/miranda/plugins/dbrw/sqlite3/sqlite3.h
index 296ada089..3deb9c79b 100644
--- a/miranda/plugins/dbrw/sqlite3/sqlite3.h
+++ b/miranda/plugins/dbrw/sqlite3/sqlite3.h
@@ -121,9 +121,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
-#define SQLITE_VERSION "3.19.2"
-#define SQLITE_VERSION_NUMBER 3019002
-#define SQLITE_SOURCE_ID "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9"
+#define SQLITE_VERSION "3.19.3"
+#define SQLITE_VERSION_NUMBER 3019003
+#define SQLITE_SOURCE_ID "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b"
/*
** CAPI3REF: Run-Time Library Version Numbers