]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Wed, 18 Apr 2018 19:08:44 +0000 (19:08 +0000)]
drh [Wed, 18 Apr 2018 15:21:13 +0000 (15:21 +0000)]
drh [Wed, 18 Apr 2018 14:48:08 +0000 (14:48 +0000)]
Omit some code not used without SQLITE_ENABLE_SORTER_REFERENCES. Improvements
to comments used for documentation.
FossilOrigin-Name:
f3596ab9eb1168dc75202e6f79e12c67d518b3a0659a0a629c707f43990fa7cf
drh [Wed, 18 Apr 2018 14:04:19 +0000 (14:04 +0000)]
dan [Mon, 16 Apr 2018 21:12:42 +0000 (21:12 +0000)]
Add SQLITE_CONFIG_SORTERREF_SIZE configuration option.
FossilOrigin-Name:
b25a7bb769b8397a00736bd922bd24b1200b2f82d36d42ecb4c3eb17efb4b84d
dan [Sat, 14 Apr 2018 18:46:20 +0000 (18:46 +0000)]
Experimental change to "SELECT * FROM ... ORDER BY" processing to load some
column values from the db after sorting.
FossilOrigin-Name:
9719cb46bbf501ce80f185159d594f593dd0b2639b9ef5a71a6c7b70046cb08d
drh [Fri, 13 Apr 2018 16:23:22 +0000 (16:23 +0000)]
Remove an always-true branch from the preupdate hook logic.
FossilOrigin-Name:
0ab4518811b23bdb57feba55014cef07de66028f8fcbf8cf0831a712b2954b91
drh [Wed, 11 Apr 2018 17:10:54 +0000 (17:10 +0000)]
Help the parser run faster by avoiding the "explain ::= ." production.
FossilOrigin-Name:
d7ec7b5970df9e542401f8299e098a5039d1875e2e3383dad06a0ec998589b6e
drh [Wed, 11 Apr 2018 16:04:01 +0000 (16:04 +0000)]
Prohibit bound parameters in the arguments to table-valued functions within
a trigger. Problem discovered by OSSFuzz.
FossilOrigin-Name:
b7178209152452e82f5908513385018524472640d67547927d6b4c0aa0c15a46
dan [Wed, 11 Apr 2018 14:11:53 +0000 (14:11 +0000)]
Minor simplification to internal function generateSortTail().
FossilOrigin-Name:
f32cdb41ca213cfcfe0bb5bfe56930d43e55525fa5640274b00f1ccce7f69634
mistachkin [Tue, 10 Apr 2018 18:56:21 +0000 (18:56 +0000)]
Include the 'sqlite3rebaser_' APIs in the Windows '.def' file.
FossilOrigin-Name:
56e4965f7ac850c59596120878434f5ef023e77919ef9416d20812eac764bac1
drh [Tue, 10 Apr 2018 17:39:29 +0000 (17:39 +0000)]
dan [Tue, 10 Apr 2018 15:31:56 +0000 (15:31 +0000)]
Fix a problem causing the LEFT JOIN strength reduction optimization to be
incorrectly applied in some cases where the WHERE clause of the query contains
a filter expression of the form "lhs.x IS NOT ?".
FossilOrigin-Name:
1fdaf2c34431adcac1c7ff29aae0623c4cbaa6a7f38e843c786bd407d8b3e730
dan [Tue, 10 Apr 2018 14:29:51 +0000 (14:29 +0000)]
When testing, avoid injecting an OOM fault into a file-control call made by
SQLite on an unopened file-descriptor.
FossilOrigin-Name:
9c1a5eba3ec37c877af4b83c6f8c05b7140304f3d23e49832ba63e321247fc8d
drh [Tue, 10 Apr 2018 12:33:42 +0000 (12:33 +0000)]
dan [Tue, 10 Apr 2018 12:10:01 +0000 (12:10 +0000)]
Fix a problem causing the LEFT JOIN strength reduction optimization to be
incorrectly applied in some cases where the WHERE clause of the query contains
a filter expression of the form NOT(x AND y). Ticket [
1e39b966 ].
FossilOrigin-Name:
38d319c153641ea4138fab2d5a47c31a86f57a071a1e1c299ca54c980cfb2b60
drh [Tue, 10 Apr 2018 10:37:33 +0000 (10:37 +0000)]
Remove an unnecessary SQLITE_UNTESTABLE compile-time conditional from
the command-line shell.
FossilOrigin-Name:
80b75a34a2a4c11bc35b8638f8f05d999db416c81edc1a1c81aa5029f0301da1
drh [Tue, 10 Apr 2018 00:53:36 +0000 (00:53 +0000)]
Update the top-level README.md file to point to the whynotget.html document.
Put it on the correct branch, this time.
FossilOrigin-Name:
a52e3cddea58b838e94e09a8488220a4406ff37d2cad8da05799d47fcf95ea38
drh [Mon, 9 Apr 2018 20:36:09 +0000 (20:36 +0000)]
Minor changes to the input grammar resulting in a faster and slightly smaller
parser.
FossilOrigin-Name:
a2c443c0ee9a0e0b2d10298b8a74ff00a1a66e3f96f4093348f0fef977587204
drh [Mon, 9 Apr 2018 15:57:54 +0000 (15:57 +0000)]
Enhance the query planner so that it detects when the xBestIndex method
of a virtual table gives out-of-sequence argvIndex values and reports an
error. Secondary fix for ticket [
2b8aed9f7c9e6 ].
FossilOrigin-Name:
9506ec14fb9e58986c1b79a3ca78430ad94b10966944c864e0429a7688dd1454
dan [Mon, 9 Apr 2018 14:26:44 +0000 (14:26 +0000)]
Fix the fts5 xBestIndex method so that it is not confused by "IS", "!=",
"REGEXP", "GLOB" or "LIKE" operators.
FossilOrigin-Name:
a0ca4ddbbf179b8f0a5f30c127f2f8c92b6d45a08be3e1ef2194e44ebcc28120
drh [Mon, 9 Apr 2018 13:58:20 +0000 (13:58 +0000)]
dan [Mon, 9 Apr 2018 11:43:58 +0000 (11:43 +0000)]
Add a "flags" parameter to experimental API sqlite3changeset_apply_v2(). Also
add the SQLITE_CHANGESETAPPLY_NOSAVEPOINT flag.
FossilOrigin-Name:
3d29631fa7270b18f51de8cfe1285959e42ad9a673d5d2d5c016126f5f1b31a8
drh [Mon, 9 Apr 2018 00:46:42 +0000 (00:46 +0000)]
Fix a (harmless) signed integer overflow warning.
FossilOrigin-Name:
43c2c60caf0ba105f57e32fc7fe6938dc29538c04d477a35b9b8bba2fb8fdd07
drh [Fri, 6 Apr 2018 19:12:55 +0000 (19:12 +0000)]
Enhance LEMON to show precendence of symbols and all rules in the report
that is generated in parallel to the parser.
FossilOrigin-Name:
602fbd8149b53d8f0e9a223cc1aec912e7df03fca35071e8d707776ce225371c
dan [Fri, 6 Apr 2018 16:22:25 +0000 (16:22 +0000)]
Fix a problem in the sessions module causing sqlite3session_apply_strm() to
allocate enough memory for the entire input buffer - which defeats the point
of a streaming interface.
FossilOrigin-Name:
7594e60935b0b5dcf764476dccdf9b403303818a0419a30bc2c16d58e44f6d04
dan [Thu, 5 Apr 2018 16:26:39 +0000 (16:26 +0000)]
Fix an instance where an uninitialized VM register might be accessed. Fix for
[
093420fc0 ]. This problem was found by OSSFuzz.
FossilOrigin-Name:
a3b02db74681a215996c5ed110eb0ece5ed24f71a1b131c10e9f33e666af0256
drh [Thu, 5 Apr 2018 12:02:27 +0000 (12:02 +0000)]
Fix the sqlite3WhereTrace mechanism so that it compiles with
the --disable-amalgamation and the --enable-debug options to ./configure
using clang.
FossilOrigin-Name:
813224363d9ac22fcb37f657c4ac988f76fa39989301faec7206e9ba0b1f4476
mistachkin [Wed, 4 Apr 2018 12:21:33 +0000 (12:21 +0000)]
Fix segfault in 'eval.c' extension when used with 'empty_result_callbacks'.
FossilOrigin-Name:
e8b87bd4954437041139344d6d1ce3e4aace40ea6891b70f9c20cd95671270e7
drh [Tue, 3 Apr 2018 20:44:53 +0000 (20:44 +0000)]
Fix an error message in speedtest1.c and make the "trigger" testset sensitive
to the --size parameter.
FossilOrigin-Name:
5a6fd9e0156a14e6509c4ea713c4b332b2d050432b49571c7a45a7ecc7cb5da4
dan [Tue, 3 Apr 2018 20:00:09 +0000 (20:00 +0000)]
Update speedtest1.c with new testset "trigger" based on the tests in
speed4p.test.
FossilOrigin-Name:
7b7fa5fa0dd0dcef759ce1e22ade3a4e5fc8e8a244eac19b1abcc96d89c99721
dan [Tue, 3 Apr 2018 17:05:13 +0000 (17:05 +0000)]
Fix a few small test script issues affecting SQLITE_TEMP_STORE=3 builds.
FossilOrigin-Name:
e171f3722f78c58d2f20443e3bbcce2bd9701b8537f6e8d482ae804154d7a17f
drh [Tue, 3 Apr 2018 14:25:51 +0000 (14:25 +0000)]
Fix the generate_series virtual table so that it correctly returns no
rows if any of its constraints are NULL.
Ticket [
fac496b61722daf28 ].
FossilOrigin-Name:
3328e828e28ca7198fd1ce84503e649ab2278913a2cf85a0f0391f31d0c9c8d7
drh [Tue, 3 Apr 2018 14:04:48 +0000 (14:04 +0000)]
Change the LEFT JOIN strength reduction optimization so that assumes that
virtual table constraints can be true even if terms within the constraint
are NULL. This works around dodgy virtual table implementations.
FossilOrigin-Name:
cbb977fe1908431f3aad8e67668588b119e7d491724f2042af436f509a4f6623
drh [Mon, 2 Apr 2018 11:04:16 +0000 (11:04 +0000)]
drh [Mon, 2 Apr 2018 00:16:36 +0000 (00:16 +0000)]
Better solution to the LIKE problem from the previous check-in that works
even if the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option is used.
FossilOrigin-Name:
b850dd159918af568c55c00ff146ba9c9c04d33ff384fe1eb0ad74164bc401bb
drh [Sat, 31 Mar 2018 23:28:55 +0000 (23:28 +0000)]
dan [Sat, 31 Mar 2018 16:31:51 +0000 (16:31 +0000)]
Fix an assertion failure triggered by a SELECT with a compound sub-query that
contains an incorrectly placed ORDER BY clause. This problem is just an
assert() failure - non-DEBUG builds are not affected. Problem found by
OSSFuzz.
FossilOrigin-Name:
823779d31eb09cda5effe747d9adb35e600a52d4274226586437f674e7824d91
drh [Fri, 30 Mar 2018 16:34:04 +0000 (16:34 +0000)]
Fix a bug in the spellfix extension causing it to compute suboptimal answers.
The problem was introduced by check-in [
afd6fbc01052ccfc9 ].
FossilOrigin-Name:
3bf28fd9a70ebefc464dceda124d6ed342dd83f71eeeb0568f79e34e731a073e
drh [Fri, 30 Mar 2018 15:59:54 +0000 (15:59 +0000)]
Fix an off-by-one error in the dist3 algorithm of the spellfix extension.
FossilOrigin-Name:
5c34af7b975598bbe20751dfdd346f43031cb2bcb6b78f1bbdb2b51b398de182
dan [Thu, 29 Mar 2018 23:54:00 +0000 (23:54 +0000)]
Another change to test file zipfile.test to help it run on systems without "unzip".
FossilOrigin-Name:
b6252feb125db16dabf6ce07568159f0002f9053df1b7b600e2614cc9da24873
dan [Thu, 29 Mar 2018 16:39:09 +0000 (16:39 +0000)]
Fix a test script bug causing zipfile.test to fail on systems that do not have
the "unzip" program installed.
FossilOrigin-Name:
d99022a5a8e4469a87a9fab8a976271e5785524da73ac1d2fae47d00d90fc07a
drh [Thu, 29 Mar 2018 13:47:01 +0000 (13:47 +0000)]
Modify the sqlite3OsFileControl() interface to detect unopened sqlite3_file
objects and return SQLITE_NOTFOUND.
FossilOrigin-Name:
1fc72b707d4f4df049c19b023ae3f70cb45d6a6768bb68efc519cfdcd2d2ecda
dan [Thu, 29 Mar 2018 11:02:19 +0000 (11:02 +0000)]
Update memdb1.test so that it works with SQLITE_DEFAULT_AUTOVACUUM builds.
FossilOrigin-Name:
d67f1c7d18d076b18e327ae4e3bccf6086b8f3fd370a7550d77753fc1f1ce07f
drh [Wed, 28 Mar 2018 22:08:44 +0000 (22:08 +0000)]
Fix a harmless compiler warning in the kvtest.exe program.
FossilOrigin-Name:
d48972cf873f8e2499f7c77f8062fde439e7426b616514c147810763469d7c6a
drh [Wed, 28 Mar 2018 21:45:03 +0000 (21:45 +0000)]
dan [Wed, 28 Mar 2018 20:29:04 +0000 (20:29 +0000)]
Add -DSQLITE_ENABLE_DESERIALIZE to the "Device-Two" configuration in
releasetest.tcl.
FossilOrigin-Name:
765a014d8e91be18ac0f12f0fe94f4126bf8ce101f5c9d7f234376e2368f6db3
drh [Wed, 28 Mar 2018 15:56:55 +0000 (15:56 +0000)]
Remove tab characters. No logical changes to code.
FossilOrigin-Name:
eb29b3369e76ec1df25a5484d8ec5fb924e23d5c70aaa4d794b2b17ee18784c8
drh [Wed, 28 Mar 2018 15:06:39 +0000 (15:06 +0000)]
drh [Tue, 27 Mar 2018 22:58:45 +0000 (22:58 +0000)]
Fix a typo in the README file for ICU. No code changes.
FossilOrigin-Name:
79c4383b66fee9d43a75eef30ed0364573fc99e6d3be12267a99773ab8f57a9f
drh [Tue, 27 Mar 2018 15:13:43 +0000 (15:13 +0000)]
The push-down optimization was being too aggressive such that it sometimes
generated incorrect results. Reinstate the restriction (4) (with
qualifications) that was removed by check-ins
[
b5d3dd8cb0b1e4 ] and [
dd568c27b1d765 ].
FossilOrigin-Name:
f08c1731b0b1dddcba190b094a35306a159713d3db939330f73075ff1d72c81e
drh [Tue, 27 Mar 2018 13:57:31 +0000 (13:57 +0000)]
Provide the ability for the VFS to do a blocking wait on locks if compiled
with SQLITE_ENABLE_SETLK_TIMEOUT.
FossilOrigin-Name:
e7dff982be753bc93123db6a0e8fefd56f2a14fd1c9a8699af0b6b75bc88fc15
drh [Mon, 26 Mar 2018 21:05:47 +0000 (21:05 +0000)]
Do not inject OOM errors on SQLITE_FCNTL_LOCK_TIMEOUT calls as an OOM is
not possible in that context.
FossilOrigin-Name:
5474e560eeb0269964b70bcd876bb86b4197c4fb164bc13454fb8204f083062c
drh [Mon, 26 Mar 2018 20:43:05 +0000 (20:43 +0000)]
Avoid a race condition that might cause a busy_timeout to last longer than
it should.
FossilOrigin-Name:
b81960561b47a1b49646f2f8870dd0684dc4ca7c0b9e11076fd713de66b75972
dan [Mon, 26 Mar 2018 17:56:39 +0000 (17:56 +0000)]
Fix a typo preventing test script avtrans.test from running in auto-vacuum
mode.
FossilOrigin-Name:
c7473bdb1055df06dc6a93a39ba7f56116f6866292784c4938d843531500c368
drh [Mon, 26 Mar 2018 17:40:53 +0000 (17:40 +0000)]
Add infrastructure to support for using F_SETLKW with a timeout on system
that support that functionality. Requires SQLITE_ENABLE_SETLK_TIMEOUT.
FossilOrigin-Name:
2e54a7433ece4eb27e71bda6f2d121d5aa46ddd5a481357d8543d1432aaad689
drh [Mon, 26 Mar 2018 16:37:53 +0000 (16:37 +0000)]
Refactor some internal object element names used by the busy handler, to
simplify analysis.
FossilOrigin-Name:
6c40c5574f4ae9795a142d01a8f84afd1b72678ea5f6bfca14a8646c4e862605
mistachkin [Sat, 24 Mar 2018 23:16:05 +0000 (23:16 +0000)]
Fix a couple issues in the 'session' module tests.
FossilOrigin-Name:
ccf734f7d2bf8f99f3c55124b05c1835e4371bc269f27700f40afc26e7c1bc55
mistachkin [Sat, 24 Mar 2018 20:06:52 +0000 (20:06 +0000)]
Fix harmless compiler warning seen with MSVC.
FossilOrigin-Name:
e9508ab1f86ac70a3ca5622ce44141bc05186b199bf32fb8739aef36b95aa05c
drh [Sat, 24 Mar 2018 18:01:51 +0000 (18:01 +0000)]
Add testcase() macros and improve comments in the LEFT JOIN strength reduction
optimization.
FossilOrigin-Name:
5613457714dd74d6da8e387132a0d8e64980ba4a921a9f53773540b02c0ccec6
drh [Sat, 24 Mar 2018 15:47:31 +0000 (15:47 +0000)]
Yet another fault in the sqlite3ExprImpliesNotNull() routine, causing errors
in the LEFT JOIN strength reduction optimization of check-in
[
dd568c27b1d76563 ].
FossilOrigin-Name:
e88cf3d4df64097ebc19aae464b88d0faf9b7d4c30d057042b582d78327e7ad3
dan [Sat, 24 Mar 2018 15:08:48 +0000 (15:08 +0000)]
Fix a test script problem causing shell1.test to fail with
-DSQLITE_OMIT_VIRTUAL_TABLE builds.
FossilOrigin-Name:
2e06906e0959e1256fc2feb9dc2c3a9d1e9c19c4ba59585fe52df9af174ab443
drh [Sat, 24 Mar 2018 13:24:02 +0000 (13:24 +0000)]
Bug fix in the LEFT JOIN strength reduction optimization of
check-in [
dd568c27b1d76563 ]. The sqlite3ExprImpliesNotNull() routine was
mistakenly assuming that a CASE expression must always be NULL if contained
any reference to a variable that was NULL.
FossilOrigin-Name:
cf171abe954a5f25262161dd69f2e8cecdbf9446c3f6b298201507dbc743567e
drh [Sat, 24 Mar 2018 00:19:18 +0000 (00:19 +0000)]
Prepend linkage macros to the sqlite3rebaser interfaces.
FossilOrigin-Name:
c64e8f377fe4fa321ebd04806cc27b19287e6fc3523b9988c0a70cad9fce1c18
dan [Fri, 23 Mar 2018 17:36:31 +0000 (17:36 +0000)]
Fix typos in sqlite3session.h preventing documentation webpages from being
generated. Also mark all new sessions functions (those related to rebasing) as
experimental.
FossilOrigin-Name:
de974235a8fefab0d08673c1b1da4e425e1d8bbfc8c35dac30943c05337b2950
dan [Fri, 23 Mar 2018 16:31:34 +0000 (16:31 +0000)]
Fix minor problems with passing NULL pointers to memcmp() and memcpy() found by -fsanitize=undefined.
FossilOrigin-Name:
0b06ce6d8e7cff5cd5d467a94522dfef5593d7c26663ce03c2c2b663a2641551
drh [Fri, 23 Mar 2018 16:08:30 +0000 (16:08 +0000)]
Fix the -readonly option on the CLI so that it actually works.
FossilOrigin-Name:
0477fb3fd68509547f3bfd588247aac59aa4aa885ed8a21269852eda64e257ad
mistachkin [Fri, 23 Mar 2018 14:56:05 +0000 (14:56 +0000)]
Add some more tests for the IS TRUE / IS FALSE operators.
FossilOrigin-Name:
9fe5bebefe909288e583226b5dc32e0465f6b2d8eda850d01820e3f1f8091ddd
drh [Fri, 23 Mar 2018 14:50:51 +0000 (14:50 +0000)]
Fix typo in a comment used for documentation. No changes to code.
FossilOrigin-Name:
49974d3b30faaad0891a43d5e840f5dd2dc50ad6c4e6c408292de04e9e8a8868
mistachkin [Fri, 23 Mar 2018 14:24:34 +0000 (14:24 +0000)]
Enhance .schema in shell to enable matching patterns with literal underscores.
FossilOrigin-Name:
98e3f5247a6012f58642a2fcdc9be062f7afe8f2e154d06007f4935a0fd87aac
drh [Fri, 23 Mar 2018 13:18:15 +0000 (13:18 +0000)]
Fix an error in the CLI in the previous ([
0249d9aecf69948 ]) check-in.
Only the pattern to sqlite3_strlike() need to be escaped.
FossilOrigin-Name:
71d5f6e6322dc037a0e9089049e5d154100b2918830826e30f8043f01a287c00
drh [Fri, 23 Mar 2018 12:59:10 +0000 (12:59 +0000)]
Fix the ANALYZE command so that it will process tables whose names begin
with "sqlite" as long as they do not being with "sqlite_".
FossilOrigin-Name:
0249d9aecf69948d9343feef9291273beef5fc98aa9a8f95b1e35cc2ce8e6cbd
mistachkin [Fri, 23 Mar 2018 00:31:53 +0000 (00:31 +0000)]
Fix harmless compiler warnings seen with MSVC.
FossilOrigin-Name:
2f2be1b1811e6b83fc8945da06e57b8b54233ff8a6ebd9d71b22c6bab2e74afb
dan [Thu, 22 Mar 2018 20:35:20 +0000 (20:35 +0000)]
Add APIs to the sessions module for "rebasing" changesets.
FossilOrigin-Name:
509506c76b7c104961826721013889d6c6b2ed9b563dcd029e0cb5cb5c34693a
dan [Thu, 22 Mar 2018 20:11:14 +0000 (20:11 +0000)]
Remove some unused code from sqlite3rebaser_rebase().
FossilOrigin-Name:
07cc955eab0e993a75be82d58e17ca53c8abbcaf851983d235049599c19e582f
dan [Thu, 22 Mar 2018 19:52:22 +0000 (19:52 +0000)]
Fix another problem with rebasing updates against multiple remote changes.
FossilOrigin-Name:
c8e7b5a061a3f2fbd9072530177b80f917b39ab5d7cd6acb0a221ab33e78a5cd
dan [Thu, 22 Mar 2018 17:13:44 +0000 (17:13 +0000)]
Fix an RBU problem causing errors when updating tables with default collation
sequences that require quoting (e.g. COLLATE "ICU_root-u-kn-on").
FossilOrigin-Name:
eb4f452e354065d610ff57a6a9312ad119b6b0cc467f9dff105f0718bc27ef01
dan [Thu, 22 Mar 2018 17:02:37 +0000 (17:02 +0000)]
Fix a test script problem causing rbuvacuum.test to fail when run along with
other tests.
FossilOrigin-Name:
901cb3b6a2c8d0cc33bd34ec1dbeea49c779ae1ac3ed6733dd9826c8e0eb80c8
dan [Thu, 22 Mar 2018 14:07:36 +0000 (14:07 +0000)]
Add tests to ensure that patchsets are handled correctly by the session rebase
APIs.
FossilOrigin-Name:
0e45baaec01947f6cbf47d5d5922a4cabe7d27181c04c0a08259c952fd023947
drh [Thu, 22 Mar 2018 12:00:43 +0000 (12:00 +0000)]
Add the left join strength reduction optimization. Enhance the push-down
optimization so that it works with many LEFT JOINs.
FossilOrigin-Name:
dd568c27b1d7656388ea5b4132cc0265aedd7348d265d8e8c7412b00b28a31aa
drh [Thu, 22 Mar 2018 11:28:31 +0000 (11:28 +0000)]
Add the --valid-sql option to the optfuzz test program.
FossilOrigin-Name:
a8dfeec73b069f2dd7371c2792b36f152945d32120843db5361ff7e04de177bc
dan [Thu, 22 Mar 2018 11:15:59 +0000 (11:15 +0000)]
Remove some unused code from the sessions module.
FossilOrigin-Name:
a09518ab63a1ef1b7f56b9f9b16269fd83920469d4c4e179b1f68b35df4e0c4b
drh [Wed, 21 Mar 2018 20:21:29 +0000 (20:21 +0000)]
dan [Wed, 21 Mar 2018 20:13:56 +0000 (20:13 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
d00b71ecf857bc6d903442d91418d5a313c584dcdd8e9c8ff3b5d940dd45bcc5
dan [Wed, 21 Mar 2018 19:46:36 +0000 (19:46 +0000)]
Fix some documentation and other issues with the code on this branch.
FossilOrigin-Name:
a9ec68627a4533ca6aa7cc1b73f864db615a80e86eda9e33660f22d269a1ba1e
drh [Wed, 21 Mar 2018 19:25:59 +0000 (19:25 +0000)]
Add the optfuzz.c program for verifying the query planner using a fuzzer.
This is an initial code check-in.
FossilOrigin-Name:
3fb21251b0c9c731513e8fb137867c2710a77d99411c99348d3ac45d3babffd7
dan [Wed, 21 Mar 2018 17:29:53 +0000 (17:29 +0000)]
Fix rebasing of UPDATE changes against a set of remote changesets that feature
both OMIT and REPLACE conflict resolution on different fields of the same row.
FossilOrigin-Name:
d8bc3fdb6ba165ca8d7cab857ede8e7e6e2fac24ad59580c5e1db1a4942d295c
drh [Wed, 21 Mar 2018 01:59:46 +0000 (01:59 +0000)]
Relax LEFT-JOIN restrictions on the push-down optimization.
FossilOrigin-Name:
b5d3dd8cb0b1e42ed0671a12d22af05194ea9522e4f41fd4bb0deff70b8b0757
drh [Tue, 20 Mar 2018 22:52:27 +0000 (22:52 +0000)]
Do a more thorough job of cleaning erasing traces of the strength-reduced
LEFT JOIN.
FossilOrigin-Name:
08833dda3a25965cc509d0244d7cd68bdb2306351ca52862f347e1efe5db4508
drh [Tue, 20 Mar 2018 21:16:15 +0000 (21:16 +0000)]
If terms of the WHERE clause require that the right table in a LEFT JOIN
not be a null row, then simplify the LEFT JOIN into an ordinary JOIN.
FossilOrigin-Name:
5b7abecc7ab8ccbbb8cb5e0f672e67625c2555ad03442efbf34cb395f5bb71a8
dan [Tue, 20 Mar 2018 20:27:03 +0000 (20:27 +0000)]
Add further tests and documentation for the sessions rebase feature.
FossilOrigin-Name:
7475a363ebb272ae23c0796fe7587714a156dc6a3a4a57ed948ed6f69d3c1218
drh [Tue, 20 Mar 2018 19:02:03 +0000 (19:02 +0000)]
Fix incorrect testcase labels on two cases in join5.test. No changes to code.
FossilOrigin-Name:
4661ac81c9589b06a07df8b7931fbd0a7f9a4e9ba1448192b70701dc85a29bd2
drh [Tue, 20 Mar 2018 18:08:33 +0000 (18:08 +0000)]
Improvements to the HAVING-to-WHERE optimization. The code uses less space
and less CPU, and there is now ".selecttrace" output.
FossilOrigin-Name:
5ad668d4339397fe66fe085e0527e37a1930917da88d462a8d89a465faa15e28
mistachkin [Tue, 20 Mar 2018 16:56:12 +0000 (16:56 +0000)]
For 'zipfile', detect attempts to cause a duplicate entry via UPDATE. Also, fix handling of 'UPDATE OR REPLACE' statements run on zipfile virtual tables. Win32 portability fixes to the 'fileio' extension. Miscellaneous test fixes.
FossilOrigin-Name:
b36caeca91647616ac2ccdb281200c1a8bcd15d1f30dda0c1d89440d54607196
drh [Tue, 20 Mar 2018 13:44:10 +0000 (13:44 +0000)]
Avoid unnecessary write to the sqlite_sequence table when an insert
is done into an autoincrement table with an application-specified rowid
that is less than the maximum.
FossilOrigin-Name:
ec7addc87f97bcff3c3694b14a680453b52de3f8c106436f0708a1cc04b90faa
drh [Tue, 20 Mar 2018 13:26:03 +0000 (13:26 +0000)]
Add the ability to disable the push-down optimization using the 0x1000 bit
of SQLITE_TESTCTRL_OPTIMIZATIONS. Also some documentation fixes and an
enhancement to ".eqp full" in the CLI.
FossilOrigin-Name:
ae34edb7f4fa7b37a66cdf3a1d851980cb013e9abe72bdeca23e5323051e0646
dan [Tue, 20 Mar 2018 13:26:01 +0000 (13:26 +0000)]
Fix handling of "UPDATE OR REPLACE" statements run on zipfile virtual tables.
FossilOrigin-Name:
9a5ef341de2bd2fc4657a510f48159f7876f58d340b457b4272a71d389f88da3
drh [Tue, 20 Mar 2018 13:00:33 +0000 (13:00 +0000)]
dan [Tue, 20 Mar 2018 12:12:06 +0000 (12:12 +0000)]
drh [Tue, 20 Mar 2018 12:04:38 +0000 (12:04 +0000)]
In the CLI, avoid extra .selecttrace and .wheretrace output when in ".eqp full"
mode.
FossilOrigin-Name:
427bbf318a28e827bf03d43c2912c8ad937dd52f829feaf7fe374093692ed61b