drh
9abd7edaa7
Merge recent trunk fixes and enhancements into the alter-table-constraints branch.
...
FossilOrigin-Name: 26f8a700785edf64e2540b37c748e9f201870865ba70374f8681cdfdd048e68f
2025-10-02 15:30:26 +00:00
dan
cbc3cd47f0
Fix a buffer overrun in the zipfile extension that could occur while processing zip archives with extremely long file-names and comment fields.
...
FossilOrigin-Name: c284fda848038a61972fd1df5796f608a24ead109170aafe562a5d5787c46488
2025-10-02 11:16:22 +00:00
dan
d802904c8a
Fix some problems with DROP CONSTRAINT and DROP NOT NULL on generated columns.
...
FossilOrigin-Name: 66c47e18e6e1b69df4c2ceb63ff20423bbc1d5819934d77b140cf321fa14eac5
2025-10-01 17:27:23 +00:00
dan
c592b7e01d
Fix handling of FK constraints that immediately follow named table constraints in DROP CONSTRAINT.
...
FossilOrigin-Name: 1c6f09f9f95ba76efa4f11f1c05d405d799b43f3570b23791472c3e165971bbc
2025-09-30 19:20:53 +00:00
dan
1f6d80c1e2
Fix some DROP CONSTRAINT and DROP NOT NULL cases involving SQL comments or multiple table constraints without separating commas.
...
FossilOrigin-Name: b0b02e58ac60e4371981938c904ccf831b2367e3fd7d22e0ec2b4782e4c6805b
2025-09-30 17:13:12 +00:00
drh
c8e6f627b8
Fix the new generate_series() to correctly deal with an explicit 0 as the step.
...
FossilOrigin-Name: b059413c440d1b831c9a462f7165a350001ba7a8cc77ca2a0a8f2bb73c830aba
2025-09-30 17:12:39 +00:00
dan
d05bf5aedf
Fix another potential buffer overread in the zipfile extension.
...
FossilOrigin-Name: 0819fe670f9ceec79f84eb09c234dc29f6581332f86a53d6a0547697404efff1
2025-09-30 11:17:40 +00:00
dan
3eccaa7915
Fix a buffer overread in the zipfile extension code.
...
FossilOrigin-Name: 70c2c99b6f12a3467c23b44adcaf2d7d780ba8317b72de2f6730b1d892cf0c85
2025-09-29 18:55:05 +00:00
dan
d7330b571d
Add further tests for the new ALTER TABLE commands on this branch.
...
FossilOrigin-Name: 17a6f4e69e54a5dc233e33501f16f0f69f77fff071142cefc309b5407f57f721
2025-09-29 16:49:55 +00:00
drh
b7f5885b3e
Back out check-in [9abaa0ac2b304934] as the code removed there is necessary
...
after all.
FossilOrigin-Name: 27ae98629406bbaee2857f75c069b2ccd4757b247f0742e51b9e619e96b6dc45
2025-09-28 23:10:54 +00:00
drh
1bf80f2dce
Minor bug fixes. Many new test cases.
...
FossilOrigin-Name: 86dcc68d1816d970d8d5fb158696c3fe6c5ddcac2c255823110d656372503885
2025-09-28 17:24:42 +00:00
dan
fc66c6380f
Add test cases for ALTER TABLE and attached databases.
...
FossilOrigin-Name: 8f2e066e9a0a34fe7a41b153c0fb54b621128b2195141cc454a44180c969b4a9
2025-09-27 19:17:08 +00:00
dan
eceff127ea
Add OOM injection tests for new commands on this branch.
...
FossilOrigin-Name: 34b47c9b1be8a6ead917c6e9a85f8a295b14640cde177d8f1384b15f8bc692bb
2025-09-27 18:25:27 +00:00
dan
d47220c190
Add tests for ALTER TABLE authorization callbacks and other things.
...
FossilOrigin-Name: 55cad8d15040bc01300bfe5efcc7225dd9695c2972c0f9b4bbd311ed57188e1f
2025-09-27 18:08:19 +00:00
dan
32c49bd6e6
Fix authorization callbacks for the new commands on this branch.
...
FossilOrigin-Name: 0165e2afa8b640c9d7a31414f06144e089844dc13691f06f363a50d14fec62bc
2025-09-27 16:13:56 +00:00
drh
54f296389c
Rework the bounds calculations on generate_series() in an attempt to
...
avoid signed integer overflow when the bounds are ridiculous values.
FossilOrigin-Name: 3d9148c7d7379a34a0c2a33a1eb2562234868bc0b14c3d16990b33e52fd4ebc5
2025-09-27 15:03:11 +00:00
dan
ba1ee803ee
Add experimental implementations of ALTER TABLE commands to add and drop CHECK and NOT NULL constraints.
...
FossilOrigin-Name: d939b25d76fe70a3255cfe38097d4489323028cd05e5512a98dce06b48eee445
2025-09-27 14:59:21 +00:00
drh
b62c26d999
Limit the complexity of a REGEXP pattern using SQLITE_LIMIT_LIKE_PATTERN_LENGTH
...
FossilOrigin-Name: 869c968569b09d05a5b7d587d8fddb3b4611daf7467dc157701e5dc6c9608606
2025-09-26 15:38:52 +00:00
drh
80d74f0934
In the regexp extension, limit the maximum value of integers in the
...
"{p,q}" syntax, as performance of the NFA used to do pattern matching
is linear in the maximum such integer. The limit is SQLITE_MAX_REGEXP_REPEAT
which defaults to 999. This helps to prevent DoS attacks in systems that
make use of the regexp extension.
FossilOrigin-Name: 911c745f88c0ee8569e67bbcbbab034264f8c981b505aadac3ce7289486a1a68
2025-09-26 13:14:20 +00:00
dan
6553a5d6a6
Fix some integer overflow problems when handling corrupt hexdb dumps in the shell tool. [forum:/forumpost/82b513b116 | Forum post 82b513b116].
...
FossilOrigin-Name: 730323f95d126162fd2867dbee1e1f1fc1d6e05b8a905a6767c4ab1cb43dacff
2025-09-26 11:45:13 +00:00
stephan
a4476ea1fa
Overhaul the wasm build to (A) support more coexisting variants, e.g. 32/64-bit of both vanilla and esm, and (B) build each variant to its own subdir so that they can build in parallel. It can, with make -j4, now build all new variants in half the time it previously took for just the 32-bit builds. The new build logging output, though unconventional, serves two purposes: (A) improve my build-time situational awareness and (B) it help demystify some of the build steps and output files.
...
FossilOrigin-Name: 2f4be98614b49def2c2951887796c736269ef3bb7ba5b045cae5f748ae165a83
2025-09-25 15:17:58 +00:00
drh
dc868ef879
Convert the ShellText object in the CLI to use sqlite3_malloc64() rather than
...
plain malloc(). Avoid unnecessary quoting of table names in .dump output
and similar. Improved detection of OOM in set_table_name().
FossilOrigin-Name: 6ce4f6dc15a575c318669051fe6590ad114b52ff3f3e260cdf7accccdd922d63
2025-09-25 10:55:54 +00:00
drh
2c88a2ffb5
Rework the set_table_name() function in the CLI to use modern APIs.
...
[forum:/forumpost/2baa4acd64|Forum post 2baa4acd64].
FossilOrigin-Name: 821cc0e421bc14a68ebaee507e38a900e0c84ff6ba7ee95bf796cad387755232
2025-09-24 19:10:58 +00:00
drh
96bb92e70c
Special case the "decimal(-0.0)" output to show exactly 0.0, just as it
...
does for positive zero.
[forum:/forumpost/adc719d88d56ab22|Forum post adc719d88].
FossilOrigin-Name: 9ca4163bd93d78be5e4daf2b5d2b920d54d038c6fa8217dd2add0be0da6cd6b0
2025-09-24 17:49:09 +00:00
dan
2364fe3b38
Improve performance of window function queries that use "BETWEEN :x FOLLOWING AND :y FOLLOWING" where :y is a very large number.
...
FossilOrigin-Name: 1f0b7143575634929c0f77bafa888f0be2dd83f0c6c3deadd8299ac4ab8a8c01
2025-09-24 16:10:46 +00:00
drh
feeacfb897
Fix incorrect buffer size computation for the base64() extension function.
...
[forum:/forumpost/b1993c858f|Forum post b1993c858f].
FossilOrigin-Name: 603efcd404f0013559ca5bd936fc39481a3aa33a10340bac27b751b6b286d0b7
2025-09-24 12:01:50 +00:00
stephan
4500a87c95
In speedtest1, always use fatal_error() to exit fatally, instead of an fprintf/exit() pair, so that stdout/stderr get flushed consistently (which is significant for the WASM build).
...
FossilOrigin-Name: 1bd15cb343f6ce57f108291a8ed0f3ee2046932591d44edec133fe3ea43a2ef0
2025-09-24 06:59:47 +00:00
drh
cac1ef709f
Improvements to short-circuit evaluation of AND and OR operators.
...
This is a partial and incomplete response to
[forum:/forumpost/f5adeb59ff77c056|forum post f5adeb59ff77c056].
FossilOrigin-Name: cea8bf79e18d55a8658e48a967cd0b7970b6f88badb769cfbb1f66ab24fb9ec8
2025-09-23 17:00:53 +00:00
drh
611ffbc981
In the ieee754 extension, render -0.0 as 'ieee754(-1,-3071)' instead of
...
'ieee754(1,-3071)' as that makes the sign clearer. Both strings still
convert back to -0.0. Note that negative zero
and positive zero are distinct values in ieee754.
[forum:/forumpost/1eab7e4a08|Forum post 1eab7e4a08].
FossilOrigin-Name: 136188c161a8a2d5166798fcbd341bd1d3f81da7291011f806d6b2153544832c
2025-09-23 16:01:45 +00:00
drh
65a445d750
Fix the decimal_cmp() extension function to give correct results in
...
corner cases such as negative zero and two equivalent values where one
has extra trailing zeros to the right of the decimal point.
[forum:/forumpost/367c770224|Forum post 367c770224].
FossilOrigin-Name: 25b3626a018fa5916d0e129ee057c3f709c6e4d0b84a1a3102cad127a39a3db9
2025-09-20 14:32:12 +00:00
drh
49a37f333a
Improvements to imposter tables: (1) They are read-only unless writable-schema
...
is enabled. (2) Because they are now read-only, the ".imposter" command
in the CLI no longer requires the --unsafe-testing command-line option.
(3) Imposter tables do not participate in a PRAGMA integrity_check and hence
do not cause false-positive errors. However, you can still do an
integrity_check on the the imposter table itself by naming the imposter
table as the argument to integrity_check.
FossilOrigin-Name: ad152ddc4bcf6cfe840b9a36ab76a5ec36afdb1dd96eb7697e4b3df1bf63b00d
2025-09-19 17:24:12 +00:00
drh
e7efe1e201
Fix the new walckptnoop.test test module so that it works in various
...
alignments.
FossilOrigin-Name: 08689dacc1237a2b90dff4d32186b28054214f709dbff9e07057d3175c1c423a
2025-09-18 23:23:50 +00:00
drh
12ed2fea03
In the date/time functions, a timezone suffix of "+00:00" should work
...
the same as "Z".
[forum:/forumpost/2025-09-17T10:12:14z|Forum post 2025-09-17T10:12:14z].
FossilOrigin-Name: 3b7a5babf0843c4b3ce93d26f1447218585ce645ec3acd942ac649204e16675a
2025-09-17 14:55:47 +00:00
dan
cf0ba94657
Merge trunk changes into this branch.
...
FossilOrigin-Name: 3bac76a86baae830d4fdc9e4055470d84549fde56b4cf217ebd96cb486554461
2025-09-08 14:40:17 +00:00
dan
b9bf2d9382
Add tests to check that SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER is working.
...
FossilOrigin-Name: beb092d8105e5a1ce95339527bf96799e2ce073591b055f71a5f1dc1d0a0c49c
2025-09-05 11:20:11 +00:00
dan
d8d88d9390
Add "PRAGMA wal_checkpoint = noop" and SQLITE_CHECKPOINT_NOOP. To request a checkpoint that checkpoints zero frames.
...
FossilOrigin-Name: 48be3d020cf0c732557b3d956198a1abcab79424be03f447e2bb89f4d68dc8ff
2025-09-04 19:33:23 +00:00
dan
7fa9e45746
Add test case for pushing WHERE constraints into a UNION sub-query that uses virtual tables.
...
FossilOrigin-Name: 13c80e903ee7f178528918716b11fc0b57fc50b923dcd8aeabf9e6e04e93cdae
2025-09-02 14:59:16 +00:00
dan
20bfeccb65
Update test script reservebytes.test so that it works with the "prepare" permutation.
...
FossilOrigin-Name: 4ac774364b693a4b992c997c64bf425e2765133a7a25963cbf2b02c180eeaba5
2025-08-29 16:51:16 +00:00
dan
1df00568b3
Add test to ensure that changing the number of reserved bytes in a database using VACUUM does not confuse other connections in stock SQLite.
...
FossilOrigin-Name: 6bf54bbc4d503e8ebeb804dfb318383770e85d434dacbbbd8f6dadc7595b1856
2025-08-27 11:21:44 +00:00
dan
3c2b02d919
Check that certain ON clauses do not refer to tables to their right as a separate step after parsing a SELECT statement, instead of as part of the planner stage. For for [forum:ccfb3b5052 | forum post ccfb3b5052].
...
FossilOrigin-Name: e0beda7ffe92abf6322db8314c42940adab7f89a35d38124355cb3464ee70b9f
2025-08-25 14:27:31 +00:00
dan
7af1d61886
Add test case to this branch to show that it handles cases where ON clauses use select-list aliases to refer to columns to their right.
...
FossilOrigin-Name: 4d34ab4acf0343a22ea8097fa4b1e87a1b0a13be864d5bee0c7a8341c09b8002
2025-08-25 11:47:15 +00:00
dan
4bace197e1
Fix the cases in joinI.test on this branch.
...
FossilOrigin-Name: 23ac2377315af02b73db6ae37bfeeda1453e41efb702a6b707346956c2d41a9d
2025-08-23 16:26:36 +00:00
drh
81b8ad0830
Fix cksumvfs test case added by [e3bd1feccaee8ff2] so that it works
...
with varying page sizes. Test case change only - no changes to code.
FossilOrigin-Name: b6f8f086dacd11f57bdb0eef79f25bce209816a0748f16009372c62dc3edd5ae
2025-08-23 11:09:53 +00:00
drh
d271627f96
Steal the test/joinI.test from the on-clause-error-fix branch that
...
demonstrates that this branch does not work.
FossilOrigin-Name: d163535ec8d463d74112d38a606fa4d900e66deb1a414c947973cd1880e41526
2025-08-22 19:30:26 +00:00
dan
1be5689087
Avoid returning SQLITE_ERROR_RETRY if collation sequences associated with the table's PK cannot be found when creating an index. Possible fix for [forum:aa61ab56ad | forum post aa61ab56ad].
...
FossilOrigin-Name: ac649e5b9ca9b8f7729defa8d646df8c0cb57977a5eedcfa2cf1147d109a17f1
2025-08-20 15:42:23 +00:00
dan
6f097125cd
Have cksumvfs write checksums to the database file only, not the wal file. Writing them to the wal file breaks wal file recovery.
...
FossilOrigin-Name: e3bd1feccaee8ff2f68b7b863769dd739e8a434fd32fed73deeeec885628311c
2025-08-13 19:13:16 +00:00
dan
0e77c3fa4d
In cksumvfs, do not write checksums to the wal file, as this prevents recovery from working.
...
FossilOrigin-Name: 5bf48c7e31904f1f7048499c630801846df89f262b32ea1e49fb6e039eaad11a
2025-08-13 18:37:41 +00:00
dan
c5c9c6093b
Fix a problem with the checksum-vfs and direct-overflow-reads.
...
FossilOrigin-Name: 8288edb9f930206f117823cf1d18af632dc6adbd7c4c3b9bcfc252e1a5e5b9cd
2025-08-13 14:35:14 +00:00
dan
b1406a6550
On windows, when opening a UNC path, fall back to using a single file handle shared between all connections for locking.
...
FossilOrigin-Name: 5c0202d96c3a20a2cbcd38eba5e62371606894a0cbc2da4f60e10a1b5fa7bd04
2025-08-12 17:55:34 +00:00
drh
e7440380c2
Do not allow the number of terms in an ORDER BY or GROUP BY clause to
...
exceed the maximum number of columns in a table.
FossilOrigin-Name: 139e587c7b349e771d67a8b4ee02ab3ad5d5712d4ff4713dad63cb765bdee248
2025-08-06 19:12:10 +00:00