mirror of
https://github.com/sqlite/sqlite.git
synced 2026-10-23 21:49:02 +03:00
Make the session rebaser more robust the face of column count mismatches.
FossilOrigin-Name: 12285a3f4efdf41210fa3020127670b0d1fd8d740a5ac43db0c6641fec3e5142
This commit is contained in:
@@ -7067,8 +7067,8 @@ static void sessionAppendPartialUpdate(
|
||||
a2 = aChange;
|
||||
for(i=0; i<pIter->nCol; i++){
|
||||
int n1 = sessionSerialLen(a1);
|
||||
int n2 = sessionSerialLen(a2);
|
||||
if( pIter->abPK[i] || a2[0]!=0xFF ){
|
||||
int n2 = (a2>=a2Eof) ? 0 : sessionSerialLen(a2);
|
||||
if( pIter->abPK[i] || n2<=0 || a2[0]!=0xFF ){
|
||||
memcpy(pOut, a1, n1);
|
||||
pOut += n1;
|
||||
}else{
|
||||
@@ -7127,6 +7127,9 @@ static int sessionRebase(
|
||||
if( pIter->bPatchset ){
|
||||
rc = SQLITE_ERROR;
|
||||
}
|
||||
if( pTab && pTab->nCol>pIter->nCol ){
|
||||
rc = SQLITE_SCHEMA;
|
||||
}
|
||||
|
||||
/* Append a table header to the output for this new table */
|
||||
sessionAppendByte(&sOut, pIter->bPatchset ? 'P' : 'T', &rc);
|
||||
|
||||
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
||||
C Add\sa\srootpage\snumber\slower\sbounds\scheck\sin\sthe\s"recover"\sextension.\nTest\scase\sin\sTH3.
|
||||
D 2026-10-22T11:19:52.755
|
||||
C Make\sthe\ssession\srebaser\smore\srobust\sthe\sface\sof\scolumn\scount\smismatches.
|
||||
D 2026-10-22T11:35:33.749
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -581,7 +581,7 @@ F ext/session/sessionrowid.test 85187c2f1b38861a5844868126f69f9ec62223a03449a98a
|
||||
F ext/session/sessionsize.test 8fcf4685993c3dbaa46a24183940ab9f5aa9ed0d23e5fb63bfffbdb56134b795
|
||||
F ext/session/sessionstat1.test 5e718d5888c0c49bbb33a7a4f816366db85f59f6a4f97544a806421b85dc2dec
|
||||
F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
|
||||
F ext/session/sqlite3session.c 26f68307d1d876493d94efceb4ae62a19802cdee7fb4d0d3b0bdb96986cfcc99
|
||||
F ext/session/sqlite3session.c 83e1728515a7872db5abed84f02533fcd708349152b4ccc4233544c444020fac
|
||||
F ext/session/sqlite3session.h ca7c4422c1514a95056cc8d333217df6b1829d39058126b1de85d10cd62d7a9c
|
||||
F ext/session/test_session.c b30b1ecbb042d08f42406eb4fcfb2efef9609507e1b6b04b0a1ea4cb0a3cffe3
|
||||
F ext/vec1/Makefile 791bd52e40d5b65026c63c8778dbdfc6d66083457ee50cf873d6483d98f43437
|
||||
@@ -2287,8 +2287,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
|
||||
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
|
||||
P 31b84157965fcd3309a1420db71e0beee4ccdd88a2f44e5f9029a05cb04ae9cf
|
||||
R e2bd098c8ee5f2c50c5f11b820d6ac16
|
||||
P 4a1fd244b5ca93c6cfe1e0f8e1d087d5b99482081e4b760d09909959c258e506
|
||||
R a70714e34df379b709e1b48eb59ed0ea
|
||||
U drh
|
||||
Z c0b706dbfba9384e68a092d531551c29
|
||||
Z e7e4973ba225dd3d798fd9aa8d173542
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
4a1fd244b5ca93c6cfe1e0f8e1d087d5b99482081e4b760d09909959c258e506
|
||||
12285a3f4efdf41210fa3020127670b0d1fd8d740a5ac43db0c6641fec3e5142
|
||||
|
||||
Reference in New Issue
Block a user