diff options
author | drh <> | 2024-10-06 21:26:56 +0000 |
---|---|---|
committer | drh <> | 2024-10-06 21:26:56 +0000 |
commit | fba24d352810856f714baa5ad137ae61d693cb0b (patch) | |
tree | aa34f3a5a995d6b5dcf528f4add5cf20d82e489e /tool/sqlite3-rsync.c | |
parent | 74672acd946d12d23f65c3e07f9f88e407784145 (diff) | |
download | sqlite-fba24d352810856f714baa5ad137ae61d693cb0b.tar.gz sqlite-fba24d352810856f714baa5ad137ae61d693cb0b.zip |
Origin should not send content for the lock-byte page to the replica, in
sqlite3-rsync.
[forum:/forumpost/d14b55e5fa19c25f|Forum post d14b55e5fa19c25f].
FossilOrigin-Name: aa9bd711cc1b0136098388976d22adc0a2fc89f50fe2273ed80ee3e4e50c98b6
Diffstat (limited to 'tool/sqlite3-rsync.c')
-rw-r--r-- | tool/sqlite3-rsync.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tool/sqlite3-rsync.c b/tool/sqlite3-rsync.c index 216390c18..401c4b33e 100644 --- a/tool/sqlite3-rsync.c +++ b/tool/sqlite3-rsync.c @@ -1197,6 +1197,7 @@ static void originSide(SQLiteRsync *p){ int c = 0; unsigned int nPage = 0; unsigned int iPage = 0; + unsigned int lockBytePage = 0; unsigned int szPg = 0; sqlite3_stmt *pCkHash = 0; char buf[200]; @@ -1235,6 +1236,7 @@ static void originSide(SQLiteRsync *p){ p->nPage = nPage; p->szPage = szPg; p->iProtocol = PROTOCOL_VERSION; + lockBytePage = (1<<30)/szPg + 1; } } @@ -1290,6 +1292,7 @@ static void originSide(SQLiteRsync *p){ " INSERT INTO badHash SELECT n FROM c", iPage+1, p->nPage); } + runSql(p, "DELETE FROM badHash WHERE pgno=%d", lockBytePage); pStmt = prepareStmt(p, "SELECT pgno, data" " FROM badHash JOIN sqlite_dbpage('main') USING(pgno)"); |