diff options
author | dan <dan@noemail.net> | 2017-05-22 18:09:00 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2017-05-22 18:09:00 +0000 |
commit | 07d0f15e9354e668510095fd85fa83ac36dd82d2 (patch) | |
tree | 1877d313a0bed27e43f7160e8f44496187e9bf2d /ext/session/sqlite3session.c | |
parent | 453ca043a250bdfcf5d1d6971b663d1c587e482b (diff) | |
download | sqlite-07d0f15e9354e668510095fd85fa83ac36dd82d2.tar.gz sqlite-07d0f15e9354e668510095fd85fa83ac36dd82d2.zip |
Fix incompatibilities between the "sqldiff --changeset" command and the
sessions module. Specifically, allow sessions to process changesets containing
tables with zero operations on them and have sqldiff output the expected
output for tables with multi-column primary keys.
FossilOrigin-Name: 0bb23c48064cc64134697469f3f4d2d3610b9e6c7a0dc54a3c47a00bd6c2a860
Diffstat (limited to 'ext/session/sqlite3session.c')
-rw-r--r-- | ext/session/sqlite3session.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/session/sqlite3session.c b/ext/session/sqlite3session.c index 8dde8501a..d5cb46737 100644 --- a/ext/session/sqlite3session.c +++ b/ext/session/sqlite3session.c @@ -2836,11 +2836,12 @@ static int sessionChangesetNext( p->in.iCurrent = p->in.iNext; op = p->in.aData[p->in.iNext++]; - if( op=='T' || op=='P' ){ + while( op=='T' || op=='P' ){ p->bPatchset = (op=='P'); if( sessionChangesetReadTblhdr(p) ) return p->rc; if( (p->rc = sessionInputBuffer(&p->in, 2)) ) return p->rc; p->in.iCurrent = p->in.iNext; + if( p->in.iNext>=p->in.nData ) return SQLITE_DONE; op = p->in.aData[p->in.iNext++]; } |