]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Changes so that sqlite3_ckpt_open() works with zipvfs databases.
authordan <dan@noemail.net>
Mon, 17 Nov 2014 17:57:06 +0000 (17:57 +0000)
committerdan <dan@noemail.net>
Mon, 17 Nov 2014 17:57:06 +0000 (17:57 +0000)
FossilOrigin-Name: acbed3380d8a35bf2f1ec133540cb5e9fccb9b42

manifest
manifest.uuid
src/main.c
src/sqlite.h.in

index 73890afec0aa36419ff56c726b02e3535b95a12b..2c61a549c13f3bed6354806028e19e4a107e3034 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sproblem\swith\sthe\sparameters\sto\san\sOP_Affinity\sin\sone\sof\sthe\sVM\sprograms\sgenerated\sby\ssqlite3_index_writer()\sthat\swas\scausing\san\sOOB\sread.
-D 2014-11-17T15:07:40.515
+C Changes\sso\sthat\ssqlite3_ckpt_open()\sworks\swith\szipvfs\sdatabases.
+D 2014-11-17T17:57:06.217
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -206,7 +206,7 @@ F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
 F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
 F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770
 F src/loadext.c de741e66e5ddc1598d904d7289239696e40ed994
-F src/main.c 627406d9cfee49e666d47a265a5cad8ef402f823
+F src/main.c 25088f9f0422ef29a12eb1ff57d12a2aac0f8c05
 F src/malloc.c 3c3ac67969612493d435e14b6832793209afd2ec
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c faf615aafd8be74a71494dfa027c113ea5c6615f
@@ -241,7 +241,7 @@ F src/resolve.c a3466128b52a86c466e47ac1a19e2174f7b5cf89
 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
 F src/select.c 428165951748151e87a15295b7357221433e311b
 F src/shell.c 282f8f5278e0c78eb442217531172ec9e1538796
-F src/sqlite.h.in 5c89ff33315006449119b86b460e0a286758f126
+F src/sqlite.h.in d368351cfb7f98d847ab42c760fbe01ab30d06fd
 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
 F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d
 F src/sqliteInt.h cf72fe02b33f46572c681cc90ad64a5851f10b8f
@@ -1217,7 +1217,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P ec7321ae482a8c4d893851a5edd17d67ef1a448b
-R ebf92f720e516f33caf61cc1f37b716d
+P 447b33b34a9836992f5a8d50cd8647a10435c144
+R a385542ae873f1383b1a1f964429fd33
 U dan
-Z c2254e02a36430a8663d836ffe531fb4
+Z a2dd6eb93ee736daa85bc89fdfbf459a
index e72967c0073a9715573e656752faad15ab263a4e..f1dfb37c7027037bdc7f6615beb7b160e2a69c87 100644 (file)
@@ -1 +1 @@
-447b33b34a9836992f5a8d50cd8647a10435c144
\ No newline at end of file
+acbed3380d8a35bf2f1ec133540cb5e9fccb9b42
\ No newline at end of file
index 4d39ff0150126d1eec7c5e6a4c5c0e36c17edbf4..eb60f7dbaf8637eac9d68d836a15bee0408852ce 100644 (file)
@@ -1781,14 +1781,18 @@ int sqlite3_ckpt_open(
   unsigned char *a, int n, 
   sqlite3_ckpt **ppCkpt
 ){
-  Pager *pPager;
-  Btree *pBt;
+  Pager *pPager = 0;
   int rc;
 
   *ppCkpt = 0;
   sqlite3_mutex_enter(db->mutex);
-  pBt = db->aDb[0].pBt;
-  pPager = sqlite3BtreePager(pBt);
+
+  /* Find the Pager object. */
+  rc = sqlite3_file_control(db,"main",SQLITE_FCNTL_ZIPVFS_PAGER,(void*)&pPager);
+  if( rc!=SQLITE_OK ){
+    pPager = sqlite3BtreePager(db->aDb[0].pBt);
+  }
+
   rc = sqlite3PagerWalCheckpointStart(db, pPager, a, n, ppCkpt);
   sqlite3_mutex_leave(db->mutex);
   return rc;
index 6439020f4a97b91b47dd985b370b0174f13f38e8..e4b9ab0d7c223dac60592f0998e4c0d230c730be 100644 (file)
@@ -941,6 +941,10 @@ struct sqlite3_io_methods {
 ** pointed to by the pArg argument.  This capability is used during testing
 ** and only needs to be supported when SQLITE_TEST is defined.
 **
+** <li>[[SQLITE_FCNTL_ZIPVFS_PAGER]]
+** The [SQLITE_FCNTL_ZIPVFS_PAGER] opcode is used by the OTA extension when
+** updating a zipvfs database.
+**
 ** </ul>
 */
 #define SQLITE_FCNTL_LOCKSTATE               1
@@ -965,6 +969,7 @@ struct sqlite3_io_methods {
 #define SQLITE_FCNTL_SYNC                   21
 #define SQLITE_FCNTL_COMMIT_PHASETWO        22
 #define SQLITE_FCNTL_WIN32_SET_HANDLE       23
+#define SQLITE_FCNTL_ZIPVFS_PAGER           24
 
 /*
 ** CAPI3REF: Mutex Handle