Enhancement the virtual table interface to support LIKE, GLOB, and REGEXP
operators. Also add the sqlite3_strlike() interface, which might be useful
as part of the implementation of LIKE on some virtual tables.
check-in: a6bfd469 user: drh tags: trunk

Do not try to eliminate No-ops at the end of VDBE program as this can cause
problems for some DISTINCT handling algorithms, and does not improve
performance. This also fixes an assertion fault found by libFuzzer.
check-in: 19d9f9ce user: drh tags: trunk

Fix an obscure memory leak found by libfuzzer that may occur under some circumstances if expanding a "*" expression causes a SELECT to return more than 32767 columns.
check-in: 60de5f23 user: dan tags: trunk

Add a new OP_BColumn opcode where the cursor is guaranteed to be of type
CURTYPE_BTREE and is thus able to skip some checks and run slightly faster.
Leaf
check-in: 093e0d10 user: drh tags: btree-column-opcode

Do not allow table-valued function syntax on ordinary tables and views as those
objects are not table-valued functions.
Fix for ticket [73eba7ba5c7c0fc].
Problem found by libFuzzer.
check-in: ff5716b8 user: drh tags: trunk

Create the new TK_ASTERISK token to represent the "*" in "SELECT *". Formerly
that operator was TK_ALL, which was also used for UNION ALL. Less confusion if
they operator symbols are distinct.
check-in: 201ac6d4 user: drh tags: trunk

If compiled with SQLITE_ENABLE_HIDDEN_COLUMNS, then columns in ordinary
tables and views that have names beginning with "__hidden__" are omitted from
the "*" expansion in SELECT statements and from the automatic list of columns
following the table name in an INSERT INTO statement.
check-in: 011904ca user: drh tags: trunk

If a table column name begins with "__hidden__" then do not include that
column in "*" expansions in SELECT statements, nor fill in that column in
an INSERT INTO that omits the column list. This branch is a
proof-of-concept only and is not intended to ever be merged into trunk.check-in: 2dbffb3a user: drh tags: hidden-columns-in-tables

When using mmap mode on Win32, use a read-only mapping by default. Write to the database file using WriteFile(). Unless SQLITE_MMAP_READWRITE is defined, in which case use a read/write mapping and write into the file using memcpy().
check-in: 4f521b5b user: mistachkin tags: trunk

When using mmap mode on unix, use a read-only mapping by default. Write to the database file using write(). Unless SQLITE_MMAP_READWRITE is defined, in which case use a read/write mapping and write into the file using memcpy().
check-in: 67c5d3c6 user: dan tags: trunk

Import the LSM code from SQLite4 for use in an experimental virtual table.
NB: This is a speculative experiment and could easily result in a dead-end
branch.
check-in: 3d930501 user: drh tags: lsm-vtab

Code simplification in sqlite3ColumnsFromExprList(). Update the %z format
code so that it works with buffers obtained from sqlite3DbMalloc(). Add a
testcase for the slow column name uniquifier.
check-in: 92724260 user: drh tags: trunk

Add the "--enable-static-shell" option to the amalgamation autoconf script. If set (the default) the compiled shell tool is statically linked against sqlite3.o. Otherwise, it is linked against libsqlite3.so.
check-in: 499a02a3 user: dan tags: trunk

Add support for the SQLITE_SQLLOG_CONDITIONAL environment variable to the logging code in test_sqllog.c. When defined, logging is only performed if the "<database>-sqllog" file is present in the file system when the main database is opened.
check-in: cab8126b user: dan tags: trunk

Add a hack to debug out a description of the WHERE clause of a SELECT (or other) statement. Use this in script tool/schemalint.tcl to automatically recommend indexes that might speed up specific queries.
check-in: c6fa01c2 user: dan tags: schemalint

Improvements to the SQLITE_CONFIG_PAGECACHE documentation. Enhance the
command-line shell to be able to take advantage of the full range of
SQLITE_CONFIG_PAGECACHE capabilities, such as setting pMem==NULL and N<0.
check-in: 2518d5c9 user: drh tags: trunk

Change all parsers to use the standard "lempar.c" template in the tool/
folder and remove the customized lempar.c from src/, plus other compiler
performance and space enhancements.
check-in: 0e7fb24a user: drh tags: trunk

Avoid recursion in the yy_find_shift_action() routine of the Lemon-generated
parser, so that routine can be inlined, for a size reduction and performance
increase.
check-in: 0557a179 user: drh tags: trunk

Enhance TreeView to show WITH clauses. Add an assert to detect the
infinite loop behavior when certain kinds of errors occur on a nested
WITH clause.
check-in: 2040d88e user: drh tags: infinite-with-loop-bug

A different approach to handling integer/float comparisons. This seems to
work better on systems where "long double" and "double" are the same type,
but still needs refinement and testing.
check-in: a3f7614b user: drh tags: int-float-precision

The top of an index equality loop normally starts with OP_SeekGE and OP_IdxGT.
This check-in adds a flag to OP_SeekGE such that it fails immediately if
the key is not equal, then jumps over the OP_IdxGT, saving a call to the key
comparison functions. Consider this check-in a proof-of-concept. It needs
improvement before going on trunk. Some tests fail, but only because they
new use fewer key comparisons than expected (which is a good thing!).
check-in: 32e31b9b user: drh tags: seekeq-experiment

In the releasetest.tcl script, add the --progress option to cause the start
of each subprocess to be shown. Otherwise, revert to the old-style display.
Improvements to the handling of the --buildonly option.
check-in: d969792f user: drh tags: trunk

If a table-constraint PRIMARY KEY lists a single column in single-quotes and
that column has type INTEGER, then make that column an integer primary key,
for historical compatibility. Fix for ticket [ac661962a2aeab3c331].
check-in: db319a03 user: drh tags: trunk

On unix, if a file is opened via a symlink, create, read and write journal and wal files based on the name of the actual db file, not the symlink.
Closed-Leaf
check-in: c7c81050 user: dan tags: follow-symlinks

Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened.
check-in: cdc92919 user: dan tags: btree-fordelete-flag

Merge the 3.9.1 changes into trunk. (This only updates the version number
and configure script since all the other changes in 3.9.1 were cherrypicked
from trunk.)
check-in: eb231742 user: drh tags: trunk

Cherrypick the json form-feed fix, and other #ifdef and build script changes
to address minor issues that came to light after the 3.9.0 release. Update
the version number to 3.9.1. No logic changes except for the form-feed
bug-fix in json1 (ticket [57eec374ae1d0a1d4a]).
check-in: 746fcd2f user: drh tags: branch-3.9