stephan [Mon, 25 Mar 2024 10:28:10 +0000 (10:28 +0000)]
Flag sqlite3_trace() and sqlite3_profile() as deprecated so that the doc generator for funclist.html sees them as such, and add 'Deprecated' to their page's title for consistency with other deprecated APIs. Comment changes only. Addresses [forum:0901025836|forum post 0901025836].
drh [Sun, 24 Mar 2024 21:10:45 +0000 (21:10 +0000)]
Fix the xBestIndex method of the pragma virtual table so that it correctly
gives a higher cost to plans where the schema hidden parameter is
unconstrained. Fix for the problem reported by
[forum:/forumpost/85b6a8b6705fb77a|forum post 85b6a8b6705fb77a].
stephan [Thu, 21 Mar 2024 15:52:52 +0000 (15:52 +0000)]
Add comments (only, no code) to the JS sqlite3_config() bindings reminding us why SQLITE_CONFIG_ROWID_IN_VIEW is specifically not included. JNI does not need this treatment because it explicitly supports only a very small subset of config options.
drh [Thu, 21 Mar 2024 11:46:52 +0000 (11:46 +0000)]
Enhancements to testrunner.tcl:
(1) Add the "--config CONFIGS" option, to that only configuration named
on the comma-separated list CONFIGS are run.
(2) Add the "--omit CONFIGS" to omit configuration on the CONFIGS list
(3) Add the Android configuration to "release"
dan [Wed, 20 Mar 2024 16:56:12 +0000 (16:56 +0000)]
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY".
dan [Wed, 20 Mar 2024 16:27:08 +0000 (16:27 +0000)]
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY".
drh [Wed, 20 Mar 2024 10:45:13 +0000 (10:45 +0000)]
Fix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works
again. Add the SQLITE_CONFIG_ROWID_IN_VIEW sqlite3_config() value
to optionally disable the bug-compatibility mode at start-time. Enable
testing of SQLITE_ALLOW_ROWID_IN_VIEW.
drh [Tue, 19 Mar 2024 23:01:56 +0000 (23:01 +0000)]
Change the SQLITE_CONFIG_NO_ROWID_IN_VIEW configuration option to be
just SQLITE_CONFIG_ROWID_IN_VIEW (without the "_NO_" in the middle) and give
it the ability to turn the option on and off. Otherwise, it is difficult
to test.
drh [Tue, 19 Mar 2024 16:34:32 +0000 (16:34 +0000)]
In the name resolver when SQLITE_ALLOW_ROWID_IN_INDEX is enabled, if there
are multiple views that might resolve to the "rowid" but only one real table,
then use that one real table and ignore the views.
drh [Tue, 19 Mar 2024 14:38:39 +0000 (14:38 +0000)]
Fix the fuzzinvariants.c test module so that it does not generate
invariants that depend on rowid when SQLITE_ALLOW_ROWID_IN_VIEW is used,
since rowid values can be unreliable in that context.
drh [Tue, 19 Mar 2024 13:31:54 +0000 (13:31 +0000)]
When compiled with SQLITE_ALLOW_ROWID_IN_VIEW, rowid-in-view is on by default
but can now be turned off using SQLITE_TESTCTRL_ROWID_IN_VIEW. Without the
compile-time option, rowid-in-view is always off.
drh [Tue, 19 Mar 2024 10:16:17 +0000 (10:16 +0000)]
Fix another problem from [c63e26e705f5e967] involving infinities and the
Kahan-Babushka-Neumaier summation algorithm. Problem reported by
[forum:/forumpost/23b8688ef4|forum post 23b8688ef4].
drh [Tue, 19 Mar 2024 02:30:24 +0000 (02:30 +0000)]
First steps toward getting -DSQLITE_ALLOW_ROWID_IN_VIEW to work again. That
compile-time option is untested, undocumented, and unsupported. But it was
mentioned in the release notes for version 3.36.0, so I think that means we
need to support it forever.
drh [Mon, 18 Mar 2024 18:00:17 +0000 (18:00 +0000)]
Add the "VALUES-as-coroutine" optimization. Large VALUES clauses on an
INSERT, for example, prepare and run in about half the time and with half
the memory. This check-in also includes enhancements to the internal
sqlite3ExprIsConstant() routine to recognize pure SQL functions as constant
if they have constant arguments.
drh [Sat, 16 Mar 2024 13:18:48 +0000 (13:18 +0000)]
Enhance the sqlite3ExprIsConstant() function so that it recognizes
constant functions. So far the enhancement only applies to the multi-row
VALUES clause, but it could possibly be applied in many other places.
drh [Fri, 15 Mar 2024 13:16:13 +0000 (13:16 +0000)]
Tweaks to the func4.test test module (which tests the rarely used totype.c
extension) so that it works on i586 compiled using gcc-13 with -O0. Details
at [forum:/forumpost/0a7553b0f734c033|forum post 0a7553b0f734c033].
dan [Thu, 14 Mar 2024 17:04:18 +0000 (17:04 +0000)]
Avoid some OP_SCopy instructions in "INSERT INTO .. VALUES" statements that insert more than one row in cases where the VALUES clause contains a value for all columns of the table.
drh [Wed, 13 Mar 2024 10:55:47 +0000 (10:55 +0000)]
Improvements to the "help" message generated by testrunner.tcl. Add the
special "list" permutation that does nothing but list all allowed
values for the PERMUTATION argument to testrunner.tcl.
drh [Wed, 13 Mar 2024 00:37:37 +0000 (00:37 +0000)]
On testrunner.tcl: (1) Add the "help" command. (2) Add the "script" command
to the help message. (3) Improve the error message generated by "script" when
an incorrect CONFIG option is provided.
drh [Mon, 11 Mar 2024 11:24:59 +0000 (11:24 +0000)]
Fix the ".import" command in the CLI so that it works correctly with tables
that contain computed columns.
[forum:/forumpost/ca014d7358|forum post ca014d7358].
stephan [Mon, 11 Mar 2024 09:34:38 +0000 (09:34 +0000)]
Add delete-before-open=1 URI flag to the 'opfs' VFS to tell it to xDelete the db file before opening it, primarily to enable users to work around a corrupt db without having to reach into OPFS-specific APIs to remove the db file.
stephan [Mon, 11 Mar 2024 09:32:38 +0000 (09:32 +0000)]
Add delete-before-open=1 URI flag to the 'opfs' VFS to tell it to xDelete the db file before opening it, primarily to enable users to work around a corrupt db without having to reach into OPFS-specific APIs to remove the db file.
drh [Sat, 9 Mar 2024 13:31:10 +0000 (13:31 +0000)]
Fuzzcheck is run automatically by testrunner.tcl, so there is no need to
include fuzzcheck as a separate dependency for the releasetest target in
the MSVC makefile.
drh [Fri, 8 Mar 2024 21:37:18 +0000 (21:37 +0000)]
The NOT NULL strength reduction optimization from [de9c86c9e4cdb34f] should
be applied to the WHERE clause only. Otherwise, the operand of the IS NULL
or IS NOT NULL operator might be a reference to a bare column of an
aggregate table, and we can't tell if it is NULL or not based only on its
NOT NULL attribute. [forum:/forumpost/440f2a2f17|Forum post 440f2a2f17].