17008 Commits

Author SHA1 Message Date
drh
79297d1d59 Merge enhancements and bug-fixes from trunk.
FossilOrigin-Name: 5515b827dc1805a3010018cd6abf222b03525d24
2016-11-11 17:52:57 +00:00
dan
4a5bad572a Fix a problem with switching from wal to rollback mode when
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE is configured.

FossilOrigin-Name: 46e0016207b8e7df2ae6c7491fd0f3c2926eed21
2016-11-11 17:08:51 +00:00
drh
ea432ba2df Add the test/ossfuzz.c interface adaptor for OSS-FUZZ. Make previsions for
testing the adaptor using fuzzcheck.c.

FossilOrigin-Name: 119d6ef8478ea6ab07dfd0e974d2f5a8dcfce87e
2016-11-11 16:33:47 +00:00
dan
3bafdede8a Handle some obscure "row value misused" cases that could cause segfaults or
assertion failures.

FossilOrigin-Name: fba5fddb1c40af75634b01c1f06d2610df697e01
2016-11-11 15:49:01 +00:00
drh
4e8142c726 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
2016-11-11 14:54:22 +00:00
dan
b47ebe6128 Add extra tests for the xBestIndex() virtual table method.
FossilOrigin-Name: 642a8fba91d2bf61b494b845cb499714363209b1
2016-11-11 09:51:46 +00:00
mistachkin
2f9a613ced In the command line shell, avoid using utf8_printf() in a couple places where it is superfluous.
FossilOrigin-Name: 6311a8bdb1f2e1813516a32d171aae030bd73fd3
2016-11-11 05:19:45 +00:00
drh
c5b86be7db 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
2016-11-11 04:37:00 +00:00
drh
4360fcea6d 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
2016-11-11 03:37:24 +00:00
drh
7a1c28defe Avoid a few unnecessary calls to sqlite3BtreeMovetoUnpacked().
FossilOrigin-Name: eac0e827a61cfec4dd9b6d407ff398e9fda3510b
2016-11-10 20:42:08 +00:00
dan
257c13fa00 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
2016-11-10 20:14:06 +00:00
drh
c6c9e158c5 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
2016-11-10 17:01:36 +00:00
drh
bf2f5739c9 Remove C++ style comments. No code changes.
FossilOrigin-Name: 42f8aa6231bf4ed74bebdc85aa79d23dc20b3c14
2016-11-10 16:07:43 +00:00
drh
2c4dfc3095 Add the unpacked key fields to OP_IdxInsert for INSERT and UPDATE statements.
FossilOrigin-Name: 67602e40f122cbb6354048a64c5d3a72b2855ec7
2016-11-10 14:24:04 +00:00
drh
eaf6ae2992 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
2016-11-09 20:14:34 +00:00
drh
7405fa745e Fix a simple comment typo. No changes to code.
FossilOrigin-Name: 51d0aed8d63d0710e4aa8925ff18cf3c45dc9e42
2016-11-09 16:03:36 +00:00
mistachkin
58282f68d8 Fix typo in the CSV extension.
FossilOrigin-Name: b4889588246c33374ff3758e21ccc4ce246380b6
2016-11-09 01:46:13 +00:00
drh
4a8b013ef6 Make use of the unpacked key on the OP_IdxInsert on sorters with a LIMIT.
FossilOrigin-Name: 42db7cd2c0b367f7dfe733bdaf006538937b812a
2016-11-09 01:38:56 +00:00
drh
fb8c56f21b Fix a typo on the OP_IdxInsert documentation. No code changes.
FossilOrigin-Name: e4acd98207bf12b28f6c0f77896ba8f0b0a155d5
2016-11-09 01:19:25 +00:00
drh
088c086b14 Add a DISTINCT query to speedtest1.c. Also change INSERT OR REPLACE into
just REPLACE.

FossilOrigin-Name: 754ee844958bdc3b96acfd1f5395da5796e54a82
2016-11-09 01:07:10 +00:00
drh
7723371eb7 Remove the "experimental" marking from the sqlite3_preupdate interfaces.
But be sure all the interface definitions are within 
documentation.

FossilOrigin-Name: d6dd2ad35ed17e980ed564688499c802e5850386
2016-11-09 00:57:27 +00:00
drh
9b4eaebc68 Enhance the OP_IdxInsert opcode to optionally accept unpacked key material.
FossilOrigin-Name: 89d958abbac45f2ca5954080cd9e74ec9a07ebb2
2016-11-09 00:10:33 +00:00
dan
3b908d41a0 Avoid superfluous cursor seeks in "INSERT OR REPLACE" statements.
FossilOrigin-Name: bec5b6d4d083556d111a89186b4f7b35b5e7cebf
2016-11-08 19:22:32 +00:00
drh
9d06ff2cb7 Avoid generating OP_TableLock unnecessary instructions on btrees that
are not sharable.

FossilOrigin-Name: 8cb8516d2009d52d35a22263e4c892f162b34b81
2016-11-08 17:19:22 +00:00
drh
0a22c865e4 Fix the speedtest1.c test program so that it gives closing "%" wildcards
on LIKE searches.

FossilOrigin-Name: c2f84f637f994c3b4522b48161185a4a2c5bca23
2016-11-08 16:27:59 +00:00
drh
662389b265 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
2016-11-08 00:30:11 +00:00
drh
6850a63393 Fix OOM error reporting in the json1_group_object() SQL function. Remove
an unreachable branch from the JSON1 logic.

FossilOrigin-Name: b54098491531cd26ed461275ef4aae3d3ec9065e
2016-11-07 18:18:08 +00:00
drh
27b2d1b88b Replace some unreachable branches from the JSON1 extension with assert().
FossilOrigin-Name: 145cd13e3c5a42a717807bcc13c0f7212f38bff8
2016-11-07 15:15:42 +00:00
drh
ad875e7416 Fix the JSON1 extension so that the JSON validator correctly rejects malformed
backslash escapes within string literals.

FossilOrigin-Name: 7a63539169a384960e30a63e0c8e9b0f07fa431e
2016-11-07 13:37:28 +00:00
dan
a2bfa046ea Avoid a crash that can occur after an obscure OOM in the built-in INSTR()
function.

FossilOrigin-Name: b86b79c442a58d10aa005ba4f34095375a88d242
2016-11-04 12:05:29 +00:00
drh
b1c9633493 Mark the ICU extension functions as deterministic.
FossilOrigin-Name: afbbb6c66a85ff3f4c8dce677e0892a2a51d2b8e
2016-11-04 12:03:26 +00:00
drh
54fc5cc2ae Add an assert() to silence a coverity false-positive.
FossilOrigin-Name: 97354093bceff28714a605068851cfa026c8272a
2016-11-04 11:23:30 +00:00
dan
792557ac67 Fix a test case in vacuum5.test so that it works with the in-memory journal
permutation.

FossilOrigin-Name: 81c86401463df6be4ac21987b3b1703e38ab933b
2016-11-04 07:25:43 +00:00
mistachkin
a622d90040 Replace a couple more references to Tcl 8.5 in the Windows build tools.
FossilOrigin-Name: 1d0e43c549c36d0919a18d61285e94cad29e7a07
2016-11-03 21:35:10 +00:00
dan
af58068550 Fix a test case in vacuum5.test sot aht it works with
-DSQLITE_ENABLE_ATOMIC_WRITE.

FossilOrigin-Name: 3ca80010397676eca57c8a4c9b3a9c2c40629663
2016-11-03 19:24:14 +00:00
dan
7df9b8e6e4 Fix a test case in vacuum5.test so that it works with -DSQLITE_TEMP_STORE=2.
FossilOrigin-Name: f5dd95e25c703a825ad7af9a4b3886bd3ef8c2e8
2016-11-03 19:01:20 +00:00
drh
59ce2c434c 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
2016-11-03 13:12:28 +00:00
drh
16eb59484f Add the ".imposter" command to the command-line shell.
FossilOrigin-Name: be3ec8fdcf1541017ca9375df07645db2a9a3f5a
2016-11-03 13:01:38 +00:00
drh
6027561178 Fix an possible NULL pointer deference in the command-line shell that can
occur when using imposter mode.

FossilOrigin-Name: ad08753a8bbf073ec4af9c3a5783ed664244d954
2016-11-03 02:25:30 +00:00
drh
506a1400a3 Adjust the MSVC makefile to use Tcl8.6 by default.
FossilOrigin-Name: def8f598b8e33b5bab3a024cc57f4c5e300cd8cd
2016-11-02 19:49:22 +00:00
dan
75ba676790 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
2016-11-02 14:50:19 +00:00
drh
e77caa191b Fix a requirement mark. No changes to code.
FossilOrigin-Name: d18f61b78c8fafef742efbc890382537e8584180
2016-11-02 13:18:46 +00:00
drh
1ad93a003d Use NOT NULL partial indexes when the query is constrained by a single
LIKE or GLOB.

FossilOrigin-Name: 9b3a3b41b59a7ce7d3dd82c7402d6fdc6a5ca43c
2016-11-02 02:17:52 +00:00
dan
d7265378fd Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for
disabling SQLite's default checkpoint-on-close behaviour.

FossilOrigin-Name: 6d142025c74f66f2d48155354b556cd5b2682cb2
2016-10-31 16:49:18 +00:00
dan
298af02308 Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for
disabling SQLite's default checkpoint-on-close behaviour.

FossilOrigin-Name: 093d2fc2288b75c15ccf877bfa0e622d3918a562
2016-10-31 16:16:49 +00:00
dan
dadafa881f Remove the mutex from test_multiplex.c.
FossilOrigin-Name: 6374978e8f1ac091394a9f5a1896be92af658bcd
2016-10-27 14:51:02 +00:00
drh
c52496f57f 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
2016-10-27 01:02:20 +00:00
drh
9904298bb3 Small size reduction and performance enhancement in whereScanInit().
FossilOrigin-Name: c23f5ef337533c1ec6e3ba78a2910352181cc9ee
2016-10-26 18:41:43 +00:00
drh
392ddeb12d Small size reduction and performance improvement in whereScanNext().
FossilOrigin-Name: d861ee17eb900a607de6ec3f4a5d5c24cfb834a0
2016-10-26 17:57:40 +00:00
dan
d15f430111 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
2016-10-26 16:05:10 +00:00