Experimental changes toward making snapshots serializable.

FossilOrigin-Name: b6a81fa1fc1fb78a65894129851a4ec3986640de
This commit is contained in:
drh
2016-11-15 17:37:56 +00:00
parent d6ef5afe3f
commit ba6eb8769f
4 changed files with 19 additions and 9 deletions
+10 -7
View File
@@ -1,5 +1,5 @@
C Change\sthe\sOP_Last\sopcode\sso\sthat\sit\sis\sa\sno-op\sif\sthe\scursor\sis\salready\npointing\sat\sthe\send\sof\sthe\sb-tree.
D 2016-11-15T04:00:24.244
C Experimental\schanges\stoward\smaking\ssnapshots\sserializable.
D 2016-11-15T17:37:56.374
F Makefile.in 6b572807415d3f0a379cebc9461416d8df4a12c8
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc bb4d970894abbbe0e88d00aac29bd52af8bc95f4
@@ -389,7 +389,7 @@ F src/resolve.c bb070cf5f23611c44ab7e4788803684e385fc3fb
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
F src/select.c 672b1af237ad257149fc5189f3277dcbca036eeb
F src/shell.c f04e4af75c5517735397d060ed0b4a874104bb41
F src/sqlite.h.in 803f7050f69b2eea573fac219f3c92582c096027
F src/sqlite.h.in dfe8c1b4ac66635495ec9a6a7205fcb0f27f4451
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae
F src/sqliteInt.h c471d791b10c0f2164c8b7a87adc338e703c09cc
@@ -465,7 +465,7 @@ F src/vdbesort.c 91fda3909326860382b0ca8aa251e609c6a9d62c
F src/vdbetrace.c 41963d5376f0349842b5fc4aaaaacd7d9cdc0834
F src/vtab.c e02cacb5c7ae742631edeb9ae9f53d399f093fd8
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
F src/wal.c 7e8557314bcf867ffe3fff1d8ef2d207ace8e065
F src/wal.c 88f8d8adcaecf6a225ae5098062fd151634fb672
F src/wal.h bf03a23da3100ab25e5c0363450233cfee09cfc2
F src/walker.c 91a6df7435827e41cff6bb7df50ea00934ee78b0
F src/where.c 952f76e7a03727480b274b66ca6641b1657cd591
@@ -1534,7 +1534,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 5ed0bd387699a0f3b477d4f3cfcb460a6a44cb84
R 666875522a5a69f5f9bb179805474981
P 663473850c4274270445b3771911fa773a8c405f
R 1784ed6bcadef61e22ad39533122ebea
T *branch * serializable-snapshot
T *sym-serializable-snapshot *
T -sym-trunk *
U drh
Z 3c6d6cf804e5301c81a1f9af34f5b4ed
Z 8a16f1f47c269929c7f968ee35b8cb55
+1 -1
View File
@@ -1 +1 @@
663473850c4274270445b3771911fa773a8c405f
b6a81fa1fc1fb78a65894129851a4ec3986640de
+3 -1
View File
@@ -8283,7 +8283,9 @@ int sqlite3_system_errno(sqlite3*);
** to an historical snapshot (if possible). The destructor for
** sqlite3_snapshot objects is [sqlite3_snapshot_free()].
*/
typedef struct sqlite3_snapshot sqlite3_snapshot;
typedef struct sqlite3_snapshot {
unsigned char hidden[48];
} sqlite3_snapshot;
/*
** CAPI3REF: Record A Database Snapshot
+5
View File
@@ -3393,9 +3393,14 @@ int sqlite3WalHeapMemory(Wal *pWal){
int sqlite3WalSnapshotGet(Wal *pWal, sqlite3_snapshot **ppSnapshot){
int rc = SQLITE_OK;
WalIndexHdr *pRet;
static const u32 aZero[4] = { 0, 0, 0, 0 };
assert( pWal->readLock>=0 && pWal->writeLock==0 );
if( memcmp(&pWal->hdr.aFrameCksum[0],aZero,16)==0 ){
*ppSnapshot = 0;
return SQLITE_ERROR;
}
pRet = (WalIndexHdr*)sqlite3_malloc(sizeof(WalIndexHdr));
if( pRet==0 ){
rc = SQLITE_NOMEM_BKPT;