]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoRename the new opfs-sahpool init-retry flag to the suitably descriptive, and suitably... sahpool-reinit-fallback
stephan [Sat, 13 Jul 2024 00:55:55 +0000 (00:55 +0000)] 
Rename the new opfs-sahpool init-retry flag to the suitably descriptive, and suitably onerous, forceReinitIfPreviouslyFailed, based on feedback.

FossilOrigin-Name: c9f0a6090258534a3d81066df5610229183a8457fc60d5034b4b94d9a29796e4

2 years agoReformulate the forceReinitIfFailed handling based on feedback, to correct the type...
stephan [Thu, 11 Jul 2024 19:50:17 +0000 (19:50 +0000)] 
Reformulate the forceReinitIfFailed handling based on feedback, to correct the type-checking and resolve a potential race condition.

FossilOrigin-Name: c4f468309158f9b951137461213fb269d96d15c331256cf392a56c9bed231460

2 years agoAdd an option to force the opfs-sahpool VFS init to re-run after it fails on a first...
stephan [Thu, 11 Jul 2024 11:04:17 +0000 (11:04 +0000)] 
Add an option to force the opfs-sahpool VFS init to re-run after it fails on a first attempt, as a workaround for flaky environments where initial access to OPFS sync access handles is rejected but then permitted on a second attempt. Reported and discussed in [https://github.com/sqlite/sqlite-wasm/issues/79|issue #79 of the npm distribution].

FossilOrigin-Name: 5286e0f654d91a4ebee51fcabaab696e17ff07bb18990b401a31bd3d1213e695

2 years agoRename some JS files for consistency. This affects only the build process, not the...
stephan [Wed, 10 Jul 2024 08:33:52 +0000 (08:33 +0000)] 
Rename some JS files for consistency. This affects only the build process, not the deliverables.

FossilOrigin-Name: bcef3f71a2f68768819d9f716f2c29e752fb173df1506469c8669d95ecc2ff50

2 years agoFix a use-after-free that could occur following an OOM introduced by [d8cedbe0].
dan [Mon, 8 Jul 2024 17:39:52 +0000 (17:39 +0000)] 
Fix a use-after-free that could occur following an OOM introduced by [d8cedbe0].

FossilOrigin-Name: 4fabfacfcf38e129949d3e4e2c3ffde3da3cd40d9d12c97ca29bc7c3604db6ed

2 years agoImprove the error message returned when fts5 finds a row is missing from its content...
dan [Mon, 8 Jul 2024 16:01:49 +0000 (16:01 +0000)] 
Improve the error message returned when fts5 finds a row is missing from its content table.

FossilOrigin-Name: 9b1afd4acb8cf9738154e921dcb074d895bbcc4742bf1016ef9f045a0da78bc8

2 years agoUse a mini Bloom filter to help reduce the number of pointless searches for
drh [Fri, 5 Jul 2024 13:55:59 +0000 (13:55 +0000)] 
Use a mini Bloom filter to help reduce the number of pointless searches for
prior SubrtnSig objects when generating code for IN operators with subqueries
as their right operand.

FossilOrigin-Name: d8cedbe055b40a0ea4e5d47845b535162e9fcb0d0f88c03211797ab64d2d56fb

2 years agoImproved reuse of subqueries associated with IN operators, especially when
drh [Fri, 5 Jul 2024 09:56:11 +0000 (09:56 +0000)] 
Improved reuse of subqueries associated with IN operators, especially when
the IN operator is duplicated due to predicate push-down.

FossilOrigin-Name: c9a3498113074bbcd9a8c8d30286fef6c6a49ad2c84b90ec0f5a148389d6245c

2 years agoSmall performance optimizations. reuse-subqueries
drh [Fri, 5 Jul 2024 01:05:34 +0000 (01:05 +0000)] 
Small performance optimizations.

FossilOrigin-Name: 99fd34b58a9b09af20f1f1a3c37137ae55159310c8af97806550eeee6adc4fc5

2 years agoAdd test cases to in7.test.
dan [Thu, 4 Jul 2024 18:56:26 +0000 (18:56 +0000)] 
Add test cases to in7.test.

FossilOrigin-Name: 07817efc10a6ab59dcb18ad218a3bb5a5d49a724c51296d5c8d7e386b0e0c789

2 years agoDisable the reuse of IN-clause subqueries if the subquery is an explicit
drh [Thu, 4 Jul 2024 18:26:41 +0000 (18:26 +0000)] 
Disable the reuse of IN-clause subqueries if the subquery is an explicit
"SELECT ALL".  The ALL keyword is almost never used in actual practice (most
developers don't even know it can be used) so this should not interfere with
the optimization, but it does give us a convenient way to turn it off for
testing purposes.

FossilOrigin-Name: a81299be2ce203dcc28e7d0ba24791cbfba80e1ee3e1564469a226cac8adb17d

2 years agoUpdate EXPLAIN output to include P4_SUBRTNSIG.
dan [Thu, 4 Jul 2024 17:49:34 +0000 (17:49 +0000)] 
Update EXPLAIN output to include P4_SUBRTNSIG.

FossilOrigin-Name: 61e56923c80d72d6467ec703b4946b251abf591649fa9e8e579667d7cbd25682

2 years agoBe more aggressive about reusing subqueries that appear on the RHS of IN
drh [Thu, 4 Jul 2024 16:57:11 +0000 (16:57 +0000)] 
Be more aggressive about reusing subqueries that appear on the RHS of IN
operators that have been replicated due to the predicate push-down optimization.

FossilOrigin-Name: 2accf32b6e45a396503c29eecc14a103bcc7b4c313cde921b26b489704060177

2 years agoAdd comment using the name "predicate push-down optimization" to what we have
drh [Thu, 4 Jul 2024 11:15:32 +0000 (11:15 +0000)] 
Add comment using the name "predicate push-down optimization" to what we have
also called "WHERE-clause push down".  No changes to code.

FossilOrigin-Name: be77fe701c7b7d3407800e1ed6a4c8be14035831790419cc99362bff41c65b60

2 years agoFor shell completion, use pragma_table_xinfo instead of pragma_table_info, so that...
stephan [Thu, 4 Jul 2024 09:45:23 +0000 (09:45 +0000)] 
For shell completion, use pragma_table_xinfo instead of pragma_table_info, so that generated columns are handled, as reported in [forum:f0735e05d8d7e857|forum post f0735e05d8d7e857].

FossilOrigin-Name: a204ffc06b468c2edf8f11ccf3de639edd4f8282e69a44ceeb68a4d3a43e77ea

2 years agoWhen constructing an ephermeral table to use as the right-hand side of
drh [Wed, 3 Jul 2024 20:19:33 +0000 (20:19 +0000)] 
When constructing an ephermeral table to use as the right-hand side of
an IN operator, also construct a Bloom filter to speed membership testing.

FossilOrigin-Name: baa83b460c677c210c7fa3f20314d7e05f305aed8a69026bc5fa106a3de4ea38

2 years agoShow the creation of IN-operator Bloom filters in the EXPLAIN QUERY PLAN output. in-bloom
drh [Wed, 3 Jul 2024 20:10:42 +0000 (20:10 +0000)] 
Show the creation of IN-operator Bloom filters in the EXPLAIN QUERY PLAN output.

FossilOrigin-Name: c10a1b99d47a4c93bdb16e646f6a21add570d6dbb34fd91a32f8abacdb28712b

2 years agoAdd a new sqlite3FaultSim() call to OP_NotFound to use for testing purposes.
drh [Wed, 3 Jul 2024 18:56:56 +0000 (18:56 +0000)] 
Add a new sqlite3FaultSim() call to OP_NotFound to use for testing purposes.

FossilOrigin-Name: 84fd275bfd8afada50d3a5ac491d2b866671f8f0d2496bd240cf4bfdd74e7399

2 years agoUse a Bloom filter to improve performance of IN operators when the RHS of
drh [Wed, 3 Jul 2024 17:51:48 +0000 (17:51 +0000)] 
Use a Bloom filter to improve performance of IN operators when the RHS of
the IN operator is a subquery.

FossilOrigin-Name: 1933496539c19cbf429a39d6b0b1c6b1b2af50733a3c4aea4920990ced652f6a

2 years agoAdd assert() statements to FTS5 to hush-up warnings from scan-build.
drh [Tue, 2 Jul 2024 13:54:46 +0000 (13:54 +0000)] 
Add assert() statements to FTS5 to hush-up warnings from scan-build.

FossilOrigin-Name: 77a76654e64c05f2c67be120f579fc60924ff51a9d0fa2cf9eb158f40171b5f5

2 years agoReword the deliberate_fall_through macro along the lines suggested by
drh [Tue, 2 Jul 2024 12:16:29 +0000 (12:16 +0000)] 
Reword the deliberate_fall_through macro along the lines suggested by
[forum:/forumpost/7ec11023dd|forum post 7ec11023dd] so that it works better
with LLVM, while preserving compatibility with MSVC and older GCCs.

FossilOrigin-Name: fc248a4a0a232a95a79e24e57faedb5d824c3bf0aa62054b72339257dc9c18b3

2 years agoIn the CLI, if the XDG_CONFIG_HOME environment variable is not set, then also
drh [Tue, 2 Jul 2024 11:30:10 +0000 (11:30 +0000)] 
In the CLI, if the XDG_CONFIG_HOME environment variable is not set, then also
search in ~/.config/sqlite3/sqliterc for the initialization file.
See [forum:/forumpost/5cc6d059e9e092ed|forum thread 5cc6d059e9e092ed].

FossilOrigin-Name: 33841c9c3cb57beeb3884d4b0715d26199926b7d3e4d3dd1ab6f5603b5a62591

2 years agoFix a typo in a comment in a test case. No changes to code.
drh [Sat, 29 Jun 2024 15:57:55 +0000 (15:57 +0000)] 
Fix a typo in a comment in a test case.  No changes to code.

FossilOrigin-Name: f501166de4f967b7e2e895f180308630e3c88b12bc51823a0a124ee5089eae4f

2 years agoAdd a NEVER() around a branch in sqlite3ExprAffinity() that is designed to
drh [Sat, 29 Jun 2024 12:22:32 +0000 (12:22 +0000)] 
Add a NEVER() around a branch in sqlite3ExprAffinity() that is designed to
prevent an infinite loop, but which can now never be reached due to recent
changes.

FossilOrigin-Name: da0b794852f8ccba5bd30395892044ec71b148075608406867785395e1f50b31

2 years agoUpdate fts5 comment/docs to include the order matches are visited in by the xPhraseFi...
dan [Fri, 28 Jun 2024 18:21:30 +0000 (18:21 +0000)] 
Update fts5 comment/docs to include the order matches are visited in by the xPhraseFirst/xPhraseNext API.

FossilOrigin-Name: e41930ef5b883c0f2a6b7eb9606021d14a3df145bc94cb0d508af22b4db7f168

2 years agoAdditional steps to make sure calls to sqlite3ExprToRegister() are sane.
drh [Fri, 28 Jun 2024 18:07:10 +0000 (18:07 +0000)] 
Additional steps to make sure calls to sqlite3ExprToRegister() are sane.

FossilOrigin-Name: 1c42d7176b228791f99bc9971d92a9ab67b1e2956ca4f8d934bd1a3e596d6c80

2 years agoDo not convert an expression node that is already TK_REGISTER into a
drh [Fri, 28 Jun 2024 17:14:00 +0000 (17:14 +0000)] 
Do not convert an expression node that is already TK_REGISTER into a
new TK_REGISTER.  This is a follow-up to [663f5dd32d9db832] that fixes a
bug discovered by dbsqlfuzz.

FossilOrigin-Name: fcb669cfaa8a59ca710504d5aaa1936f65a6da8ff13473ad84458f97a6fd1f49

2 years agoFix an incorrect tcl comment that appeared in many fts5 test files.
dan [Mon, 24 Jun 2024 18:06:15 +0000 (18:06 +0000)] 
Fix an incorrect tcl comment that appeared in many fts5 test files.

FossilOrigin-Name: d07085e2035b52a7edd27980523225e59c5bf851fb4a6de975f03e653b937c9c

2 years agoFix some problems with calling fts5 api functions from within non-full-text queries.
dan [Mon, 24 Jun 2024 16:08:01 +0000 (16:08 +0000)] 
Fix some problems with calling fts5 api functions from within non-full-text queries.

FossilOrigin-Name: 56d265f956fe6433b625c6d732e55f387af3f643e705316f5a6f709d63731669

2 years agoEnhance the output of ".scanstats vm" to include the absolute number of ticks for...
dan [Mon, 24 Jun 2024 14:53:14 +0000 (14:53 +0000)] 
Enhance the output of ".scanstats vm" to include the absolute number of ticks for each VM instruction, instead of just the percentage of the total.

FossilOrigin-Name: 1535828335d2b0eccebae952ed2bc70cc0cd893bd4b079d26b80deff9b5f752b

2 years agoRevert Lemon so that it only shows -D options that are actually used. Though
drh [Wed, 19 Jun 2024 18:54:04 +0000 (18:54 +0000)] 
Revert Lemon so that it only shows -D options that are actually used.  Though
the change to display the options in sorted order is retained.

FossilOrigin-Name: e54eb217c9508c19aee085b111a1323c9009f014ba4db6019918e27002c4ca8c

2 years agoIn lemon, show all the -D options in the generated header, even if none of them
drh [Wed, 19 Jun 2024 18:46:44 +0000 (18:46 +0000)] 
In lemon, show all the -D options in the generated header, even if none of them
are used.

FossilOrigin-Name: 2aa009c38bb207ac59b9bbd6f8e0d7315697b3fd6a01f9431f29a3c7ccad53e7

2 years agoEnhance lemon.c so that when it shows the compile-time options in the header
drh [Wed, 19 Jun 2024 16:38:17 +0000 (16:38 +0000)] 
Enhance lemon.c so that when it shows the compile-time options in the header
comment of the generated output file, it shows all options, even those not
used, and it shows them in sorted order.

FossilOrigin-Name: eed76e6698eabe47c6bf9696599ce1c2f7aa428cf60f39d0566fbd0d1f6c4c62

2 years agoRemove some extraneous flags from the fiddle-debug build. Internal doc tweaks in...
stephan [Wed, 19 Jun 2024 11:08:58 +0000 (11:08 +0000)] 
Remove some extraneous flags from the fiddle-debug build. Internal doc tweaks in the main wasm makefile.

FossilOrigin-Name: afae2c9e6fba0820c9be8d06a2e301a74167e4457bada45fe57b5fd9287d2e8b

2 years agoMinor cleanups in the new fiddle build code.
stephan [Tue, 18 Jun 2024 22:03:28 +0000 (22:03 +0000)] 
Minor cleanups in the new fiddle build code.

FossilOrigin-Name: d356aebdd450bedc1ecbbdd266effe53c7badbd74ed7e6db8d0c31318d99a35f

2 years agoRework the fiddle build to build separate debug and non-debug bundles, with the latte...
stephan [Tue, 18 Jun 2024 21:50:30 +0000 (21:50 +0000)] 
Rework the fiddle build to build separate debug and non-debug bundles, with the latter in ./fiddle-debug.

FossilOrigin-Name: a9f1758f1cbe7b7d0c87dfb060f52d03c6ea0e066c079891a8ff354073997f9e

2 years agoRemove an extraneous CSS file and import its CSS into the one HTML file which uses it.
stephan [Tue, 18 Jun 2024 20:47:05 +0000 (20:47 +0000)] 
Remove an extraneous CSS file and import its CSS into the one HTML file which uses it.

FossilOrigin-Name: 66085ca42388e8de741712150541a3e0afb06b3e23e738aa9ff687e9fc494c50

2 years agoAdd fiddle-debug make target to ext/wasm. It builds the same target files as a non...
stephan [Tue, 18 Jun 2024 20:40:11 +0000 (20:40 +0000)] 
Add fiddle-debug make target to ext/wasm. It builds the same target files as a non-debug build, as opposed to a new copy, but adds various debug-related flags.

FossilOrigin-Name: 993143c5c39fb6ee15b0661cec8fed436ff04543b528a3796534f5e3a44799f5

2 years agoAdd instructions for how to do debugging builds of the CLI on Windows.
drh [Tue, 18 Jun 2024 19:36:04 +0000 (19:36 +0000)] 
Add instructions for how to do debugging builds of the CLI on Windows.

FossilOrigin-Name: abe81c18614b41c78cf3edeaaf8d85d5d2dbdcf331b580f1c98f80d3726d8189

2 years agoUpdate sqlite3_analyzer to report on the number of WITHOUT ROWID tables and
drh [Tue, 18 Jun 2024 12:19:13 +0000 (12:19 +0000)] 
Update sqlite3_analyzer to report on the number of WITHOUT ROWID tables and
to provide separate aggregate statistics for WITHOUT and WITH ROWID tables.

FossilOrigin-Name: 4152894433c3a292d983b1c196664a0c46e406eccd7e644a64fa443fdb204825

2 years agoInternal doc typo fixes, as reported in the forum. No code changes.
stephan [Tue, 18 Jun 2024 09:58:39 +0000 (09:58 +0000)] 
Internal doc typo fixes, as reported in the forum. No code changes.

FossilOrigin-Name: ea16b286b4344c1833ca3d17b6d315fb4ddcb99bcc232ff6444debeb634881f2

2 years agoRemove some dead JS code.
stephan [Sun, 16 Jun 2024 17:06:50 +0000 (17:06 +0000)] 
Remove some dead JS code.

FossilOrigin-Name: 754e6e059b740435475c1869feeaca39585b262d5c27210e0fbddbbcc202c4d5

2 years agoDo not omit the ORDER BY clause from a recursive CTE just because the
drh [Fri, 14 Jun 2024 23:13:54 +0000 (23:13 +0000)] 
Do not omit the ORDER BY clause from a recursive CTE just because the
query that contains the CTE also contains an ORDER BY clause.  Plus
other changes imported from the recursive-cte-orderby-fix branch.

FossilOrigin-Name: 13242289c5d412b706f50fc7e1553032ea3a52d41a3e34e155432adaf0551481

2 years agoRemove some dead JS code. Improve the exception-to-C-result-code conversion to accoun...
stephan [Wed, 12 Jun 2024 22:15:25 +0000 (22:15 +0000)] 
Remove some dead JS code. Improve the exception-to-C-result-code conversion to account for the case of a file disappearing while the OPFS VFS is waiting to acquire a lock on it.

FossilOrigin-Name: 5bd9fd5f61e7cd1ed3b44c5cabc759c154c98eb40ad10d29e61f142aaa062ddf

2 years agoRemove some JS docs which no longer apply. No code changes.
stephan [Wed, 12 Jun 2024 21:01:44 +0000 (21:01 +0000)] 
Remove some JS docs which no longer apply. No code changes.

FossilOrigin-Name: f253cab3359270045a3ae9f5e9eadc1cfc8844181db127165bfdf49d5f99efb1

2 years agoFix a problem with rolling back hot journals using the unix-dotfile VFS.
dan [Wed, 12 Jun 2024 15:50:35 +0000 (15:50 +0000)] 
Fix a problem with rolling back hot journals using the unix-dotfile VFS.

FossilOrigin-Name: a44703135e8dd3cc67e548e1aa3c42e71df127fb7b593ccfc06025ec42a501fd

2 years agoOmit tests that depend on sqlite3_release_memory() in lock5.test when running the... unix-dotfile-fix
dan [Wed, 12 Jun 2024 15:29:37 +0000 (15:29 +0000)] 
Omit tests that depend on sqlite3_release_memory() in lock5.test when running the memsubsys1 or memsubsys2 permutations.

FossilOrigin-Name: 9d63033bf46ddf0f4d9d4ef06d56357fe6165f2370cd19cf81c2f7f61ce224fc

2 years agoOPFS VFS: change the xCheckReservedLock() impl to always return false, as discussed...
stephan [Wed, 12 Jun 2024 12:36:02 +0000 (12:36 +0000)] 
OPFS VFS: change the xCheckReservedLock() impl to always return false, as discussed in [forum:a2f573b00cda1372|forum thread a2f573b00cda1372]. This does not impact any current tests, and may have no direct impact at all because of how that VFS handles locking, but is hypothetically a more correct solution than the previous one.

FossilOrigin-Name: c298b8ba2dcd01fa28b79a78bb4986fa0282755a0a36b7f38b93096ac31f521e

2 years agoDoc updates in JS code. No functional changes.
stephan [Wed, 12 Jun 2024 12:17:03 +0000 (12:17 +0000)] 
Doc updates in JS code. No functional changes.

FossilOrigin-Name: 587ed3a5d283898ad0e67ccee86a0a4ccc432fa292c0a3534e9e6ec70a7b7780

2 years agoDo not attempt to run hot journal rollback tests in lock5.test with the "inmemory_jou...
dan [Wed, 12 Jun 2024 11:41:18 +0000 (11:41 +0000)] 
Do not attempt to run hot journal rollback tests in lock5.test with the "inmemory_journal" permutation, which cannot generate hot journals.

FossilOrigin-Name: 1e6fa95b88cace9e6cac476863d57cfd8de483f83c922ff964b77cbaee6e9ae4

2 years agoSlight API doc tweak for xCheckReservedLock(), based on forum feedback. No code changes.
stephan [Wed, 12 Jun 2024 11:39:29 +0000 (11:39 +0000)] 
Slight API doc tweak for xCheckReservedLock(), based on forum feedback. No code changes.

FossilOrigin-Name: 2af7a96f6868a4529d689702926b350a4c00082f14da0ded5a8eaea295682d17

2 years agoHandle the case where unix-dotfile is used with URI parameter nolock=1.
dan [Tue, 11 Jun 2024 20:28:56 +0000 (20:28 +0000)] 
Handle the case where unix-dotfile is used with URI parameter nolock=1.

FossilOrigin-Name: 3925a5b904e159d54455cfc73fe837a9c6ea3a6d60da63afde3242b4d6f67c90

2 years agoFix a problem with rolling back hot journals using the unix-dotfile VFS.
dan [Tue, 11 Jun 2024 20:03:32 +0000 (20:03 +0000)] 
Fix a problem with rolling back hot journals using the unix-dotfile VFS.

FossilOrigin-Name: 4ae3300b79e03381fd7f1033bb7978bb6367369790f17c3bdacac51e205edaf9

2 years agoRemove some dead JS code and update some JS docs.
stephan [Tue, 11 Jun 2024 17:04:43 +0000 (17:04 +0000)] 
Remove some dead JS code and update some JS docs.

FossilOrigin-Name: 6935ac71bad3d36cc519f0325ae4447a674f257309d020cdc0741160fcce0580

2 years agoWhen compiling shell.c in SQLITE_SHELL_FIDDLE mode, ensure that the shell_main_exit...
stephan [Tue, 11 Jun 2024 17:04:02 +0000 (17:04 +0000)] 
When compiling shell.c in SQLITE_SHELL_FIDDLE mode, ensure that the shell_main_exit goto label is reachable.

FossilOrigin-Name: 06e6f64533563ab9c059b773e5f0d78085df716f2624e547b7259f6789c3ffe0

2 years agoChange constant expressions to pre-computed constants, because apparently
drh [Tue, 11 Jun 2024 14:36:56 +0000 (14:36 +0000)] 
Change constant expressions to pre-computed constants, because apparently
MSVC on ARM requires that.
[forum:/forumpost/4feb1685cced0a8e|Forum thread 4feb1685cced0a8e].

FossilOrigin-Name: 6c103aee6f146869a3e0c48694592f2e4c6b57ecdb4450f46e762c38b4e686f1

2 years agoImproved header comment on the sqlite3FpDecode() implementation.
drh [Mon, 10 Jun 2024 12:43:03 +0000 (12:43 +0000)] 
Improved header comment on the sqlite3FpDecode() implementation.
For the fpdecode() SQL function (available in debug builds only) limit
the value of the third parameter (mxRound) to be positive.

FossilOrigin-Name: 56af06fa12104a1fe119d7087746011183af053834eac72d0fb69f60d98054c6

2 years agoDisable the omit-noop-join optimization when there are 64 or more terms in
drh [Sun, 9 Jun 2024 17:34:03 +0000 (17:34 +0000)] 
Disable the omit-noop-join optimization when there are 64 or more terms in
the ORDER BY clause.

FossilOrigin-Name: 40de3939792e17df25598b3e60d1cebcecde2b00832acd55604f14b21398a9a7

2 years agoAllow the query planner access to the argument of LIMIT even if that
drh [Thu, 6 Jun 2024 23:56:36 +0000 (23:56 +0000)] 
Allow the query planner access to the argument of LIMIT even if that
argument is a bound parameter.

FossilOrigin-Name: c4a9dda2809c6e0e3d928e11e5553ead82cd9df551bcd35b11a7d869ef80ab8e

2 years agoOmit bogus tests accidentally added by the privious commit. var-in-limit
drh [Thu, 6 Jun 2024 23:22:32 +0000 (23:22 +0000)] 
Omit bogus tests accidentally added by the privious commit.

FossilOrigin-Name: e94dfe9928750dd98145d4d9920b298f7b0868703b487f86e0db77a41d53ccf9

2 years agoBetter optimize queries that use parameters in the LIMIT clause.
drh [Thu, 6 Jun 2024 15:03:16 +0000 (15:03 +0000)] 
Better optimize queries that use parameters in the LIMIT clause.

FossilOrigin-Name: e58cb304d1e0ec6e30260a165aaccc2cf096ce6c999efb06683c4ef600ee12ef

2 years agoRe-enable [dcc2bb2c562e97e090174], as [296eeb26c816bc73] corrects the wasi-sdk build...
stephan [Thu, 6 Jun 2024 12:22:19 +0000 (12:22 +0000)] 
Re-enable [dcc2bb2c562e97e090174], as [296eeb26c816bc73] corrects the wasi-sdk build problem the former check-in triggered. Reported in [forum:143e40d7f4e79c66|forum post 143e40d7f4e79c66].

FossilOrigin-Name: f66608bd356efe492d1003663c2e1ccd7cfbf2d40393d256f8720149904ad2d5

2 years agoAdjust the parser so that the value of TK_ISNOT is similar to the value of
drh [Thu, 6 Jun 2024 01:21:57 +0000 (01:21 +0000)] 
Adjust the parser so that the value of TK_ISNOT is similar to the value of
TK_IS.  This helps the compiler generate faster switch() statements on the
Expr.op fields when there are cases for TK_ISNOT and other common operators.

FossilOrigin-Name: 34f05c3d89b2dd15e4b0d1ba292df7de3dfc54b505c0ba145cc3db52cf020845

2 years agoSmall performance optimization in the operatorMask routine of the WHERE
drh [Thu, 6 Jun 2024 01:00:50 +0000 (01:00 +0000)] 
Small performance optimization in the operatorMask routine of the WHERE
clause analysis logic.

FossilOrigin-Name: 9d69fc1c87ae673356869ecd89eb19734fd126702c0f9fe595336ecd7be89e08

2 years agoSmall performance optimization in the allowedOp() routine of the WHERE
drh [Thu, 6 Jun 2024 00:49:36 +0000 (00:49 +0000)] 
Small performance optimization in the allowedOp() routine of the WHERE
clause analysis code.

FossilOrigin-Name: 4ba8be544711e07748e8dd3ca6b81f9897906061c0a1a1bb4fb3808dc27f734b

2 years agoFix harmless compilation issues seen with MSVC.
mistachkin [Wed, 5 Jun 2024 20:50:39 +0000 (20:50 +0000)] 
Fix harmless compilation issues seen with MSVC.

FossilOrigin-Name: 816d4749384c7f398912c905a16c83b88f4c55632050b4c6117c61301d1a53e1

2 years agoSmall performance optimization in the codeEqualityTerm() routine of the
drh [Wed, 5 Jun 2024 20:41:36 +0000 (20:41 +0000)] 
Small performance optimization in the codeEqualityTerm() routine of the
code generator.

FossilOrigin-Name: 8080c6eafd1280ea870a6ab1ba715ac5af67387e69771be6cbd46dda77c3eaa8

2 years agoFix an fts5 problem with secure-delete mode causing integrity-check to erroneously...
dan [Wed, 5 Jun 2024 14:47:54 +0000 (14:47 +0000)] 
Fix an fts5 problem with secure-delete mode causing integrity-check to erroneously report a corrupt index.

FossilOrigin-Name: 80bef4d60ba9e3679ea66655ca36fcfaa888775a3d1598d50e9649ad84a95b63

2 years agoFix a very obscure issue where the name resolver could get confused if aliases like...
dan [Wed, 5 Jun 2024 11:36:58 +0000 (11:36 +0000)] 
Fix a very obscure issue where the name resolver could get confused if aliases like "sqlite_schema" or "sqlite_master" were used in a query involving the sqlite_temp_schema table.

FossilOrigin-Name: a096eb7554952f8137c6e9330c328164719fb27e958787fbd503bcd1364e6ae4

2 years agoFix harmless compiler warnings seen with MSVC.
mistachkin [Tue, 4 Jun 2024 19:21:16 +0000 (19:21 +0000)] 
Fix harmless compiler warnings seen with MSVC.

FossilOrigin-Name: 93ac8573eead9b785a24715239e71cd3ef730bf16332cf3b5e264a6491374cac

2 years agoBetter handle WHERE terms that are common to two or more OR branches when planning...
dan [Tue, 4 Jun 2024 17:26:15 +0000 (17:26 +0000)] 
Better handle WHERE terms that are common to two or more OR branches when planning virtual table queries.

FossilOrigin-Name: 1976c3f7e1fe77cf3367710e8ada230a3672ed374e316425164e42b2622526c7

2 years agoFix a couple of memory leaks in the shell tool code that could occur when processing...
dan [Tue, 4 Jun 2024 15:07:38 +0000 (15:07 +0000)] 
Fix a couple of memory leaks in the shell tool code that could occur when processing errors.

FossilOrigin-Name: e84f09d469ee76a5b5e44baf6a69b90c69d4160fa4c32de04a96f868643acd96

2 years agoAllow shell command "testctrl pending_byte" to be used in unsafe-testing mode only.
dan [Tue, 4 Jun 2024 14:32:31 +0000 (14:32 +0000)] 
Allow shell command "testctrl pending_byte" to be used in unsafe-testing mode only.

FossilOrigin-Name: afa45c4f5afc9248ca4a1e775404a460280bb9a58a92eae508ae00fb2f675dc6

2 years agoAddress a corner-case associated with the call-function-once optimization
drh [Mon, 3 Jun 2024 18:04:10 +0000 (18:04 +0000)] 
Address a corner-case associated with the call-function-once optimization
of check-in [663f5dd32d9db832] that was causing a (harmless) use of an
uninitialized bytecode register.
dbsqlfuzz 8a44f675401a8b1f68a43bf813c4f4f72ad8f0ea

FossilOrigin-Name: b37ac2d020873b78efa164036db4056406a67330679f850775da520cd8027cb9

2 years agoOmit an unused #define.
drh [Mon, 3 Jun 2024 12:36:43 +0000 (12:36 +0000)] 
Omit an unused #define.

FossilOrigin-Name: 9c2de28a146e4cdfa4c05bf8dbd4ebb1156c71104001edf68e6dd5db21deb91f

2 years agoModify three #if checks in os_unix.c to improve handling of SQLITE_OMIT_WAL on WASI...
stephan [Mon, 3 Jun 2024 07:22:28 +0000 (07:22 +0000)] 
Modify three #if checks in os_unix.c to improve handling of SQLITE_OMIT_WAL on WASI builds. Based on the discussion in/around [forum:57e918431735128a|forum post 57e918431735128a].

FossilOrigin-Name: 296eeb26c816bc734530cf446922f25be970b901c884df1a98083502f0d1e9f5

2 years agoBe more aggressive about freeing memory associated with the xbestindex-or-terms
drh [Sun, 2 Jun 2024 10:52:35 +0000 (10:52 +0000)] 
Be more aggressive about freeing memory associated with the
sqlite3_index_info.idxStr field.

FossilOrigin-Name: 85dcd0a8479a658203833cfd75f22813faa26d4793ebfbb8843035d683bee105

2 years agoHave fts5.xBestIndex return SQLITE_CONSTRAINT, instead of a large cost, when no usabl...
dan [Sat, 1 Jun 2024 17:56:58 +0000 (17:56 +0000)] 
Have fts5.xBestIndex return SQLITE_CONSTRAINT, instead of a large cost, when no usable plan can be found.

FossilOrigin-Name: 7c470945372dc98610f7c9840ce8cab18c19b655352f0187e4f31040cea77363

2 years agoFurther tests for OR constraints on virtual tables.
dan [Fri, 31 May 2024 20:32:10 +0000 (20:32 +0000)] 
Further tests for OR constraints on virtual tables.

FossilOrigin-Name: ff4a30056f8dbcbd045afdbee485f6671c3580b95187144aa9a77c97dfda2647

2 years agoBetter handle WHERE terms that are common to two or more OR branches when planning...
dan [Fri, 31 May 2024 19:26:22 +0000 (19:26 +0000)] 
Better handle WHERE terms that are common to two or more OR branches when planning virtual table queries.

FossilOrigin-Name: 4edd9b29f58621335b8a562280c991c34804bbba090f90c951261d043cff1965

2 years agoDo not even try star-schema detection if the join has fewer than 5 tables,
drh [Fri, 31 May 2024 15:39:00 +0000 (15:39 +0000)] 
Do not even try star-schema detection if the join has fewer than 5 tables,
since 5 is the minimum for a positive detection.

FossilOrigin-Name: a07ec16bbc056fbc23a7bd58e5e32ef691c13e9babeb542918cf9a01cac40c20

2 years agoDocument the OP_Explain opcode. Add the WhereLoop.rRun value as P3 in
drh [Fri, 31 May 2024 14:39:42 +0000 (14:39 +0000)] 
Document the OP_Explain opcode.  Add the WhereLoop.rRun value as P3 in
OP_Explain opcodes associated with WhereLoops, for testing purposes.

FossilOrigin-Name: 996c46e61d9a53a54018672dd407b8ba8c480dd6795393428f9d5fcb81b47ab5

2 years agoBack out [dcc2bb2c562e97e090174], as it breaks the --with-wasi-sdk builds.
stephan [Thu, 30 May 2024 21:54:16 +0000 (21:54 +0000)] 
Back out [dcc2bb2c562e97e090174], as it breaks the --with-wasi-sdk builds.

FossilOrigin-Name: 62199562c26f77d059aa0bbda42a421a7aece828aa94d14a40c701a6384d1cf6

2 years agoRemove the unconditional SQLITE_OMIT_WAL when building in wasi-sdk mode, per [forum...
stephan [Thu, 30 May 2024 17:56:26 +0000 (17:56 +0000)] 
Remove the unconditional SQLITE_OMIT_WAL when building in wasi-sdk mode, per [forum:80003e91a7a6cb4d|requests in the forum].

FossilOrigin-Name: dcc2bb2c562e97e090174d4d0970bfa1551e5eb4db022e6d232c4dd786818e45

2 years agoEnsure that the second pass call to wherePathSolver() always reports a positive
drh [Thu, 30 May 2024 13:27:29 +0000 (13:27 +0000)] 
Ensure that the second pass call to wherePathSolver() always reports a positive
value for the estimated number of output rows.  This fixes a long-standing
(though exceedingly minor) problem that was only revealed by a new assert()
added yesterday.  dbsqlfuzz 545d6debc2da496ab2b915e33ea34d9a35a935df

FossilOrigin-Name: a47c644fef71f3ab3dc584ea917eaab9a8e5b4c9dcb57bdd29747ba32108e85f

2 years agoUpdate shell.c to use the msteve fork of linenoise, per /chat discussion.
stephan [Thu, 30 May 2024 11:14:16 +0000 (11:14 +0000)] 
Update shell.c to use the msteve fork of linenoise, per /chat discussion.

FossilOrigin-Name: ee92fa8366b743266b17c692499087c0d11b9302d096c3dfb4e6356b467e939e

2 years agoRemove an unused parameter from fts5ConfigParseSpecial(). Compiler-warning
drh [Wed, 29 May 2024 15:16:17 +0000 (15:16 +0000)] 
Remove an unused parameter from fts5ConfigParseSpecial().  Compiler-warning
fix only - no functional changes.

FossilOrigin-Name: c08dd245f7706f2fd2269d700be480477619a722e27e6b439462ae543302c49f

2 years agoUse a heuristic of artifically lowering the cost of fact tables in a
drh [Wed, 29 May 2024 15:08:20 +0000 (15:08 +0000)] 
Use a heuristic of artifically lowering the cost of fact tables in a
star-schema query in order to prevent plans where the fact tables are
in outer loops from being trimmed by the path limiter.  This helps to
generate better (faster) query plans in those particular cases.

FossilOrigin-Name: 38db9b5c83dfb3021333365b2f6b11e3b54afd7033e9f4dadf0c0df1d4b082d8

2 years agoChange an assert() (incorrectly) added by the previous check-in into a star-schema
drh [Wed, 29 May 2024 14:32:22 +0000 (14:32 +0000)] 
Change an assert() (incorrectly) added by the previous check-in into a
testcase().

FossilOrigin-Name: 5e64b541d175c10a5df67ef3419ecd74fcb51392af5f5458973cea85ee6a3246

2 years agoSmall performance enhancement in wherePathSolver()
drh [Wed, 29 May 2024 14:04:52 +0000 (14:04 +0000)] 
Small performance enhancement in wherePathSolver()

FossilOrigin-Name: bdab69641df4704f7b080cf7841bbf39da9160222f7b664a79ed662b70ca7b0a

2 years agoImprovements to comments and debugging output.
drh [Wed, 29 May 2024 13:29:39 +0000 (13:29 +0000)] 
Improvements to comments and debugging output.

FossilOrigin-Name: 85164ee155e42809fe34e6c6b6fbe0a2baa9d616326a811173a0b0c8a885fcce

2 years agoRemember the amount of the heuristic cost adjustment associated with
drh [Wed, 29 May 2024 10:40:53 +0000 (10:40 +0000)] 
Remember the amount of the heuristic cost adjustment associated with
star schemas and compensate when computing whether or not to use Bloom
filters.

FossilOrigin-Name: 21daf2463ef70e6b5dc73ba5bf62b3d2fb504e9189f645ac74b513d3d8b979c2

2 years agoFix typos in the star-schema test cases.
drh [Wed, 29 May 2024 09:53:19 +0000 (09:53 +0000)] 
Fix typos in the star-schema test cases.

FossilOrigin-Name: 4080937353985eb391f70a3a7fae890823cf01d19c52939e343fb2504f3f8659

2 years ago[forum:/forumpost/c9b8d923d5|Fix sqldiff out-of-bounds char classification error...
larrybr [Wed, 29 May 2024 03:35:40 +0000 (03:35 +0000)] 
[forum:/forumpost/c9b8d923d5|Fix sqldiff out-of-bounds char classification error mentioned in the forum.]

FossilOrigin-Name: b31933d87301bd93763f0923e0ce06a183700875e6107c9f185faffbd99797d9

2 years agoUse a heuristic in the query planner to help it better cope with large
drh [Wed, 29 May 2024 00:38:12 +0000 (00:38 +0000)] 
Use a heuristic in the query planner to help it better cope with large
star schema queries.

FossilOrigin-Name: a98be0f548f277fab8f38a2dec6ddcbe7a7fff27856ba19e76ad8c5641894b7b

2 years agoFix a couple of assert() statements so that they cannot fire
drh [Tue, 28 May 2024 19:08:18 +0000 (19:08 +0000)] 
Fix a couple of assert() statements so that they cannot fire
when the SQLITE_TESTCTRL_INTERNAL_FUNCTIONS debugging capability
is activated.  dbsqlfuzz f5b347cf167a62fbe08062b2feee65cb9306e363.

FossilOrigin-Name: 273504b74cb9c3cfa2497a1339e706a1f2d2c3ce81b23a16beb47da9292535e0

2 years agoTweaks to the query planner so that it is better able to deal with star
drh [Tue, 28 May 2024 18:53:36 +0000 (18:53 +0000)] 
Tweaks to the query planner so that it is better able to deal with star
queries with many dimensions and bad indexes.

FossilOrigin-Name: 1e49081001f93b75ee499536f8a61a0f49225a1745117bb9267249c38c4bf803

2 years agoIncrease the number of parallel paths in the query solver from 12 to 20.
drh [Tue, 28 May 2024 12:41:11 +0000 (12:41 +0000)] 
Increase the number of parallel paths in the query solver from 12 to 20.
In the .wheretrace output, sort the parallel paths in order of increasing
cost.

FossilOrigin-Name: 8ba2c2f5cb31f7bcc426bec78457316ef11d0b5debf24e8da8c6fc2f95878b1e

2 years agoDocumentation typo fix. [forum:/forumpost/772d6688f5|Forum post 772d6688f5].
drh [Tue, 28 May 2024 11:24:18 +0000 (11:24 +0000)] 
Documentation typo fix. [forum:/forumpost/772d6688f5|Forum post 772d6688f5].

FossilOrigin-Name: 1f2f9c709eaee3c45664afa062f0fb2b912de446581066c87ea144b8ba55b55c

2 years agoFix a problem with the error message reported by fts5 in some OOM cases.
dan [Tue, 28 May 2024 10:57:24 +0000 (10:57 +0000)] 
Fix a problem with the error message reported by fts5 in some OOM cases.

FossilOrigin-Name: c7aaa28f786567e29ebee3848283b5c740dd3b8144dc14372e56260ae1b76922