-C Merge\sall\sfixes\sfrom\sthe\s3.19.2\srelease.
-D 2017-05-25T17:36:33.543
+C Add\sdebugging\sfunctions\sbtreePageOriginFile()\sand\sbtreePageOriginOffset().
+D 2017-05-27T18:05:32.812
F Makefile.in 227347646e289e3b016ebb7a391ad6ed4ab56525834d56d47d1a83b8d97d6989
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc fb28c0304f8a14c5ce7d4bde9fea1c903f644b49e78ebd9976ab2a1f0eb8afb5
F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b
F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
F src/btmutex.c 0e9ce2d56159b89b9bc8e197e023ee11e39ff8ca
-F src/btree.c 9d5f1346945b4d94715fb990e7243f583a3f174606d812fa179b14cdc72d0e86
+F src/btree.c babb72f4fda4577b8ccd12bc63330fc57e92272678c51b425de5a8268f08a433
F src/btree.h 80f518c0788be6cec8d9f8e13bd8e380df299d2b5e4ac340dc887b0642647cfc
F src/btreeInt.h a392d353104b4add58b4a59cb185f5d5693dde832c565b77d8d4c343ed98f610
F src/build.c 4026a9c554b233e50c5e9ad46963e676cf54dd2306d952aa1eaa07a1bc9ce14f
F src/os_unix.c 4a58dfdfda7e72aab0e393953890a9b6d40a7ff4
F src/os_win.c 85b19486054c8cd5c4117dea882d983ea065d16e
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
-F src/pager.c 1ca1c8157485d474695d8fc82af7a403c50370fa379b23e4f61ea1c17364e5ea
-F src/pager.h 32adb801774046224e87829fa74ce16ce31a9087
+F src/pager.c fcca412103fb548dfb209ba652893e4ca879036b779fd8c1f95eea9a442c074f
+F src/pager.h e430a536b3eb5ec053992afd3d561185a33de546d2905c47413403b9899698c4
F src/parse.y 0513387ce02fea97897d8caef82d45f347818593f24f1bdc48e0c530a8af122d
F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870
F src/pcache.h 2cedcd8407eb23017d92790b112186886e179490
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P bbd2d0e1400984c9fabb4df015981c09ad172139ffa33db5132951d4f1f6fc96 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9
-R 8f7f4a2a67f7b616427682df9786aa3e
-U drh
-Z e4355aaf22b79f91f5965efabd280186
+P 12964240f1e497e6f02e4a87bf3eff75c807020108c3de83977264cc66188b8d
+R 2bfdab9d552d306c18a7beebf16cb9a1
+U dan
+Z e78eb8e2881553fe9b3c98c2aeb63057
-12964240f1e497e6f02e4a87bf3eff75c807020108c3de83977264cc66188b8d
\ No newline at end of file
+214d238a4763adffa914232ffb4a94b27008f5429d2952d139490d6f9fd4114e
\ No newline at end of file
pCur->eState = CURSOR_INVALID;
}
+/*
+** This is a debugging routine designed to reveal the file (database or
+** wal file) that the page would be read from if it were reread at the
+** current time. It returns the name of the file.
+*/
+static const char *btreePageOriginFile(MemPage *pPage){
+ return sqlite3PagerOrigin(pPage->pDbPage, 0);
+}
+
+/*
+** This is a debugging routine designed to reveal the byte offset that
+** the page would be read from (from either the database or wal file) if it
+** were reread at the current time. The byte offset is returned.
+*/
+static i64 btreePageOriginOffset(MemPage *pPage){
+ i64 iOffset = 0;
+ sqlite3PagerOrigin(pPage->pDbPage, &iOffset);
+ return iOffset;
+}
+
/*
** In this version of BtreeMoveto, pKey is a packed index record
** such as is generated by the OP_MakeRecord opcode. Unpack the
}
#endif
+/*
+** Return the name of the file (wal file or database file) that page
+** pPg would be read from if it were reread at this point. Also set
+** output parameter (*piOffset) to the offset within said file.
+*/
+const char *sqlite3PagerOrigin(DbPage *pPg, i64 *piOffset){
+ Pager *pPager = pPg->pPager;
+ Pgno pgno = pPg->pgno;
+
+ assert( pPager->eState>=PAGER_READER );
+ assert( assert_pager_state(pPager) );
+ assert( pPager->hasHeldSharedLock==1 );
+
+ if( pagerUseWal(pPager) ){
+ u32 iFrame = 0;
+ int rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iFrame);
+ if( rc!=SQLITE_OK ) return 0;
+ if( iFrame ){
+ if( piOffset ) *piOffset = (i64)(iFrame-1) * (pPager->pageSize + 24) + 32;
+ return (const char*)pPager->zWal;
+ }
+ }
+
+ if( piOffset ) *piOffset = (i64)pPager->pageSize * (i64)(pgno-1);
+ return (const char*)pPager->zFilename;
+}
+
#endif /* SQLITE_OMIT_DISKIO */
# define enable_simulated_io_errors()
#endif
+const char *sqlite3PagerOrigin(DbPage *pPg, i64 *piOffset);
+
#endif /* SQLITE_PAGER_H */