1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

Make SQLITE_DIRECT_OVERFLOW_READ work for in WAL mode as long as the page

being read is not in the the -wal file.

FossilOrigin-Name: 9879be1899adf5634f551a2077b15ccb1133e4e3
This commit is contained in:
drh
2017-01-26 02:26:02 +00:00
parent 2b15f6e11b
commit d930b5cb06
5 changed files with 27 additions and 19 deletions

View File

@@ -4593,7 +4593,7 @@ static int accessPayload(
** 2) data is required from the start of this overflow page, and
** 3) the database is file-backed, and
** 4) there is no open write-transaction, and
** 5) the database is not a WAL database,
** 5) the page is not in the WAL file
** 6) all data from the page is being read.
** 7) at least 4 bytes have already been read into the output buffer
**
@@ -4606,7 +4606,7 @@ static int accessPayload(
&& (bEnd || a==ovflSize) /* (6) */
&& pBt->inTransaction==TRANS_READ /* (4) */
&& (fd = sqlite3PagerFile(pBt->pPager))->pMethods /* (3) */
&& 0==sqlite3PagerUseWal(pBt->pPager) /* (5) */
&& 0==sqlite3PagerUseWal(pBt->pPager, nextPage) /* (5) */
&& &pBuf[-4]>=pBufStart /* (7) */
){
u8 aSave[4];