drh [Tue, 24 Feb 2015 20:12:57 +0000 (20:12 +0000)]
Make sure partial indexes are not qualified incorrectly by a constraint that
is inside the ON clause of a LEFT JOIN. Fix for ticket [2326c258d02ead33].
Cherry-pick from [491cfe9b3f87f].
drh [Thu, 29 Jan 2015 19:59:05 +0000 (19:59 +0000)]
Ensure that "PRAGMA wal_checkpoint = TRUNCATE|FULL|RESTART" block on other connections and truncate the wal file as required even if the entire wal file has already been checkpointed. Cherry-pick from trunk.
drh [Mon, 19 Jan 2015 21:38:53 +0000 (21:38 +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 [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.
drh [Tue, 30 Dec 2014 19:26:07 +0000 (19:26 +0000)]
Update the threadtest3 test program so that its output summary is
compatible with releasetest.tcl. In threadtest3, do not record errors
that contain the string "no such table" as being fatal errors, since they
happen sometimes in a race condition in stress1.
dan [Tue, 30 Dec 2014 14:40:53 +0000 (14:40 +0000)]
If the sorter uses mmap'd temp files, ensure all pages of the temp file have been allocated before it is accessed. Otherwise, a disk-full condition might result in a SIGBUS exception.
dan [Tue, 30 Dec 2014 12:03:35 +0000 (12:03 +0000)]
Change notify2.test to check that sqlite3_blocking_step() uses CPU more efficiently than sqlite3_step(), not that it results in greater overall throughput for any specific number of threads.
drh [Mon, 29 Dec 2014 02:55:58 +0000 (02:55 +0000)]
Fix the "checksymbols" target in Makefile.in so that it actually works.
Enhance the releasetest.tcl script to count the total number of tests
run over all configurations.