1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-30 01:43:10 +03:00
Commit Graph

20553 Commits

Author SHA1 Message Date
dan
98fced6200 Change the order of fields in an internal structure to avoid the possibility of leaking heap address information when a corrupt database is queried.
FossilOrigin-Name: 3f9a0ba4f4dffac7a4b9de30e66d94498a1433d96e327cfff43134b8856f4ba1
2026-10-24 14:37:18 +00:00
dan
9a9446f3b0 Fix a race condition with a writer that could cause a connection with a read-only *-shm file to return a spurious SQLITE_READONLY_RECOVERY error.
FossilOrigin-Name: e2e7c8eb02daea0876fb25abccd96c769f55fba3e995f0e7cf29aa992d7c61a6
2026-10-23 18:14:43 +00:00
dan
196f6a9389 Fix a race condition with a writer that could cause a connection with a read-only *-shm file to return a spurious SQLITE_READONLY_CANTINIT error.
FossilOrigin-Name: 30a301835b588f9d57fc04af3140612bef781bdc9b19aa83515d77a24ab06ee0
2026-10-23 17:24:48 +00:00
drh
ac1dd97f22 Ensure that all content that is copied into the -shm file during recovery
has been initialized, even in the case of no valid WAL frames.

FossilOrigin-Name: f2255af8231d74ce3d949d3d597a25eda6baa3c9ddfd23fa0e8020c213404e6c
2026-10-23 09:34:42 +00:00
drh
de805a8c12 Increased safety margin in sqlite3_preupdate_old(). Test case in TH3.
FossilOrigin-Name: 31b84157965fcd3309a1420db71e0beee4ccdd88a2f44e5f9029a05cb04ae9cf
2026-10-22 11:03:08 +00:00
drh
7f91834658 Extra safety margin added to sqlite3VdbeMemFromBtree(). Change
suggested by Martin Mirchev.  Test cases in TH3.

FossilOrigin-Name: 952ae2c63e0a2007d8213132636e2e99bae113a9c7582b68b2e5a686b0777a99
2026-10-22 10:40:42 +00:00
dan
5a1da0ae1b When a b-tree cell is deleted, zero the cursor's cell-info cache as the cell it describes no longer exists, even if the cursor position is being preserved. Report [bugs:/info/2026-10-18T16:11:58Z | 2026-10-18T16:11:58Z].
FossilOrigin-Name: 07ed30558ee7da460ed0ca2b36cd555aeb5caa91f0971b2cf83adc08524ca9b7
2026-10-20 17:27:17 +00:00
dan
12b80e71b6 When a real value is specified as a default for a text column, avoid various inconsistencies by ensuring that it is always converted to an IEEE double and then back to text before use, as is already done for integer values. Report [bugs:/info/2026-10-05T16:22:00Z | 2026-10-05T16:22:00Z].
FossilOrigin-Name: d140ada6488a27342c6baf0d8e44adf38f91b37a657c2bcc0efa9ecf437b414c
2026-10-20 16:11:44 +00:00
dan
34a05a3723 Fix handling of GROUP BY and HAVING clauses attached to the rightmost SELECT of a compound SELECT with one or more COLLATE clauses attached to ORDER BY expressions. Report [bugs:/info/2026-10-16T22:06:45Z | 2026-10-16T22:06:45Z].
FossilOrigin-Name: bd873f7ca9fc0d36a884d3929517d9a19c181c811dae65d64815a2006005b788
2026-10-20 15:19:35 +00:00
dan
4f5062f0ba Correctly handle aggregate functions that aggregate over the rows of a window function query, even if they are nested within sub-selects. Report [bugs:/info/2026-10-16T08:07:09Z | 2026-10-16T08:07:09Z].
FossilOrigin-Name: 7522512ff96d869c46596e7d514b65f210530db09e6359c2f37911d45f34979d
2026-10-20 14:07:59 +00:00
drh
4855cb2a31 Fix the CLI to correctly handle a ".exit" immediately following
a ".output memory". [bugs:/info/2026-10-20T13:13:50Z|Bug 2026-10-20T13:13:50Z]

FossilOrigin-Name: 2fdd752dc92692e08c805eb10bf78d97e93c8436433c8175fbff310513f340d7
2026-10-20 13:45:54 +00:00
drh
cc04298893 Fix a problem in ALTER TABLE DROP COLUMN that could result in a stale
index.  [bugs:/info/2026-10-19T06:36:17Z|Bug 2026-10-19T06:36:17Z]

FossilOrigin-Name: 4ea5d16c2159738614e135377120b604f89ff1cdf0bfe60ea3cc41073680c8f1
2026-10-19 19:40:21 +00:00
drh
aa037e12be Correct the handling of SQLITE_IGNORE returns from authorizer calls
for UPDATE on the rowid or INTEGER PRIMARY KEY.  See the test cases
in TH3 for details.

FossilOrigin-Name: 606005419f60bd14eec71ee87a770051c8c551273c9a7567d830283eeb1058e8
2026-10-19 18:20:03 +00:00
drh
9c6e3568ba Fix JSON parsing to properly recognize a backslash-continuation at the
end of a string.
[bugs:/info/2026-10-18T04:42:37Z|Bug 2026-10-18T04:42:37Z]

FossilOrigin-Name: d8c93a5f2c19622d1da29f503145223ff433e1597235510273fbebefe455c4c4
2026-10-19 17:24:43 +00:00
drh
ee16b84fb6 In the CLI, do not read the ~/.sqliterc file or an alternative specified by
the --init command-line option if the --safe option is used.
[bugs:/info/2026-10-19T12:32:27Z|Bug 2026-10-19T12:32:27Z]

FossilOrigin-Name: f1e94b6042f056f103eaf4ac11004fc2f559499ccf2b93eae0c9283150a6e921
2026-10-19 16:25:28 +00:00
dan
c7885735ac Correctly handle compound SELECTs with explicit COLLATE clauses on ORDER BY expressions, even if they appear in a CTE or VIEW definition. Report [bugs:/info/2026-10-19T08:22:22Z | 2026-10-19T08:22:22Z].
FossilOrigin-Name: 36803e2660eed4f3d16750f1d3a4af796e2c15034838f07f472c2fbb0f9b52b0
2026-10-19 15:14:13 +00:00
drh
10586997d9 Fix the ".dump" command in the CLI so that it is not affected by
mode settings like --fpfmt, --ifmt, or --textjsonb.
[bugs:/info/2026-10-18T20:39:22Z|/info/2026-10-18T20:39:22Z]

FossilOrigin-Name: a9d8123e27fa71bf7d29ec4cc7aa997f5e94de3c5b48907ccb7242795e44144c
2026-10-19 12:02:08 +00:00
drh
58f8fe5547 Do not run the OR optimization on the left operand of a LEFT JOIN.
[bugs:/info/2026-10-18T16:10:55Z|Bug 2026-10-18T16:10:55Z].

FossilOrigin-Name: b4974127526b290149447849bf9c24c9ea01678755a58af3843c9e2c73c417d2
2026-10-18 23:45:59 +00:00
drh
850ea24139 Back out parts of [e68aa6e1293a2c7a] for the 3.54.x patch series, as they
cause a regression reported by
[forum:/info/2026-10-16T20:30:17Z|Forum post 2026-10-16T20:30:17Z].  The
"bug" fixed was not important.  The plan is to add a new limit in 3.55.0
to address this problem.

FossilOrigin-Name: 845190e3f2ede1f64d7e26ec9391d3551080c1d787599d49bad402c3734d81aa
2026-10-18 16:17:16 +00:00
drh
c006236c19 Remove a NEVER() that can in fact be true. A test case to demonstrate
has been separately added to TH3.

FossilOrigin-Name: 70bb130523a69e2babb08d4538c73772fd354f2df76193f75d8d8ff8b7299e76
2026-10-18 16:04:03 +00:00
drh
18347d8044 Check the datatype of the second (optional) argument to the log() SQL
function and return NULL if it is non-numeric as the documentation says
it should.
[bugs:/info/2026-10-18T05:05:18Z|Bug 2026-10-18T05:05:18Z]

FossilOrigin-Name: a99e577b951fa38fcdff3693072c2f78e546be6a1c187b648f043b499a06768e
2026-10-18 10:14:50 +00:00
stephan
b5b50e0c12 Add a byte to an alloc made during .mode -widths parsing. Bug report [bugs:9c07558565|2026-10-17T09:23:52Z].
FossilOrigin-Name: 9373a2e3be798b2588bd81d7eb8292da7151534627ffa46130499daea4dd20cd
2026-10-17 10:10:16 +00:00
drh
78793bee81 Update the sqlite3_clear_bindings() interface so that it avoids forcing
a reprepare if a binding that is not 0 or 1 is cleared.
[forum:/info/2026-10-16T19:10:10Z|Forum post 2026-10-16T19:10:10Z].

FossilOrigin-Name: 535a77cf5a8e1a7baab14a3686deebde30a8d3c14735fadc033c1bfea5fb84a9
2026-10-17 01:52:29 +00:00
drh
1bf6883244 Fixes to the handling of time 24:00:00.
[forum:/info/2026-10-15T10:26:06Z|Forum post 2026-10-15T10:26:06Z]

FossilOrigin-Name: 69071e25cad52b7fe15749f5fb969e847f9cd65e66341e8d1d4e5f5282283cd4
2026-10-15 13:19:18 +00:00
dan
23500fbf19 Ensure the internal DBFLAG_SchemaKnownOk flag is always cleared after a database schema is reset. Report [bugs:/info/2026-10-14T01:25:35Z | 2026-10-14T01:25:35Z].
FossilOrigin-Name: e6b9a40732900d0b7f83ec262ddc81bb47d4230de55d6db319689906e2bb3716
2026-10-14 13:39:28 +00:00
drh
eba536e8f2 The previous check-in was not quite correct. Both rLhsOrig
and rLhs are vectors and so neither should be freed using
sqlite3ReleaseTempReg().  Indeed, neither should be freed at all since
both vectors remain in use.

FossilOrigin-Name: fc7b959f45a55d95c9cb37692e82b811e3ef286a6d826895dfee9a1f2abfdcc8
2026-10-14 11:32:36 +00:00
drh
9266f1518b In check-in [8800c13deca3717c], fix a double-free of a byte-code register,
resulting in the same register being on the reusable register list twice.
[bugs:/info/2026-10-14T05:52:10Z|Bug 2026-10-14T05:52:10Z].

FossilOrigin-Name: 930df67b442ed677dbe5b22afe4fb91c907c721592a8090f0a70ebea79f3a854
2026-10-14 11:22:24 +00:00
dan
0fbd83dc99 Avoid an assert() failure by clearing Vdbe.smimask when Vdbe.expmask is cleared.
FossilOrigin-Name: 6399cc43b5927eaaef855fd0daab0cffc90c559266ca6ecc41ffcd5609007976
2026-10-13 17:08:19 +00:00
drh
76b61a60d3 Enhance OP_MustBeInt so that it is able to handle -9223372036854775808.0.
[bugs:/info/2026-10-11T20:33:51Z|Bug 2026-10-11T20:33:51Z].  See
also [987ba5a3dc5f2a22].

FossilOrigin-Name: 5e488c8da369cdf43e945078f3c9475f2cc5d71c099c85424f7c28ff0d4a7d61
2026-10-13 10:51:49 +00:00
drh
ed9745eb7f Fix "csv" output mode in the CLI so that it responds to --colsep and --rowsep
as it should.
[forum:/info/2026-10-12T17:59:34Z|Forum post 2026-10-12T17:59:34Z].

FossilOrigin-Name: d0fe92e0ce8662b9f3391769e4602a5495c2c69591ded7d4e464e90517c1f407
2026-10-13 02:14:25 +00:00
drh
394e7bc1ac Prevent scalar subqueries from ever returning a value with a non-zero subtype.
Report [bugs:/info/2026-10-12T13:52:22Z | 2026-10-12T13:52:22Z].  Re-added
after the addition of a necessary prerequisite in the previous check-in.

FossilOrigin-Name: 8ab55e0185a1956fb3e131bc5faae0cf3ff5abb1f553217f2d63fcb15c75cc1f
2026-10-12 21:33:49 +00:00
drh
7815214b6c An unknown function can be seen in exprNodeCanReturnSubtype(), but only
if SQLite is compiled with SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS.  Adjust
asserts accordingly.

FossilOrigin-Name: dcf20611cdd4a250531d0e753144ab1b6796635331bb906df0e174aea4bd4158
2026-10-12 21:24:29 +00:00
drh
5e43afae7d Failed to increase the memory allocation size as required in the previous
check-in.  Fixed here.

FossilOrigin-Name: 7b827c44ab843248b66de6fb753aad83af153085d501462b138954ceca7fee81
2026-10-12 20:12:35 +00:00
drh
d50d824d4d Improvements to [313ab6c4e517e599] to address the concern raised
by [bugs:/info/2026-10-12T17:03:33Z|Bug comment 2026-10-12T17:03:33Z].

FossilOrigin-Name: 51f69864e716501cae4f756a158256cefa38482bf9dcdf29f7eedf9f1af8752c
2026-10-12 20:09:23 +00:00
dan
31c9762d0c Avoid leaking pages when remapping a database file on unix. Forum post [forum:3cfba36128 | 3cfba36128].
FossilOrigin-Name: 90d3c595afe345808c6c0fe8042ba1e8241a88132935a9a3fd69e69e71c1059c
2026-10-12 18:20:50 +00:00
drh
e26021ed60 Temporarily back out the penultimate check-in on this branch in order to
prevent an assertion fault.  Need to reconsider this approach in light of
[bug:/info/2026-05-18T14:04:01Z|Bug 2026-05-18T14:04:01Z].  That other
bug might be fixed incorrectly, and might also need to be backed out.
Both bugs reopened until we can complete the analysis.

FossilOrigin-Name: 163413d8e19b97e36b2a1f6734c271b3944195a213973e2975e43f45a1e80735
2026-10-12 17:52:40 +00:00
dan
5bf1891464 Fix a problem causing "aggregate( t1.col1 ORDER BY t2.col2 )" where col1 and col2 are in the same positions in their tables to be treated as "aggregate( t2.col2 ORDER BY t2.col2 )". Report [bugs:info/2026-10-12T13:31:40Z | 2026-10-12T13:31:40Z].
FossilOrigin-Name: ffe3f056f1789f188a0afece0363dc2ea74912510bbbd4edcb656ad8a1acc704
2026-10-12 16:29:30 +00:00
dan
3922c42423 Prevent scalar subqueries from ever returning a value with a non-zero subtype. Report [bugs:/info/2026-10-12T13:52:22Z | 2026-10-12T13:52:22Z].
FossilOrigin-Name: af3c900e2b5251bcbc0611dbe2f86b13fd2daa07bcf42563a9d6db46dfdd6b3d
2026-10-12 16:08:07 +00:00
drh
1201b826e9 Fix a harmless compiler warning in [7f154192db5a3a79].
FossilOrigin-Name: b3fcf7aecf29f10ad28864a9ceba6150f874f5f4d4c7094d61d436451d4394fe
2026-10-12 15:11:53 +00:00
dan
e037ddd700 Avoid ever repreparing a statement if a call to sqlite3_bind_int64() does not actually change the bound value.
FossilOrigin-Name: 4708cfe5f7fe1874870564956f0f81ba79226657c6d07ea1edffba7d5a6e4e3b
2026-10-12 14:05:08 +00:00
dan
48fedaa403 Avoid excessive reprepares when there is an unindexed "col=?" constraint on a join query. This should only be reprepared when the bound value toggles between integer values 0 or 1 and any other value. Report [bugs:/info/2026-10-11T16:06:46Z | 2026-10-11T16:06:46Z].
FossilOrigin-Name: 7f154192db5a3a79f4666edd31dfc29fd73904ccd3630952e3b032e49fee6455
2026-10-12 13:36:00 +00:00
drh
55373fee0d Improved detection of complete input in the CLI.
[bugs:/info/2026-10-12T09:57:26Z|Bug 2026-10-12T09:57:26Z]

FossilOrigin-Name: 313ab6c4e517e599fa92102a1aa367fc97e9fd15a513f12ab9e8f4afebdf31f8
2026-10-12 11:42:47 +00:00
drh
e326d6eff0 Do not use an index expression to evaluate a constant expression, as that
uses unnecessary disk access and might actually give incorrect results if
the expression was moved outside of the indexed loop.  The error condition
arose in check-in [44200596aa943963] for version 3.41.0 and was first
reported 3.5 years later by
[bugs:/info/2026-10-11T19:26:40Z|Bug 2026-10-11T19:26:40Z].

FossilOrigin-Name: fee60d93e9fb37234d9cad50c65fb6d62dfe21a7fde21a16ce39025290375ad8
2026-10-12 10:24:09 +00:00
drh
d67fe4cc45 Fix a minor typo in a comment.
FossilOrigin-Name: 6c343ae1fc1a70a6ff837b003d1856a1bd3750083f1573e5ecf7ffdc0f58a588
2026-10-12 07:54:30 +00:00
drh
03e00d6b84 Do not allow the json_valid() routine to use a cached (and possibly edited)
copy of the JSON.  It needs to parse the JSON for itself.
[bugs:/info/2026-10-11T18:32:23Z|Bug 2026-10-11T18:32:23Z].

FossilOrigin-Name: ba74c33b6a69f8eeca3f8c497f9f74dd6dc92bfe8f4b0dcf0325595a5664c9d9
2026-10-11 23:06:04 +00:00
drh
50575da52c Another fix to the order-by-subquery optimization
of check-in [7a0cdc7edb704a88]. Trouble reported by
[bugs:/info/2026-10-11T17:00:56Z|Bug 2026-10-11T17:00:56Z].

FossilOrigin-Name: 1b574df8c7df4f737ca7b7e42203a8090836a05bc808cafc8f8f70aefbe8627b
2026-10-11 18:38:57 +00:00
drh
513c19fa38 Fix a problem in the query flattener associated with RIGHT JOIN, as
reported by [bugs:/info/2026-10-11T16:49:00Z|Bug 2026-10-11T16:49:00Z].
This problem surfaced after the fix to
[forum:/info/2025-08-21T14:14:03Z|Forum post 2025-08-21T14:14:03Z]
at check-in [e0beda7ffe92abf6].  Before that, the query would not parse.

FossilOrigin-Name: e6e27e37eb8c3159d67529959694971f35a589da75648e207c44e317e6d160be
2026-10-11 17:44:08 +00:00
drh
d85a80711c Back out a minor performance optimization associated with
sqlite3VdbeMakeReady() as it has been found to not work correctly on
some 32-bit builds.
[bugs:/info/2026-10-10T18:05:46Z|Bug 2026-10-10T18:05:46Z]

FossilOrigin-Name: 6ebd1e69486cabc6be3316426f67341d75073e8b392de5d6e5307662dd0000dd
2026-10-10 19:11:52 +00:00
drh
e892084680 In the CLI, disallow any use of the fileio extension in --safe mode.
[bugs:/info/2026-10-10T13:15:05Z|Bug 2026-10-10T13:15:05Z]

FossilOrigin-Name: e3e5ef4e17373677e1cc589ac79e20f6fb523e60fe8afdbc0b92f12cc75cff8b
2026-10-10 18:40:16 +00:00
drh
0a8c82266c Improved error handling in the ".import" command of the CLI.
[forum:/info/2026-10-09T17:57:07Z|Forum post 2026-10-09T17:57:07Z].

FossilOrigin-Name: 48fedacea79a9cd0a93d88dc38588ae0f1a011ed908b41ba4f2e2ee1160ffa44
2026-10-09 18:34:26 +00:00