mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
In a checkpoint, figure out if it is possible to checkpoint any frames at all
before creating the wal-iterator. FossilOrigin-Name: 044b0b65e716bffeddedbd1b0360c4c332f6d2359167c1d327a5ff96539474cb
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
||||
C Optimize\sthe\sobscure\scase\sof\srunning\sa\scheckpoint\sagainst\sa\svery\slarge\swal\nfile\sfor\swhich\sa\slarge\spercentage\sof\sthe\sframes\shave\salready\sbeen\scheckpointed.
|
||||
D 2018-03-02T15:42:20.479
|
||||
C In\sa\scheckpoint,\sfigure\sout\sif\sit\sis\spossible\sto\scheckpoint\sany\sframes\sat\sall\nbefore\screating\sthe\swal-iterator.
|
||||
D 2018-03-02T16:52:47.523
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F Makefile.in a2d2fb8d17c39ab5ec52beb27850b903949080848236923f436156b72a958737
|
||||
@@ -568,7 +568,7 @@ F src/vdbesort.c 731a09e5cb9e96b70c394c1b7cf3860fbe84acca7682e178615eb941a3a0ef2
|
||||
F src/vdbetrace.c 48e11ebe040c6b41d146abed2602e3d00d621d7ebe4eb29b0a0f1617fd3c2f6c
|
||||
F src/vtab.c 0e4885495172e1bdf54b12cce23b395ac74ef5729031f15e1bc1e3e6b360ed1a
|
||||
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
|
||||
F src/wal.c 6390a0f2779f0e3a8bfb47161575306f3078aed982334ea460506a4bdb168448
|
||||
F src/wal.c 60e5c938c4858c72f0cb0c7220282d3066efa215ad5e82f3cf4c0b833fbe60dc
|
||||
F src/wal.h 8de5d2d3de0956d6f6cb48c83a4012d5f227b8fe940f3a349a4b7e85ebcb492a
|
||||
F src/walker.c da987a20d40145c0a03c07d8fefcb2ed363becc7680d0500d9c79915591f5b1f
|
||||
F src/where.c 7cae47e813393d70c6d327fdf000fcb30f76b1b0b5a5b52ff6402e0c658de32c
|
||||
@@ -1708,7 +1708,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P 1293d4f64f322ee57510bdff497c54e0be2c9205217e1fd96887bba1f36bec40
|
||||
R 42a85dafbb1d61300db520734eab6ba4
|
||||
P 0f5057dffa9be1bccab04894709d25bf1f066c4b1aef50d67ee635d46d300a4d
|
||||
R de1a2fcd17a7874df266511eaa97ccfc
|
||||
U dan
|
||||
Z fabb1aba79ebdc43ca9f460d856c2385
|
||||
Z 77af2128f3c4feb420234b4cd2eef89e
|
||||
|
@@ -1 +1 @@
|
||||
0f5057dffa9be1bccab04894709d25bf1f066c4b1aef50d67ee635d46d300a4d
|
||||
044b0b65e716bffeddedbd1b0360c4c332f6d2359167c1d327a5ff96539474cb
|
15
src/wal.c
15
src/wal.c
@@ -1789,13 +1789,6 @@ static int walCheckpoint(
|
||||
pInfo = walCkptInfo(pWal);
|
||||
if( pInfo->nBackfill<pWal->hdr.mxFrame ){
|
||||
|
||||
/* Allocate the iterator */
|
||||
rc = walIteratorInit(pWal, pInfo->nBackfill, &pIter);
|
||||
if( rc!=SQLITE_OK ){
|
||||
return rc;
|
||||
}
|
||||
assert( pIter );
|
||||
|
||||
/* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked
|
||||
** in the SQLITE_CHECKPOINT_PASSIVE mode. */
|
||||
assert( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 );
|
||||
@@ -1832,7 +1825,13 @@ static int walCheckpoint(
|
||||
}
|
||||
}
|
||||
|
||||
if( pInfo->nBackfill<mxSafeFrame
|
||||
/* Allocate the iterator */
|
||||
if( pInfo->nBackfill<mxSafeFrame ){
|
||||
rc = walIteratorInit(pWal, pInfo->nBackfill, &pIter);
|
||||
assert( rc==SQLITE_OK || pIter==0 );
|
||||
}
|
||||
|
||||
if( pIter
|
||||
&& (rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(0),1))==SQLITE_OK
|
||||
){
|
||||
i64 nSize; /* Current size of database file */
|
||||
|
Reference in New Issue
Block a user