drh [Mon, 3 Jun 2013 21:25:28 +0000 (21:25 +0000)]
Adjust the xBestIndex methods on both the fuzzer and transitive_closure
virtual tables so that an unused MATCH operator gets a really large cost.
Remove ambiguities from the fuzzer test cases.
drh [Mon, 3 Jun 2013 20:46:35 +0000 (20:46 +0000)]
Pull in recent trunk changes. Fix the ORDER BY optimizer so that it is better
able to deal with COLLATE clauses. Clean up ambiguities in the descidx1.test
script.
drh [Mon, 3 Jun 2013 12:47:43 +0000 (12:47 +0000)]
Enhance the shell to provide more flexibility when entering numeric arguments
on dot-commands. In particular, allow hexadecimal arguments to .wheretrace
and .testctrl commands. Cherrypick from [b9578c371ee5].
drh [Fri, 31 May 2013 20:43:57 +0000 (20:43 +0000)]
The NGQP might not find a solution if INDEXED BY constraints on the query
are set wrong. If that is the case, print a "no query solution" error
and abort before trying to use the non-existant solution.
drh [Fri, 31 May 2013 19:14:56 +0000 (19:14 +0000)]
Do not attempt to generate code in the NGQP if there have been prior errors,
since with prior errors some of the expressions might not be fully
named resolved.
drh [Fri, 31 May 2013 15:18:46 +0000 (15:18 +0000)]
Allow tracing of whereLoopInsert() when the 0x8 bit is set on ".wheretrace".
Remove the use of sqlite_query_plan from where2.test. Fix a bug in the
code generator for OR clause optimizations.
drh [Thu, 30 May 2013 19:28:34 +0000 (19:28 +0000)]
The expected result in a test case can be of the form "*glob*" or "~*glob*" to
match or not match the GLOB pattern. This is useful for matching
EXPLAIN QUERY PLAN output that contains regular expression syntax characters
like "?", "(", and ")".
drh [Thu, 30 May 2013 17:43:19 +0000 (17:43 +0000)]
Cut over the NGQP query planner. Remove lots of legacy code.
This check-in compiles but does not work. The test suite gets incorrect
answers and crashes.
drh [Wed, 29 May 2013 17:48:28 +0000 (17:48 +0000)]
Updates to the Codec interface to support codecs on attached databases and
to allow rekeying in the middle of a transaction. These changes are only
applicable if SQLite is compiled with SQLITE_HAS_CODEC.
drh [Tue, 28 May 2013 17:30:52 +0000 (17:30 +0000)]
Finish removing the sqlite3.inTrans field. In the previous check-in, it was
merely commented out because I failed to select File->Save on my text editor.
dan [Mon, 27 May 2013 10:11:53 +0000 (10:11 +0000)]
When writing to an FTS table, take an exclusive shared-cache lock on the %_segdir table before writing. Otherwise, an xCommit() call may report an SQLITE_LOCKED error.
dan [Thu, 23 May 2013 10:13:18 +0000 (10:13 +0000)]
Avoid unnecessary calls to FCNTL_SIZE_HINT. Return an error to the user if the file-control invoked by "PRAGMA mmap_size" returns a value other than SQLITE_OK or SQLITE_NOTFOUND.
drh [Thu, 23 May 2013 01:40:53 +0000 (01:40 +0000)]
Cause the mmap_size PRAGMA to immediately change the mmap space if the
database connection is already active. In particular, reducing mmap_size
will immediately free up process address space.
drh [Fri, 17 May 2013 17:15:34 +0000 (17:15 +0000)]
Fix a bug in SQLITE_TRACE_SIZE_LIMIT that was introduced by
check-in [1a1cf5aa86734c8]. That check-in was to remove harmless
compiler warnings. So once again, we have introduced a real bug
into SQLite by attempting to eliminate a harmless compiler warning.
dan [Fri, 17 May 2013 16:41:15 +0000 (16:41 +0000)]
In test file test_syscall.c, include sqliteInt.h before any tcl or system include files. This ensures that the magical defines in sqliteInt.h really do enable large file support (and set things up so that sizeof(off_t)==8).
dan [Fri, 17 May 2013 12:10:52 +0000 (12:10 +0000)]
In os_unix.c and os_win.c, initialize the default mmap-limit of a new file descriptor to the current global default mmap-limit, not the current global maximum allowable mmap-limit.
dan [Thu, 16 May 2013 11:57:28 +0000 (11:57 +0000)]
In sqlite3_close_v2(), do not attempt to roll back a transaction if there exist active statement objects. Any open transaction will be rolled back when the last of these statement objects is finalized.
drh [Thu, 16 May 2013 01:02:45 +0000 (01:02 +0000)]
Treat identifiers in the HAVING clause the same as in the WHERE clause.
Only consider AS names from the result set to match if there are no other
matches. Continuation of the fix for [2500cdb9be05]. This check-in
fixes a bug found by [http://www.sqlite.org/sqllogictest/ | SqlLogicTest]
during release testing for version 3.7.17.
drh [Wed, 15 May 2013 17:47:12 +0000 (17:47 +0000)]
The sqlite3ExprCollSeq() function can no longer be called while parse
the schema, so remove the code path inside of sqlite3ExprCollSeq() that
dealt with that case.
dan [Wed, 15 May 2013 15:16:50 +0000 (15:16 +0000)]
When loading a database schema that contains an index definition that includes a COLLATE clause for which the collation sequence is unavailable, do not assume that that index uses BINARY instead. Fix for [0fc59f908b].
dan [Wed, 15 May 2013 10:21:50 +0000 (10:21 +0000)]
When closing a connection, avoid tripping active cursors belonging to a different shared-cache client. Also, if sqlite3_close() is called while there are still active statements belonging to the connection, return SQLITE_BUSY and do not roll back any active transaction.