drh
dfd31e158c
Additional performance improvements in sqlite3AtoF(). Also update the
...
header comments.
FossilOrigin-Name: 8c3a1b450d6d5778004b9fb0e92b4f3f90d3e06ff87276370d01a45b7d607d23
2026-03-22 17:50:48 +00:00
drh
cc19c1dafd
Further simplification and performance improvement
...
FossilOrigin-Name: 6c3dc2430adef061b458b6d9159628bb8debfd4d63876d5d5e7493afb799d97f
2026-03-22 02:51:18 +00:00
drh
99571bf3c3
Performance improvements in the floating-point number parser.
...
FossilOrigin-Name: aea648f3668219a2539160eb68c77ddd06aa8eac235c1326fe7b1547288b11ee
2026-03-22 02:26:38 +00:00
drh
3c1f727603
Because version 3.52.0 was withdrawn, that means QRF has never been
...
officially released. Hence the new nMultiInsert field of the spec
can be moved out of the extensions area and into the main part of the
spec, and the version number can drop back from 2 to 1.
FossilOrigin-Name: cf19982241afb17e3db4148b8257f6737141935a291c340ab085c42ed946af1a
2026-03-21 19:49:38 +00:00
drh
d9e70f2b90
Try to fix harmless compiler warnings from legacy C compilers in the CLI.
...
FossilOrigin-Name: 8e1d0c4eac303cd0834449f4792605c0ed983db1f360af42300f0048dadbbef8
2026-03-21 13:21:41 +00:00
drh
4c78799bb0
Add support for REINDEX EXPRESSIONS
...
FossilOrigin-Name: d56954146ce5eccd63b65242abe2e6556dbceda39a58eab39f5884884afea337
2026-03-21 13:05:54 +00:00
drh
958b6a52e5
Undo "indices"→"indexes" changes in comments, to avoid diff clutter.
...
Fix a couple of unreachable branches.
FossilOrigin-Name: 0042ff9afd00eca0a837e9bbe57540ff2810fcd58b4f7e3f4e3b83aad5699757
2026-03-21 12:55:57 +00:00
drh
f62cff6a9e
Fix harmless compiler warnings in the csv.c.
...
FossilOrigin-Name: 6ac701f89e2ac8dfd18d041eb8c36a0c2b9fedc5618d3a95be794aecce5c59cf
2026-03-20 20:35:21 +00:00
drh
f163bfba4e
If the argument to REINDEX is EXPRESSIONS (with no schema prefix) then it
...
updates both expression indexes, and any indexes named "expressions" or
all indexes of any tables name "expressions".
FossilOrigin-Name: 72650dc152279a6da1937f377b1e16b79f4cd664841e12222dc5459838408d22
2026-03-20 19:30:58 +00:00
drh
b0a4b69b95
If there are not collating sequences, tables, or indexes named "EXPRESSIONS"
...
then the "REINDEX EXPRESSIONS" command rebuilds all expression indexes.
FossilOrigin-Name: df5c5aa26758e0dc00a9ccba29eac83071176d257e121207e0a13c54833b18c0
2026-03-20 14:37:39 +00:00
dan
bd580270a5
Ensure that collation sequences on non-PK columns of a WITHOUT ROWID table are used correctly when they are part of a row value comparison. Fix for forum post [forum:7a308e933d | 7a308e933d].
...
FossilOrigin-Name: 078b3162d0d3d3035f4d3ad88664066d99c218a731ac481b9f1172529e26e4eb
2026-03-20 11:35:15 +00:00
drh
de4ef2dc70
Ensure that sqlite3RCStr values returned by json_group_array() and
...
json_group_object() are zero-terminated.
FossilOrigin-Name: 88a931ea2ae734478928c2a6021b00b0f2be490328260630e176cf3cc7111472
2026-03-19 23:49:29 +00:00
dan
0cb7603d4c
Update fts5 scan costs to take into account that a prefix query combined with a rowid equality constraint is still quite expensive.
...
FossilOrigin-Name: 539769b63e4044018be2993894b1962df6a6ae58636682b7fb7a2dd5aaf4075c
2026-03-19 17:56:10 +00:00
drh
28cfb1e4a7
Restructure some internal subroutine signatures for improved
...
performance of affinity type conversions.
FossilOrigin-Name: 2bc6ce87b39c6ae324c3641c5af60e000df7d7c6d5fd2dd1a318c94cbb4aef84
2026-03-19 17:08:08 +00:00
drh
915a55444b
Use compiler intrinsics to improve the performance of
...
sqlite3Multiply160().
FossilOrigin-Name: 3c64f31392328f51e205fde52f19cf70c193e90897ccb7e93c685bad4f342cac
2026-03-19 13:40:40 +00:00
dan
58012b85b0
Do not assume that a recursive CTE emits rows in ORDER BY order. Fix for forum post [forum:deb1eadf4d677bd5 | deb1eadf4d677bd5].
...
FossilOrigin-Name: cadb6cdd32c3c9abd7e063f25acd39dddc9ff764a16019ffd5aa11063175326f
2026-03-19 10:51:40 +00:00
dan
a2d80200b1
Reverse the if() condition added by this branch.
...
FossilOrigin-Name: a9a0dd521c7c24b0c8b22abf2a131028f4dc9cd233678dc1f658da81a4a70e4b
2026-03-19 10:39:24 +00:00
drh
08eb5e9e51
Continue enforcing the legacy declaration-before-statement C-language rule,
...
since some downstream still uses it.
FossilOrigin-Name: 5c237f1f863a32cf229010d2024d0d1e76a07a4d8b9492b26503b959f1c32485
2026-03-18 22:31:56 +00:00
drh
b425ebdd4f
Add logic to silently and transparently deal with stale expression index
...
values when deleting or update a table row, instead of reporting a corrupt
database. Enhance PRAGMA integrity_check to identify non-serious
stale expression index entries as such, rather than proclaiming that the
indexes is broken.
FossilOrigin-Name: 0ed040128b7ebb5be438b1841607ed9c525b271cac81021bc356cf573d1cd516
2026-03-18 20:17:48 +00:00
drh
ac53ce155a
Minor optimization to error message generation in integrity_check.
...
FossilOrigin-Name: e0fa7c500052af9d36cb2d232131ef93361403187f4a60f53279b102c7a95860
2026-03-18 18:14:14 +00:00
drh
5a6772eaa5
Comment improvements. Ensure that tests in shellB.test that require
...
virtual tables do not run when compiling without virtual table support.
FossilOrigin-Name: a270c6cc0eea8a8a2cf1ce30d724b2f12b11a1c343cd8520bd7843f4e62878f8
2026-03-18 17:16:18 +00:00
drh
acc213b42f
Improve the integrity-check error message when floating point index values
...
are off by one or two ULPs. Change the name of the eiib1.test test module
to expridx1.test.
FossilOrigin-Name: 4e996c183ea8d270b4448b471d4d032e13cef89f537674599d1e7c367cc2d0f8
2026-03-18 15:51:15 +00:00
dan
345bc91673
Do not assume that a recursive CTE emits rows in ORDER BY order. Forum [forum:deb1eadf4d677bd5 | deb1eadf4d677bd5].
...
FossilOrigin-Name: 971aa34b3fd86ba30fe170886d9f83c17159b1638c4bd4fb6cdef79b1c9a88e2
2026-03-18 15:40:26 +00:00
drh
1539575e05
Take care not to overread the record header when decoding the record
...
in vdbeIsMatchingIndexKey().
FossilOrigin-Name: 3a275b5848767b61011b9d1d3d1a62328a80906386375d1b1e13fd92b6983e05
2026-03-18 14:47:20 +00:00
dan
f0648f6924
Pad the allocation in vdbeIsMatchingKey() a little to avoid undefined behaviour if the record is corrupt and getVarint32() reads past the end of it.
...
FossilOrigin-Name: 9b0671a4f58098948d530f5e238b483a0e9f1309021aff0d6b5ea90e6c8f4e7b
2026-03-18 14:01:21 +00:00
drh
15a3b2d4e1
Adjust the fix at [f7389cdb129d3386] so that integrity_check output still
...
appears prior to the SQLITE_CORRUPT return.
FossilOrigin-Name: efd9a7a6c862f778da9cd74e38f674e5d1094aa1c566ea3e68553e83f59502d3
2026-03-18 13:49:06 +00:00
drh
765ff2189a
Simplification to the logic that decides whether or not an index
...
field matches when floating point values are close but not exact.
FossilOrigin-Name: 3897017c0e871c676d44786a6f11205fd4b7a947d9d1359109037a123eda6b9b
2026-03-18 12:36:01 +00:00
drh
3ca448dee5
Fix harmless signed/unsigned compiler warnings.
...
FossilOrigin-Name: aa211fa1d49b6734913e957f9e4b9825709a1493d275f7dfaf9123dc8c7232dc
2026-03-18 11:15:57 +00:00
dan
3f2d7d4aaa
Fix some cases where integrity-check would fail to identify real values in indexed expressions that are with 2 ULPs of each other.
...
FossilOrigin-Name: 40c5966f7b784f181365c81fc559aee9463c374ee56677cf6e0aecaed39d2b28
2026-03-18 11:06:10 +00:00
drh
00989bcd9f
Fix harmless "unused variable" compiler warning.
...
FossilOrigin-Name: 3380eb1ea71d6bf8325dbe49f4bac7623b3b6193f3b36dedd9411188cfc80b89
2026-03-18 11:04:15 +00:00
dan
362b9cecdb
Modify integrity-check so that it is only tolerant of very small distortions of real values in indexed expression fields.
...
FossilOrigin-Name: 82e6de835bde306778425d18ab1a15ae80fdf01af7f577ead89c09f9d53b5b2f
2026-03-17 21:17:42 +00:00
drh
f4e6483cda
Improved error handling in OP_IFindKey and in vdbeIsMatchingIndexKey().
...
FossilOrigin-Name: f7389cdb129d3386b7dfb8acacf84816cf10864c6800a9bd9a61c6364b850a31
2026-03-17 18:55:24 +00:00
dan
ae2820ab28
When integrity-check finds a missing index entry, search a small range (currently 10) of entries around the missing key for an entry that matches all non-virtual and non-expression fields.
...
FossilOrigin-Name: 978cedcbd33165dadc7dffc118bde359eff6751ec9842230880cb827d9f7845f
2026-03-17 17:05:45 +00:00
drh
bdbad43f33
Do not run index healing on an invalid cursor.
...
FossilOrigin-Name: eb6403f02c113f58030c0b4143d91b6327ee21dcb324d3f235c2bf6bf3d6577c
2026-03-17 13:13:02 +00:00
drh
d6965b1dab
Merge recent trunk enhancements into the idxdelete-tolerance branch
...
FossilOrigin-Name: 9d84fdb7819a9850919e2c1977811bcf514b3baad29eb8cc9fc78451d500c8b6
2026-03-17 12:16:47 +00:00
drh
ccf2babd42
Fix an assertion fault that could occur in RTree when given a corrupt
...
database.
FossilOrigin-Name: ed29fe973e6cbf291eff6fc582aeb34556ea4f8df105ec61b361e4cdda017e62
2026-03-17 12:07:49 +00:00
dan
2953e950c8
Fix display of P4_INDEX values in EXPLAIN output.
...
FossilOrigin-Name: e717017f0213441da2ef8a9e1f1e88ebfdefa26fc4773711968417c0bd6ebe5f
2026-03-17 11:26:57 +00:00
dan
8736da94bc
Fix compiler warning an inefficiency introduced by previous commit.
...
FossilOrigin-Name: 03058d73d3a88ab30e874b4231cc5b263b874a577f8bf5189a452d7376e25a47
2026-03-17 11:22:51 +00:00
drh
b302c4d39c
Typo fix in sqlite3Multiply128(): The datatype should be *unsigned*.
...
FossilOrigin-Name: b459f6ff63325f71d4056dad2ebb536e0d414c973f3c6e167e8f67e94e6f0e2d
2026-03-17 11:19:16 +00:00
dan
022f2f96bc
Change the sqlite3VdbeFindDeleteKey() routine so that all index fields that are not expressions or virtual columns must match the table for the delete to succeed.
...
FossilOrigin-Name: eccd9fcfa7e34ddcdeb671544c6afac7aa0d4665c5e1df7c8e53c41387ed0386
2026-03-17 11:17:54 +00:00
drh
5a73386511
Fix a harmless compiler warning.
...
FossilOrigin-Name: aa23d6cc69471eacb3fb0d789c34169e047e4a09a50beb430eb8e8e63b5bce78
2026-03-17 10:19:11 +00:00
drh
1c1f7c259e
Merge trunk enhancements into the idxdelete-tolerance branch
...
FossilOrigin-Name: 5f5ab3eb3618b6a2799355df50bfdf94121161f7cadba6253963036d9f284f08
2026-03-17 09:53:02 +00:00
drh
cf93c51790
Enhance text→float conversions for exact rounding in all cases.
...
FossilOrigin-Name: 704ddfd0df57c2b137af88264df20a540e3f8f114a58ae5e31b40ab8259bb63e
2026-03-17 09:49:07 +00:00
drh
b50ce08591
Include the float-point table generator utility in the tools directory.
...
FossilOrigin-Name: 4ab10b251d870af8297b9e505452393f6000f83784c822ff128e7aec06f8c72f
2026-03-17 09:45:47 +00:00
drh
e9018e5ff5
Reorder bounds checking in sqlite3Fp10Convert2()
...
FossilOrigin-Name: 23ad656edb3a63e7e6602770e1f2c4a5ef1f3d41565e7f13408b5305619dfa3d
2026-03-17 09:18:36 +00:00
dan
4cc023bd01
Remove a couple of unused variables.
...
FossilOrigin-Name: f66cb3dc275d3f31e57576466e697a6c7c5179144babab08d75b624e9846ecc3
2026-03-16 19:14:07 +00:00
dan
f6308e68ff
Further tests for the code on this branch.
...
FossilOrigin-Name: f928a38091977268aa6a096104797158883ed89b9e026b4e4b98b9b5da967de1
2026-03-16 16:44:14 +00:00
dan
066a5bcdd7
If OP_IdxDelete cannot find an index entry to delete, first search 10 entries in either direction of where the entry should be in the index. If that fails, search the entire index for an entry with matching PK fields.
...
FossilOrigin-Name: 2cb9f4e4178549144acd82e317a1646e71c9281ac9fc4aa26bf129f1068ded45
2026-03-16 16:21:43 +00:00
dan
b2006499c7
Fix a problem with the find-delete-key method on this branch.
...
FossilOrigin-Name: 6f49b5ecad5d924999d045a1ade93d95e731182be1781aefa5bc763b6202e9c3
2026-03-16 15:49:58 +00:00
drh
bf057073c3
Rework the ".indexes" command of the CLI. (1) The PATTERN now matches
...
the name of the index itself, not the name of the table containing
the index, thus making the pattern actually useful. (2) System-generated
indexes (for UNIQUE constraints and similar) are omitted unless
the -a|-all or --sys options are added. (3) The --expr option causes
only expression indexes to be shown.
FossilOrigin-Name: 13e2cad810bfd59a9e18eb38bda1241715b76756ffec7d617e9ce99b89f19284
2026-03-16 15:35:41 +00:00