]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Wed, 3 May 2017 12:50:46 +0000 (12:50 +0000)]
drh [Wed, 3 May 2017 12:15:20 +0000 (12:15 +0000)]
In sqlite3expert.c, do not copy the schema for virtual tables. Updates to
makefiles to make building easier.
FossilOrigin-Name:
da15752dccf6090e40ec825db89048eca2b30185882225bf81f1891e914c2e7f
drh [Tue, 2 May 2017 20:42:30 +0000 (20:42 +0000)]
In the sqlite3_expert command-line tool, allow two-dash options. Do not
accept the database name if it begins with "-".
FossilOrigin-Name:
af7d1596044980e0a18baa3ab6674779724dffbf18a152c72e53f11a08999e68
drh [Tue, 2 May 2017 19:45:14 +0000 (19:45 +0000)]
drh [Tue, 2 May 2017 18:00:31 +0000 (18:00 +0000)]
Fix the fts3EvalAverageDocsize() routine so that it returns errors from
sqlite3_reset() rather than always returning SQLITE_OK.
FossilOrigin-Name:
430f539cbb3f806fb89191e0b759a5f8b49d9e5b6c95fe9a4b55a1aa0875762a
drh [Tue, 2 May 2017 17:54:19 +0000 (17:54 +0000)]
Reuse the same materialization of a view when that view appears in a query
more than once, such as in a self-join.
FossilOrigin-Name:
9e35c89dbe744312f612e507b51ff9a5bb656def75392d25bc19fc638548cd1e
drh [Tue, 2 May 2017 16:55:07 +0000 (16:55 +0000)]
Move terms of the HAVING clause that reference only columns in the GROUP BY
clause over to the WHERE clause, resulting in a faster query plan.
FossilOrigin-Name:
47cbb471d056c8e1834a5ca72491404a3bfb273b5ff7bdd84b98d263938ea874
drh [Tue, 2 May 2017 16:46:41 +0000 (16:46 +0000)]
Additional comments on the sqlite3ExprIsConstantOrGroupBy() routine. No
code changes.
FossilOrigin-Name:
8424492eac506866d2918e5fe03c8f65fef960215d56012a3b52ed42789ed35a
mistachkin [Tue, 2 May 2017 01:30:44 +0000 (01:30 +0000)]
drh [Mon, 1 May 2017 19:53:12 +0000 (19:53 +0000)]
dan [Mon, 1 May 2017 18:24:01 +0000 (18:24 +0000)]
Enhance "PRAGMA integrity_check" to detect duplicate rowids within a leaf
page.
FossilOrigin-Name:
adcad37b001d255299be716b16003b56ec1fba349ef73261ee0e543186c4f311
dan [Mon, 1 May 2017 18:12:56 +0000 (18:12 +0000)]
Clear the BTCF_ValidNKey flag set if a cursor is moved by
sqlite3BtreeInsert(). Fix for [
f68dc596c4 ].
FossilOrigin-Name:
a6727eef6d757a39ad23e5c8cbe960f5d909e5d37cb4e90bc3bdbb8bf58cd6f8
drh [Mon, 1 May 2017 17:04:35 +0000 (17:04 +0000)]
Futher bug fixes to the function that determines when a materialized view
can be reused.
FossilOrigin-Name:
c64fe3a1695925693385d313e9ad2a1d8cb37ddaa8cc19920ae0978c91bc4c2c
drh [Mon, 1 May 2017 16:37:20 +0000 (16:37 +0000)]
Minor bug fixes and performance enhancement.
FossilOrigin-Name:
b2aae559581d05e4e8caaddfbd137cb275d582e82d58872c6f42e462dc859b1c
drh [Mon, 1 May 2017 15:15:41 +0000 (15:15 +0000)]
Initial implementation of an optimization that attempts to reuse the same
materialization of a view on a self-join of the view.
FossilOrigin-Name:
478c34b9a8b5127d13024e10307aa832f160b89720c46424dd17555bd36f590d
dan [Mon, 1 May 2017 14:25:34 +0000 (14:25 +0000)]
Update this branch with latest trunk changes.
FossilOrigin-Name:
11f4761c3a84e2cc9df62f117a003af8c57f3d226eec5a40d6241b121e78d002
dan [Mon, 1 May 2017 14:09:32 +0000 (14:09 +0000)]
Add extra tests for the optimization on this branch.
FossilOrigin-Name:
4921cd9520080f9baff70e548f64a56e2204b398b8397a2d318a98c32ec4b00c
dan [Sat, 29 Apr 2017 20:53:09 +0000 (20:53 +0000)]
Automatically transfer terms from the HAVING clause to the WHERE clause of an
aggregate query in cases where the result of evaluating the term depends only
one one or more of the GROUP BY expressions (and on no other inputs).
FossilOrigin-Name:
5375a3ce56f1d993b13b469fe33ec7679948f53940f62a15ddbaeb8aaa26a22c
drh [Sat, 29 Apr 2017 19:29:49 +0000 (19:29 +0000)]
Add a single testcase() macro to the subquery processing logic.
FossilOrigin-Name:
4e1df76e3d85922648e0e1cce73a266c3b1ed4511ace259ec0a01d7693af9e6f
drh [Sat, 29 Apr 2017 18:02:49 +0000 (18:02 +0000)]
Improvements to opcode documentation in the bytecode engine.
No changes to code.
FossilOrigin-Name:
e54c9f8db5b2fa8ea82c6eab7482255431af16901f7992c9667b56a0e50a9f4f
drh [Sat, 29 Apr 2017 15:27:04 +0000 (15:27 +0000)]
Evaluate WHERE clause terms that reference only the index before evaluating
terms that require the table, and thereby avoid seeking the table row if
index terms are false.
This is called the "push-down" optimization in the MySQL world, we are told.
FossilOrigin-Name:
d7bb79ed3a40419d143fbe35c310e51fe7b384a22f082a61ad788671d2d33ee0
drh [Sat, 29 Apr 2017 14:56:55 +0000 (14:56 +0000)]
Minor size and performance improvements to the push-down optimization.
FossilOrigin-Name:
91dfb61a1a25763bb0b5c1e353a9d584bc6de3f6eb445f54202ffe7f6fee6e8d
dan [Fri, 28 Apr 2017 19:59:55 +0000 (19:59 +0000)]
Within a loop that uses a non-covering index test, test non-indexed terms that
can be tested without seeking the main table cursor before those that cannot.
FossilOrigin-Name:
afe68f0a8060dc5c92cb1fb32a9f22bd36140cd2c0bb5b6cea853e169c5ed444
dan [Wed, 26 Apr 2017 17:21:33 +0000 (17:21 +0000)]
dan [Wed, 26 Apr 2017 14:34:04 +0000 (14:34 +0000)]
Replace <fts5.h> with "fts5.h" in test file fts5_test_tok.c.
FossilOrigin-Name:
63d9ca5c7392e1efe3330689fe750310a952287e843b3242178724e8561fae0e
drh [Wed, 26 Apr 2017 04:32:17 +0000 (04:32 +0000)]
Fix a subtle bug in Lemon discovered and reported on the mailing list
by Kelvin Sherlock, who also suggested the correct fix.
FossilOrigin-Name:
304689f8acb53d68e1afed6e6c4332e78132e3d57071b8f94df0d13515b3b3d8
dan [Mon, 24 Apr 2017 14:16:55 +0000 (14:16 +0000)]
When building an ephemeral table of integers, do not assume that the table
does not already contain N if the insert cursor points to N-1. Fix for ticket
[
61fe9745 ].
FossilOrigin-Name:
1c1b0862236f564283be08338790d6494e705f1198547a59499e3f8c07f2cd99
drh [Sat, 22 Apr 2017 00:20:49 +0000 (00:20 +0000)]
dan [Fri, 21 Apr 2017 19:58:35 +0000 (19:58 +0000)]
dan [Fri, 21 Apr 2017 19:56:53 +0000 (19:56 +0000)]
Fix formatting errors in the previous commit.
FossilOrigin-Name:
da9a2e5aa977f7e8e9e4365f7b34bb4f482029a3d44646100773cedc8ea9b959
dan [Fri, 21 Apr 2017 19:53:39 +0000 (19:53 +0000)]
Update the README.md file in the ext/expert/ directory.
FossilOrigin-Name:
3b2ff4e0692dfca395d4523b7d5cd0dfd5c319c1072a2a873631fa477cee0b79
dan [Fri, 21 Apr 2017 17:03:32 +0000 (17:03 +0000)]
Remove a NEVER macro for a condition that may be true as of [
a47efb7c ].
Problem reported by OSSFuzz.
FossilOrigin-Name:
bdc50d8d127266d02b291f6bfcd4e35eb07994ce23987d6e3921124cd881929a
dan [Fri, 21 Apr 2017 16:04:18 +0000 (16:04 +0000)]
Fix an FTS5 bug that could cause a prefix-query without a prefix-index on a
database that contains delete-markers to return extra, non-matching, rows.
FossilOrigin-Name:
840042cb2bed2924e2263f21887317f661e5a585c4466c3af25b91ed57a6b49b
dan [Thu, 20 Apr 2017 17:35:46 +0000 (17:35 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
b1533bc455f52f570c0f4b8aaa0da802757dc89b0e45b9a9b31aa591a44bf7bd
dan [Thu, 20 Apr 2017 17:03:32 +0000 (17:03 +0000)]
Avoid creating a temp table in the user database in the sqlite3_expert code.
FossilOrigin-Name:
4e366996434e63f06cc451d2011f1f1464360f03430b8260e48f78a612b4e9d6
dan [Thu, 20 Apr 2017 16:43:32 +0000 (16:43 +0000)]
Speed this branch up a bit by filtering before the virtual table layer when
sampling user data.
FossilOrigin-Name:
8e57c31340dd9ffc457da63c5996fb1b573f8154f864ec2b52c15f399906ac8b
dan [Thu, 20 Apr 2017 16:18:43 +0000 (16:18 +0000)]
Avoid adding INTEGER PRIMARY KEY columns to candidate indexes.
FossilOrigin-Name:
4577fea5cd9d91ea241e9be82797ca1a4447f536e1e4b78a4a569aeb52e78fcb
dan [Thu, 20 Apr 2017 16:08:33 +0000 (16:08 +0000)]
Avoid creating a temp table in the user database in the sqlite3_expert code.
Trouble is, this makes sampling for stat1 data much slower.
FossilOrigin-Name:
c62e358243d96cb38a7ce2aa679fc640b62bf46080eab4bd5fc2acf5997d6cd5
dan [Thu, 20 Apr 2017 09:54:04 +0000 (09:54 +0000)]
Add an option to generate stat1 data based on a subset of the user database
table contents to sqlite3_expert.
FossilOrigin-Name:
c69c3e21db6e141f7e24226c6432f2ed31fe5f177bd23781915871f8600ee56a
dan [Wed, 19 Apr 2017 13:25:45 +0000 (13:25 +0000)]
Further improvements to coverage of fts3 module.
FossilOrigin-Name:
6b21d0fdebdccfaf63590d9ca9a279c22b8baec07c1a669b9f617f25bd857384
dan [Wed, 19 Apr 2017 07:33:52 +0000 (07:33 +0000)]
Further modifications and test cases to improve test coverage of fts3.
FossilOrigin-Name:
ea8a0d2ce0cb1ca3f4f18c72fb780d1c26792799acc87e6726f9eaccf2f178bf
dan [Tue, 18 Apr 2017 20:10:16 +0000 (20:10 +0000)]
Have sqlite3_expert_analyze() populate the sqlite_stat1 table before running
queries through the planner for the second time.
FossilOrigin-Name:
a157fcfde5afc27ae38e7cf4669fcc8e60e23d9d301ffe2e541dd69f895b493b
dan [Tue, 18 Apr 2017 13:50:00 +0000 (13:50 +0000)]
Use sqlite3_table_column_metadata() instead of a SELECT statement to check for
the existence of a %_stat table in fts3. This leads to smaller and easier to
test code.
FossilOrigin-Name:
dc2a48020a3c856a8b4cfa2309c290f0508b991e92cc0e4de680d19aae7872fc
drh [Tue, 18 Apr 2017 11:20:19 +0000 (11:20 +0000)]
Improved optimizations of views as the right operand of a LEFT JOIN.
FossilOrigin-Name:
41c27bc0ff1d3135cdb6273ede4595f5bb0c0e1e1d470ea1633cb525674cf431
dan [Tue, 18 Apr 2017 09:04:48 +0000 (09:04 +0000)]
Fix sqlite3_expert handling of triggers on views.
FossilOrigin-Name:
ff4976da667872614331d88e68fb67d347874f164a1c7950dd738c7c2320b954
dan [Tue, 18 Apr 2017 05:49:23 +0000 (05:49 +0000)]
Refactor the fts3ColumnMethod() function so that all branches can be covered.
FossilOrigin-Name:
e47fdb493bd76d85f6f05771ee7a0b3ee31b1eb05839a60d2bdb47149ac692d8
drh [Mon, 17 Apr 2017 23:23:17 +0000 (23:23 +0000)]
Defer checking for null in the comparison operators, since that is an
uncommon case.
FossilOrigin-Name:
5684525613961fed9db6a4d10dbe25521201b24f08e011df3a20ac895316957d
drh [Mon, 17 Apr 2017 20:50:34 +0000 (20:50 +0000)]
Do not allow a Mem object to be both NULL and some other type at the same time.
FossilOrigin-Name:
e698db1956bb3aba32cd3ec633ec20f5d19b1a10bc68d3772903bca3c87ee158
dan [Mon, 17 Apr 2017 18:42:33 +0000 (18:42 +0000)]
Consolidate two branches of code in the "PRAGMA foreign_key_check"
implementation.
FossilOrigin-Name:
69f51f838abcf57b35e41f7a10fbb45f56536f93825aac865debc3c8315930be
dan [Mon, 17 Apr 2017 18:02:41 +0000 (18:02 +0000)]
Fix a problem in "PRAGMA foreign_key_check" in handling a WITHOUT ROWID child
table with an INTEGER PRIMARY KEY parent key. Also, if an FK violation is
detected in a WITHOUT ROWID child table, do not try to read and return the
rowid. The third column returned by "PRAGMA foreign_key_check" in this case
(WITHOUT ROWID child table) is now always set to NULL.
FossilOrigin-Name:
690870bd7b2e607b7992c4496c9f08c29eb72a36af002c606fd7aa3dcf94a2a4
dan [Mon, 17 Apr 2017 17:03:08 +0000 (17:03 +0000)]
Add support for analyzing trigger programs to the sqlite3_expert code.
FossilOrigin-Name:
159e8022a9d6701532b8b60e0c41154bc434c1bbdb107c8c97a78fb1140fa745
dan [Mon, 17 Apr 2017 16:07:25 +0000 (16:07 +0000)]
Further improvements to test coverage in fts3.
FossilOrigin-Name:
352413eed469802665e7d2c17b7fe6e3a0b0b2209ce45bdc85fd4243cec50ea6
dan [Mon, 17 Apr 2017 13:38:09 +0000 (13:38 +0000)]
drh [Mon, 17 Apr 2017 13:18:42 +0000 (13:18 +0000)]
Fix the ".column" output mode in the command-line shell so that it correctly
counts and formats multi-byte UTF characters.
FossilOrigin-Name:
f508aff8d1782abdff4d03726ae098607a0ee6cfd2e35b130097ee5043e98960
drh [Sun, 16 Apr 2017 22:41:49 +0000 (22:41 +0000)]
In the showwal command-line tool, for unix builds, if the
auxiliary argument is of
the form "Ntruncate" where "N" is a frame number, then truncate the WAL
file after the N-th frame.
FossilOrigin-Name:
90015df30655d884ecf7ae61e588824696954252dc6b1a5f78cf2de8cb236104
drh [Sun, 16 Apr 2017 22:08:31 +0000 (22:08 +0000)]
Add the anycollseq.c loadable extension in etc/misc
FossilOrigin-Name:
d7b9813cb17615c3d00afd6994a4309d6d48c8e924b6cd813c543e1fa65c7719
dan [Sat, 15 Apr 2017 16:52:12 +0000 (16:52 +0000)]
Fix problems with handling constraints on the rowid column in sqlite3expert.c.
FossilOrigin-Name:
2e6308798ae2db30564deb35ba3896597448edabbcac6efc4ff084552e42de30
dan [Sat, 15 Apr 2017 15:47:19 +0000 (15:47 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
2d0c458e013cb2d02fbeabed8dabd66f55141aac194611f0e599b3c95af1964f
dan [Sat, 15 Apr 2017 14:30:01 +0000 (14:30 +0000)]
Add header comment for sqlite3_vtab_collation().
FossilOrigin-Name:
d238694ca445ccb4eeb3e3269a5f872f998f795945d0f9dd95c11d0e42d4d538
dan [Sat, 15 Apr 2017 14:16:04 +0000 (14:16 +0000)]
Fix memory leaks in the code on this branch. Make use of the
sqlite3_index_constraint.usage field. Do not try to handle ORDER BY terms with
explicit COLLATE clauses - they don't get passed to the vtab layer anyway.
FossilOrigin-Name:
0cd75a872c89958a7f418720a0e8c6f638f8284c488f666015c19136feae6be8
drh [Sat, 15 Apr 2017 11:53:47 +0000 (11:53 +0000)]
In the skip-ahead-distinct optimization, fix a bug in the logic that determines
when to invoke the optimization based on sqlite_stat1 statistics.
FossilOrigin-Name:
89f9e4363aa19f306e55f749c442eae2f8994f6a47c65e645a79b308b450d5e5
drh [Fri, 14 Apr 2017 22:41:27 +0000 (22:41 +0000)]
Fix to the decision logic for when to use the skip-ahead-distinct optimization.
FossilOrigin-Name:
e50fd48969f99bc988389c53ff46714603b1d11de12c71b55c00cbee037f073c
drh [Fri, 14 Apr 2017 19:46:12 +0000 (19:46 +0000)]
drh [Fri, 14 Apr 2017 19:44:15 +0000 (19:44 +0000)]
Fix some left-over K&R-C constructs in lemon.c. No changes to the core.
FossilOrigin-Name:
a53799059d4ece246610b6c877ab7088ded3548cbca7149a03deea8ac0e27e68
dan [Fri, 14 Apr 2017 19:41:37 +0000 (19:41 +0000)]
Modify the code in ext/expert/ to use the vtab interface instead of
sqlite3_whereinfo_hook(). Remove sqlite3_whereinfo_hook().
FossilOrigin-Name:
3bb6585004090dbf92dd5e9abdf0fd2c921e64b5b3121c4fb7446db764ab59e5
drh [Fri, 14 Apr 2017 19:03:10 +0000 (19:03 +0000)]
Add the TK_IF_NULL_ROW opcode to deal with non-NULL result columns in the
result set of a view or subquery on the RHS of a LEFT JOIN that gets flattened.
FossilOrigin-Name:
3a5860d86fadcf924316707918bf283d26c53b1473e5e67f5cff59d18c2a7742
drh [Fri, 14 Apr 2017 17:30:43 +0000 (17:30 +0000)]
When doing a DISTINCT query using an index, try to use the index to skip ahead
to the next distinct element, rather than doing a full scan of the index.
(This is the "skip-ahead-distinct" optimization.)
FossilOrigin-Name:
f489b5bb6b35665befdd411c2c55df5258e83cba265d8c4427ba22529cf882a4
drh [Fri, 14 Apr 2017 17:18:45 +0000 (17:18 +0000)]
An initial attempt to optimize VIEWs that occur as the right operand of a
LEFT JOIN. This particular check-in does not work correctly because it does
not deal with the case of columns in the VIEW that return non-NULL even when
all columns in the table of the VIEW are NULL because of the LEFT JOIN.
FossilOrigin-Name:
1838a59c8a1c151bd6fc822b0ffef661803cf0e4704c917e74a04567b81740b9
mistachkin [Fri, 14 Apr 2017 14:50:34 +0000 (14:50 +0000)]
Make USE_FULLWARN=1 the default for MSVC and fix harmless compiler warnings.
FossilOrigin-Name:
6bf673767b8e5cedef1acff795cbe524fab8db2525c06424db4e038934a33936
drh [Fri, 14 Apr 2017 14:02:14 +0000 (14:02 +0000)]
Enhance the sqlite3TreeView() display for Expr objects so that it shows
the iRightJoinTable value for Expr nodes that have the EP_FromJoin property.
FossilOrigin-Name:
5159cb8f2bcfb1f7114786ba23082d2b91a26e3a7ddfae75f8bd362792949d5e
drh [Fri, 14 Apr 2017 12:39:37 +0000 (12:39 +0000)]
Simplify the interface to the subst() routines that are part of the
query flattener by collecting common parameters into the SubstContext object
and passing around a pointer to that object.
FossilOrigin-Name:
e651074be28b2077b8a298f513e2e699ceca99164ace9869ea50873c0637fd2e
drh [Fri, 14 Apr 2017 12:27:45 +0000 (12:27 +0000)]
drh [Fri, 14 Apr 2017 00:45:51 +0000 (00:45 +0000)]
drh [Thu, 13 Apr 2017 21:29:02 +0000 (21:29 +0000)]
Fix the skip-ahead-distinct optimization so that it works with indexes that
have repeated columns with different collating sequences.
FossilOrigin-Name:
ce1e2b88777e00a82c04abe5ba35eec81b5f324e462f099cd00b21054f369688
drh [Thu, 13 Apr 2017 19:48:29 +0000 (19:48 +0000)]
Simplification of the skip-ahead-distinct logic. There is still an issue
with handling COLLATE.
FossilOrigin-Name:
57c5173b6376a76013b0611ce9770100bd8c04e80402e35d821d8614709f4795
dan [Thu, 13 Apr 2017 18:33:33 +0000 (18:33 +0000)]
New test cases and minor fixes for the optimization on this branch.
FossilOrigin-Name:
70ac9ea1a6cb2f4906f00f1a04f668e5ba5eeed8d4d0fa4be57a9c9eb0683697
dan [Thu, 13 Apr 2017 16:19:40 +0000 (16:19 +0000)]
Update this branch with latest changes from trunk.
FossilOrigin-Name:
5fcd840cf9b6a5c3ee4ef1e8f92f6c30f96a7899a3d774ee9be8a816916f2c3b
dan [Thu, 13 Apr 2017 15:51:27 +0000 (15:51 +0000)]
Reinstate the SQLITE_API qualifier on the sqlite3_delete_database() method in
test_delete.c. Accidentally removed by the previous commit.
FossilOrigin-Name:
59c70108fd179932ccdd860f93e1cd68b77476d3b1af1af00cf6e378c9984862
dan [Thu, 13 Apr 2017 15:36:47 +0000 (15:36 +0000)]
Update the code in test_delete.c to use the "win32" VFS if SQLITE_OS_WIN is
defined.
FossilOrigin-Name:
fa9bb7b768027677f7e7d5a196ba5b245dfc8d8986ccd101c8dab671bd15719d
drh [Thu, 13 Apr 2017 13:01:59 +0000 (13:01 +0000)]
Only use the skip-ahead-distinct optimization if the index has been analyzed
and we know that a skip-head is likely to skip over at least 11 rows. The
magic number 11 was determined by experimentation.
FossilOrigin-Name:
0cf16decd534bf2d66620c293f8c8987f356305f2d97f8fd12d260bda1571385
dan [Thu, 13 Apr 2017 09:45:21 +0000 (09:45 +0000)]
Allow a user column name to be used on the LHS of a MATCH operator in FTS5.
FossilOrigin-Name:
6f54ffd151b0eca6f9ef57ac54802584a839cfc7373f10c100fc18c855edcc0a
drh [Thu, 13 Apr 2017 01:19:30 +0000 (01:19 +0000)]
Forward port the skip-ahead-distinct branch which was abandoned for some reason
that I do not recall. This port should have been achived by a merge of trunk
into the previous head of skip-ahead-distinct, but that did not work. So I had
to manually "rebase" the changes.
FossilOrigin-Name:
132339a1fb0b9664df4d3eefbed6e77ef100ba95a91dcc622da7bd3fcdfcd6af
drh [Thu, 13 Apr 2017 00:12:32 +0000 (00:12 +0000)]
Fix a regression caused by the fix for ticket [
6c9b5514077fed34551f98e64c09a1 ] -
control characters allowed in JSON.
FossilOrigin-Name:
8e7b611863247a3bf46a96ec4b47d24c0ae0d60c9cee968a1cfd1da157e7c9bb
dan [Wed, 12 Apr 2017 17:50:12 +0000 (17:50 +0000)]
Update fts5 to support "<colset> : ( <expr> )" for column filtering, as well
as "<colset> : NEAR(...)" and "<colset> : <phrase>".
FossilOrigin-Name:
c847543f8bb1376fef52bca72b4191162a32eb7e6c5f0cd1aa0ab116b3183396
drh [Wed, 12 Apr 2017 17:38:24 +0000 (17:38 +0000)]
Improved \n and \r escapes in the ext/misc/dbdump.c utility function. The
implementation of dbdump.c now matches the implementation in the CLI.
FossilOrigin-Name:
f2643315bb41a71eebd79f5d671f9163187e299a52ff8a481186f1e8fa7e5262
dan [Tue, 11 Apr 2017 20:48:30 +0000 (20:48 +0000)]
Avoid updating unaffected indexes on a table as part of an UPDATE that
requires foreign key processing in some cases.
FossilOrigin-Name:
7aae5c0f99aa2fda85654242cfc9e23a0f981d9ce4ab17610d619cd208540b3d
dan [Tue, 11 Apr 2017 19:58:55 +0000 (19:58 +0000)]
Avoid updating unaffected indexes on a table as part of an UPDATE that requires
foreign key processing in some cases.
FossilOrigin-Name:
477bea9ed0dd0fa69896bfd16d9b1d22170cbab784e3279ce65c29c47e032f34
dan [Tue, 11 Apr 2017 19:00:30 +0000 (19:00 +0000)]
Update this branch with latest trunk changes.
FossilOrigin-Name:
0f66a093935100efd731e14aa63b57360ddd517c1ac97edd1ea9a9de95e1f3cc
drh [Tue, 11 Apr 2017 18:55:05 +0000 (18:55 +0000)]
Limit the depth of recursion for valid JSON in the JSON1 extension in order
to avoid using excess stack space in the recursive descent parser.
Fix for ticket [
981329adeef51011052667a9 ].
FossilOrigin-Name:
1f68c184596912d742b50b1ca38252a9e783aacf121619a27b17a7ae9f6df041
dan [Tue, 11 Apr 2017 18:29:14 +0000 (18:29 +0000)]
Fix a formatting issue in the output of the sqlite3_expert program.
FossilOrigin-Name:
cc8c3581060ffef02290b680183e6f6bc9837ba3550e74c8aaabdc7c45edc223
drh [Tue, 11 Apr 2017 18:06:48 +0000 (18:06 +0000)]
Smaller and faster implementation of exprMightBeIndexed().
FossilOrigin-Name:
76cd611d41465fcec61c21520d55172cb236530f38386b7d4a5544ba87de2353
dan [Tue, 11 Apr 2017 17:43:12 +0000 (17:43 +0000)]
Add header comments to the API functions in sqlite3expert.h. Include a list of
all candidate indexes in the report output by the sqlite3_expert program.
FossilOrigin-Name:
0c45c5eb9f0f171b8d7c5f0d2973f9f59915467506cdff1450f3e4b2134a01ca
drh [Tue, 11 Apr 2017 16:44:39 +0000 (16:44 +0000)]
Very slight smaller and faster sqlite3SelectNew()
FossilOrigin-Name:
4143650c4ce32289d2301cdfc69bb10877246420f656bed122886f6803fc956a
drh [Tue, 11 Apr 2017 12:20:54 +0000 (12:20 +0000)]
Add an ALWAYS() around an unreachable condition in sqlite3VdbeMemGrow().
FossilOrigin-Name:
0f3eb61f44c94234ffc14c3a493a27ec62c0d1e2bb62798f36eafa98ddcdc58e
dan [Tue, 11 Apr 2017 11:52:25 +0000 (11:52 +0000)]
Fix a segfault that could occur if an indexed expression was used in a
comparison operation within the result-set of a SELECT statement.
FossilOrigin-Name:
d6bb7c42ff6309ce168ccdcf03b4cdabfccfc9e2a911d254ac7dc4fea4aa2bc1
drh [Tue, 11 Apr 2017 01:30:42 +0000 (01:30 +0000)]
When using an index on an expression, try to use the columns of the index
rather than pulling columns from the table and reevaluating the expression.
FossilOrigin-Name:
a47efb7c8520a01110ce3b3531ebe1bab6720780d67fba001992c44c5807d332
drh [Tue, 11 Apr 2017 01:01:27 +0000 (01:01 +0000)]
Improved comments. Fix a problem when an indexed expression is used in an
ORDER BY clause.
FossilOrigin-Name:
c59eaf2b7cd2596733f349fc0fe979f71fd29bd73152a0c57066e0b69d5b7a4a
drh [Mon, 10 Apr 2017 23:42:04 +0000 (23:42 +0000)]
drh [Mon, 10 Apr 2017 20:51:21 +0000 (20:51 +0000)]
drh [Mon, 10 Apr 2017 20:27:54 +0000 (20:27 +0000)]
Slightly smaller and faster sqlite3VdbeMemGrow().
FossilOrigin-Name:
efd1702ae8da8e0dd3d2ee7bd5a1bd8aeff2b370498e404041fcb406fdaf72e4