1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-16 23:02:26 +03:00
Commit Graph

13138 Commits

Author SHA1 Message Date
dan
3e6ac1643c Experimental integration of schemalint functionality with the shell tool. Does not work yet.
FossilOrigin-Name: ed49f297bcee86674ed673e195610b8cc1d35647
2016-02-11 21:01:16 +00:00
drh
c41c132cf0 Minor simplifications deferred to the next release.
FossilOrigin-Name: a863729ccb75a56330460d3b7d558e639ad733d1
2016-02-11 13:30:36 +00:00
drh
05723a9e3c Add testcase() macros to the CHECK constraint avoidance logic. Avoid creating
an unused VDBE label during CHECK constraint code generation.

FossilOrigin-Name: 970881befd5da6cc837c474d6e917de0bf029350
2016-02-10 19:10:50 +00:00
drh
98bfa16db2 Fix to previous check-in: Make sure CHECK constraints involving the ROWID
are not ignored when the ROWID changes.

FossilOrigin-Name: 7782cb1dd5914b867caf5ff2f0f837407abbfd7a
2016-02-10 18:24:05 +00:00
drh
2a0b527b37 Omit unnecessary CHECK constraints in UPDATE statements, when none of the
columns referenced in the CHECK constraint are modified.

FossilOrigin-Name: 02fbdbc782dd98f080bf4482d820f36c0ef3d519
2016-02-10 16:52:24 +00:00
drh
bdb00225ab Omit NOT NULL checks on unchanging columns in an UPDATE.
FossilOrigin-Name: 6a3aaedfb41735996470abbae6d3cd1be1f508b3
2016-02-10 16:03:20 +00:00
mistachkin
6d94555914 In the shell, use the appropriate string constant instead of a literal new-line.
FossilOrigin-Name: 61951b153d47096f30ebc8b84af408d9d709637c
2016-02-09 20:31:50 +00:00
drh
87a24aa1ca Improved auto-detection of EXPLAIN output in the shell.
FossilOrigin-Name: 6c6d7a6e89e67cdb0813d3eebb869aafb43d43ed
2016-02-09 20:04:07 +00:00
drh
700c252a72 Add auto-explain mode to the command-line shell. Default on. Auto-explain
tries to automatically detect EXPLAIN queries and format them appropriately.

FossilOrigin-Name: 1d62aa6b315df47cafb33da7ca79d3386a2fdd48
2016-02-09 18:39:25 +00:00
drh
bbde018230 Code simplification: ALTER TABLE ADD COLUMN always upgrades the file_format
to 4 if is not there already.  No need to upgrade to only 2 or 3 since format
4 has now been supported for over 10 years.

FossilOrigin-Name: e1d8ec85546caeca3bb7a05ad962a2aed91194ce
2016-02-09 16:09:22 +00:00
drh
1a606f8246 Merge enhancements and fixes from trunk.
FossilOrigin-Name: f040a5bb62f3473fba6450c97c68f538d1df21ef
2016-02-09 15:44:18 +00:00
dan
02e4f27146 Merge latest trunk changes with this branch.
FossilOrigin-Name: 1a4182eedd0143c3f71b3d97f1d1bb25adeba617
2016-02-09 15:10:56 +00:00
drh
2fade2f791 Make sure every co-routines has its own set of temporary registers and does
not share temporaries, since a co-routine might expect the content of a
temporary register to be preserved across an OP_Yield.
Proposed fix for ticket [d06a25c84454a].

FossilOrigin-Name: ca72be8618e5d466d6f35819ca8bbd2b84269959
2016-02-09 02:12:20 +00:00
dan
e064c4066c Disable the two-argument form of the fts3_tokenizer() SQL function unless the library is built with -DSQLITE_ENABLE_FTS3_TOKENIZER.
FossilOrigin-Name: e0eb217aca7e4aadf9c44ed20822b78139f7c83c
2016-02-08 19:40:17 +00:00
drh
e96f361995 Changes to help the tokenizer run about 33% faster.
FossilOrigin-Name: a050e6f096d40aa5b6275797b96e62c228044f5a
2016-02-08 19:36:46 +00:00
drh
34dcee6544 Add code to get the tokenizer character-class logic working for EBCDIC.
FossilOrigin-Name: 04f7da77c13925c1f1e287f4579bb85518297d81
2016-02-08 19:15:48 +00:00
drh
8974331fc3 Demonstrate a much faster sqlite3GetToken() routine by using a lookup table
to map initial token characters into a character class.  This check-in does
not work for EBCDIC.  More optimization needed.

FossilOrigin-Name: 9115baa1919584dc8ca25bbff54d3b65748a9631
2016-02-08 02:30:50 +00:00
drh
cc5f8a46b9 Add a utility program that looks for assert(), NEVER(), ALWAYS(), and
testcase() macros that have side-effects, and reports errors when they are
found.  Also fix a bug that this utility detected as it was being tested.

FossilOrigin-Name: b0b4624fc5d53bb0cc9fae7dad51984837d946ac
2016-02-06 22:32:06 +00:00
drh
f5818aa560 Make sure variable declarations occur at the beginning of blocks, even
with SQLITE_DEBUG enabled.

FossilOrigin-Name: 2f7778e64d93ef237e23ceac01ea9808df5cf2a1
2016-02-06 19:48:50 +00:00
pdr
bb3da060e3 Fix an assert() to have a test instead of a side effect
FossilOrigin-Name: a2952231ac7abe165ed070875728f752ae0be608
2016-02-06 14:14:43 +00:00
drh
0ac7cfaf99 Merge enhancements from trunk.
FossilOrigin-Name: a533608cb0de3cbc1e28a794aab99864b8c249f4
2016-02-05 14:15:34 +00:00
drh
575fad6500 Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority
cases where db is guaranteed to be not NULL.

FossilOrigin-Name: 0a802e96ab06e2643834b83671fa8353da1a348d
2016-02-05 13:38:36 +00:00
drh
98c7a12c00 OOM failures on sqlite3_errmsg16() in an app-defined function are no longer
benign.

FossilOrigin-Name: 9efb223f4ce8ccc00515f8f016f7c494c9ae5096
2016-02-05 04:50:27 +00:00
drh
17a936f84a Minor simplification of schema error reporting.
FossilOrigin-Name: a8846aeed9992c6c9f1c8bd6e996a4cbe891751e
2016-02-05 02:50:11 +00:00
drh
b84e574c89 Further performance improvements that fall out of the mallocFailed changes.
FossilOrigin-Name: d94416ddca8f7ed727dd335d38155ea5945a86b7
2016-02-05 02:42:54 +00:00
drh
4a642b6060 Improvements to the way that OOM errors are processed.
FossilOrigin-Name: c3ef03478a5788c855b3aef385d43ae7f494f440
2016-02-05 01:55:27 +00:00
drh
e514f651d0 Temporarily back out the 0.5% performance improvement from
check-in [632071bac5ff32].  Need a more elaborate solution that works
with reentrant virtual tables and SQL functions.

FossilOrigin-Name: 42736fb0adc82a0fb692850ff3dd3f9b501cbf1f
2016-02-04 19:50:33 +00:00
drh
4df86af329 Remove unnecessary sets of db->mallocFailed.
FossilOrigin-Name: b787165b25a240fd5b4a5c7f73b395f30213a1d7
2016-02-04 11:48:00 +00:00
drh
6d258995e6 Refinements to synchronous logic:
(1) Use PAGER_SYNCHRONOUS_FULL rather than the corresponding magic number.
(2) Honor SQLITE_NO_SYNC on xDelete calls with sync
(3) Count xDelete syncs during testing
(4) Fix #ifs on SQLITE_EXTRA_DURABLE so that directory syncs on journal
unlink are off by default.

FossilOrigin-Name: e3157cb5ad0d22758e766a95fb1463a7810f7d7f
2016-02-04 09:48:12 +00:00
drh
fabe393da8 In the VDBE loop, only check for OOM errors at jumps rather than after every
opcode, for about a 0.5% performance increase.

FossilOrigin-Name: 632071bac5ff324a74cec9bdbba2deb60c0945e9
2016-02-03 22:14:38 +00:00
drh
19d720d3a7 Fix markup errors in comments used to generate the documentation - specifically
in the documentation on the OP_Seek opcode.

FossilOrigin-Name: ef252bc4b59d272460aaebdc0d4b8e347b0d25a8
2016-02-03 19:52:06 +00:00
drh
6841b1cb3d Add "PRAGMA synchronous=EXTRA" which syncs the directory containing the
rollback journal when the rollback journal is deleted in order to commit a 
transaction in DELETE mode.

FossilOrigin-Name: af92401826f5cf49e62c278f344ab75252a18da2
2016-02-03 19:20:15 +00:00
drh
1b32554b80 Enhance the internal sqlite3VdbeAddOpList() interface to automatically update
jump destinations.  Use this feature to simplify the AUTOINCREMENT code
generator.

FossilOrigin-Name: ae8b9d2edf1b5aef6108e729754911db7682b6a3
2016-02-03 01:55:44 +00:00
drh
33c1eb6477 Merge all recent enhancements from trunk.
FossilOrigin-Name: f3f9200115caf4b356f90ec97c351d1afbcb9bf6
2016-02-02 02:22:30 +00:00
drh
b8db549832 Enhance the comment on the sqlite3_index_constraint object to bring attention
to the fact than iColumn field can be negative for a rowid.

FossilOrigin-Name: d8b7b1996eefae7768bfcb82d4ff22c69392aa63
2016-02-02 02:04:21 +00:00
drh
1861afcdbb Change the OP_SetCookie instruction to write the literal P3 value, not the
value in register P3.

FossilOrigin-Name: 6d7d4703ebf3754bec74123d5ba7e861a705f90f
2016-02-01 21:48:34 +00:00
drh
ed94af5eb9 Number VDBE opcodes starting with 0 instead of 1, as this obviates the
lower-bound test on "switch(opcode){...}", making the code smaller and faster.

FossilOrigin-Name: 4c9222f75bfac47f5422fff86b2d69a61933b3a2
2016-02-01 17:20:08 +00:00
dan
cddb6ba03b Fix a problem causing the OR/covering-index optimization to be disabled if compile time parameter SQLITE_MAX_ATTACHED were set to greater than 30.
FossilOrigin-Name: a17712bf8d98dd485560f434a5350e6381cf1411
2016-02-01 13:58:56 +00:00
drh
b0c886510f Minor simplification to the OP_AutoCommit opcode. Fix some code comments
related to transaction control.

FossilOrigin-Name: a9b6a0672f84dd205f9333951e4c2a608d027d71
2016-02-01 13:21:13 +00:00
drh
38bace84cd Fix an assert() that might fail on a corrupt database.
FossilOrigin-Name: 22eaced7274764eaf7ab4b5fc52cc2fcfc285708
2016-02-01 00:21:08 +00:00
drh
784c1b93fb Merge the implementation of OP_IdxRowid and OP_Seek so that OP_Seek no longer
requires the rowid register and a separate OP_IdxRowid call.  Shorter and
faster prepared statements result.

FossilOrigin-Name: 9bec50a1e7796a6e038db9b1cc7cc1e7e350bf74
2016-01-30 16:59:56 +00:00
dan
5b6c8e4e1d A different way to clear the subtype on VDBE registers when the value of the register is overwritten with new content. To fix [[f45ac567eaa9f93].
FossilOrigin-Name: 2e9fb1295cd31fc29c97444c3dec82fef68e939f
2016-01-30 15:46:03 +00:00
drh
af30fdf6ed Output subtype information on register traces for PRAGMA vdbe_trace.
FossilOrigin-Name: 96b780209cc95c3f3769bb880591380d94bfe38d
2016-01-30 14:17:10 +00:00
drh
4b09ec6e11 Add the BTREE_FORDELETE and BTREE_AUXDELETE flags to the b-tree layer interface
and use them.  Add assert() statement to verify that they are correct.

FossilOrigin-Name: 85c467041c9378cae3038756da815e9117ee8c7d
2016-01-30 13:32:30 +00:00
drh
5f4a686f8c Simplification and size reduction to the printf logic. Remove the bFlags
parameter from sqlite3VXPrintf() and sqlite3XPrintf().  Use sqlite3XPrintf()
instead of sqlite3_snprintf() for rendering P4 values in EXPLAIN output.

FossilOrigin-Name: 0bdb41c45aa1cc8e5c136aaa6605d54b401483bd
2016-01-30 12:50:25 +00:00
drh
b17020265b Change the P4_INTARRAY so that always begins with a length integer. Print
the content of the INTARRAY on EXPLAIN output.

FossilOrigin-Name: 6c520d5726e80b4251338c43c405270d150ea81e
2016-01-30 00:45:18 +00:00
drh
945d302215 Different comment on the alternative cursor fields of VdbeCursor.
FossilOrigin-Name: 6e3dcb6d7d960bb513d9a4a002b6cf5ab7159686
2016-01-29 20:58:40 +00:00
dan
de892d9660 Experimental attempt to make better use of covering indexes within OR queries.
FossilOrigin-Name: a323ac3a9d42bd5cb38d724c7e1180584b91054c
2016-01-29 19:29:45 +00:00
dan
83f0ab8087 Prepend "rc!=SQLITE_OK || " to the nExtraDelete assert() condition.
FossilOrigin-Name: 2a055ed0afd56e8c6b17cfc31e7808debe9ec765
2016-01-29 18:04:31 +00:00
drh
3b83f0cd8f Avoid unnecessary WHERE clause term tests when coding a join where one
of the tables contains a OR constraint.

FossilOrigin-Name: ab94603974a0ad5342e5aee27603162652e70492
2016-01-29 16:57:06 +00:00