1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-15 11:41:13 +03:00
Commit Graph

13138 Commits

Author SHA1 Message Date
drh
c9b9deaee2 Make the VACUUM command about 9% faster by avoiding unnecessary calls
to sqlite3BtreeMovetoUnpacked() while copying rowid tables.

FossilOrigin-Name: 5ed0bd387699a0f3b477d4f3cfcb460a6a44cb84
2016-11-15 02:46:39 +00:00
drh
588429a87d Fix a potential use-after-free error during parsing of malformed
CREATE TABLE statement.

FossilOrigin-Name: c5dbc599b910c02a961675b12b273b8df6d29450
2016-11-14 20:08:00 +00:00
drh
2adb878b1f Avoid unnecessary calls to sqlite3ExprCacheAffinityChange() when generating
OP_MakeRecord opcodes that do not change any register affinities.

FossilOrigin-Name: e211c579b2f092e3283edd5fb9add7c5183bac35
2016-11-14 15:28:56 +00:00
drh
48c286fc61 Fix harmless compiler warnings in test code for MSVC.
FossilOrigin-Name: 7b76be4117f4e57091b03fafcf42d17bce81160d
2016-11-11 20:37:27 +00:00
drh
66adb0a848 Avoid storing redundant fields in sorter records when the sort-key
and data have fields in common.

FossilOrigin-Name: b835cf3e507b910b6a3e0f802ce2c40a72d0c227
2016-11-11 19:08:00 +00:00
dan
04cd7aa373 Merge trunk with this branch.
FossilOrigin-Name: dd62d2de6eb12dc1902d6df050c395b1dcac01b4
2016-11-11 18:45:55 +00:00
drh
d95ef5cb5a 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
2016-11-11 18:19:05 +00:00
dan
9af90b7231 Reenable the SQLITE_EXPR_REF optimization for "SELECT DISTINCT ... ORDER BY"
queries.

FossilOrigin-Name: 6e2e9d383f5fc4a0cbf05fe83ec7425812c0f556
2016-11-11 18:08:59 +00:00
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
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
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
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
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
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
54fc5cc2ae Add an assert() to silence a coverity false-positive.
FossilOrigin-Name: 97354093bceff28714a605068851cfa026c8272a
2016-11-04 11:23:30 +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
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
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
b40897ab5e 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
2016-10-26 15:46:09 +00:00
dan
5c35e90377 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
2016-10-26 12:15:41 +00:00
drh
7ad3eb63cf Performance optimization in moveToRoot(). Avoid repeated validity checking of
the root page on each call. Once is enough.

FossilOrigin-Name: 98795c2dd9a6d8fa8d49a9f5c36cdf824cae7246
2016-10-24 01:01:09 +00:00
dan
e43635aaa7 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
2016-10-21 21:21:45 +00:00
drh
41f5f6ec2c Add ".mode quote" to the command-line shell.
FossilOrigin-Name: c4f5fa78cd8207ce1e46e32e632b8f6ee86047e1
2016-10-21 17:39:30 +00:00
dan
e24452edef 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
2016-10-21 10:49:39 +00:00
dan
ceb97c1107 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
2016-10-21 10:09:22 +00:00
drh
c3191d236a Minor simplification of the comparison opcodes.
FossilOrigin-Name: 56474ebca3fdddb8f3c5156f06dc42dc0a65256c
2016-10-18 16:36:15 +00:00
dan
1480095ff5 Changes to support interrupting a checkpoint using sqlite3_interrupt().
FossilOrigin-Name: c88d36e251abec24aa7e37cf550e148904b9fd2d
2016-10-17 15:28:39 +00:00