]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Tue, 22 Nov 2016 22:23:56 +0000 (22:23 +0000)]
Merge bug fixes and enhancements from trunk.
FossilOrigin-Name:
e2c4bdf54fc1b9605226c7d6c79ef4f8302d6213
drh [Tue, 22 Nov 2016 21:11:59 +0000 (21:11 +0000)]
Enclose the sqlite3WalSnapshotRecover() routine within
FossilOrigin-Name:
e7be3183eb25e0f9f04b9e251ff37fa5e50cc1a7
drh [Tue, 22 Nov 2016 20:29:05 +0000 (20:29 +0000)]
Add a new requirement mark for CAST expressions.
FossilOrigin-Name:
bee2859b953c935c413de2917588159d03c672d9
drh [Tue, 22 Nov 2016 19:15:05 +0000 (19:15 +0000)]
Update requirement marks to reflect changes in wording in the documentation.
No changes to code.
FossilOrigin-Name:
f5ac98efb5d5f7751c5c560bed9c7885e60ac4bc
drh [Tue, 22 Nov 2016 01:26:42 +0000 (01:26 +0000)]
Remove unnecessary OP_Close opcodes for a size reduction and performance
increase.
FossilOrigin-Name:
32be7aae92ee48bf2cd260ea41e79c2bc62738f9
drh [Mon, 21 Nov 2016 21:33:46 +0000 (21:33 +0000)]
Remove unnecessary OP_Close opcodes at the end of INSERT operations, resulting
in smaller and faster code.
FossilOrigin-Name:
abeddb6d5a4040e1d0a87a4f32ad79794ba0842b
drh [Mon, 21 Nov 2016 18:15:35 +0000 (18:15 +0000)]
Enhance speedtest1.c so that is works on older versions of SQLite, before
the introduction of the group_concat() aggregate function.
FossilOrigin-Name:
9979ba80a649ee61d9d174dc9d9fcab7e9fc1332
drh [Sun, 20 Nov 2016 17:59:59 +0000 (17:59 +0000)]
Fix harmless compiler warnings.
FossilOrigin-Name:
b3b7b42d9a4a0e7e2be8b2933328a7bec2f49a81
drh [Sun, 20 Nov 2016 12:00:27 +0000 (12:00 +0000)]
Prevent a possible use-after-free bug in the query optimizer.
FossilOrigin-Name:
0a98c8d76ac86412d5eb68de994658c250989349
dan [Sat, 19 Nov 2016 18:31:37 +0000 (18:31 +0000)]
Remove the requirement to open the wal file before sqlite3_snapshot_recover()
is called. Also add some comments to new functions.
FossilOrigin-Name:
28393c413cc4505b94411730e728583c5d4baaae
dan [Sat, 19 Nov 2016 17:30:57 +0000 (17:30 +0000)]
Test some extra error conditions in sqlite3_recover_snapshot().
FossilOrigin-Name:
db314213c08f27dd0ff5ede3c6a8eda36560809a
dan [Sat, 19 Nov 2016 17:20:28 +0000 (17:20 +0000)]
Add another fault-injection test for sqlite3_snapshot_recover().
FossilOrigin-Name:
7e040406138669bd67dd6ecae016b3e50dbfaaf8
dan [Sat, 19 Nov 2016 16:35:53 +0000 (16:35 +0000)]
Fix a problem causing sqlite3_snapshot_recover() to return
SQLITE_IOERR_SHORT_READ.
FossilOrigin-Name:
525f75fa9fd4a95acc3fb3b0a01dabe2be39b383
dan [Sat, 19 Nov 2016 14:53:22 +0000 (14:53 +0000)]
Fix a bug in sqlite3_snapshot_recover() that could cause subsequent read
transactions to use out-of-data cache entries.
FossilOrigin-Name:
9abeb7980a34cec11a3420e14ad98a4ec0d9c599
dan [Fri, 18 Nov 2016 20:49:43 +0000 (20:49 +0000)]
Add experimental sqlite3_snapshot_recover() API.
FossilOrigin-Name:
174a6076a8d7bebe5efebf55f3fdc5d87c589cc7
dan [Fri, 18 Nov 2016 18:43:39 +0000 (18:43 +0000)]
Require that the database handle be in autocommit mode for
sqlite3_snapshot_get() to succeed. This is because it may open a read
transaction on the database file.
FossilOrigin-Name:
83b658dad091211ade3594d1e8d00ce525882506
dan [Fri, 18 Nov 2016 18:22:05 +0000 (18:22 +0000)]
Add tests for snapshot interfaces.
FossilOrigin-Name:
1f7ee7af7b620262ae663d65889b6a87415d4a34
dan [Fri, 18 Nov 2016 14:38:41 +0000 (14:38 +0000)]
Enhance existing snapshot tests to serialize/deserialize snapshots. No new
tests.
FossilOrigin-Name:
16b9bf92741e4c62874cffd7c6a61763c5054c7a
dan [Thu, 17 Nov 2016 20:05:00 +0000 (20:05 +0000)]
Fix a problem in rtreeD.test causing it to fail in OMIT_BUILTIN_TEST builds.
FossilOrigin-Name:
d6b3779e6dad038d8bc35139cf314bf1e6e91977
drh [Thu, 17 Nov 2016 13:54:21 +0000 (13:54 +0000)]
Change the --enable-debug option on configure so that it enables the
".selecttrace" and ".wheretrace" commands in the command-line shell.
FossilOrigin-Name:
2331192b4ca6a169b6ac0daafb21ceb7c390de65
drh [Thu, 17 Nov 2016 13:13:25 +0000 (13:13 +0000)]
Disable the query flattener optimization for SELECT statements that are on
the RHS of vector IN operators. This is a hack that fixes the bug
described in ticket [
da7841375186386c ]. A better solution that does not
disable the query flattener is needed, but this will server for the time
being.
FossilOrigin-Name:
005d5b870625d175fdf3c0e87d974006c569d9e1
drh [Tue, 15 Nov 2016 21:17:13 +0000 (21:17 +0000)]
Add a needed #include to speedtest1.c.
FossilOrigin-Name:
77aeb705c37b1bf61a05b5e4a09f5b5cd67d07bc
drh [Tue, 15 Nov 2016 17:37:56 +0000 (17:37 +0000)]
Experimental changes toward making snapshots serializable.
FossilOrigin-Name:
b6a81fa1fc1fb78a65894129851a4ec3986640de
drh [Tue, 15 Nov 2016 04:00:24 +0000 (04:00 +0000)]
Change the OP_Last opcode so that it is a no-op if the cursor is already
pointing at the end of the b-tree.
FossilOrigin-Name:
663473850c4274270445b3771911fa773a8c405f
drh [Tue, 15 Nov 2016 02:46:39 +0000 (02:46 +0000)]
Make the VACUUM command about 9% faster by avoiding unnecessary calls
to sqlite3BtreeMovetoUnpacked() while copying rowid tables.
FossilOrigin-Name:
5ed0bd387699a0f3b477d4f3cfcb460a6a44cb84
drh [Mon, 14 Nov 2016 20:47:18 +0000 (20:47 +0000)]
Add 8794 new test cases received from the OSS-FUZZ project.
FossilOrigin-Name:
03f75a67c320f21192d721a8c34d49dea48ffdbb
drh [Mon, 14 Nov 2016 20:08:00 +0000 (20:08 +0000)]
Fix a potential use-after-free error during parsing of malformed
CREATE TABLE statement.
FossilOrigin-Name:
c5dbc599b910c02a961675b12b273b8df6d29450
drh [Mon, 14 Nov 2016 18:27:41 +0000 (18:27 +0000)]
Enhance fuzzcheck.c to accept database-specific configuration parameters in
the option CONFIG table. Add the fuzzdata5.db fuzz database containing
test cases from OSS-FUZZ.
FossilOrigin-Name:
a71fad4538311ede111815d221d9eb8d9018092b
drh [Mon, 14 Nov 2016 17:25:57 +0000 (17:25 +0000)]
Fix the ossfuzz.c test module so that it does not segfault after a
"PRAGMA empty_result_callbacks=1;". Add the ossshell.c program for
simple command-line testing of ossfuzz.c.
FossilOrigin-Name:
6f2d43eca68175ed28abae3afa792095af906af2
drh [Mon, 14 Nov 2016 15:28:56 +0000 (15:28 +0000)]
Avoid unnecessary calls to sqlite3ExprCacheAffinityChange() when generating
OP_MakeRecord opcodes that do not change any register affinities.
FossilOrigin-Name:
e211c579b2f092e3283edd5fb9add7c5183bac35
dan [Mon, 14 Nov 2016 08:19:37 +0000 (08:19 +0000)]
Fix an fts5 problem causing a crash in phrase queries where the first token of
the phrase matches one or more rows but some other token within the phrase
matches zero.
FossilOrigin-Name:
e78f6f3bbf4781850960fe6741f7cba480f2c27d
drh [Fri, 11 Nov 2016 20:37:27 +0000 (20:37 +0000)]
Fix harmless compiler warnings in test code for MSVC.
FossilOrigin-Name:
7b76be4117f4e57091b03fafcf42d17bce81160d
drh [Fri, 11 Nov 2016 19:08:00 +0000 (19:08 +0000)]
Avoid storing redundant fields in sorter records when the sort-key
and data have fields in common.
FossilOrigin-Name:
b835cf3e507b910b6a3e0f802ce2c40a72d0c227
drh [Fri, 11 Nov 2016 19:01:11 +0000 (19:01 +0000)]
Enhance the OP_IdxInsert opcode so that it can used unpacked key values if
they are available. Update the code generator to take advantage of this
new capability. The speedtest1.c test is about 2.6% faster as a result.
FossilOrigin-Name:
925840cfdb969a76640a1247cc4a7b2c0de5cb74
dan [Fri, 11 Nov 2016 18:45:55 +0000 (18:45 +0000)]
Merge trunk with this branch.
FossilOrigin-Name:
dd62d2de6eb12dc1902d6df050c395b1dcac01b4
drh [Fri, 11 Nov 2016 18:19:05 +0000 (18:19 +0000)]
Remove obselete and unused logic in the update code generator.
Fix the sqlite3BtreeMovetoUnpacked() routine so that it remembers the
rowid of the row that it landed on.
FossilOrigin-Name:
1a587d72f981cb7064cfd8916a52a83ad9ba6074
dan [Fri, 11 Nov 2016 18:08:59 +0000 (18:08 +0000)]
Reenable the SQLITE_EXPR_REF optimization for "SELECT DISTINCT ... ORDER BY"
queries.
FossilOrigin-Name:
6e2e9d383f5fc4a0cbf05fe83ec7425812c0f556
drh [Fri, 11 Nov 2016 17:52:57 +0000 (17:52 +0000)]
Merge enhancements and bug-fixes from trunk.
FossilOrigin-Name:
5515b827dc1805a3010018cd6abf222b03525d24
dan [Fri, 11 Nov 2016 17:08:51 +0000 (17:08 +0000)]
Fix a problem with switching from wal to rollback mode when
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE is configured.
FossilOrigin-Name:
46e0016207b8e7df2ae6c7491fd0f3c2926eed21
drh [Fri, 11 Nov 2016 16:33:47 +0000 (16:33 +0000)]
Add the test/ossfuzz.c interface adaptor for OSS-FUZZ. Make previsions for
testing the adaptor using fuzzcheck.c.
FossilOrigin-Name:
119d6ef8478ea6ab07dfd0e974d2f5a8dcfce87e
dan [Fri, 11 Nov 2016 15:49:01 +0000 (15:49 +0000)]
Handle some obscure "row value misused" cases that could cause segfaults or
assertion failures.
FossilOrigin-Name:
fba5fddb1c40af75634b01c1f06d2610df697e01
drh [Fri, 11 Nov 2016 14:54:22 +0000 (14:54 +0000)]
Back out the "--raw" option on ".read" in the command-line shell. Instead,
fix the command-line shell so that if EOF is reached without seeing a
final semicolon, it goes ahead and passes the accumulated SQL text to
SQLite.
FossilOrigin-Name:
f98c8ac8c485098f163400d3a92d6afb4008adbe
dan [Fri, 11 Nov 2016 09:51:46 +0000 (09:51 +0000)]
Add extra tests for the xBestIndex() virtual table method.
FossilOrigin-Name:
642a8fba91d2bf61b494b845cb499714363209b1
mistachkin [Fri, 11 Nov 2016 05:19:45 +0000 (05:19 +0000)]
In the command line shell, avoid using utf8_printf() in a couple places where it is superfluous.
FossilOrigin-Name:
6311a8bdb1f2e1813516a32d171aae030bd73fd3
drh [Fri, 11 Nov 2016 04:37:00 +0000 (04:37 +0000)]
Add the --raw option to the ".read" dot-command of the command-line shell,
to cause the named file to be read and sent directly into sqlite3_exec()
without any interpretation.
FossilOrigin-Name:
09233770b24d69a305556241a6beeb5e4d77c0d7
drh [Fri, 11 Nov 2016 03:37:24 +0000 (03:37 +0000)]
Take care not to try to generate code for the ATTACH and DETACH commands
if there were syntax errors during parsing.
Fix for ticket [
2f1b168ab4d4844 ]
FossilOrigin-Name:
b0ff183b8ffdbebece06cfea1c6781fc0e8e8547
drh [Thu, 10 Nov 2016 20:42:08 +0000 (20:42 +0000)]
Avoid a few unnecessary calls to sqlite3BtreeMovetoUnpacked().
FossilOrigin-Name:
eac0e827a61cfec4dd9b6d407ff398e9fda3510b
dan [Thu, 10 Nov 2016 20:14:06 +0000 (20:14 +0000)]
Avoid storing redundant fields in sorter records when the sort-key and data have
fields in common (as in "SELECT a FROM t1 ORDER BY 1").
FossilOrigin-Name:
0af62fdbd8e2aab14718ff8bcb5934f05463c176
drh [Thu, 10 Nov 2016 17:01:36 +0000 (17:01 +0000)]
When doing a REPLACE on a WITHOUT ROWID table with no secondary indexes,
bypass the OP_NoConflict/OP_Delete sequence and directly overwrite any
preexisting row, for a performance increase.
FossilOrigin-Name:
f7041cbb63b912f9ecad538804b6f2383efbec4e
drh [Thu, 10 Nov 2016 16:07:43 +0000 (16:07 +0000)]
Remove C++ style comments. No code changes.
FossilOrigin-Name:
42f8aa6231bf4ed74bebdc85aa79d23dc20b3c14
drh [Thu, 10 Nov 2016 14:24:04 +0000 (14:24 +0000)]
Add the unpacked key fields to OP_IdxInsert for INSERT and UPDATE statements.
FossilOrigin-Name:
67602e40f122cbb6354048a64c5d3a72b2855ec7
drh [Wed, 9 Nov 2016 20:14:34 +0000 (20:14 +0000)]
Comment changes that attempt to better explain the behavior of the "seekResult"
field on VdbeCursor objects and the seekResult parameter to
sqlite3BtreeInsert() and the OPFLAG_USESEEKRESULT flag on insert opcodes.
No changes to code.
FossilOrigin-Name:
345b46be75bdf6f9fb7367a6164d89bae11995a6
drh [Wed, 9 Nov 2016 16:03:36 +0000 (16:03 +0000)]
Fix a simple comment typo. No changes to code.
FossilOrigin-Name:
51d0aed8d63d0710e4aa8925ff18cf3c45dc9e42
mistachkin [Wed, 9 Nov 2016 01:46:13 +0000 (01:46 +0000)]
Fix typo in the CSV extension.
FossilOrigin-Name:
b4889588246c33374ff3758e21ccc4ce246380b6
drh [Wed, 9 Nov 2016 01:38:56 +0000 (01:38 +0000)]
Make use of the unpacked key on the OP_IdxInsert on sorters with a LIMIT.
FossilOrigin-Name:
42db7cd2c0b367f7dfe733bdaf006538937b812a
drh [Wed, 9 Nov 2016 01:19:25 +0000 (01:19 +0000)]
Fix a typo on the OP_IdxInsert documentation. No code changes.
FossilOrigin-Name:
e4acd98207bf12b28f6c0f77896ba8f0b0a155d5
drh [Wed, 9 Nov 2016 01:07:10 +0000 (01:07 +0000)]
Add a DISTINCT query to speedtest1.c. Also change INSERT OR REPLACE into
just REPLACE.
FossilOrigin-Name:
754ee844958bdc3b96acfd1f5395da5796e54a82
drh [Wed, 9 Nov 2016 00:57:27 +0000 (00:57 +0000)]
Remove the "experimental" marking from the sqlite3_preupdate interfaces.
But be sure all the interface definitions are within
documentation.
FossilOrigin-Name:
d6dd2ad35ed17e980ed564688499c802e5850386
drh [Wed, 9 Nov 2016 00:10:33 +0000 (00:10 +0000)]
Enhance the OP_IdxInsert opcode to optionally accept unpacked key material.
FossilOrigin-Name:
89d958abbac45f2ca5954080cd9e74ec9a07ebb2
dan [Tue, 8 Nov 2016 19:22:32 +0000 (19:22 +0000)]
Avoid superfluous cursor seeks in "INSERT OR REPLACE" statements.
FossilOrigin-Name:
bec5b6d4d083556d111a89186b4f7b35b5e7cebf
drh [Tue, 8 Nov 2016 17:19:22 +0000 (17:19 +0000)]
Avoid generating OP_TableLock unnecessary instructions on btrees that
are not sharable.
FossilOrigin-Name:
8cb8516d2009d52d35a22263e4c892f162b34b81
drh [Tue, 8 Nov 2016 16:27:59 +0000 (16:27 +0000)]
Fix the speedtest1.c test program so that it gives closing "%" wildcards
on LIKE searches.
FossilOrigin-Name:
c2f84f637f994c3b4522b48161185a4a2c5bca23
drh [Tue, 8 Nov 2016 00:30:11 +0000 (00:30 +0000)]
Tweaks to speedtest1.c to better reflect mobile usage based on findings in
the "Pocket Data" paper by Kennedy, Ajay, Challen, and Ziarek.
FossilOrigin-Name:
b5733cae3c519482cf6bc642bd63814afb113d35
drh [Mon, 7 Nov 2016 18:18:08 +0000 (18:18 +0000)]
Fix OOM error reporting in the json1_group_object() SQL function. Remove
an unreachable branch from the JSON1 logic.
FossilOrigin-Name:
b54098491531cd26ed461275ef4aae3d3ec9065e
drh [Mon, 7 Nov 2016 15:15:42 +0000 (15:15 +0000)]
Replace some unreachable branches from the JSON1 extension with assert().
FossilOrigin-Name:
145cd13e3c5a42a717807bcc13c0f7212f38bff8
drh [Mon, 7 Nov 2016 13:37:28 +0000 (13:37 +0000)]
Fix the JSON1 extension so that the JSON validator correctly rejects malformed
backslash escapes within string literals.
FossilOrigin-Name:
7a63539169a384960e30a63e0c8e9b0f07fa431e
dan [Fri, 4 Nov 2016 12:05:29 +0000 (12:05 +0000)]
Avoid a crash that can occur after an obscure OOM in the built-in INSTR()
function.
FossilOrigin-Name:
b86b79c442a58d10aa005ba4f34095375a88d242
drh [Fri, 4 Nov 2016 12:03:26 +0000 (12:03 +0000)]
Mark the ICU extension functions as deterministic.
FossilOrigin-Name:
afbbb6c66a85ff3f4c8dce677e0892a2a51d2b8e
drh [Fri, 4 Nov 2016 11:23:30 +0000 (11:23 +0000)]
Add an assert() to silence a coverity false-positive.
FossilOrigin-Name:
97354093bceff28714a605068851cfa026c8272a
dan [Fri, 4 Nov 2016 07:25:43 +0000 (07:25 +0000)]
Fix a test case in vacuum5.test so that it works with the in-memory journal
permutation.
FossilOrigin-Name:
81c86401463df6be4ac21987b3b1703e38ab933b
mistachkin [Thu, 3 Nov 2016 21:35:10 +0000 (21:35 +0000)]
Replace a couple more references to Tcl 8.5 in the Windows build tools.
FossilOrigin-Name:
1d0e43c549c36d0919a18d61285e94cad29e7a07
dan [Thu, 3 Nov 2016 19:24:14 +0000 (19:24 +0000)]
Fix a test case in vacuum5.test sot aht it works with
-DSQLITE_ENABLE_ATOMIC_WRITE.
FossilOrigin-Name:
3ca80010397676eca57c8a4c9b3a9c2c40629663
dan [Thu, 3 Nov 2016 19:01:20 +0000 (19:01 +0000)]
Fix a test case in vacuum5.test so that it works with -DSQLITE_TEMP_STORE=2.
FossilOrigin-Name:
f5dd95e25c703a825ad7af9a4b3886bd3ef8c2e8
drh [Thu, 3 Nov 2016 13:12:28 +0000 (13:12 +0000)]
In the command-line shell, fix the .imposter command so that it works
with indexes on expressions. Fix the ".mode quote" mode so that it works
with ".headers ON".
FossilOrigin-Name:
ba9873da94d21873ff76f16a5332fc0092d83f70
drh [Thu, 3 Nov 2016 13:01:38 +0000 (13:01 +0000)]
Add the ".imposter" command to the command-line shell.
FossilOrigin-Name:
be3ec8fdcf1541017ca9375df07645db2a9a3f5a
drh [Thu, 3 Nov 2016 02:25:30 +0000 (02:25 +0000)]
Fix an possible NULL pointer deference in the command-line shell that can
occur when using imposter mode.
FossilOrigin-Name:
ad08753a8bbf073ec4af9c3a5783ed664244d954
drh [Wed, 2 Nov 2016 19:49:22 +0000 (19:49 +0000)]
Adjust the MSVC makefile to use Tcl8.6 by default.
FossilOrigin-Name:
def8f598b8e33b5bab3a024cc57f4c5e300cd8cd
dan [Wed, 2 Nov 2016 14:50:19 +0000 (14:50 +0000)]
Fix an issue that was causing the new database image to be assembled entirely
in heap memory when VACUUMing a database, even if it should use a temp file.
This could cause SQLITE_NOMEM errors when vacuuming very large databases on
32-bit systems.
FossilOrigin-Name:
3028845329c9b7acdec2ec8b01d00d782347454c
drh [Wed, 2 Nov 2016 13:18:46 +0000 (13:18 +0000)]
Fix a requirement mark. No changes to code.
FossilOrigin-Name:
d18f61b78c8fafef742efbc890382537e8584180
drh [Wed, 2 Nov 2016 02:17:52 +0000 (02:17 +0000)]
Use NOT NULL partial indexes when the query is constrained by a single
LIKE or GLOB.
FossilOrigin-Name:
9b3a3b41b59a7ce7d3dd82c7402d6fdc6a5ca43c
dan [Mon, 31 Oct 2016 16:49:18 +0000 (16:49 +0000)]
Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for
disabling SQLite's default checkpoint-on-close behaviour.
FossilOrigin-Name:
6d142025c74f66f2d48155354b556cd5b2682cb2
dan [Mon, 31 Oct 2016 16:16:49 +0000 (16:16 +0000)]
Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for
disabling SQLite's default checkpoint-on-close behaviour.
FossilOrigin-Name:
093d2fc2288b75c15ccf877bfa0e622d3918a562
dan [Thu, 27 Oct 2016 14:51:02 +0000 (14:51 +0000)]
Remove the mutex from test_multiplex.c.
FossilOrigin-Name:
6374978e8f1ac091394a9f5a1896be92af658bcd
drh [Thu, 27 Oct 2016 01:02:20 +0000 (01:02 +0000)]
Make sure left-join markings are transferred to the virtual scalar
subexpressions when decomposing a vector comparison in the ON clause of
a LEFT JOIN.
Fix for ticket [
fef4bb4bd9185ec8f ].
FossilOrigin-Name:
619f5cc71774a37648e185c8502d7af14eb09b7f
drh [Wed, 26 Oct 2016 18:41:43 +0000 (18:41 +0000)]
Small size reduction and performance enhancement in whereScanInit().
FossilOrigin-Name:
c23f5ef337533c1ec6e3ba78a2910352181cc9ee
drh [Wed, 26 Oct 2016 17:57:40 +0000 (17:57 +0000)]
Small size reduction and performance improvement in whereScanNext().
FossilOrigin-Name:
d861ee17eb900a607de6ec3f4a5d5c24cfb834a0
dan [Wed, 26 Oct 2016 16:05:10 +0000 (16:05 +0000)]
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the
same index, set the index cursor to return NULL values if there are no matches
for a row on the lhs.
FossilOrigin-Name:
ec9dab8054c71d112c68f58a45821b38c2a45677
dan [Wed, 26 Oct 2016 15:46:09 +0000 (15:46 +0000)]
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the
same index, set the index cursor to return NULL values if there are no matches
for a row on the lhs.
FossilOrigin-Name:
e7b9bc678ecb75c594d9d3ade12a99a8d551cdc9
drh [Wed, 26 Oct 2016 13:58:47 +0000 (13:58 +0000)]
Merge the SQLITE_ENABLE_URI_00_ERROR compile-time option.
FossilOrigin-Name:
86675ae0abc78960a2faec55d115804acfc3be6d
dan [Wed, 26 Oct 2016 13:44:07 +0000 (13:44 +0000)]
Add extra tests to check the result of including a %00 escape in a URI
when ENABLE_URI_00_ERROR is defined.
FossilOrigin-Name:
1aaa06e37f44309c62335d8eda59ca6890d4be9d
dan [Wed, 26 Oct 2016 12:15:41 +0000 (12:15 +0000)]
Add compile time option SQLITE_ENABLE_URI_00_ERROR. If defined, any "%00"
escape found in a URI is treated as an error.
FossilOrigin-Name:
e8a9bfece27e2af178a206ad6bce3f24d64e7ee4
dan [Tue, 25 Oct 2016 15:06:11 +0000 (15:06 +0000)]
Add test case to demonstrate a "BEGIN EXCLUSIVE" command returning
SQLITE_BUSY_SNAPSHOT.
FossilOrigin-Name:
b115856408b6aa5538be67beb619d7aff0630bea
drh [Mon, 24 Oct 2016 01:01:09 +0000 (01:01 +0000)]
Performance optimization in moveToRoot(). Avoid repeated validity checking of
the root page on each call. Once is enough.
FossilOrigin-Name:
98795c2dd9a6d8fa8d49a9f5c36cdf824cae7246
drh [Sat, 22 Oct 2016 01:22:30 +0000 (01:22 +0000)]
In the sessions module, avoid recording a change if an UPDATE statement
overwrites a column with REAL affinity containing an integer value with
the same value.
FossilOrigin-Name:
5f3e602831ba2ecaf8ba5411efb387afcde05a33
dan [Fri, 21 Oct 2016 21:21:45 +0000 (21:21 +0000)]
In the sessions module, avoid recording a change if an UPDATE statement
overwrites a column with REAL affinity containing an integer value with the same value.
FossilOrigin-Name:
b861328ab9ceec6926d97658c3606e6ae9ad39bf
drh [Fri, 21 Oct 2016 17:39:30 +0000 (17:39 +0000)]
Add ".mode quote" to the command-line shell.
FossilOrigin-Name:
c4f5fa78cd8207ce1e46e32e632b8f6ee86047e1
dan [Fri, 21 Oct 2016 10:49:39 +0000 (10:49 +0000)]
Avoid using the "direct overflow read" optimization to read large blobs if the
pager layer has a wal file open - even if the database header indicates that
the db is not a wal database.
FossilOrigin-Name:
b54c15f11796a75683eec4b502a22ccb87d621c6
dan [Fri, 21 Oct 2016 10:09:22 +0000 (10:09 +0000)]
If SQLITE_DIRECT_OVERFLOW_READ is defined at compile time, add "DIRECT_OVERFLOW_READ" to the list of symbols returned by "PRAGMA compile_options".
FossilOrigin-Name:
b7d9727bff2e840af4b090872c991693e78e6076
dan [Thu, 20 Oct 2016 11:48:48 +0000 (11:48 +0000)]
Add test case to incrblob4.test. No changes to code.
FossilOrigin-Name:
fd9c6ff05f2052810549a1a6a384f4b40f4ba4ac
drh [Tue, 18 Oct 2016 16:36:15 +0000 (16:36 +0000)]
Minor simplification of the comparison opcodes.
FossilOrigin-Name:
56474ebca3fdddb8f3c5156f06dc42dc0a65256c