Commit Graph

30979 Commits

Author SHA1 Message Date
drh
001f36f9af Mark an always-true conditional as such.
FossilOrigin-Name: 4f79434f5b52470291dcd09e31fdefba708d0243a2b60966536c6cb91451d203
2025-12-04 13:28:25 +00:00
drh
3749e75c68 Fix an error introduced by the previous check-in.
FossilOrigin-Name: 948e24ae3816d650be66bbe6b880bea74da643af37c4349e6cf2e207e6cf9b28
2025-12-04 13:08:59 +00:00
drh
fa7abfdf0b Performance optimization in the language grammar.
FossilOrigin-Name: 1c1ad5e39cb379250f10db5ef61f42e0bd56ace308f8e41f9bf5e08d92075521
2025-12-04 11:59:11 +00:00
drh
5ef150c223 Merge all the latest trunk enhancements and fixes into the temp-trigger-refs
branch.

FossilOrigin-Name: 8e8a27c77aa0ea5891968231e13a8caeade48b817419bbf6eda18ad217f1df63
2025-12-04 11:20:01 +00:00
drh
2121fc4141 Fix an incorrect answer that might arise if a scalar query is both
DISTINCT and contains an OFFSET clause.
[forum:/forumpost/2025-12-03T09:25:59Z|Forum post 2025-12-03T09:25:59Z].

FossilOrigin-Name: aef5397569d65d2971367b0278fe3a6f42544cf771572e7d046e2472f052364d
2025-12-04 00:05:49 +00:00
drh
27a7770f52 More aggressive optimization of IS NULL and IS NOT NULL operators in
the parser.  New sqlite3ExprInt32() internal interface for creating
integer nodes in an expression tree.

FossilOrigin-Name: 560082d61f5b73ae68a86ce4d7e96d072d4f0996d82ec62d639847353bb8bf15
2025-12-03 21:31:53 +00:00
drh
5be3ac87db More aggressive optimization of IS NULL and IS NOT NULL operators.
FossilOrigin-Name: c69eec9909af40e1e22d44a6859ef52378ebe06a587373f332f9d379cb39a84d
2025-12-03 18:18:29 +00:00
drh
1e235b9b02 Create a new internal subroutine specifically designed to allocate
Expr nodes that hold a 32-bit integer.

FossilOrigin-Name: 38d06f69e516dd13becbfb735a2a0035c2f3c50ea5d661a668b109a996656523
2025-12-03 16:54:48 +00:00
dan
ab63da3f1c Fix a problem that could occur when a scalar subquery had both a DISTINCT and OFFSET clause. First reported by [forum:41bd7af485 | forum post 41bd7af485].
FossilOrigin-Name: 496bbff910b73775b16c1ccb95dadf37416d3f3032722a1140f2a9134666d7f1
2025-12-03 14:39:25 +00:00
drh
8686ac40ae Clarification of comment text in expr.c. No changes to code.
FossilOrigin-Name: afe5ee64f1cde4945c878220b029f2a22578c2bccda4fddc005c4e6a4718c6cd
2025-12-03 12:07:35 +00:00
drh
d9b165b27a Fix recently added test cases for Windows.
FossilOrigin-Name: bccc0d65b0fb617f6c8eb111b6717d3ad419f80d3495dc5c6a69ccd0771b3d9d
2025-12-03 02:48:36 +00:00
drh
25ca71daac Improvements to the ".schema indent" logic.
[forum:/forumpost/c8136b1bd0|Forum post 2025-12-02T19:04:04Z].

FossilOrigin-Name: 71ea7f38ffd0648c58713d8be5d2f5536f926ec21a0adc3c2a8a9a7ba8ea3826
2025-12-02 19:55:39 +00:00
drh
a0a63a0408 New test cases for QRF
FossilOrigin-Name: e49c63e31888c6787ab13f736d58ff985a24c3f98b475e05c30e8b244afffb80
2025-12-02 18:37:49 +00:00
drh
8df04c3f41 Fix a harmless compiler warning in the previous check-in.
FossilOrigin-Name: 601c40a1d9e1bcd9c453210c275001543d1533af25b4ccf399d5ef4ea1328950
2025-12-02 15:01:29 +00:00
dan
d200379aff Fix a problem with ALTER TABLE DROP COLUMN commands where the column being dropped is the rightmost in table and is immediately preceded by a comment containing a "," character.
FossilOrigin-Name: c872bd1ee7b219e055f40e43766e4ed6bc2d2ca8cb92577cd3560f4173b1f257
2025-12-02 14:43:59 +00:00
drh
9fb597aed1 Add developer note on how to measure coverage of QRF.
FossilOrigin-Name: 0fdd453c03addb8f5c1e546f7513e3498bccd61266174ce99a61ceebf04e97cf
2025-12-02 12:23:24 +00:00
stephan
4b6e26c29f Fix a potential UAF in sqlite3.oo1.DB.exec()'s teardown pieces.
FossilOrigin-Name: 7e99e93cddeba555836206a278c5dcfd8565cc2a486a83cffab64dad168e9464
2025-12-01 19:19:06 +00:00
dan
7b60ed803b Fix a memory leak that could follow an OOM on this branch.
FossilOrigin-Name: 3223fee0b93bbbe277b955a98c13bb583ded78109f8e601c9ec0a7bd3749fd55
2025-12-01 18:11:08 +00:00
dan
73937f0ca8 Fix another crash on this branch that could follow an OOM.
FossilOrigin-Name: 75c49267ec6b84c8aad0e264c34506e4b24f69475ae5def0ee7530ba3822c15d
2025-12-01 17:39:04 +00:00
dan
928276043b Merge latest trunk changes into this branch.
FossilOrigin-Name: 230fd5533e07ec36f1938f34153c9ef97a7acd6604d023b56dfc5269ca6173c2
2025-12-01 17:22:35 +00:00
dan
ac0f2d5897 Fix a crash that could occur following a parse error on this branch.
FossilOrigin-Name: 951b4533509fae971e252be3ecd3623ac2bdce16220e0ce372e600f728f80f69
2025-12-01 17:22:15 +00:00
drh
ea1020908c Disallow the undocumented -recovery-db option on the ".recover" command
of the CLI when in --safe mode.

FossilOrigin-Name: 65202440874a7fea5aba262e8e78b97c833147d47837a99f301eca968f9a78b1
2025-12-01 11:07:31 +00:00
drh
a4f0592c5d Tweaks to the wcwidth() algorithm in QRF, for better agreement with
the Terminal on Ubuntu.  There is no perfect solution, as different
ttys do things differently, but we should try to get as close as we
can.

FossilOrigin-Name: 35f39f7cb1030b1a57f2921f50ab600496fc1e774593717845e87f2e47dc49ba
2025-11-30 23:09:24 +00:00
drh
4ee2e72c58 Improvement implementation of the previous check-in: runs faster.
FossilOrigin-Name: 484d1fd2a240c8fd006e7794936d6678b8db792a8b2b30d2ae5baf5a1b19463a
2025-11-30 17:47:27 +00:00
drh
db2065aca0 Block injection of hyper-oversized SQL inputs into the parser.
FossilOrigin-Name: 42b6dab92464833eeae5fb261ed689e4b632132d7c8e1ea920aeeb5d50091ab7
2025-11-30 17:26:53 +00:00
drh
8de06cf3b4 More tweaks to the README.md file.
FossilOrigin-Name: 1d79220ac9f6ad783dee48d341ebc9bb58f357b585baf1612b5aebbf8ad0cccb
2025-11-30 11:12:37 +00:00
drh
c90bd32d5d Correct to the README.md file.
FossilOrigin-Name: 3cd3256c7c595f54c8c12fafd1fb60349db82f69eb54fd9896b24db46a8b00d0
2025-11-30 10:49:09 +00:00
stephan
9a07531d88 Doc typo fix.
FossilOrigin-Name: a2b53a71e9354260c7fd0ada093cebd56a20a04add12ff2a2d788c386bf8964f
2025-11-30 07:56:40 +00:00
stephan
090acb4ead Add sqlite3_db_handle() to the list of functions which are guaranteed to preserve the current error state, per request in [forum:8e79e8ddd5|forum post 8e79e8ddd5].
FossilOrigin-Name: 78bdc766330c35dbfa8b187854c48c3aff66a9d58796c9c20f3a5701e1ee4351
2025-11-30 07:25:59 +00:00
drh
9c2e031442 Additional defenses against using the ".open" command of the CLI in --safe
mode.

FossilOrigin-Name: eec0b80e53bb54ee05a4903cfb967cc2914cdcc735f1218922a0f9c80399c3e8
2025-11-29 18:59:58 +00:00
drh
91c60a0805 Update the documentation to sqlite3_str_finish(). That function might
not return NULL on an empty string now, if the empty string is created
through the use of sqlite3_str_truncate().

FossilOrigin-Name: b2e980ede581625e37701f54833e5615d31a1b821ddaf52a26798494f847e640
2025-11-29 18:32:25 +00:00
drh
cee98b4ced Handle empty string values in columnar modes without NULL pointer
dereferences.

FossilOrigin-Name: 7927dbc5ebc76233325e45bd24181dbc5c3636e271f9352cf530f41dad6ba66d
2025-11-29 18:18:15 +00:00
drh
1bc183a935 Fix an assertion fault in sqlite3Dequote() that can occur with
ALTER TABLE DROP CONSTRAINT on a corrupt schema.
dbsqlfuzz 509a778e8a0c21a6448003feb773a1e55ed751e7.  Test case in TH3.

FossilOrigin-Name: 2dc73eb2d215178c448b182ebb227bc4753ad7baf46c8bd58f20a2b22e998726
2025-11-29 12:06:12 +00:00
stephan
79837b6ee5 Correct a doc falsehood - jquery.terminal does not require pre-building.
FossilOrigin-Name: 4384c9a108b58a0b8c38c51678aad871f088358b9bff3922299cc7ddb3d247ce
2025-11-28 17:56:22 +00:00
stephan
2c881d45dd Fiddle build: if JQTERM is set to the dir name of a built jquery.terminal checkout then copy the pieces fiddle needs to enable that input mode. By default it looks in ~/src/jquery.terminal.
FossilOrigin-Name: 9dd16f8e3b8e181ff138b4061c9dbc116cbc6f85ee867a97cd8af6e9e874c7d1
2025-11-28 17:50:29 +00:00
stephan
961665682b Minor doc updates.
FossilOrigin-Name: 66b0f28958311204270053ef1d5e66c0ad04e3a52f2570c543b6d319d75798fa
2025-11-28 16:23:24 +00:00
dan
8fa43479b3 Fix a problem in the xFilter() method of the fts5_vocab virtual table causing it to omit some result rows in some cases where a virtual cursor is used more than once by SQLite.
FossilOrigin-Name: 6c99e81e6c49c078f1b00952774a7007c60dc1b4ba8a8fc11357efe9c9233212
2025-11-28 11:52:40 +00:00
stephan
f26c99005a Rename c-pp::ARGV to c-pp::argv and remove its use from the license header (where it doesn't get applied).
FossilOrigin-Name: a2e18d299c8fd7360de246fdc3a2f92025bf321e06c5baf6032ba98854733e60
2025-11-28 02:34:08 +00:00
drh
6fb51919c3 Ensure that the CLI always jumps to the code that frees memory allocations
prior to exiting when it encounters errors on the command line - just so
that fuzzers won't call that memory leak, even though it is not.

FossilOrigin-Name: 50eaf4266f184963e85ad6235fb3410bf4992db8b3dc7c92be23a2f143c12a6b
2025-11-27 12:15:22 +00:00
drh
d98f758f40 Fix an utterly harmless memory leak that occurs when the CLI exits due
to an error in the command-line arguments.

FossilOrigin-Name: 55942e6d582d421187f2806dc93ea931b64dbb4025203540af654f56d1c9bc36
2025-11-27 11:40:40 +00:00
drh
00bca0b6de Ensure that the split-column transformer in QRF correctly
transforms the abNum[] array.

FossilOrigin-Name: ea67d8b001d1be3b0410ca697ff7ddda71c957c8ecb6d76e75133ba39b754623
2025-11-27 11:29:14 +00:00
drh
110d452cad Fix a CLI test case due to a change in error message text.
FossilOrigin-Name: cf45d534d63878b00d949234e81cf9c67db7d7067bbac2fd5cd1780463fcce06
2025-11-27 10:57:06 +00:00
drh
e5d4e067d8 Fix two harmless compiler warnings in FTS3.
FossilOrigin-Name: fd9158e6359a85c509e29ddbb333e5ee5d20aae5dc38cd14425286e5f3764b06
2025-11-27 01:32:07 +00:00
drh
9fa8f1d6e0 Improvements to the QRF README.md file to help clarify how to use it.
FossilOrigin-Name: ff589e9e0da99e2248bc7a8bff37e1deb7cbdf8285c18467acd89b65c67401d3
2025-11-26 22:58:26 +00:00
drh
95f643c27d Do not omit the beginning and ending margins when setting bBorder to QRF_Off,
except when the margins need to be squeezed to fit.  Those extra margins give
a more pleasing appearance, and also make the output the same as psql.

FossilOrigin-Name: 2892aaeed9f55ad87791491068493c2e530eeff4194d156f16745d185760797c
2025-11-26 21:56:55 +00:00
drh
9286439c4a In QRF, if the horizontal alignment is QRF_ALIGN_Auto, then use right
alignment for numeric values and left alignment for everything else.

FossilOrigin-Name: 5fdedc69b1ac05bcdc40ee30c1473be75d3afe89e031d750c8fc3dcfa9846d5b
2025-11-26 17:23:11 +00:00
drh
80c1010f88 Add the bBorder option to the QRF spec. Reflect this in the -border
option on the TCL format method, and the --border option to ".mode"
in the CLI.  Also add the "psql" mode to the CLI.

FossilOrigin-Name: 02cbeb69884cd884d9b1b5f59c4168a3dc24b1a5aecc6967586c0be350b10574
2025-11-26 16:21:56 +00:00
dan
d2c7e6925c Fix a buffer overread in fts5 that might occur while processing a corrupt db.
FossilOrigin-Name: 8b0cbc18be3c6f2501b102757af6be98c48044a296104cca7bce822ac2304515
2025-11-26 13:58:53 +00:00
stephan
12572f73d5 Consistently use IsSpace()/IsDigit() instead of isspace()/isdigit() in shell.c.in to squelch warnings on Cygwin. From Jan Nijtmans.
FossilOrigin-Name: aa9d7365bb8d8a9d44388dc89dea09428d7cea2f9fba482cb56980b51b16b143
2025-11-26 13:24:10 +00:00
drh
ecd330f59d Fix the sha1() extension function so that it returns actual TEXT instead
of a BLOB containing the UTF-8 TEXT.
[forum:/forumpost/d15eefea7c|Forum post d15eefea7c]

FossilOrigin-Name: 6f806656a3f5ce9a79b18be057d880faca506f66cd4de4b5d77393c266cfb6d2
2025-11-26 11:19:11 +00:00