drh [Fri, 30 Aug 2024 16:51:41 +0000 (16:51 +0000)]
New makefile target: "tidy". The "tidy" target removes all build products
be leaves behind test results. The "clean" target has been enhanced to do a
better job. The tool/omittest.tcl script is rewritten to work on the
configure-generated Makefile and to require no arguments.
drh [Fri, 30 Aug 2024 16:24:49 +0000 (16:24 +0000)]
Rework the tool/omittest.tcl script so that it works with the
configure-generated Makefile, and requires no arguments.
Update the configure-generated Makefile with a new "tidy" target which
is like "clean" except that is preserves test logs. Use "make tidy" to
force everything to be recompiled from scratch without destroying logs.
drh [Thu, 29 Aug 2024 18:32:56 +0000 (18:32 +0000)]
All makefiles are responsive to OPTIONS=... command-line arguments, and add
the RHS value of OPTIONS= to builds and to lemon and other build steps that
might respond to -D or -U options.
drh [Wed, 28 Aug 2024 19:13:16 +0000 (19:13 +0000)]
Do not allow sqlite3_blob_open() to work on a any table that contains
generated columns, even columns of the table which are not generated themselves,
because such columns might be part of the expression of a STORED column.
This restriction could be relaxed some, but that would be a lot of code
for something that nobody ever uses.
drh [Wed, 28 Aug 2024 13:51:51 +0000 (13:51 +0000)]
Maybe [7420b13238da4e6b] was not such a good idea. Restore "make test" so
that it works as before - running a single-threaded test over the source tree
with options specified by ./configure and similar. Instead, change the
"make devtest" target so that runs the automated multi-threaded tests on
a standard configuration.
drh [Wed, 28 Aug 2024 11:03:58 +0000 (11:03 +0000)]
Further improvements to the status display in order to maximum the amount of
information shown on the limited screen realestate available when running
via "watch" or in continuous monitoring mode. All details are still shown
when doing a stand-alone "status".
drh [Tue, 27 Aug 2024 22:28:03 +0000 (22:28 +0000)]
Changes to the way "release" tests were constructed in [d03d35eebaf82709]
were incorrect. Fixed here. Also enhance --explain to chose permutation
configurations and so that PATTERNS on the the command line can match
against permutation configurations.
dan [Tue, 27 Aug 2024 19:27:40 +0000 (19:27 +0000)]
Modify the implementation of "wrapper" tokenizers to make them more robust in the case where the database connection is closed before the tokenizers are deleted.
drh [Tue, 27 Aug 2024 19:17:29 +0000 (19:17 +0000)]
Improvements to testrunner.tcl: Show elapse time in MM:SS or HH:MM:SS.
Keep track of the total number of tests and the total number of errors
and report those values on a summary line at the end.
drh [Tue, 27 Aug 2024 17:38:26 +0000 (17:38 +0000)]
Updates to testrunner: (1) Omit all testing of User-Auth.
(2) Automatically add the "*" wildcard before and after all pattern
arguments. (3) Build the sqlite3 CLI for release tests.
drh [Thu, 22 Aug 2024 18:12:10 +0000 (18:12 +0000)]
Enhance the generate_series() table-valued function such that it is able to
recognize equality and inequality constraints on the "value" column and
optimize its operating accordingly.
drh [Thu, 22 Aug 2024 16:22:08 +0000 (16:22 +0000)]
Add the SQLITE_INDEX_SCAN_HEX bit to the sqlite3_index_info.idxFlags bitmask.
When set, this bit causes the EXPLAIN QUERY PLAN output to show the idxNum
value in hex rather than in decimal. This is purely a debugging aid.
drh [Wed, 21 Aug 2024 18:57:55 +0000 (18:57 +0000)]
Add the new SQLITE_TESTCTRL_OPTGET that retrieves the current optimization
setting. Use this in the CLI to provide symbolic fine-grain control
over optimization settings using the ".testctrl opt" dot-command.
drh [Wed, 21 Aug 2024 12:01:46 +0000 (12:01 +0000)]
Add code comments for a "table-of-contents" and various milestone marks in
the 1300+ line long sqlite3Select() function, to help improve readiability
and maintainability. Comment changes only - no functional changes.
drh [Tue, 20 Aug 2024 23:11:28 +0000 (23:11 +0000)]
Refactor the SrcItem object to move fields associated with subqueries out
into a separate object named Subquery. This reduces the size of the SrcItem
object by about 1/3rd and provides improved performance.
drh [Tue, 20 Aug 2024 14:12:16 +0000 (14:12 +0000)]
When the database encoding is UTF-16LE and the GLOB optimization is used,
it is ok to use the range search over an index, but it is not ok to
disable the actual GLOB function call.
drh [Tue, 20 Aug 2024 12:09:55 +0000 (12:09 +0000)]
Fix for the UTF-16LE problem reporte by
[forum:/forumpost/dc7e1b7527e84343|forum post dc7e1b7527e84343]. Because of
the unexpected ordering of characters using the default collation (memcmp()
order) in UTF-16LE, the LIKE/GLOB optimization restricts its attention to
the pattern prefix that is all ASCII, which is the common case.
drh [Mon, 19 Aug 2024 22:48:30 +0000 (22:48 +0000)]
Refactor the SrcItem object so that information about subqueries is stored
in a separately allocated Subquery object. This reduces the memory requirements
for SrcItem and makes the code run faster. It also provides an expansion path
for subquery processing that does not burden simple queries. The current
checking mostly works, but there are still issues that need to be tracked
down and fixed.
drh [Sat, 17 Aug 2024 16:17:16 +0000 (16:17 +0000)]
Adjust Makefile.in so that it outputs a slightly better error message on an
attempt to build something that requires TCL libraries when HAVE_TCL is false.
drh [Sat, 17 Aug 2024 15:52:21 +0000 (15:52 +0000)]
Adjust the "configure" script so that it just disables the ability to
run tests rather than erroring out if tclsh is unable to recommend a
suitable tclConfig.sh.
drh [Fri, 16 Aug 2024 18:51:46 +0000 (18:51 +0000)]
If a subquery has an ORDER BY clause and that ordering is helpfile in
satisfying the ORDER BY or GROUP BY of the outer query without doing an
extra sort, then omit or reduce the sort in the outer query. Call
this the "order-by-subquery optimization".