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".
drh [Thu, 15 Aug 2024 23:38:52 +0000 (23:38 +0000)]
If a subquery is materialized due to an ORDER BY and that ordering is useful
in helping to satisfy the ORDER BY or GROUP BY in the order query without
doing an extra sort, then omit the extra sort.
drh [Sat, 10 Aug 2024 10:05:22 +0000 (10:05 +0000)]
Enhancements to covering-index prediction. In particular, avoid the
false-positive prediction described by
[forum:/forumpost/e60e4c295d22f8ce|forum post e60e4c295d22f8ce].
Add early detection of over-prediction of covering-indexes so that
sqlite3_prepare() will return an error rather than just generate bad
bytecode.
dan [Fri, 9 Aug 2024 20:59:50 +0000 (20:59 +0000)]
Ensure tokenizers registered with xCreateTokenizer_v2() can be accessed using xFindTokenizer(), and that those registered with xCreateTokenizer() work with xFindTokenizer_v2().
drh [Fri, 9 Aug 2024 18:18:11 +0000 (18:18 +0000)]
Fix the internal routine sqlite3ResolveExprListNames() so that it returns
SQLITE_OK or SQLITE_ERROR instead of WRC_Continue or WRC_Abort. Without this
fix, some times of obscure syntax errors end up returning SQLITE_INTERNAL
rather than SQLITE_ERROR.
drh [Fri, 9 Aug 2024 17:09:18 +0000 (17:09 +0000)]
Do not attempt to use a covering index based purely on columns-used
when doing an UPDATE or DELETE of a WITHOUT ROWID table. Raise an
SQLITE_INTERNAL error if there is ever a situation where a table reference
cannot be converted into an index reference when the query planner thinks
that a covering index is appropriate.
stephan [Fri, 9 Aug 2024 12:19:11 +0000 (12:19 +0000)]
Remove unused static var cBadGroup from ext/consio/console_io.c to resolve a compiler warning reported in the fossil forum. This is a build fix, not a functional change.
drh [Thu, 8 Aug 2024 14:45:50 +0000 (14:45 +0000)]
Do not let the number of terms on a VALUES clause be limited by
SQLITE_LIMIT_COMPOUND_SELECT, even if the VALUES clause contains elements
that appear to be variables due to the use of double-quoted string literals.
[https://issues.chromium.org/issues/358174302|Chromium issue 358174302].
drh [Thu, 8 Aug 2024 12:14:07 +0000 (12:14 +0000)]
Back out the --memory option to ".parameter init" in the CLI, as the
capability is no longer needed for testing due to the new "$int_N" and
"$text_T" automatic bindings, and the "init --memory" is hence just
added complication.
drh [Thu, 8 Aug 2024 12:08:36 +0000 (12:08 +0000)]
In the CLI, recognize magic parameter names "$int_NNN" and "$text_TTT" and
bind them with integer value NNN and text value TTT respectively. Intended
for testing and debugging use only.
drh [Thu, 8 Aug 2024 10:10:38 +0000 (10:10 +0000)]
Add the --memory option to the ".parameter init" CLI command. When present,
the --memory option causes the sqlite_parameters table to be created in a
completely independent :memory: database. This can be done to avoid
parameter binding queries from being affected by debug settings such as
".wheretrace", ".treetrace", "PRAGMA vdbe_addoptrace=on", and similar.
drh [Tue, 6 Aug 2024 10:29:41 +0000 (10:29 +0000)]
Change the AggInfoColumnReg() and AggInfoFuncReg() macros for
compilers that cannot parse empty elements of a comma expression.
[forum:/forumpost/8fd21998dc|Forum post 8fd21998dc].
drh [Sat, 3 Aug 2024 23:00:17 +0000 (23:00 +0000)]
Fix to the previous checkin: The colUsed parameter should have high-order bit
set if any of the 64-th or greater columns of the virtual table is used. The
lower 63 bits of colUsed always show the usage of the first 63 columns of the
virtual table.
drh [Sat, 3 Aug 2024 15:55:25 +0000 (15:55 +0000)]
Add the --status option to the test runs using testrunner.tcl. Only works
on Unix platforms. The "exec" command appears to interfere with VT100
escape codes on windows.
dan [Fri, 2 Aug 2024 21:06:13 +0000 (21:06 +0000)]
Change things so that locale=1 is required to write fts5_locale() values to an fts5 table, and so that blobs may not be stored in indexed (i.e. not UNINDEXED) columns of these tables.
drh [Thu, 1 Aug 2024 23:30:29 +0000 (23:30 +0000)]
Simplification the ./configure script. Carry Makefile CFLAGS and OPTS through
into builttclext.tcl. Fix a bug in tclsqlite.c introduced by the previous
check-in.
drh [Thu, 1 Aug 2024 18:10:00 +0000 (18:10 +0000)]
Clean up and restructure the TCL configuration sections in autoconf.
The new --with-tclsh=FILE option lets you select the specific tclsh
that you want to run.
Fix the tclsqlite.c TCL interface module so that it works with both Tcl8 and
Tcl9. Make changes across the TCL-based test harness to enable SQLite to
be tested with either Tcl8 or Tcl9. Get the --with-tcl= argument on the
configure script working. Testing changes only - no changes to the SQLite core.
I believe the previous merge attempt didn't work because of errors in the
merge itself, not because of faults in the code. Trying again...
Fix the tclsqlite.c TCL interface module so that it works with both Tcl8 and
Tcl9. Make changes across the TCL-based test harness to enable SQLite to
be tested with either Tcl8 or Tcl9. Get the --with-tcl= argument on the
configure script working. Testing changes only - no changes to the SQLite core.