]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Tue, 17 Apr 2018 18:18:05 +0000 (18:18 +0000)]
dan [Tue, 17 Apr 2018 18:16:10 +0000 (18:16 +0000)]
Add some more simple test cases for UPSERT. And a minor fix.
FossilOrigin-Name:
27cd3b2fb2ad0cf2b36741bd1057cb7973954d40456e9db158261a38b049d2b5
drh [Tue, 17 Apr 2018 16:16:40 +0000 (16:16 +0000)]
drh [Mon, 16 Apr 2018 14:36:34 +0000 (14:36 +0000)]
Merge the Lemon enhancement from trunk, resulting in smaller parser tables.
FossilOrigin-Name:
641f41722c68f1d51251b10d4d3d7c473d08ee999f6db20023ef6dcd4dc5f6e8
drh [Mon, 16 Apr 2018 14:31:34 +0000 (14:31 +0000)]
Lemon enhancements: (1) Do not allocate space for the 'error' non-terminal
if it is not used. (2) Fix an off-by-one problem so that 'unsigned char' can
be used for symbol numbers if the number of symbols is 256.
FossilOrigin-Name:
3b7801acff91905d0e78e06121ebcf2664f6de5f605699dc8726ec9bcb558eb8
drh [Mon, 16 Apr 2018 13:26:53 +0000 (13:26 +0000)]
Remove the MySQL upsert syntax. As an optional alias to the insert table
name in order to finish out PostgreSQL upsert syntax emulation.
FossilOrigin-Name:
810d9f63be46c1452718b05e51c519fb64e9fabf2f1813b5e07b1041dbb71880
drh [Mon, 16 Apr 2018 13:00:50 +0000 (13:00 +0000)]
Add support for the "excluded.*" names in the UPDATE clause of an upsert.
FossilOrigin-Name:
0203f34faae07fbea0bff2d23b81fb37df8854cded4cdadac5a034132a096b6d
drh [Mon, 16 Apr 2018 10:47:38 +0000 (10:47 +0000)]
drh [Mon, 16 Apr 2018 10:41:15 +0000 (10:41 +0000)]
drh [Mon, 16 Apr 2018 10:34:13 +0000 (10:34 +0000)]
Reduce the size of the NameContext object by grouping seldom-used fields
into a union.
FossilOrigin-Name:
dba3095feeeb55b5c0ebe33bdd4be8ba1f24478406685d3a042a69d9c380e742
drh [Sat, 14 Apr 2018 22:35:34 +0000 (22:35 +0000)]
drh [Sat, 14 Apr 2018 20:24:36 +0000 (20:24 +0000)]
Make sure constraint checks occur in the correct order, even in the
presence of upserts.
FossilOrigin-Name:
07fb30c3de7ff396ae2ce8a0d20352b56f17a5db0af99a921c7bfe9bd4018115
drh [Fri, 13 Apr 2018 21:55:22 +0000 (21:55 +0000)]
First cut at logic to perform DO UPDATE for rowid tables.
FossilOrigin-Name:
a9080bc8b8c5f3b399eb1819bb5009581f178d85bb2b2cca7bc16a7b81b06863
drh [Fri, 13 Apr 2018 18:59:17 +0000 (18:59 +0000)]
Add infrastructure for doing an UPDATE as part of an UPSERT. Still no actual
UPDATE code, however.
FossilOrigin-Name:
6d3017f92bce3e50a91fab2f605e2af8b913b1b374adbfd977299eb042683de8
drh [Fri, 13 Apr 2018 16:29:50 +0000 (16:29 +0000)]
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 [Fri, 13 Apr 2018 15:14:33 +0000 (15:14 +0000)]
Get the ON CONFLICT DO NOTHING form of upsert working by mapping it
into INSERT OR IGNORE.
FossilOrigin-Name:
d07f05e98bb9ce0f9b46db159d9df161b7499d6face6a5299ecd2d00a94fb8d0
drh [Fri, 13 Apr 2018 14:27:01 +0000 (14:27 +0000)]
Get the conflict-target clause parsing working correctly, with test
cases. This change involves an enhancement to sqlite3ExprCompare() which
needs to be reviewed on trunk prior to merging.
FossilOrigin-Name:
5bf704256206f84b3db7a5d8523215604eeb218ef8db86316d1e43ecd7248d6a
drh [Fri, 13 Apr 2018 13:44:48 +0000 (13:44 +0000)]
drh [Fri, 13 Apr 2018 13:06:45 +0000 (13:06 +0000)]
Back off of the extended upsert syntax that allows multiple ON CONFLICT
clauses. The syntax now is exactly as in PostgreSQL and MySQL. Add support
for WHERE clauses on the conflict-target phrase, for partial indexes.
FossilOrigin-Name:
2c1b1987d8de1efa8ed7e1f199710e32ff20edf8ceec570514fc63bb1ef264e0
drh [Fri, 13 Apr 2018 01:15:09 +0000 (01:15 +0000)]
Begin adding upsert logic. This is an incremental check-in.
FossilOrigin-Name:
809696434097e62e8ef486c7478b5eb62c0cf1342522a5584939fade82821410
drh [Thu, 12 Apr 2018 21:42:51 +0000 (21:42 +0000)]
Break out the upsert code into a separate source file.
FossilOrigin-Name:
389806b05f163687d8eb858b0f87f9a2d02e90af9f2097924a66715f05177613
drh [Thu, 12 Apr 2018 20:21:42 +0000 (20:21 +0000)]
drh [Thu, 12 Apr 2018 19:51:22 +0000 (19:51 +0000)]
Simple comment clarification. No code or logic changes.
FossilOrigin-Name:
a26f9c9f89c24048cb77d5c0c8de37f46de7dce80f8bf49cadcd58b239dbdfa7
drh [Thu, 12 Apr 2018 17:28:06 +0000 (17:28 +0000)]
Extend the upsert syntax to allow a WHERE clause on the UPDATE.
FossilOrigin-Name:
e4396c540a22fbc087a01050a32bfad514259d700c2381d7ac912580d7dca00f
drh [Thu, 12 Apr 2018 15:43:05 +0000 (15:43 +0000)]
Update the upsert parsing so that it accepts conflict-target labels using
the PostgreSQL syntax, and also accepts the MySQL "ON DUPLICATE KEY"
syntax.
FossilOrigin-Name:
c48f64d8ae2625a19267b02e4a173a07766934235ad3052cd9d38f5ecbcbfbc3
drh [Thu, 12 Apr 2018 13:15:43 +0000 (13:15 +0000)]
Add the Upsert object for holding upsert clause information.
FossilOrigin-Name:
d83eaed539b274c2abd650d07522f491865d4917acbb64d05d01b3ba5c3cd446
drh [Thu, 12 Apr 2018 12:25:45 +0000 (12:25 +0000)]
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 [Tue, 10 Apr 2018 00:30:47 +0000 (00:30 +0000)]
Update the top-level README.md file to point to the whynotget.html document.
FossilOrigin-Name:
7dfd4543da7ef741852252d3c78ba89a919d737787e9e5118579e35fdfdeb24c
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 [Sat, 7 Apr 2018 15:04:05 +0000 (15:04 +0000)]
More complete parsing of UPSERT, including UPSERT within a trigger.
The sqlite3Insert() logic to actually perform the UPSERT is not yet
implemented, however.
FossilOrigin-Name:
5cc2a5a315a2f26b392811de45b3dc352873a173c2c6c65f37ce2e5f88a71cd2
drh [Fri, 6 Apr 2018 19:36:49 +0000 (19:36 +0000)]
Demonstration of how the parser can be augmented to recognize a
PostgreSQL-style UPSERT. This check-in implements parsing only.
FossilOrigin-Name:
9b22905b15791170998a5d1bcf42c7b60b5064f6848fff827bd55e864bf724aa
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