]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
7 years agoAvoid a NULL-pointer deref following OOM. sorter-reference
drh [Wed, 18 Apr 2018 19:08:44 +0000 (19:08 +0000)] 
Avoid a NULL-pointer deref following OOM.

FossilOrigin-Name: 413015c029d850d4ce7e66be1f59b57f291254240a958856378a62f5ac4a5092

7 years agoAdd the --sorterref N option to the CLI.
drh [Wed, 18 Apr 2018 15:21:13 +0000 (15:21 +0000)] 
Add the --sorterref N option to the CLI.

FossilOrigin-Name: 902a40897f74ac8a3bc72ef84c2161ab308b5601381cc9eea18147bfefa978ce

7 years agoOmit some code not used without SQLITE_ENABLE_SORTER_REFERENCES. Improvements
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

7 years agoRemove an unused local variable.
drh [Wed, 18 Apr 2018 14:04:19 +0000 (14:04 +0000)] 
Remove an unused local variable.

FossilOrigin-Name: 9afeb0c88b211e3ad90697778ec8ebb80f216fe7078c3a2f51651c35d3828746

7 years agoAdd SQLITE_CONFIG_SORTERREF_SIZE configuration option.
dan [Mon, 16 Apr 2018 21:12:42 +0000 (21:12 +0000)] 
Add SQLITE_CONFIG_SORTERREF_SIZE configuration option.

FossilOrigin-Name: b25a7bb769b8397a00736bd922bd24b1200b2f82d36d42ecb4c3eb17efb4b84d

7 years agoExperimental change to "SELECT * FROM ... ORDER BY" processing to load some
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

7 years agoRemove an always-true branch from the preupdate hook logic.
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

7 years agoHelp the parser run faster by avoiding the "explain ::= ." production.
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

7 years agoProhibit bound parameters in the arguments to table-valued functions within
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

7 years agoMinor simplification to internal function generateSortTail().
dan [Wed, 11 Apr 2018 14:11:53 +0000 (14:11 +0000)] 
Minor simplification to internal function generateSortTail().

FossilOrigin-Name: f32cdb41ca213cfcfe0bb5bfe56930d43e55525fa5640274b00f1ccce7f69634

7 years agoInclude the 'sqlite3rebaser_' APIs in the Windows '.def' file.
mistachkin [Tue, 10 Apr 2018 18:56:21 +0000 (18:56 +0000)] 
Include the 'sqlite3rebaser_' APIs in the Windows '.def' file.

FossilOrigin-Name: 56e4965f7ac850c59596120878434f5ef023e77919ef9416d20812eac764bac1

7 years agoVersion 3.23.1 version-3.23.1
drh [Tue, 10 Apr 2018 17:39:29 +0000 (17:39 +0000)] 
Version 3.23.1

FossilOrigin-Name: 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b

7 years agoFix a problem causing the LEFT JOIN strength reduction optimization to be
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

7 years agoWhen testing, avoid injecting an OOM fault into a file-control call made by
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

7 years agoIncrease the version number to 3.23.1.
drh [Tue, 10 Apr 2018 12:33:42 +0000 (12:33 +0000)] 
Increase the version number to 3.23.1.

FossilOrigin-Name: 9488c87b54ace8a92a52a368e8cf161dfdd24201bd6b60d50e88c2d92d592f0c

7 years agoFix a problem causing the LEFT JOIN strength reduction optimization to be
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

7 years agoRemove an unnecessary SQLITE_UNTESTABLE compile-time conditional from
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

7 years agoUpdate the top-level README.md file to point to the whynotget.html document.
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

7 years agoMinor changes to the input grammar resulting in a faster and slightly smaller
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

7 years agoEnhance the query planner so that it detects when the xBestIndex method
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

7 years agoFix the fts5 xBestIndex method so that it is not confused by "IS", "!=",
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

7 years agoImprovements to ".wheretrace" output.
drh [Mon, 9 Apr 2018 13:58:20 +0000 (13:58 +0000)] 
Improvements to ".wheretrace" output.

FossilOrigin-Name: ea2e5b34bf35ade602dfcef359b64f810674f304fda14326b7f2dedefcc5f340

7 years agoAdd a "flags" parameter to experimental API sqlite3changeset_apply_v2(). Also
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

7 years agoFix a (harmless) signed integer overflow warning.
drh [Mon, 9 Apr 2018 00:46:42 +0000 (00:46 +0000)] 
Fix a (harmless) signed integer overflow warning.

FossilOrigin-Name: 43c2c60caf0ba105f57e32fc7fe6938dc29538c04d477a35b9b8bba2fb8fdd07

7 years agoEnhance LEMON to show precendence of symbols and all rules in the report
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

7 years agoFix a problem in the sessions module causing sqlite3session_apply_strm() to
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

7 years agoFix an instance where an uninitialized VM register might be accessed. Fix for
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

7 years agoFix the sqlite3WhereTrace mechanism so that it compiles with
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

7 years agoFix segfault in 'eval.c' extension when used with 'empty_result_callbacks'.
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

7 years agoFix an error message in speedtest1.c and make the "trigger" testset sensitive
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

7 years agoUpdate speedtest1.c with new testset "trigger" based on the tests in
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

7 years agoFix a few small test script issues affecting SQLITE_TEMP_STORE=3 builds.
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

7 years agoFix the generate_series virtual table so that it correctly returns no
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

7 years agoChange the LEFT JOIN strength reduction optimization so that assumes that
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

7 years agoVersion 3.23.0 version-3.23.0
drh [Mon, 2 Apr 2018 11:04:16 +0000 (11:04 +0000)] 
Version 3.23.0

FossilOrigin-Name: 736b53f57f70b23172c30880186dce7ad9baa3b74e3838cae5847cffb98f5cd2

7 years agoBetter solution to the LIKE problem from the previous check-in that works
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

7 years agoFix a logic error discovered by OSSFuzz.
drh [Sat, 31 Mar 2018 23:28:55 +0000 (23:28 +0000)] 
Fix a logic error discovered by OSSFuzz.

FossilOrigin-Name: fc06ddd458fc1028b33b3927cc3b113b7106caa67136993de2e57926a8a19623

7 years agoFix an assertion failure triggered by a SELECT with a compound sub-query that
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

7 years agoFix a bug in the spellfix extension causing it to compute suboptimal answers.
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

7 years agoFix an off-by-one error in the dist3 algorithm of the spellfix extension.
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

7 years agoAnother change to test file zipfile.test to help it run on systems without "unzip".
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

7 years agoFix a test script bug causing zipfile.test to fail on systems that do not have
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

7 years agoModify the sqlite3OsFileControl() interface to detect unopened sqlite3_file
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

7 years agoUpdate memdb1.test so that it works with SQLITE_DEFAULT_AUTOVACUUM builds.
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

7 years agoFix a harmless compiler warning in the kvtest.exe program.
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

7 years agoFix a harmless compiler warning.
drh [Wed, 28 Mar 2018 21:45:03 +0000 (21:45 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: f0d12354bba96056f930e5ed3e88c37ec139211be09e6cd6eb7310e979de56c8

7 years agoAdd -DSQLITE_ENABLE_DESERIALIZE to the "Device-Two" configuration in
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

7 years agoRemove tab characters. No logical changes to code.
drh [Wed, 28 Mar 2018 15:56:55 +0000 (15:56 +0000)] 
Remove tab characters.  No logical changes to code.

FossilOrigin-Name: eb29b3369e76ec1df25a5484d8ec5fb924e23d5c70aaa4d794b2b17ee18784c8

7 years agoMinor comment changes.
drh [Wed, 28 Mar 2018 15:06:39 +0000 (15:06 +0000)] 
Minor comment changes.

FossilOrigin-Name: d282f064698782cf7b584138549a6b27befa0b945ae96b52a3ef6f8a13448077

7 years agoFix a typo in the README file for ICU. No code changes.
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

7 years agoThe push-down optimization was being too aggressive such that it sometimes
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

7 years agoProvide the ability for the VFS to do a blocking wait on locks if compiled
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

7 years agoDo not inject OOM errors on SQLITE_FCNTL_LOCK_TIMEOUT calls as an OOM is lowlevel-lock-timeout
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

7 years agoAvoid a race condition that might cause a busy_timeout to last longer than
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

7 years agoFix a typo preventing test script avtrans.test from running in auto-vacuum
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

7 years agoAdd infrastructure to support for using F_SETLKW with a timeout on system
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

7 years agoRefactor some internal object element names used by the busy handler, to
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

7 years agoFix a couple issues in the 'session' module tests.
mistachkin [Sat, 24 Mar 2018 23:16:05 +0000 (23:16 +0000)] 
Fix a couple issues in the 'session' module tests.

FossilOrigin-Name: ccf734f7d2bf8f99f3c55124b05c1835e4371bc269f27700f40afc26e7c1bc55

7 years agoFix harmless compiler warning seen with MSVC.
mistachkin [Sat, 24 Mar 2018 20:06:52 +0000 (20:06 +0000)] 
Fix harmless compiler warning seen with MSVC.

FossilOrigin-Name: e9508ab1f86ac70a3ca5622ce44141bc05186b199bf32fb8739aef36b95aa05c

7 years agoAdd testcase() macros and improve comments in the LEFT JOIN strength reduction
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

7 years agoYet another fault in the sqlite3ExprImpliesNotNull() routine, causing errors
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

7 years agoFix a test script problem causing shell1.test to fail with
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

7 years agoBug fix in the LEFT JOIN strength reduction optimization of
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

7 years agoPrepend linkage macros to the sqlite3rebaser interfaces.
drh [Sat, 24 Mar 2018 00:19:18 +0000 (00:19 +0000)] 
Prepend linkage macros to the sqlite3rebaser interfaces.

FossilOrigin-Name: c64e8f377fe4fa321ebd04806cc27b19287e6fc3523b9988c0a70cad9fce1c18

7 years agoFix typos in sqlite3session.h preventing documentation webpages from being
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

7 years agoFix minor problems with passing NULL pointers to memcmp() and memcpy() found by ...
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

7 years agoFix the -readonly option on the CLI so that it actually works.
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

7 years agoAdd some more tests for the IS TRUE / IS FALSE operators.
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

7 years agoFix typo in a comment used for documentation. No changes to code.
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

7 years agoEnhance .schema in shell to enable matching patterns with literal underscores.
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

7 years agoFix an error in the CLI in the previous ([0249d9aecf69948]) check-in.
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

7 years agoFix the ANALYZE command so that it will process tables whose names begin
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

7 years agoFix harmless compiler warnings seen with MSVC.
mistachkin [Fri, 23 Mar 2018 00:31:53 +0000 (00:31 +0000)] 
Fix harmless compiler warnings seen with MSVC.

FossilOrigin-Name: 2f2be1b1811e6b83fc8945da06e57b8b54233ff8a6ebd9d71b22c6bab2e74afb

7 years agoAdd APIs to the sessions module for "rebasing" changesets.
dan [Thu, 22 Mar 2018 20:35:20 +0000 (20:35 +0000)] 
Add APIs to the sessions module for "rebasing" changesets.

FossilOrigin-Name: 509506c76b7c104961826721013889d6c6b2ed9b563dcd029e0cb5cb5c34693a

7 years agoRemove some unused code from sqlite3rebaser_rebase(). sessions-rebase
dan [Thu, 22 Mar 2018 20:11:14 +0000 (20:11 +0000)] 
Remove some unused code from sqlite3rebaser_rebase().

FossilOrigin-Name: 07cc955eab0e993a75be82d58e17ca53c8abbcaf851983d235049599c19e582f

7 years agoFix another problem with rebasing updates against multiple remote changes.
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

7 years agoFix an RBU problem causing errors when updating tables with default collation
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

7 years agoFix a test script problem causing rbuvacuum.test to fail when run along with
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

7 years agoAdd tests to ensure that patchsets are handled correctly by the session rebase
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

7 years agoAdd the left join strength reduction optimization. Enhance the push-down
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

7 years agoAdd the --valid-sql option to the optfuzz test program.
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

7 years agoRemove some unused code from the sessions module.
dan [Thu, 22 Mar 2018 11:15:59 +0000 (11:15 +0000)] 
Remove some unused code from the sessions module.

FossilOrigin-Name: a09518ab63a1ef1b7f56b9f9b16269fd83920469d4c4e179b1f68b35df4e0c4b

7 years agoGet the optfuzz program working.
drh [Wed, 21 Mar 2018 20:21:29 +0000 (20:21 +0000)] 
Get the optfuzz program working.

FossilOrigin-Name: 21346bbce9fd161e8a2037834a6e8eb443a901109ddb3a52c1b7a29000ffeac8

7 years agoMerge latest trunk changes into this branch.
dan [Wed, 21 Mar 2018 20:13:56 +0000 (20:13 +0000)] 
Merge latest trunk changes into this branch.

FossilOrigin-Name: d00b71ecf857bc6d903442d91418d5a313c584dcdd8e9c8ff3b5d940dd45bcc5

7 years agoFix some documentation and other issues with the code on this branch.
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

7 years agoAdd the optfuzz.c program for verifying the query planner using a fuzzer.
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

7 years agoFix rebasing of UPDATE changes against a set of remote changesets that feature
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

7 years agoRelax LEFT-JOIN restrictions on the push-down optimization. join-strength-reduction
drh [Wed, 21 Mar 2018 01:59:46 +0000 (01:59 +0000)] 
Relax LEFT-JOIN restrictions on the push-down optimization.

FossilOrigin-Name: b5d3dd8cb0b1e42ed0671a12d22af05194ea9522e4f41fd4bb0deff70b8b0757

7 years agoDo a more thorough job of cleaning erasing traces of the strength-reduced
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

7 years agoIf terms of the WHERE clause require that the right table in a LEFT JOIN
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

7 years agoAdd further tests and documentation for the sessions rebase feature.
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

7 years agoFix incorrect testcase labels on two cases in join5.test. No changes to code.
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

7 years agoImprovements to the HAVING-to-WHERE optimization. The code uses less space
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

7 years agoFor 'zipfile', detect attempts to cause a duplicate entry via UPDATE. Also, fix...
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

7 years agoAvoid unnecessary write to the sqlite_sequence table when an insert
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

7 years agoAdd the ability to disable the push-down optimization using the 0x1000 bit
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

7 years agoFix handling of "UPDATE OR REPLACE" statements run on zipfile virtual tables. testFixes
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

7 years agoRemove a debugging statement accidently left in push-down-disable
drh [Tue, 20 Mar 2018 13:00:33 +0000 (13:00 +0000)] 
Remove a debugging statement accidently left in
check-in [eddc35f3057e59fd]

FossilOrigin-Name: 85a31557ac0d0401c1bf2e23a502dc2ea57d9b1bc23c01de693f5d3fe22d8341

7 years agoAdd a test case for the fix on this branch.
dan [Tue, 20 Mar 2018 12:12:06 +0000 (12:12 +0000)] 
Add a test case for the fix on this branch.

FossilOrigin-Name: 7834cf6c28c63f6ca0e29a508c0f6e3ec9c5c48715344c2db99a9866e92ef205

7 years agoIn the CLI, avoid extra .selecttrace and .wheretrace output when in ".eqp full"
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