aboutsummaryrefslogtreecommitdiff
path: root/tool/sqlite3-rsync.c
diff options
context:
space:
mode:
authordrh <>2024-10-06 21:26:56 +0000
committerdrh <>2024-10-06 21:26:56 +0000
commitfba24d352810856f714baa5ad137ae61d693cb0b (patch)
treeaa34f3a5a995d6b5dcf528f4add5cf20d82e489e /tool/sqlite3-rsync.c
parent74672acd946d12d23f65c3e07f9f88e407784145 (diff)
downloadsqlite-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.c3
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)");