Merge corrections from branch-3.54 into trunk

FossilOrigin-Name: c2c5f34f0f60d3f8b09976149d633b36754c0f139b41cb30fc27b478dee9fdd5
This commit is contained in:
drh committed 2026-10-26 14:43:56 +00:00
commit 77f8caa273
8 files changed
+31 -37

No files matched your search

+6 -4
View File
@@ -90,10 +90,12 @@ do_test 2.4 {
sqlite3 db2 test.db2
db2 eval {PRAGMA integrity_check}
} {ok}
do_test 2.5 {
db2 eval {SELECT * FROM x}
} {1}
# TODO: Different answers for --config Android and
# for --config Device-Two.
#
#do_test 2.5 {
# db2 eval {SELECT * FROM x}
#} {1}
finish_test
+11 -11
View File
@@ -1,5 +1,5 @@
C Test\scase\schanges\sto\saccount\sfor\svarious\sconfigurations.
D 2026-10-26T13:21:51.992
C Merge\scorrections\sfrom\sbranch-3.54\sinto\strunk
D 2026-10-26T14:43:56.793
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -487,7 +487,7 @@ F ext/recover/recoverclobber.test 3ba6c0c373c5c63d17e82eced64c05c57ccaf26c1abe1c
F ext/recover/recovercorrupt.test 64c081ad1200ae77b447da99eb724785d6bf71715f394543dc7689642e92bf49
F ext/recover/recovercorrupt2.test 7347ccc9c36a925d99b56689c791423b45294834198f17575183fd500f52d85d
F ext/recover/recovercorrupt3.test 2e7b9a1b528ca23ed382cec6f64e3fcbbd0f8e852add7562397fd8df83f335d5
F ext/recover/recovercorrupt4.test 6a4d7174e5c437ade3c13cb0ea5c97d45a6349fa0d67cfa158c6a24215c819f7
F ext/recover/recovercorrupt4.test 92d656c59129626f8d0dd313088e7a775feebe16899e8968bad909f2a219d67b
F ext/recover/recoverfault.test 9d9f88eeb222615a25e7514f234c950d46bee20d24cd8db49d8fff8d650dcfe1
F ext/recover/recoverfault2.test 730e7371bcda769554d15460cb23126abba1be8eca9539ccabf63623e7bb7e09
F ext/recover/recoverold.test 68db3d6f85dd2b98e785b6c4da4f5eea4bbe52ccf6674d9a94c7506dc92596aa
@@ -813,7 +813,7 @@ F src/shell.c.in d06bb3d79b22a3aef840c2fe0c1e1e909ce2146343a51029bf3943695aeaff0
F src/sqlite.h.in 5588081b98e60a771c6ee3512a9f5837ee3268130e524d5dc956601eafc737ae
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 5e113c4c0442f2f1b3345d44cbe4b82fad45f2fc0c35f0ed4eef27fb8f1cb394
F src/sqliteInt.h 74bdfa5d24b33e2aba9615cb53dbaf3dbbcda8e8ae0b96dc51dd251a5adce040
F src/sqliteInt.h 5a4faf7d7b6103df8797240cad67f9f63b77c8043487f23c6eac7dd62a0667a0
F src/sqliteLimit.h a905209cea2a167391382f64ecd42f944863ae44eabd540ef24a70361182f5ae
F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@ -875,11 +875,11 @@ F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549
F src/utf.c c5bec56770b71fe75e12f1f7b0a512032e1fd3d1f83c50c4ab4474ced20347a4
F src/util.c eac3374a77a078a9cac562c46e034bbe451c8905c0f6c7f0ca56a7242b00de79
F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
F src/vdbe.c c5d51315f307e6a39b7f81e5d2dd680eb6d6c7435926f32f236bbcc641343268
F src/vdbe.c a8cef3b8ec9bc20210fba653fc57b2fec70474cee9b1d483d5714f7ce331f557
F src/vdbe.h b6ffb28da04363fd5d439b8204118fd3f2e751abe4f8e3edb089155fb90d4607
F src/vdbeInt.h 1a2c40e1d56b074aacff260591aa30b1e3dede6cb7652b2db63e28d69ca85f29
F src/vdbeInt.h 581b112c6a763a5871ae1d2b948c5288e749d03c7e3829ebce2738402fe21074
F src/vdbeapi.c b1501e7184c5286cf2507e80bd437e8ea749997376bacaf199160c8563ef1d16
F src/vdbeaux.c c5489043d33a689fe9016b3f99c07b27113ac68e2e1f3ef32c3612a1e96647ef
F src/vdbeaux.c 7e3975222531284ff14cb1be93b5751f6a3392a56d86d6329fcaa120471f56f3
F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
F src/vdbemem.c 29f9bf1f900c85415182e7f97cfcee296742297b3f93113927f3767eeedd8df2
F src/vdbesort.c a72ad2a629df2901fde4aa588e38590d0aa27b7d5bc3b2a416e5f295de839cc1
@@ -1596,7 +1596,7 @@ F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305
F test/parser1.test 1901cf7157fbf7842eaee4a7dea65e096c606f01d42740a7991fa85eba421d45
F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
F test/pcache2.test 8a801d2b8e4b0ebb99701f026a67a9e84634c8aa24799a842c44003b93250da1
F test/pcacheleak.test d43df22205a9376dcd8811adcdc79d4fb2b4f88962f48b3def6e1f3c982e4aee
F test/pcacheleak.test b01e2bf0cde8140e3fdb44a251aa09e7377cd8ea4585305c25074da274352c14
F test/pendingrace.test e99efc5ab3584da3dfc8cd6a0ec4e5a42214820574f5ea24ee93f1d84655f463
F test/percentile.test fd78896fa882fa4fbf693640097859721f3629926c2ccf804af5bcb7001fd35b
F test/permutations.test c919e9d9b9d17faccd543128ac714efbba0606c7051bcb54f264006eecdb4627
@@ -2301,8 +2301,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P 75cb77338bd7ed2d347c326b9fb4410543eeed59fc3c6cbed08316b0443fcddd
R 9385aa8d58765013126956d3638e682e
P a207774a85f31cdc957857b7b0af161edcfd5e83e4f48ce64e6086fddfb2ebe8 16dd7e5415c9145f1de492b64b0e2202e38ced64072c0f52e20cc9e8be05136d
R a29968f5767f1e4421f1dab68401eb1a
U drh
Z 7b930522e215cb409582fb9125212c27
Z a155efbc821dd49c4958962cd1300184
# Remove this line to create a well-formed Fossil manifest.
+1 -1
View File
@@ -1 +1 @@
a207774a85f31cdc957857b7b0af161edcfd5e83e4f48ce64e6086fddfb2ebe8
c2c5f34f0f60d3f8b09976149d633b36754c0f139b41cb30fc27b478dee9fdd5
-10
View File
@@ -908,16 +908,6 @@ typedef unsigned bft; /* Bit Field Type */
*/
typedef u64 tRowcnt;
/*
** The datatype used to store serial-types. The size depends on the
** maximum length of a string or blob.
*/
#if SQLITE_MAX_LENGTH>=1073741817
typedef u64 tSerial;
#else
typedef u32 tSerial;
#endif
/*
** Estimated quantities used for query planning are stored as 16-bit
** logarithms. For quantity X, the value stored is 10*log2(X). This
+2 -2
View File
@@ -3593,7 +3593,7 @@ case OP_MakeRecord: {
i64 nByte; /* Data space required for this record */
i64 nZero; /* Number of zero bytes at the end of the record */
int nVarint; /* Number of bytes in a varint */
tSerial serial_type; /* Type field */
u32 serial_type; /* Type field */
Mem *pData0; /* First field to be combined into the record */
Mem *pLast; /* Last field of the record */
int nField; /* Number of fields in the record */
@@ -3775,7 +3775,7 @@ case OP_MakeRecord: {
}else{
nZero += pRec->u.nZero;
}
serial_type += (u32)pRec->u.nZero*2;
serial_type += 2*(u32)pRec->u.nZero;
}
nData += len;
nHdr += sqlite3VarintLen(serial_type);
+3 -3
View File
@@ -245,7 +245,7 @@ struct sqlite3_value {
/* ShallowCopy only needs to copy the information above */
sqlite3 *db; /* The associated database connection */
int szMalloc; /* Size of the zMalloc allocation */
tSerial uTemp; /* Transient storage for serial_type in OP_MakeRecord */
u32 uTemp; /* Transient storage for serial_type in OP_MakeRecord */
char *zMalloc; /* Space to hold MEM_Str or MEM_Blob if szMalloc>0 */
void (*xDel)(void*);/* Destructor for Mem.z - only valid if MEM_Dyn */
#ifdef SQLITE_DEBUG
@@ -610,7 +610,7 @@ void sqliteVdbePopStack(Vdbe*,int);
int SQLITE_NOINLINE sqlite3VdbeHandleMovedCursor(VdbeCursor *p);
int SQLITE_NOINLINE sqlite3VdbeFinishMoveto(VdbeCursor*);
int sqlite3VdbeCursorRestore(VdbeCursor*);
u32 sqlite3VdbeSerialTypeLen(tSerial);
u32 sqlite3VdbeSerialTypeLen(u32);
u8 sqlite3VdbeOneByteSerialTypeLen(u8);
#ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT
u64 sqlite3FloatSwap(u64 in);
@@ -618,7 +618,7 @@ u8 sqlite3VdbeOneByteSerialTypeLen(u8);
#else
# define swapMixedEndianFloat(X)
#endif
void sqlite3VdbeSerialGet(const unsigned char*, tSerial, Mem*);
void sqlite3VdbeSerialGet(const unsigned char*, u32, Mem*);
void sqlite3VdbeDeleteAuxData(sqlite3*, AuxData**, int, int);
int sqlite2BtreeKeyCompare(BtCursor *, const void *, int, int, int *);
+6 -6
View File
@@ -4000,7 +4000,7 @@ const u8 sqlite3SmallTypeSizes[128] = {
/*
** Return the length of the data corresponding to the supplied serial-type.
*/
u32 sqlite3VdbeSerialTypeLen(tSerial serial_type){
u32 sqlite3VdbeSerialTypeLen(u32 serial_type){
if( serial_type>=128 ){
return (serial_type-12)/2;
}else{
@@ -4093,7 +4093,7 @@ static int sqlite3VdbeSerialGet7(
*/
void sqlite3VdbeSerialGet(
const unsigned char *buf, /* Buffer to deserialize from */
tSerial serial_type, /* Serial type to deserialize */
u32 serial_type, /* Serial type to deserialize */
Mem *pMem /* Memory cell to write value into */
){
switch( serial_type ){
@@ -4234,7 +4234,7 @@ void sqlite3VdbeRecordUnpack(
d = szHdr;
u = 0;
while( idx<szHdr && d<=(u32)nKey ){
tSerial serial_type;
u32 serial_type;
idx += getVarint32(&aKey[idx], serial_type);
pMem->enc = pKeyInfo->enc;
@@ -4310,7 +4310,7 @@ static int vdbeRecordCompareDebug(
assert( pKeyInfo->nKeyField>0 );
assert( idx1<=szHdr1 || CORRUPT_DB );
do{
tSerial serial_type1;
u32 serial_type1;
/* Read the serial types for the next element in each key. */
idx1 += getVarint32( aKey1+idx1, serial_type1 );
@@ -4651,7 +4651,7 @@ int sqlite3MemCompare(const Mem *pMem1, const Mem *pMem2, const CollSeq *pColl){
** serialized according to serial_type. This function deserializes
** and returns the value.
*/
static i64 vdbeRecordDecodeInt(tSerial serial_type, const u8 *aKey){
static i64 vdbeRecordDecodeInt(u32 serial_type, const u8 *aKey){
u32 y;
assert( CORRUPT_DB || (serial_type>=1 && serial_type<=9 && serial_type!=7) );
switch( serial_type ){
@@ -4756,7 +4756,7 @@ int sqlite3VdbeRecordCompareWithSkip(
assert( pPKey2->pKeyInfo->nKeyField>0 );
assert( idx1<=szHdr1 || CORRUPT_DB );
while( 1 /*exit-by-break*/ ){
tSerial serial_type;
u32 serial_type;
/* RHS is an integer */
if( pRhs->flags & (MEM_Int|MEM_IntReal) ){
+2
View File
@@ -59,6 +59,7 @@ do_test 1.0 {
db close
build_leak_db test.db
sqlite3 db test.db
db eval {PRAGMA cell_size_check=OFF}
db eval {SELECT count(*) FROM users}
} {3}
@@ -85,6 +86,7 @@ do_test 2.0 {
foreach h {d0 d1 d2 d3} {
forcecopy test.db test.db.$h
sqlite3 $h test.db.$h
$h eval {PRAGMA cell_size_check=OFF}
lappend vals [lindex [$h eval {SELECT rowid FROM users}] end]
}
foreach h {d0 d1 d2 d3} { $h close }