drh [Fri, 30 Jan 2015 20:59:27 +0000 (20:59 +0000)]
Change SQLITE_TESTCTRL_INITMODE to SQLITE_TESTCTRL_IMPOSTER. Revise the order
of parameters. Give it the ability to reset the schema parse table so that
imposter tables can be erased.
dan [Thu, 29 Jan 2015 19:12:12 +0000 (19:12 +0000)]
Ensure that "PRAGMA wal_checkpoint = TRUNCATE|FULL|RESTART" block on other connections and truncate the database file as required even if the entire wal file has already been checkpointed.
drh [Tue, 27 Jan 2015 13:17:05 +0000 (13:17 +0000)]
Fix a (almost always harmless) read past the end of a memory allocation
that comes about because the Expr.pTab field is checked on an
EXPR_REDUCEDSIZE Expr object before checking the Expr.op field to
know that the Expr.pTab field is meaningless.
drh [Sat, 24 Jan 2015 12:12:57 +0000 (12:12 +0000)]
In the command-line shell, make sure stderr is unbuffered so that it
automatically flushes. This has always been the case already for unix and
on Windows when the output is a console, but apparently was not the case
on Windows when the output was a pipe.
drh [Thu, 22 Jan 2015 12:00:17 +0000 (12:00 +0000)]
Make sure errors in the FROM clause of a SELECT cause analysis to abort
and unwind the stack before those errors have a chance to mischief
in the "*" column-name wildcard expander. Fix for ticket [32b63d542433ca67].
drh [Mon, 19 Jan 2015 21:36:05 +0000 (21:36 +0000)]
Ensure that the KeyInfo.nXField value for ephemeral tables used to implement
ORDER BY or GROUP BY clauses is set correctly, so that the
sqlite3VdbeFindCompare() routine can choose the correct comparison function.
Add assert() statements to the high-speed comparison functions to detect
cases where they are inappropriately chosen.
Fix for ticket [f97c4637102a3ae72b7911].
drh [Mon, 19 Jan 2015 20:59:34 +0000 (20:59 +0000)]
Make sure that the KeyInfo.nXField value of ephermeral tables used for
ORDER BY and GROUP BY is set correctly, so that the correct comparison
function can be choosen by sqlite3VdbeFindCompare().
drh [Mon, 19 Jan 2015 19:48:52 +0000 (19:48 +0000)]
An alternative way of implementing the assert() that verifies the relative
values of KeyInfo.nField+KeyInfo.nXField and the number of columns in a record.
This version of the assert() only fires when the high-speed comparison
routines are used - which is to say it only fires when the constraint
actually matters.
drh [Thu, 15 Jan 2015 15:47:06 +0000 (15:47 +0000)]
Makefile enhancements: (1) Rename autoconf/tea/configure.in to
autoconf/tea/configure.ac so that it works with the latest versions of
autoconf. (2) Add the "amalgamation-tarball" targets to Makefile.in and
main.mk (renamed from "dist" in the latter case). (3) Update the
README.first file in autoconf/ (4) The TOP macro
in Makefile.in is now an absolute rather than a relative path.
drh [Tue, 13 Jan 2015 21:26:17 +0000 (21:26 +0000)]
Simplify some code in rtree, to avoid confusing the optimizer in GCC on
some macs:
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00).
Prior to these changes, compiling with -O3 would cause incorrect code to
be generated. The change to the nodeGetCell() routine is key. The other
changes are merely cosmetic details discovered while bug hunting.
drh [Sat, 10 Jan 2015 16:49:23 +0000 (16:49 +0000)]
Improvements to compile-time-option hygiene. Use "#if OPTION" instead of
"#ifdef OPTION" in cases where that makes sense, so that -DOPTION=0 will work.
Add the "Have-Not" configuration in releasetest.tcl which disables all of
the "HAVE_component" compile-time options.
drh [Thu, 8 Jan 2015 22:08:57 +0000 (22:08 +0000)]
Omit modules from the "valgrind" permutation that fork off separate processes.
Also omit selectG.test because it is timing sensitive and valgrind is too slow
to get the right answer.
drh [Thu, 8 Jan 2015 02:15:11 +0000 (02:15 +0000)]
In releasetest.tcl:
(1) Add the Failure-Detection platform.
(2) Re-add the --disable-shared argument on Default that was mistakenly
removed by the previous commit.
(3) Remove the -ftrapv tests, as we read that -ftrapv does not work in GCC.
drh [Thu, 8 Jan 2015 01:05:42 +0000 (01:05 +0000)]
In releasetest.tcl: add options --veryquick and pass-through compiler
optimization settings (ex: -O0). Collect the SQLite version number from
the main.test output and show it during the summary report at the end.
drh [Wed, 7 Jan 2015 19:38:49 +0000 (19:38 +0000)]
In releasetest.tcl, always use --disable-shared together with
--disable-amalgamation because mingw generates a binary that crashes and
cannot be debugged using gdb if you don't.
drh [Wed, 7 Jan 2015 14:41:18 +0000 (14:41 +0000)]
In releasetest.tcl, change the --dryrun option to work as it does in
multitest.tcl of TH3. Add the new --trace option that work like the --dryrun
option used to work. Add the ability to specify additional configure-script
options in the Config array, and create configurations that use
--disable-shared and --disable-amalgamation for testing.
drh [Mon, 5 Jan 2015 20:13:49 +0000 (20:13 +0000)]
Enhance "INSERT INTO ... VALUES" so that the number of rows in the VALUES clause
is not limited by SQLITE_LIMIT_COMPOUND_SELECT, and so that the stack depth
is constant regardless of the number of rows in VALUES.
drh [Mon, 5 Jan 2015 16:27:43 +0000 (16:27 +0000)]
Towards getting INSERT statements to except many VALUE terms (more than
the limit imposed by SQLITE_LIMIT_COMPOUND_SELECT). This check-in segfaults
on a stack overflow. And it is slow.
drh [Thu, 1 Jan 2015 23:02:01 +0000 (23:02 +0000)]
Add logic to releasetest.tcl that detects -fsanitize=undefined errors.
Fix a few false-positivies that come up when running the sanitize=undefined
test.
drh [Thu, 1 Jan 2015 19:53:10 +0000 (19:53 +0000)]
Add the ability to specify an alternative compiler (clang instead of gcc)
on the default Makefile. Use this in releasetest.tcl to implement an
-fsanitize=undefined test.
drh [Thu, 1 Jan 2015 19:11:22 +0000 (19:11 +0000)]
Enhance the "lemon" executable so that it ignores -f, -W, -O, and -I
command-line options. This permits most of the same options that are passed
to the compiler to also be harmlessly passed to lemon, and thus
simplifies makefiles.