diff options
author | drh <drh@noemail.net> | 2018-05-03 12:57:48 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2018-05-03 12:57:48 +0000 |
commit | 9b03192e15b45ac1d448b958be6d35d1ea9cf9ff (patch) | |
tree | dda5e0c726ead12d40c72ca210c2b2716ae2a588 /src | |
parent | 3de5d16cf7df698599136d4a6695c97dbb603c2d (diff) | |
download | sqlite-9b03192e15b45ac1d448b958be6d35d1ea9cf9ff.tar.gz sqlite-9b03192e15b45ac1d448b958be6d35d1ea9cf9ff.zip |
Bug fixes in the overwrite optimization.
FossilOrigin-Name: 0cb6cd2a6a596afaa1cca6c5f5abc2ea75d04f254c7debaf36ecd6a90b66aed6
Diffstat (limited to 'src')
-rw-r--r-- | src/btree.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/btree.c b/src/btree.c index 0a8c17221..e920d8902 100644 --- a/src/btree.c +++ b/src/btree.c @@ -8215,12 +8215,12 @@ static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ do{ rc = btreeGetPage(pBt, ovflPgno, &pPage, 0); if( rc ) return rc; - if( iOffset+ovflPageSize>nTotal ){ - ovflPgno = get4byte(pPage->aData + ovflPageSize); + if( iOffset+ovflPageSize<nTotal ){ + ovflPgno = get4byte(pPage->aData); }else{ ovflPageSize = nTotal - iOffset; } - rc = btreeOverwriteContent(pPage, pPage->aData, pX, + rc = btreeOverwriteContent(pPage, pPage->aData+4, pX, iOffset, ovflPageSize); if( rc ) return rc; iOffset += ovflPageSize; |