diff options
author | dan <Dan Kennedy> | 2023-10-07 17:29:10 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2023-10-07 17:29:10 +0000 |
commit | 3b381b4afccd90e1c2cdd5cd5ea3ba9f15ba358b (patch) | |
tree | 74f0aa1c00c3f23c6f3d9ef7a9d8862a33138232 /ext/session/sqlite3session.c | |
parent | 4bdcfc6666a99a9710cb94541afadf49e84bf2bc (diff) | |
download | sqlite-3b381b4afccd90e1c2cdd5cd5ea3ba9f15ba358b.tar.gz sqlite-3b381b4afccd90e1c2cdd5cd5ea3ba9f15ba358b.zip |
Fix a problem with sqlite3changegroup_schema() and patchsets.
FossilOrigin-Name: c4ab4200dc2538e1132d87d70fd309b26b0da8a918fede1cb09b567ea40ec889
Diffstat (limited to 'ext/session/sqlite3session.c')
-rw-r--r-- | ext/session/sqlite3session.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/session/sqlite3session.c b/ext/session/sqlite3session.c index 80783805c..7ae407154 100644 --- a/ext/session/sqlite3session.c +++ b/ext/session/sqlite3session.c @@ -5684,11 +5684,11 @@ static int sessionChangesetExtendRecord( break; } } - }else{ + }else if( op==SQLITE_UPDATE ){ /* Append missing "undefined" entries to the old.* record. And, if this ** is an UPDATE, to the new.* record as well. */ int iOff = 0; - if( op==SQLITE_UPDATE ){ + if( pGrp->bPatch==0 ){ for(ii=0; ii<nCol; ii++){ iOff += sessionSerialLen(&aRec[iOff]); } @@ -5702,6 +5702,9 @@ static int sessionChangesetExtendRecord( for(ii=0; ii<(pTab->nCol-nCol); ii++){ sessionAppendByte(pOut, 0x00, &rc); } + }else{ + assert( op==SQLITE_DELETE && pGrp->bPatch ); + sessionAppendBlob(pOut, aRec, nRec, &rc); } return rc; |