]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
16 months agoIf a table has one or more rows and it has a partial index has zero rows, optimize-after-shrink
drh [Mon, 19 Feb 2024 16:22:58 +0000 (16:22 +0000)] 
If a table has one or more rows and it has a partial index has zero rows,
still make an entry in the sqlite_stat1 table for the partial index, so that
we know that "PRAGMA optimize" does not need to redo the whole table.

FossilOrigin-Name: e147b18991dd462fff367442acb0504fdf193a31843ed34ec8c1ced30747bf8a

16 months agoSimplifications to PRAGMA optimize to make it easier to use. It always
drh [Mon, 19 Feb 2024 13:50:09 +0000 (13:50 +0000)] 
Simplifications to PRAGMA optimize to make it easier to use.  It always
tries to ANALYZE unanalyzed indexes.  The 0x10000 flag just makes it check
for size changes in all tables.

FossilOrigin-Name: 44ed7f4cd07a88a2fdd303a2c78e6babe01d7344b399bd2b80ed68d75a77aaa2

16 months agoChange the 0x20000 bit (use analysis limit) to 0x10, meaning that this feature
drh [Mon, 19 Feb 2024 13:06:27 +0000 (13:06 +0000)] 
Change the 0x20000 bit (use analysis limit) to 0x10, meaning that this feature
is on by default.  The default analysis limit is changed to 2000 which is
almost always sufficient for accurate analysis results.

FossilOrigin-Name: 4abd47b5917099a2f74e53e12c987da0722304a5e9a93b6d43015c1f45c48444

16 months agoHold a transaction during PRAGMA optimize, for performance.
drh [Sun, 18 Feb 2024 01:12:22 +0000 (01:12 +0000)] 
Hold a transaction during PRAGMA optimize, for performance.

FossilOrigin-Name: d13b79eae6df7f9d1f3b8062ddc75a12ff038196b3d752d2672a9925fa45ca56

16 months agoAdd new MASK bits to PRAGMA optimize: 0x70000.
drh [Sat, 17 Feb 2024 16:39:52 +0000 (16:39 +0000)] 
Add new MASK bits to PRAGMA optimize:  0x70000.

FossilOrigin-Name: dd4497062569eec9ddfdaa7d6394c83ff40a7a59c6697a161bc4ff6d8af3bb29

16 months agoThe PRAGMA optimize command invokes ANALYZE if a table shrinks by 25 times
drh [Sat, 17 Feb 2024 01:12:58 +0000 (01:12 +0000)] 
The PRAGMA optimize command invokes ANALYZE if a table shrinks by 25 times
in addition to if it grows by 25 times.

FossilOrigin-Name: 40532ffba91cf332c1ea4add80184031a9d6e10514d2d9b9a6cfd613091b81f7

16 months agoFix the subtype on the value column from json_each/json_tree for cases
drh [Fri, 16 Feb 2024 21:30:08 +0000 (21:30 +0000)] 
Fix the subtype on the value column from json_each/json_tree for cases
when the value is an array or object.  Fix for the bug reported by
[forum:/forumpost/ecb94cd210|forum post ecb94cd210].

FossilOrigin-Name: 1c33c5db2e05019d1a375109f79ad8588a3c17f81e4f4b8d66c880c3c860e87e

16 months agoRetweak last check-in to retain compile-time checking of xprintf() arguments.
larrybr [Fri, 16 Feb 2024 18:34:21 +0000 (18:34 +0000)] 
Retweak last check-in to retain compile-time checking of xprintf() arguments.

FossilOrigin-Name: 670174916c660b24ba70e96a42984eb65ee52da50e9828bdeca4c9ff4bf92e20

16 months agoWork around a __VA_ARGS__ complaint in fiddle builds.
stephan [Fri, 16 Feb 2024 16:04:31 +0000 (16:04 +0000)] 
Work around a __VA_ARGS__ complaint in fiddle builds.

FossilOrigin-Name: 7d750248c58ccbf87036ea7db053def1c83c7a8ed428a5c47895756302b36200

16 months agoRename the TF_StatsUsed flag to TF_MaybeReanalyze, to more accurately
drh [Fri, 16 Feb 2024 12:57:04 +0000 (12:57 +0000)] 
Rename the TF_StatsUsed flag to TF_MaybeReanalyze, to more accurately
reflect its usage.  No logic changes.

FossilOrigin-Name: b4790da5e0d6f0f617e6c3a17fc2606842e41cab14339392abd335410fec0aa3

16 months agoHandle an OOM case in fts5 code to query tokendata=1 tables.
dan [Fri, 16 Feb 2024 11:41:47 +0000 (11:41 +0000)] 
Handle an OOM case in fts5 code to query tokendata=1 tables.

FossilOrigin-Name: 01222d96b9ab24c7013a2587544304ba32c1f039b08c06a04d8d58ec9c790db0

16 months agoFix a bug in PRAGMA integrity_check introduced by enhancement (8a) in
drh [Tue, 13 Feb 2024 18:41:46 +0000 (18:41 +0000)] 
Fix a bug in PRAGMA integrity_check introduced by enhancement (8a) in
[https://sqlite.org/releaselog/3_42_0.html|release 3.42.0] and first reported by
[forum:/forumpost/ee4f6fa5ab|forum post ee4f6fa5ab].

FossilOrigin-Name: 460353dfff8f2fb03f9c8666d0c367ec7be4cfa96dfcb0cea10f144d043223bb

16 months agoChanges to vtabCallConstructor() to avoid a harmless static analyzer warning
drh [Tue, 13 Feb 2024 17:11:19 +0000 (17:11 +0000)] 
Changes to vtabCallConstructor() to avoid a harmless static analyzer warning
and to help prove that the UAF reported by
[forum:/forumpost/cafbe582e8|forum post cafbe582e8] is a false-positive.

FossilOrigin-Name: 4892440b93306e5a245f18c0d3d295d851e6712260e420016c0d70e12abf8901

16 months agoReplace the assert() that was removed by [f023cb541b5dd72c] because
drh [Mon, 12 Feb 2024 19:12:30 +0000 (19:12 +0000)] 
Replace the assert() that was removed by [f023cb541b5dd72c] because
[1cd5d4623f44af25] made it true again.

FossilOrigin-Name: 189a49f165dfc348a8730ad2b2288b9b2b2089b1de99fa2d515f2a90c9e7bd4e

16 months agoHave rtree avoid keeping a blob handle open following an error.
dan [Mon, 12 Feb 2024 16:12:25 +0000 (16:12 +0000)] 
Have rtree avoid keeping a blob handle open following an error.

FossilOrigin-Name: 1cd5d4623f44af25ab4f5af580354b3ae22cf5de4109e008ca41055125bb708d

16 months agoAdd a new sqlite3FaultSim() to btree for better fault analysis.
drh [Mon, 12 Feb 2024 14:44:35 +0000 (14:44 +0000)] 
Add a new sqlite3FaultSim() to btree for better fault analysis.

FossilOrigin-Name: 2c675bd30568d3c530300beb3fcfaa17c9f063cdcb9a39ac68b9902100f641a6

16 months agoAdd a new sqlite3FaultSim() call in the btree logic, for testing. new-btree-faultsim
drh [Mon, 12 Feb 2024 13:51:08 +0000 (13:51 +0000)] 
Add a new sqlite3FaultSim() call in the btree logic, for testing.

FossilOrigin-Name: e0558f79b8184ea6741fb20b710dab854f5bdb71aa47d5a6701eeb7389540c8c

16 months agoAdd support for the ".testctrl fault_install" dot-command in the CLI when
drh [Mon, 12 Feb 2024 13:28:10 +0000 (13:28 +0000)] 
Add support for the ".testctrl fault_install" dot-command in the CLI when
launched with the --unsafe-testing option.

FossilOrigin-Name: 5ba7fee1a9b49df82387e355d2ab7de58663d3fa824e50717608b27e0f7ac874

16 months agoIn the RTREE extension, allow the xBeginTransaction() entry point to be
drh [Sun, 11 Feb 2024 22:56:12 +0000 (22:56 +0000)] 
In the RTREE extension, allow the xBeginTransaction() entry point to be
invoked multiple times without intervening calls to xEndTransaction().

FossilOrigin-Name: f023cb541b5dd72c996f0574210344179217666a2229bc8d3fe057fdbc5c2245

16 months agoIf a term of an ORDER BY or GROUP BY contains an aggregate function or column,
drh [Sun, 11 Feb 2024 20:53:14 +0000 (20:53 +0000)] 
If a term of an ORDER BY or GROUP BY contains an aggregate function or column,
then it is not an alias that needs to be resolved, so don't try to.  This fixes
a harmless assertion found by dbsqlfuzz.  This yet another problem that
orginated at check-in [6e6b3729e0549de0].

FossilOrigin-Name: d4ec2a5d2297cd9ead0a8768dcf003ea76c74d8d68d88c40f62363f484a4a4d3

16 months agoImproved AggInfo tracing in debug builds. No changes to deliverable code.
drh [Sun, 11 Feb 2024 18:53:48 +0000 (18:53 +0000)] 
Improved AggInfo tracing in debug builds.  No changes to deliverable code.

FossilOrigin-Name: bb31f9c44794e02a46ed3edbcc96eb48c5870d3f82cb404586ded9a3efa7a859

16 months agoFurther clarify sqlite3_exec() callback parameter lifetime.
larrybr [Sat, 10 Feb 2024 03:11:42 +0000 (03:11 +0000)] 
Further clarify sqlite3_exec() callback parameter lifetime.

FossilOrigin-Name: 993a1a843177b19a9cb5598f57d1e05c01e1695f164faaa9ae22810ad4533eba

16 months agoMention limited lifetime of string arrays passed to sqlite3_exec() callback.
larrybr [Thu, 8 Feb 2024 01:19:46 +0000 (01:19 +0000)] 
Mention limited lifetime of string arrays passed to sqlite3_exec() callback.

FossilOrigin-Name: 717f67f3189a59842f5c17a25e8db0e24ec4405886fc22ab6eeb3954fba5a964

16 months agoFix an #endif (added in the wrong place by [8f4b1ceafe4a271b]) so that
drh [Wed, 7 Feb 2024 20:45:38 +0000 (20:45 +0000)] 
Fix an #endif (added in the wrong place by [8f4b1ceafe4a271b]) so that
the build works with SQLITE_OMIT_VIRTUAL_TABLE.

FossilOrigin-Name: 7070924eebce1d089fde911dc0427ab8f3764d57ace24caff2b79954b42d1b51

16 months agoBring test cases into alignment with the latest enhancements.
drh [Wed, 7 Feb 2024 19:52:03 +0000 (19:52 +0000)] 
Bring test cases into alignment with the latest enhancements.

FossilOrigin-Name: cd017c28d516399e25b5ee9e8fcd7390ca2be9128c7c41f1007f37bc01a35717

16 months agoTurns out the branch is reachable, so back out the NEVER().
drh [Wed, 7 Feb 2024 19:17:44 +0000 (19:17 +0000)] 
Turns out the branch is reachable, so back out the NEVER().

FossilOrigin-Name: 0af36a3223d2dabda887830390a603ab4781baca7e2f1698ec6c5f2cf03faf04

16 months agoDetect and respond to an OOM on the jsonStringTerminate() call of
drh [Wed, 7 Feb 2024 14:05:38 +0000 (14:05 +0000)] 
Detect and respond to an OOM on the jsonStringTerminate() call of
jsonReturnStringAsBlob() routine.

FossilOrigin-Name: 881f814c09b6896a448a2360b0b43dc99592ea3a1d72ac359770cbb0a2c7d38a

16 months agoSlight change to OOM handling in JSON to catch a corner case found by
drh [Tue, 6 Feb 2024 18:33:01 +0000 (18:33 +0000)] 
Slight change to OOM handling in JSON to catch a corner case found by
dbsqlfuzz.

FossilOrigin-Name: 6a2b3266c586d12b51e11fe63cda5881be9373207aa16671ab77f547830eb790

16 months agoCorrect docs about the first OFPS VFS's importDb() method being synchronous (it's...
stephan [Tue, 6 Feb 2024 08:59:59 +0000 (08:59 +0000)] 
Correct docs about the first OFPS VFS's importDb() method being synchronous (it's not, whereas the second VFS's importDb() is).

FossilOrigin-Name: ae7505fa5e112f39a329befb35eff6ddf46a53f5deb610906550bf67f56fc157

16 months agoMake explicit that using the importDb() methods of the OPFS VFSes has undefined resul...
stephan [Tue, 6 Feb 2024 08:25:23 +0000 (08:25 +0000)] 
Make explicit that using the importDb() methods of the OPFS VFSes has undefined results if the being-imported db is currently open. Doc changes only.

FossilOrigin-Name: f28b9924b401b359e59a73918a34b29cde719164a6b4ac5a9d23da6294b701bd

16 months agoReturn SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree...
dan [Mon, 5 Feb 2024 17:54:03 +0000 (17:54 +0000)] 
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry. This replaces the SQLITE_ABORT_ROLLBACK mechanism added in [af5c4251].

FossilOrigin-Name: 32f85a5ce8e32506ad0cf309c86589958f38d924b4b3de532bec8bdb8e385fad

16 months agoReturn SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree... rtree-fix
dan [Mon, 5 Feb 2024 17:35:36 +0000 (17:35 +0000)] 
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry.

FossilOrigin-Name: 478280ef67efed854988ab4f740a38ae1937204c0434ad8da11f1869a12a6d06

16 months agoExtend [d294a23ed6d] to apply to all wasm speedtest1 builds.
stephan [Mon, 5 Feb 2024 03:56:02 +0000 (03:56 +0000)] 
Extend [d294a23ed6d] to apply to all wasm speedtest1 builds.

FossilOrigin-Name: 26f848e5e0ac34e545d2f27cf33abc46eac13e04ed9cd71084b0f7d47136ff97

16 months agowasm: pass the promiser function to the promiser onready() callback to simplify acces...
stephan [Mon, 5 Feb 2024 03:37:54 +0000 (03:37 +0000)] 
wasm: pass the promiser function to the promiser onready() callback to simplify access to it in certain usage patterns.

FossilOrigin-Name: f8a8b9ee2eddf5f875c7c4399e750ccf1941f767560ebc2c88c083560f5aaae0

16 months agowasm: squelch a new (and, in our case, invalid) warning from emcc 3.1.52.
stephan [Mon, 5 Feb 2024 02:36:10 +0000 (02:36 +0000)] 
wasm: squelch a new (and, in our case, invalid) warning from emcc 3.1.52.

FossilOrigin-Name: d294a23ed6d1d2b567a02552b8a2e4921cd21891ee86e63f8f9945569e3262d3

17 months agoFix a minor test file locking issue on Windows.
mistachkin [Sun, 4 Feb 2024 04:18:29 +0000 (04:18 +0000)] 
Fix a minor test file locking issue on Windows.

FossilOrigin-Name: 6cd70b71df5c0d45412081590316bced302ec4403d565250b56e611882204821

17 months agoFix harmless compiler warnings seen with MSVC.
mistachkin [Sun, 4 Feb 2024 04:01:11 +0000 (04:01 +0000)] 
Fix harmless compiler warnings seen with MSVC.

FossilOrigin-Name: e52c87420b072fa68d921eda66069542d50accbfaf1110ac4cc1543a4162200d

17 months agoFollowing a ROLLBACK that reverts changes to an RTREE, any pending queries
drh [Sat, 3 Feb 2024 19:19:18 +0000 (19:19 +0000)] 
Following a ROLLBACK that reverts changes to an RTREE, any pending queries
against that same RTREE abort with code SQLITE_ABORT_ROLLBACK.
dbsqlfuzz de7d17b72d0e842352c998dd86a47b7d0f707be9.

FossilOrigin-Name: af5c425114f32c2f84aea20edd4fa46eb1bfdeb3747fce357540e15978a070c8

17 months agoMore extensive use of SQLITE_CORRUPT_PGNO.
drh [Fri, 2 Feb 2024 18:42:09 +0000 (18:42 +0000)] 
More extensive use of SQLITE_CORRUPT_PGNO.

FossilOrigin-Name: 3838332cffb87f77a7c6b357066a59b9dc4f65ef4b3496767ad7ad7c14a77be2

17 months agoFix typo in vdbe.c comment. No changes to code.
dan [Fri, 2 Feb 2024 11:37:03 +0000 (11:37 +0000)] 
Fix typo in vdbe.c comment. No changes to code.

FossilOrigin-Name: 62010ba488f65aec3c6bd17b05f64c5b3e885dee4221e6016c4eb1053e19284d

17 months agoEnsure the fts5 xIntegrity method correctly returns error codes unrelated to corrupti...
dan [Thu, 1 Feb 2024 15:42:22 +0000 (15:42 +0000)] 
Ensure the fts5 xIntegrity method correctly returns error codes unrelated to corruption or missing SQL elements.

FossilOrigin-Name: d18d9a05c2d6f290d7b16eafced0cde4eb8dd3f869778a49103812d35a0cee65

17 months agoEnsure the fts3 xIntegrity method correctly returns error codes unrelated to corrupti...
dan [Thu, 1 Feb 2024 15:21:55 +0000 (15:21 +0000)] 
Ensure the fts3 xIntegrity method correctly returns error codes unrelated to corruption or missing SQL elements.

FossilOrigin-Name: 1bdb8cbaf7e733e0731de2ecd7a05ddf44db5d8595dcc7aaf0927ed0aa5b33d3

17 months agoIn PRAGMA integrity_check, defer running xIntegrity on virtual tables until
drh [Thu, 1 Feb 2024 14:57:24 +0000 (14:57 +0000)] 
In PRAGMA integrity_check, defer running xIntegrity on virtual tables until
after all ordinary tables have been checked.

FossilOrigin-Name: 8f4b1ceafe4a271b23e17493a244a34c1732a3d35c5533c37394b9f3dc158435

17 months agoAdd tracing logic to the shared-cache locks in btree.c. The tracing is
drh [Thu, 1 Feb 2024 14:17:01 +0000 (14:17 +0000)] 
Add tracing logic to the shared-cache locks in btree.c.  The tracing is
off by default.  Enable by changing a single "#if 0" into "#if 1" and
recompiling.  Debugging code only - no changes to release builds.

FossilOrigin-Name: f2b943f97ad7e47848ac6df3a3a1eba134b9e63c4a631f8eaf8bda77cc02ba7b

17 months agoAdd the test_oom_breakpoint() routine on debug builds, to serve as a
drh [Thu, 1 Feb 2024 11:38:58 +0000 (11:38 +0000)] 
Add the test_oom_breakpoint() routine on debug builds, to serve as a
convenient breakpoint to intercept OOM conditions.

FossilOrigin-Name: e45df7dcd6b5766d7593ee87e59dd422a217cce0a1a8d369c03144bb21859428

17 months agoReplace an conditional assignment that was made obsolete by [d4c193f0b49f4950]
drh [Wed, 31 Jan 2024 20:11:54 +0000 (20:11 +0000)] 
Replace an conditional assignment that was made obsolete by [d4c193f0b49f4950]
with an assert().  The conditional was added by [d6fd512f50513ab7] as
a fix for tickets [c36cdb4afd504dc1], [4051a7f931d9ba24], and
[d6fd512f50513ab7] which means now [d4c193f0b49f4950] is the correct fix
for those tickets.
that check-in

FossilOrigin-Name: 44b5524d522e749ad6bf76c94d754ff16c309c32439ec46802924663f64e8b09

17 months agoAllow control characters in JSON5 string literals.
drh [Wed, 31 Jan 2024 15:29:29 +0000 (15:29 +0000)] 
Allow control characters in JSON5 string literals.
[forum:/forumpost/05182119f69c3a92|Forum thread 05182119f69c3a92].

FossilOrigin-Name: 380f09c194caff557640692d2f255f8cdc1dcfed5976711686466692f4d7a60d

17 months agoAdd NEVER() and ALWAYS() macros for the JSON5-control-character change. json5-ctrl-char
drh [Wed, 31 Jan 2024 15:20:13 +0000 (15:20 +0000)] 
Add NEVER() and ALWAYS() macros for the JSON5-control-character change.
Also fix an incorrect comparison used to determine if a buffer needed to
be resized.

FossilOrigin-Name: e3c0c0e686f3b7710f79587cf465b5aac52d8f2f2986a3de885a656f652cbfd3

17 months agoFix failure to detect unterminated string literals in json_valid() in the
drh [Wed, 31 Jan 2024 14:44:59 +0000 (14:44 +0000)] 
Fix failure to detect unterminated string literals in json_valid() in the
previous check-in.

FossilOrigin-Name: 5d725644621cf640fb743d59ccf89dac777540410e67501eb00b83638c8c857f

17 months agoAllow control characters in JSON5 string literals.
drh [Wed, 31 Jan 2024 13:46:44 +0000 (13:46 +0000)] 
Allow control characters in JSON5 string literals.
[forum:/forumpost/05182119f69c3a92|Forum thread 05182119f69c3a92].

FossilOrigin-Name: 34709c7cc910539e23a830ad8b589a97a88be25e924a59670c1017fb51447dad

17 months agoFix a memory allocation bug in the (debug-use-only) json_parse() SQL function.
drh [Wed, 31 Jan 2024 12:15:57 +0000 (12:15 +0000)] 
Fix a memory allocation bug in the (debug-use-only) json_parse() SQL function.

FossilOrigin-Name: 32ce7dacf58bbf35cf70da8b03fa25f97fcea970edbc1f8aa12739ac4c8608fb

17 months agoDetect malformed nested JSONB earlier and stop rendering to avoid long
drh [Mon, 29 Jan 2024 21:09:56 +0000 (21:09 +0000)] 
Detect malformed nested JSONB earlier and stop rendering to avoid long
delays.

FossilOrigin-Name: 72f3e1d0eca2b9ebd7c4b4cdccc6d7a0173b2fdb204cb1aa207917aedab6098a

17 months agoWhen generated text JSON from JSONB, do not continue descending into
drh [Mon, 29 Jan 2024 20:36:17 +0000 (20:36 +0000)] 
When generated text JSON from JSONB, do not continue descending into
nested structures after an error is seen.  This avoids long loops and wait
times.

FossilOrigin-Name: 97666ec052ebaceab002874d7ca5c5e6883c3d04fb7d3992235a8c4c8d08407a

17 months agoConsider an index for queries like "SELECT count(DISTINCT col) FROM ...", even if...
dan [Mon, 29 Jan 2024 19:30:16 +0000 (19:30 +0000)] 
Consider an index for queries like "SELECT count(DISTINCT col) FROM ...", even if the index records are not smaller than the table records.

FossilOrigin-Name: ad06868807a27f0c96fa5649ebd981e07909eb2c5e03781377c876fdec49abdc

17 months agoAvoid a potential buffer overread when handling corrupt json blobs.
dan [Mon, 29 Jan 2024 15:30:35 +0000 (15:30 +0000)] 
Avoid a potential buffer overread when handling corrupt json blobs.

FossilOrigin-Name: 738473dc0ac353731080d0785cc7dc9810b564906c176916bd91d6cfbb1a7b18

17 months agoWhen rendering JSONB back into text JSON, report an error if a zero-length
drh [Mon, 29 Jan 2024 12:50:32 +0000 (12:50 +0000)] 
When rendering JSONB back into text JSON, report an error if a zero-length
integer or floating-point node is encountered.  Otherwise, if the node occurs
at the very end of the JSONB, the rendering logic might read one byte past
the end of the initialized part of the BLOB byte array.  OSSFuzz 66284.

FossilOrigin-Name: b0eb279ea83c1c788c39fb90e178ec99fa4c782195c376a420c661fedf4545a7

17 months agoUse __ppc__ instead of __POWERPC__ to identify 32-bit PowerPC processors.
drh [Sun, 28 Jan 2024 20:42:12 +0000 (20:42 +0000)] 
Use __ppc__ instead of __POWERPC__ to identify 32-bit PowerPC processors.
[forum:/forumpost/34794846ce|Forum post 34794846ce].

FossilOrigin-Name: c974d9313b60591bcd554c3ec652a8040d382930e30778e6be8a875145b0b3da

17 months agoAutomatically disable the DISTINCT optimization during query planning if the
drh [Sun, 28 Jan 2024 17:39:31 +0000 (17:39 +0000)] 
Automatically disable the DISTINCT optimization during query planning if the
ORDER BY clause exceeds 63 terms.
dbsqlfuzz afd1d61fc27d14938a0d78a50970fa1e9fbfee58.

FossilOrigin-Name: d4c193f0b49f4950b20c2f0e6aa037d2ed7d8c0b4687c14923b3a0d0d4a1b3fd

17 months agoApply the same fix found in [99057383acc8f920] to descending scans.
drh [Sun, 28 Jan 2024 00:31:47 +0000 (00:31 +0000)] 
Apply the same fix found in [99057383acc8f920] to descending scans.
dbsqlfuzz afd1d61fc27d14938a0d78a50970fa1e9fbfee5.

FossilOrigin-Name: e1d463c2d6e93e0ae0a60a05a79cd346bd07142de2fe631b370a9b946763b5d6

17 months agoImprovements to parser stack overflow testing.
drh [Sat, 27 Jan 2024 20:17:05 +0000 (20:17 +0000)] 
Improvements to parser stack overflow testing.
[forum:/forumpost/99e181b5bf|Forum post 99e181b5bf].

FossilOrigin-Name: 556c43a937f1d1c19117da24e6d892852241189f4e47e1c86aa1e8c36461c5de

17 months agoPerformance enhancements to the parser template.
drh [Sat, 27 Jan 2024 12:47:51 +0000 (12:47 +0000)] 
Performance enhancements to the parser template.

FossilOrigin-Name: 2db8b30acdeaeaf7ec92dc0382a25f96bca4561fb68a72713ff963e27f39c63b

17 months agoUse an alternative memory allocator for parser stack space that includes
drh [Sat, 27 Jan 2024 12:25:07 +0000 (12:25 +0000)] 
Use an alternative memory allocator for parser stack space that includes
a call to sqlite3FaultSim() to facilitate testing.

FossilOrigin-Name: 7c36d560ff4e8e1b3f8fad972ec7f07837e4fa4e6861fafde970ffccfda5a2f1

17 months agoAllocate new parser stack space from the heap if needed, eliminating the
drh [Sat, 27 Jan 2024 11:35:35 +0000 (11:35 +0000)] 
Allocate new parser stack space from the heap if needed, eliminating the
possibility of a "parser stack overflow" error as long as heap memory is
available.

FossilOrigin-Name: d87a2054774aa6ce54d9ccd78899b638f1eaf4f9a1d847bf22500018049c9f8d

17 months agoOptimizations to ParseFinalize() to make up for the extra cleanup associated growable-parser-stack
drh [Sat, 27 Jan 2024 02:21:25 +0000 (02:21 +0000)] 
Optimizations to ParseFinalize() to make up for the extra cleanup associated
with the allocated parser stack.  This branch now runs faster than trunk
and is less than 300 bytes larger.

FossilOrigin-Name: f7290db63cc2568090c14dffc4ea4eadfacb5b94b50a1852ef6eefd9e2e32533

17 months agoOmit the "parser stack overflow" error message, since it no longer occurs.
drh [Sat, 27 Jan 2024 01:35:07 +0000 (01:35 +0000)] 
Omit the "parser stack overflow" error message, since it no longer occurs.
Replace it with an ordinary "out of memory".

FossilOrigin-Name: 33f17ec24880937892d47a5a321c43785ca18e03dde28a9a0d50ae86edb29679

17 months agoBug fixes in the function that expands the parser stack.
drh [Fri, 26 Jan 2024 20:57:19 +0000 (20:57 +0000)] 
Bug fixes in the function that expands the parser stack.

FossilOrigin-Name: e91179fe849760771c3508b1e7d75325183e5c3b029752d0a97dbdbd57188b97

17 months agoExperimental changes that prevent parser stack overflows by growing the
drh [Fri, 26 Jan 2024 20:34:48 +0000 (20:34 +0000)] 
Experimental changes that prevent parser stack overflows by growing the
parser stack with heap memory when it reaches its limit.

FossilOrigin-Name: 3fd062905fc20507b7cfc97fa976ac5b57c5b68926bf9136bd5ea4265d2d6528

17 months agoAdd NEVER() to a branch that is no longer reachable.
drh [Wed, 24 Jan 2024 21:08:57 +0000 (21:08 +0000)] 
Add NEVER() to a branch that is no longer reachable.

FossilOrigin-Name: 9411337a7b3237366768fc708396da53d67a7a17b6cdc5c6f8932c5ab32217a9

17 months agoUpdate ext/wasm/SQLTester for recent internal-API reorgs.
stephan [Wed, 24 Jan 2024 19:54:49 +0000 (19:54 +0000)] 
Update ext/wasm/SQLTester for recent internal-API reorgs.

FossilOrigin-Name: 996cfdf9b5f70408faeaa68ba2ea9494e419be8f2c59d89ab702419056e3569c

17 months agoSlight adjustment to test results for Windows in mmap1.test due to
drh [Tue, 23 Jan 2024 21:10:01 +0000 (21:10 +0000)] 
Slight adjustment to test results for Windows in mmap1.test due to
the previous check-in.

FossilOrigin-Name: 5cf9ea9b1fff4625a50a2343d0fd3812da6612d6b24c07e10edb6c1ff03ca2df

17 months agoIn os_unix.c and os_win.c, do not allow xFetch() to return a pointer to a page buffer...
dan [Tue, 23 Jan 2024 16:09:22 +0000 (16:09 +0000)] 
In os_unix.c and os_win.c, do not allow xFetch() to return a pointer to a page buffer that is right at the end of the mapped region - if the database is corrupted in a specific way such a page buffer might be overread by several bytes.

FossilOrigin-Name: 2684feac3bc9c5463604900d72710be861527614f4957224c74a16a3b3c702f5

17 months agoImproved error message when a double-quoted identifier name cannot be
drh [Tue, 23 Jan 2024 14:45:22 +0000 (14:45 +0000)] 
Improved error message when a double-quoted identifier name cannot be
resolved - ask the user if they intended to use a string literal.

FossilOrigin-Name: efc5c3c5e6ae1f9f0be61ea4ce7b3e34f3dc318791c78e0f4bebebeaccf6951e

17 months agoWhen a JSON input is a blob, but it looks like valid JSON when cast to text,
drh [Tue, 23 Jan 2024 13:51:55 +0000 (13:51 +0000)] 
When a JSON input is a blob, but it looks like valid JSON when cast to text,
then accept it as valid JSON.  This replicates a long-standing bug in the
behavior of JSON routines, and thus avoids breaking legacy apps.
[forum:/forumpost/012136abd5292b8d|Forum thread 012136abd5292b8d].

FossilOrigin-Name: e5dc81d5c7ee97866feb688dfa9b6fc225dabff2b020b9b96b49a8fea5640aec

17 months agoFix typo in the tag-20240123-a in a comment. blob-as-json
drh [Tue, 23 Jan 2024 13:28:21 +0000 (13:28 +0000)] 
Fix typo in the tag-20240123-a in a comment.

FossilOrigin-Name: 1f09541eb4203ccce476f6040ff134353850f22f07fb84f96a1d2c27b304a91b

17 months agoIf a BLOB looks like JSON when cast to text, then treat it as if it really
drh [Tue, 23 Jan 2024 13:21:40 +0000 (13:21 +0000)] 
If a BLOB looks like JSON when cast to text, then treat it as if it really
were JSON.  This replicates a long-standing bug in the JSON processing
routines, and thereby avoids breaking legacy.

FossilOrigin-Name: d79a37690ce7ebb91df203170d73511da44546328043c2b3fe1786b2f0087093

17 months agoChange the shell's --help flag to exit with code 0 instead of 1, per /forum and ...
stephan [Tue, 23 Jan 2024 12:51:17 +0000 (12:51 +0000)] 
Change the shell's --help flag to exit with code 0 instead of 1, per /forum and /chat discussions.

FossilOrigin-Name: df563a18578c5cf1aaecf5818c93967aaa70475598d3c099779622ac8911f926

17 months agoSimplification of the error reporting logic. improved-dqs-error-msg
drh [Mon, 22 Jan 2024 20:49:47 +0000 (20:49 +0000)] 
Simplification of the error reporting logic.

FossilOrigin-Name: 59eb9d29e796886db17a578b64e75fd2797aebf969cbeeda70ecf2fda378c98f

17 months agoImproved error message when a double-quoted string is used and it seems likely
drh [Mon, 22 Jan 2024 15:26:33 +0000 (15:26 +0000)] 
Improved error message when a double-quoted string is used and it seems likely
that the user wanted a single-quoted string literal.

FossilOrigin-Name: 0a834bd81122b6e9c34c8253f9e45d53dab3274be28df60968366fa42237617b

17 months agoThe -DSQLITE_JSON_BLOB_INPUT_BUG_COMPATIBLE compile-time option causes blob
drh [Mon, 22 Jan 2024 14:16:10 +0000 (14:16 +0000)] 
The -DSQLITE_JSON_BLOB_INPUT_BUG_COMPATIBLE compile-time option causes blob
inputs to JSON functions that are not JSONB to be processed as if they
where text, immulating historical bugging behavior which some applications
have come to rely upon.  See
[forum:/forumpost/012136abd5292b8d|forum thread 012136abd5292b8d] for
discussion.

FossilOrigin-Name: 65572223583d43e1d61ec029641f9d3ff340e68ecfba8342c8d1b0a91a680f2a

17 months agoFix test script literal.test so that it works with SQLITE_OMIT_ALTER_TABLE builds.
dan [Mon, 22 Jan 2024 14:01:07 +0000 (14:01 +0000)] 
Fix test script literal.test so that it works with SQLITE_OMIT_ALTER_TABLE builds.

FossilOrigin-Name: 4dc00f577632c7b13135505007804d42a12f81a9ebd58d4c380727256b054b7e

17 months agoFix userauth so that it works together with SQLITE_OMIT_SHARED_CACHE.
drh [Mon, 22 Jan 2024 12:56:58 +0000 (12:56 +0000)] 
Fix userauth so that it works together with SQLITE_OMIT_SHARED_CACHE.
([forum:/forumpost/0bfc5888a384d430|Forum post 0bfc5888a384d430]).
However, also change to code to issue a deprecation warning whenever
SQLITE_USER_AUTHENTICATION is used.

FossilOrigin-Name: 249048b0cbc37058c229a785182e07b46029584aff9c385269b0b93503153476

17 months agoAdd a notice to the user-authentication documentation to say that the
drh [Mon, 22 Jan 2024 12:30:17 +0000 (12:30 +0000)] 
Add a notice to the user-authentication documentation to say that the
extension is deprecated and may disappear in the future.

FossilOrigin-Name: fe6fc7b91ad1771a2d2d4e3d9d60831b3056d528a700932bf11a336c7e3414a2

17 months agoMake CLI .dump immune to pragma reverse_unordered_selects, as reported in [forum...
larrybr [Mon, 22 Jan 2024 01:11:24 +0000 (01:11 +0000)] 
Make CLI .dump immune to pragma reverse_unordered_selects, as reported in [forum:/forumpost/c42be01880e961eb|Forum thread "Missing ORDER BY in .dump?"]

FossilOrigin-Name: 488caed24453fcef6fddcf40353e3b44cf37fb9d21e0ed743d39d60cbff020a7

17 months agoFix a harmless typo in a comment.
drh [Sun, 21 Jan 2024 21:20:33 +0000 (21:20 +0000)] 
Fix a harmless typo in a comment.

FossilOrigin-Name: 382a8f94bffef3e5f715116e363a30e21e2c53cd42d4959dfbe90c4624143e6d

17 months agoEnsure that values generated by DEFAULT clauses that specify real numbers that can...
dan [Sat, 20 Jan 2024 18:41:13 +0000 (18:41 +0000)] 
Ensure that values generated by DEFAULT clauses that specify real numbers that can be expressed as 64-bit integers (e.g. -1234.0) are not silently converted to integers.

FossilOrigin-Name: 298d6977285c71be917896bc875a8a26d985dcf0a74069b7c4d290e8ff0ac618

17 months agoSimplifications to the strftime() logic.
drh [Sat, 20 Jan 2024 18:26:28 +0000 (18:26 +0000)] 
Simplifications to the strftime() logic.

FossilOrigin-Name: aaa5a044d8a4942278eb4269fa8c7252f9f1dc161408e618e7c97c55a12283ff

17 months agoFix a memory leak in new memdb1.test test cases that were added by
drh [Sat, 20 Jan 2024 18:21:50 +0000 (18:21 +0000)] 
Fix a memory leak in new memdb1.test test cases that were added by
[e638d5e408ea2e18].  No changes to SQLite itself.

FossilOrigin-Name: bb2b7a658e0186d8b09199170db17744536602d8282b83c71ed969494d2ca465

17 months agoMake sure that %V and %G are testing for every since day in between 1970-01-01
drh [Sat, 20 Jan 2024 16:38:00 +0000 (16:38 +0000)] 
Make sure that %V and %G are testing for every since day in between 1970-01-01
and 2023-01-19.

FossilOrigin-Name: 39c475f5fb86526622a715860385f0a3a4b2c18d8ef209779c423527e0639385

17 months agoRig sqlite3_serialize() so that it will initialize a previously uninitialized
drh [Sat, 20 Jan 2024 16:29:19 +0000 (16:29 +0000)] 
Rig sqlite3_serialize() so that it will initialize a previously uninitialized
database prior to serializing it, so that it does not have a zero-byte size
and does not return NULL (except for OOM).
[forum:/forumpost/498777780e16880a|Forum thread 498777780e16880a].

FossilOrigin-Name: e638d5e408ea2e189b6771d16bbc2e42c606e88e05fbea78079b6e39e41f344c

17 months agoWhen doing a text-affinity comparison between two values where one or both
drh [Sat, 20 Jan 2024 15:13:13 +0000 (15:13 +0000)] 
When doing a text-affinity comparison between two values where one or both
have both a text and a numeric type, make sure the numeric type does not
confuse the answer.  This is a deeper fix to the problem observed by
[forum:/forumpost/3776b48e71|forum pose 3776b48e71].  The problem bisects
to [25f2246be404f38b] on 2014-08-24, prior to version 3.8.7.

FossilOrigin-Name: 709841f88c77276f09701bf38e25503c64b3a0afbe2fbf878136db12f31cbe21

17 months agoEnsure that the replace() SQL function always returns a TEXT value even
drh [Sat, 20 Jan 2024 13:18:22 +0000 (13:18 +0000)] 
Ensure that the replace() SQL function always returns a TEXT value even
when its first argument is numeric and its second argument is an empty string.
Fix for the issue reported by
[forum:/forumpost/3776b48e71|forum post 3776b48e71].

FossilOrigin-Name: 01868ebcd25fadb2034da234c0636e82d07c5abc902ef66493cadfc988e74d7b

17 months agoWhen backing out a character in a constructed string in JSON, first make sure
drh [Sat, 20 Jan 2024 12:13:00 +0000 (12:13 +0000)] 
When backing out a character in a constructed string in JSON, first make sure
the string has not been reset by on OOM.
dbsqlfuzz 2fffbea91a5376526ea118d4fe4188c8dd35e317.

FossilOrigin-Name: 666690eb433fe38fa527ccbbb8e2c00041a33939da4f6b8bfb737d664f28f0d8

17 months agoFix the version number in the TEA configure script. This should have
drh [Sat, 20 Jan 2024 12:00:20 +0000 (12:00 +0000)] 
Fix the version number in the TEA configure script.  This should have
been changed by [1481baf3d55effcc] three check-ins ago.
It is unclear how testing missed this.

FossilOrigin-Name: eaf2cf73fca3355edd05fef5b0d0262a6555633908794068805d12b1948beedc

17 months agoImplement a new algorithm for computing ISO week values in strftime() based
drh [Sat, 20 Jan 2024 00:31:44 +0000 (00:31 +0000)] 
Implement a new algorithm for computing ISO week values in strftime() based
on the idea (from [forum/forumpost/3681cb1bcd|Nuno Cruces]) of shifting the
date being tested to the Thursday of the same week.

FossilOrigin-Name: b06ab46a9ee98719159ed3e05cdfbf26281353d781206f56ed7cb12859210fed

17 months agoAllow large hexadecimal literals to be used as DEFAULT values.
dan [Fri, 19 Jan 2024 16:51:34 +0000 (16:51 +0000)] 
Allow large hexadecimal literals to be used as DEFAULT values.

FossilOrigin-Name: 8cccc1f27d7470d3cdd3c9c6d74f6a5ac49ec6eaa7002bcf96f4842fb8c79e1a

17 months agoIncrease the version number to 3.46.0 to begin the next development cycle.
drh [Thu, 18 Jan 2024 16:52:11 +0000 (16:52 +0000)] 
Increase the version number to 3.46.0 to begin the next development cycle.

FossilOrigin-Name: 1481baf3d55effcc117f2097e2d49a6f60f5f74b21190c3be943fd785b8a4c5b

17 months agoAdd support in the strftime() SQL function for conversion letters %G, %g,
drh [Thu, 18 Jan 2024 16:50:25 +0000 (16:50 +0000)] 
Add support in the strftime() SQL function for conversion letters %G, %g,
%U, and %V.

FossilOrigin-Name: e1155d6aa4b960ecfd14fa3467f28672af3327699c547f5b9e75da3ac1348ff7

17 months agoFix harmless "unused parameter" compiler warning in the new fts3IntegrityMethod
drh [Tue, 16 Jan 2024 16:14:52 +0000 (16:14 +0000)] 
Fix harmless "unused parameter" compiler warning in the new fts3IntegrityMethod
implementation.

FossilOrigin-Name: bb1fe53a97672fc868e3f3897162ea0d714dc1da95187f9c7e35255049f2b0e7

17 months agoEnsure that the xIntegrity methods of fts3 and fts5 work on read-only databases.
dan [Tue, 16 Jan 2024 16:05:21 +0000 (16:05 +0000)] 
Ensure that the xIntegrity methods of fts3 and fts5 work on read-only databases.

FossilOrigin-Name: b855886c4ccce0745af6957943e77be18949722f09821688725d546d3d79b4fb

17 months agoClutter the code with "fall-through" comments in order to suppress nuisance
drh [Tue, 16 Jan 2024 15:04:19 +0000 (15:04 +0000)] 
Clutter the code with "fall-through" comments in order to suppress nuisance
compiler warnings.  No logic changes.

FossilOrigin-Name: 05d2cf5e90d2a6b8e7fbcdb9e12e7c1281db7cfbe212997bd63c8aa66797edda