drh [Tue, 23 Dec 2014 19:40:51 +0000 (19:40 +0000)]
Rework the test/releasetest.tcl script so that it uses the autoconf makefile
instead of the test/releasetest.mk makefile. Also add options like --dryrun
and --buildonly. Omit the --makefile option and replace it with --srcdir
with the default computed relative to the releasetest.tcl script itself.
drh [Mon, 22 Dec 2014 18:41:21 +0000 (18:41 +0000)]
Redefine the way PRAGMA data_version works: It continues to change when
any other connection commits, including shared-cache connections, but does not
change if the local connection commits.
drh [Sat, 20 Dec 2014 14:34:02 +0000 (14:34 +0000)]
Update the PRAGMA data_version command so that it reponse to changes made
by a shared-cache database connection, and also to changes made by the same
database connection. Add test cases to verify the new behavior.
drh [Fri, 19 Dec 2014 18:49:55 +0000 (18:49 +0000)]
Simplify the implementation of the "header-value" pragmas (schema_version,
user_version, freelist_count, and application_id) by making them more
table-driven.
drh [Tue, 16 Dec 2014 00:08:31 +0000 (00:08 +0000)]
Make sure the sqlite3BtreeCount() routine does not leave index cursors in an
inconsistent state, as doing so might result in an assertion fault inside
of sqlite3BtreeKey() called from saveAllCursors() if content is deleted out
from under the statement that issued the sqlite3BtreeCount() call.
drh [Fri, 12 Dec 2014 00:52:10 +0000 (00:52 +0000)]
Remove the KeyInfo cache (for now - perhaps we will add it back in later - or
maybe not since it provides negligible benefit but adds a lot of complexity
and thread-safety risk). Add a mutex to ATTACH to deal with a data race.
drh [Fri, 12 Dec 2014 00:20:37 +0000 (00:20 +0000)]
Fix a bug in the threadtest4.c program. Remove the keyinfo cache as it provides
minimal performance improvements, and then only at SQL preparation time, not
at runtime, and it has problems with data races in shared-cache mode. We might
later add the keyinfo cache back but only enable it when shared-cache mode
is off.
drh [Tue, 9 Dec 2014 22:24:42 +0000 (22:24 +0000)]
Fix the sqlite3_table_column_metadata() routine so that it gives the correct
answer for the "rowid" column in a WITHOUT ROWID table. Enhance it so that
it can be used to check for the existence of a table by setting the column
name parameter to NULL. The routine is now included in the build by
default, even without the SQLITE_ENABLE_COLUMN_METADATA compile-time option.
drh [Tue, 9 Dec 2014 19:16:41 +0000 (19:16 +0000)]
Lower the default SQLITE_SORTER_PMASZ value back to 10, where it has been for
the past couple of releases. Applications that need a larger value can set
one.
drh [Tue, 9 Dec 2014 19:07:29 +0000 (19:07 +0000)]
Make the sqlite3_table_column_metadata() interface available by default and
without requiring the SQLITE_ENABLE_COLUMN_METADATA compile-time option.
Other sqlite3_column_* interfaces that have a run-time penalty even if they
are unused still require the SQLITE_ENABLE_COLUMN_METADATA option at
compile-time.
drh [Tue, 9 Dec 2014 14:42:49 +0000 (14:42 +0000)]
Increase the default minimum PMA size for multi-threaded sorting from 10x
the page size to 250x the page size. Provide the SQLITE_SORTER_PMASZ
compile-time option to change this default.
dan [Sat, 6 Dec 2014 14:56:49 +0000 (14:56 +0000)]
Avoid accessing a single uninitialized byte when moving a rare 3-byte cell from an internal page to a leaf. This was not actually causing a problem, just a valgrind warning.
drh [Fri, 5 Dec 2014 14:44:57 +0000 (14:44 +0000)]
When closing a (shared-cache) database connection, be sure to clear out
all KeyInfo objects cached on Index objects.
Fix for ticket [e4a18565a36884b00edf].
drh [Fri, 5 Dec 2014 05:38:02 +0000 (05:38 +0000)]
When closing a (shared-cache) database connection, be sure to clear out all
KeyInfo objects cached on Index objects.
Proposed fix for ticket [e4a18565a36884b00edf].
drh [Thu, 4 Dec 2014 16:27:17 +0000 (16:27 +0000)]
If a table is the right operand of a LEFT JOIN, then any column of that
table can be NULL even if that column as a NOT NULL constraint.
Fix for ticket [6f2222d550f5b0ee7ed].
dan [Tue, 2 Dec 2014 19:35:09 +0000 (19:35 +0000)]
When attempting to restart a wal file, make any required calls to sqlite3_randomness() before waiting on or checking for wal file readers. This restores the behaviour exhibited by the trunk.
drh [Fri, 28 Nov 2014 13:35:03 +0000 (13:35 +0000)]
Remove the ill-designed "-end" option from the command-line shell. Instead,
allow multiple SQL or dot-commands as command-line arguments. Any -cmd
commands are processed first, followed by other command-line arguments, for
backwards compatibility.
drh [Fri, 28 Nov 2014 11:54:44 +0000 (11:54 +0000)]
Add the -end option to the command-line shell, which forces it to exit after
reading prior command-line options (presumably including one or more -cmd
options) and without reading standard input.
dan [Thu, 27 Nov 2014 11:36:36 +0000 (11:36 +0000)]
Fix a buffer overread during compilation of CREATE VIRTUAL TABLE statements that featured an explicit database name but no virtual table arguments. For example, "CREATE VIRTUAL TABLE main.ft USING fts4".
drh [Sat, 22 Nov 2014 18:50:44 +0000 (18:50 +0000)]
Deploy heuristics (well-commented) to better estimate how much unindexed terms
in the WHERE clause filter the number of output rows from a single table.
drh [Sat, 22 Nov 2014 12:22:13 +0000 (12:22 +0000)]
Remove a redundant test case (probably a copy/paste error). Add an assert()
to where.c to ensure that automatic indexes do not have there output row
counts adjusted downward by supplementary constraints.
drh [Thu, 20 Nov 2014 15:30:50 +0000 (15:30 +0000)]
Ensure that when the number of cells on a page drops to zero that the freelist
and fragment counter are both cleared. Also add evidence marks corresponding
to file-format documentation.
drh [Wed, 19 Nov 2014 14:05:41 +0000 (14:05 +0000)]
Add an ALWAYS on an always-true branch in wal.c.
Fix the ANALYZE command so that it resets the "unordered" and "noskipscan"
flags on indices when reloading the sqlite_stat1 table.