dan [Wed, 25 Nov 2015 11:56:24 +0000 (11:56 +0000)]
Fix the fts5 "prefix=" option to match the documentation (space separated list, multiple prefix= options supported). The undocumented comma-separated format (compatible with fts4) still works.
drh [Wed, 25 Nov 2015 01:57:42 +0000 (01:57 +0000)]
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.
drh [Tue, 24 Nov 2015 00:49:44 +0000 (00:49 +0000)]
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.
dan [Sat, 21 Nov 2015 19:43:29 +0000 (19:43 +0000)]
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.
drh [Sat, 21 Nov 2015 13:24:46 +0000 (13:24 +0000)]
Do not allow table-valued function syntax on ordinary tables and views as those
objects are not table-valued functions.
Fix for ticket [73eba7ba5c7c0fc].
drh [Thu, 19 Nov 2015 16:33:31 +0000 (16:33 +0000)]
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.
drh [Thu, 19 Nov 2015 14:11:58 +0000 (14:11 +0000)]
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.
drh [Wed, 18 Nov 2015 18:43:15 +0000 (18:43 +0000)]
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. <b>This branch is a
proof-of-concept only and is not intended to ever be merged into trunk.</b>
mistachkin [Tue, 17 Nov 2015 21:42:32 +0000 (21:42 +0000)]
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().
dan [Tue, 17 Nov 2015 20:56:06 +0000 (20:56 +0000)]
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().
drh [Sat, 14 Nov 2015 22:04:22 +0000 (22:04 +0000)]
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.
dan [Fri, 13 Nov 2015 16:59:00 +0000 (16:59 +0000)]
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.
drh [Fri, 13 Nov 2015 00:03:14 +0000 (00:03 +0000)]
Change the error messages so that they begin can be grepped using '^!' instead
of '^ '. There are far too many extraneous outputs that being with a space.
dan [Thu, 12 Nov 2015 20:12:51 +0000 (20:12 +0000)]
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.
drh [Wed, 11 Nov 2015 15:28:52 +0000 (15:28 +0000)]
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.
drh [Tue, 10 Nov 2015 12:41:03 +0000 (12:41 +0000)]
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.
drh [Mon, 9 Nov 2015 15:06:26 +0000 (15:06 +0000)]
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.
drh [Fri, 6 Nov 2015 20:04:08 +0000 (20:04 +0000)]
Test changes: Omit numindex1.test from valgrind, since valgrind uses a
none-standard floating-point processor which gives inconsistent answers.
Run one releasetest.tcl module using LONGDOUBLE_TYPE=double.
drh [Fri, 6 Nov 2015 14:59:07 +0000 (14:59 +0000)]
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.
dan [Fri, 6 Nov 2015 12:50:57 +0000 (12:50 +0000)]
Have fts5 load its configuration from the xConnect() method is invoked. This ensures that the very first query run uses the correct value of the 'rank' option.
drh [Thu, 5 Nov 2015 20:25:09 +0000 (20:25 +0000)]
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!).