]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
8 years agoCache the JSON parse used by json_extract(). auxdata-cache
drh [Thu, 11 May 2017 16:49:59 +0000 (16:49 +0000)] 
Cache the JSON parse used by json_extract().

FossilOrigin-Name: 44ca6c2c4639f3c50ae9233ee299ff0fc4566462c31f28d8676f8de7ffdcd7f0

8 years agoNegative N values in sqlite3_get_auxdata() and sqlite3_set_auxdata() can be
drh [Thu, 11 May 2017 15:20:18 +0000 (15:20 +0000)] 
Negative N values in sqlite3_get_auxdata() and sqlite3_set_auxdata() can be
used to access an auxiliary data cache over all functions in a single prepared
statement.

FossilOrigin-Name: ff5306752e83e760255a10f20168c0f090929a4fee2a5f720dfab36f0ee72fae

8 years agoNew requirements marks and documentation for the authorizer.
drh [Thu, 11 May 2017 13:43:57 +0000 (13:43 +0000)] 
New requirements marks and documentation for the authorizer.

FossilOrigin-Name: 3980ea0911b3ad3f86d7a7bdc6503f233315c274f473e18831e13eda2c238eeb

8 years agoImprovements to the sqlite3_set_authorizer() documentation.
drh [Thu, 11 May 2017 12:27:21 +0000 (12:27 +0000)] 
Improvements to the sqlite3_set_authorizer() documentation.

FossilOrigin-Name: 47629b1911e52445aad8ea969137bddf0019c55b4a4f0de8e77decb6a434c8a2

8 years agoChange the SQLITE_READ authorization call for unreferenced tables to use
drh [Thu, 11 May 2017 12:05:23 +0000 (12:05 +0000)] 
Change the SQLITE_READ authorization call for unreferenced tables to use
an empty string for the column name, as this is less likely to impact legacy
authorization callbacks that assume column names are always non-NULL.

FossilOrigin-Name: 4139953ab528f20fa346409810edcb22adb6c1edc9d22f40b1b077ef842a2441

8 years agoRename fields of the internal AuxData object to make them unique and easier
drh [Wed, 10 May 2017 19:42:52 +0000 (19:42 +0000)] 
Rename fields of the internal AuxData object to make them unique and easier
to search for.

FossilOrigin-Name: 2be9850cef6492e168243807c34af72119ffbe414027a12c4eda6c421b5b950d

8 years agoImproved documentation for the SQLITE_READ authorizer callback. No code changes.
drh [Wed, 10 May 2017 16:33:48 +0000 (16:33 +0000)] 
Improved documentation for the SQLITE_READ authorizer callback. No code changes.

FossilOrigin-Name: 92c5ea7047323d10f762877c5f56d20a3e609e8b55efcfe4880ef3048821ac1f

8 years agoInvoke the SQLITE_READ authorizer callback with a NULL column name for any
drh [Wed, 10 May 2017 16:12:00 +0000 (16:12 +0000)] 
Invoke the SQLITE_READ authorizer callback with a NULL column name for any
table referenced by a query but from when no columns are extracted.

FossilOrigin-Name: 92ab1f7257d2866c69eaaf4cf85990677b911ef425e9c5a36a96978cccfb551c

8 years agoFix a couple of test scripts so that they work with
dan [Wed, 10 May 2017 13:36:04 +0000 (13:36 +0000)] 
Fix a couple of test scripts so that they work with
-DSQLITE_DISABLE_FTS4_DEFERRED builds.

FossilOrigin-Name: 30018d31068f3182d713a6cf09753b27b16a6f912d39a5e6c1363da83bec3125

8 years agoAvoid unnecessary codec operations on in-memory subjournals.
drh [Wed, 10 May 2017 12:58:34 +0000 (12:58 +0000)] 
Avoid unnecessary codec operations on in-memory subjournals.

FossilOrigin-Name: 199b2a84992823b4687588a5ba20bec9c42579887068ac21caf08df3895f41ed

8 years agoDo not invoke codec macros for in-memory subjournals. codecless-inmemory-subjournal
drh [Wed, 10 May 2017 12:49:50 +0000 (12:49 +0000)] 
Do not invoke codec macros for in-memory subjournals.

FossilOrigin-Name: d2bb0066f7c8413ef9992e6b07641cdf40ad260778074bd83cc22dcaba87860b

8 years agoDo not invoke codec macros when reading or writing an in-memory sub-journal.
dan [Mon, 8 May 2017 18:29:36 +0000 (18:29 +0000)] 
Do not invoke codec macros when reading or writing an in-memory sub-journal.

FossilOrigin-Name: 2c145ee6c9e7916f022331453384cbe61ee3654c08a1b88467f85235b5bc18c4

8 years agoFix an obscure assertion fault that can follow an OOM. The problem
drh [Sat, 6 May 2017 18:09:36 +0000 (18:09 +0000)] 
Fix an obscure assertion fault that can follow an OOM.   The problem
was introduced by check-in [a1cf44763277b6c7].

FossilOrigin-Name: 04e7e5650efffdce759b46999beb67c250af6cf394a7779ab861f210a84c134d

8 years agoFix requirements marks and harmless compiler warnings.
drh [Sat, 6 May 2017 17:12:52 +0000 (17:12 +0000)] 
Fix requirements marks and harmless compiler warnings.

FossilOrigin-Name: 198ff4c01d86d193a54745764d69376cab8e94747a4daa444690f7e1ec87800b

8 years agoFix a collision of the "B0" identifier name between the termios.h header
drh [Thu, 4 May 2017 11:13:50 +0000 (11:13 +0000)] 
Fix a collision of the "B0" identifier name between the termios.h header
file and the SHA3 implementation in the shell.

FossilOrigin-Name: b9a58daca80a815e87e541cb5fff9bc8b93f131d223f322c5b83dd5a5f0c0312

8 years agoRemove the unused "sqlite3_stack_used" TCL command from the test harness.
drh [Wed, 3 May 2017 19:36:50 +0000 (19:36 +0000)] 
Remove the unused "sqlite3_stack_used" TCL command from the test harness.

FossilOrigin-Name: e24b73820cdca07eee87853fe6dd9f60d76e039eeb4aebef03654db3c7c94f14

8 years agoFix the sqlite3GetInt32() function so that it correctly returns 0 on a
drh [Wed, 3 May 2017 17:44:28 +0000 (17:44 +0000)] 
Fix the sqlite3GetInt32() function so that it correctly returns 0 on a
zero-length input string.

FossilOrigin-Name: 05eba9e3a5f9bb2a40af1dacd885e1915fbcd20b9af4cf0eed79ac16dbeba31b

8 years agoAlways enable URI filenames when compiling with SQLITE_HAS_CODEC. Also allow
drh [Wed, 3 May 2017 15:54:53 +0000 (15:54 +0000)] 
Always enable URI filenames when compiling with SQLITE_HAS_CODEC.  Also allow
plaintext keys using the key= query parameter.

FossilOrigin-Name: 31a51b4d168065fa59cc0e52ba798bd87ac82160c675bd531442b65133edb401

8 years agoFix the fts3EvalAverageDocsize() routine so that it returns errors from
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

8 years agoReuse the same materialization of a view when that view appears in a query
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

8 years agoMove terms of the HAVING clause that reference only columns in the GROUP BY
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

8 years agoAdditional comments on the sqlite3ExprIsConstantOrGroupBy() routine. No having-where-optimization
drh [Tue, 2 May 2017 16:46:41 +0000 (16:46 +0000)] 
Additional comments on the sqlite3ExprIsConstantOrGroupBy() routine.  No
code changes.

FossilOrigin-Name: 8424492eac506866d2918e5fe03c8f65fef960215d56012a3b52ed42789ed35a

8 years agoFix typo in comment. No changes to code.
mistachkin [Tue, 2 May 2017 01:30:44 +0000 (01:30 +0000)] 
Fix typo in comment.  No changes to code.

FossilOrigin-Name: 6674814afb9e763e7f7060776586e26da28040b3208ce06c8a285dd647e5a53d

8 years agoRemove an unnecessary branch.
drh [Mon, 1 May 2017 19:53:12 +0000 (19:53 +0000)] 
Remove an unnecessary branch.

FossilOrigin-Name: a33179596f534067a58d68b77160f11ab13272b29f912d7cbe15ea00bbf03ade

8 years agoEnhance "PRAGMA integrity_check" to detect duplicate rowids within a leaf
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

8 years agoClear the BTCF_ValidNKey flag set if a cursor is moved by
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

8 years agoFuther bug fixes to the function that determines when a materialized view materialized-view-reuse
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

8 years agoMinor bug fixes and performance enhancement.
drh [Mon, 1 May 2017 16:37:20 +0000 (16:37 +0000)] 
Minor bug fixes and performance enhancement.

FossilOrigin-Name: b2aae559581d05e4e8caaddfbd137cb275d582e82d58872c6f42e462dc859b1c

8 years agoInitial implementation of an optimization that attempts to reuse the same
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

8 years agoAdd extra tests for the optimization on this branch.
dan [Mon, 1 May 2017 14:09:32 +0000 (14:09 +0000)] 
Add extra tests for the optimization on this branch.

FossilOrigin-Name: 4921cd9520080f9baff70e548f64a56e2204b398b8397a2d318a98c32ec4b00c

8 years agoAutomatically transfer terms from the HAVING clause to the WHERE clause of an
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

8 years agoAdd a single testcase() macro to the subquery processing logic.
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

8 years agoImprovements to opcode documentation in the bytecode engine.
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

8 years agoEvaluate WHERE clause terms that reference only the index before evaluating
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

8 years agoMinor size and performance improvements to the push-down optimization. pushdown-optimization
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

8 years agoWithin a loop that uses a non-covering index test, test non-indexed terms that
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

8 years agoAdd new test file cachespill.test.
dan [Wed, 26 Apr 2017 17:21:33 +0000 (17:21 +0000)] 
Add new test file cachespill.test.

FossilOrigin-Name: 2d0b64316d66a362f5891ceb71a1fd8e4607732274b09b0a8472b97eef68ebc2

8 years agoReplace <fts5.h> with "fts5.h" in test file fts5_test_tok.c.
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

8 years agoFix a subtle bug in Lemon discovered and reported on the mailing list
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

8 years agoWhen building an ephemeral table of integers, do not assume that the table
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

8 years agoFix an assertion fault found by OSSFuzz.
drh [Sat, 22 Apr 2017 00:20:49 +0000 (00:20 +0000)] 
Fix an assertion fault found by OSSFuzz.

FossilOrigin-Name: e39769f442ea86273f8fb7bd2f249b7d760b2fe4bf9ec191ff91def8231f3f35

8 years agoRemove a NEVER macro for a condition that may be true as of [a47efb7c].
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

8 years agoFix an FTS5 bug that could cause a prefix-query without a prefix-index on a
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

8 years agoFurther improvements to coverage of fts3 module.
dan [Wed, 19 Apr 2017 13:25:45 +0000 (13:25 +0000)] 
Further improvements to coverage of fts3 module.

FossilOrigin-Name: 6b21d0fdebdccfaf63590d9ca9a279c22b8baec07c1a669b9f617f25bd857384

8 years agoFurther modifications and test cases to improve test coverage of fts3.
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

8 years agoUse sqlite3_table_column_metadata() instead of a SELECT statement to check for
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

8 years agoImproved optimizations of views as the right operand of a LEFT JOIN.
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

8 years agoRefactor the fts3ColumnMethod() function so that all branches can be covered.
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

8 years agoDefer checking for null in the comparison operators, since that is an
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

8 years agoDo not allow a Mem object to be both NULL and some other type at the same time.
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

8 years agoConsolidate two branches of code in the "PRAGMA foreign_key_check"
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

8 years agoFix a problem in "PRAGMA foreign_key_check" in handling a WITHOUT ROWID child
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

8 years agoFurther improvements to test coverage in fts3.
dan [Mon, 17 Apr 2017 16:07:25 +0000 (16:07 +0000)] 
Further improvements to test coverage in fts3.

FossilOrigin-Name: 352413eed469802665e7d2c17b7fe6e3a0b0b2209ce45bdc85fd4243cec50ea6

8 years agoImprove coverage of code in fts3.
dan [Mon, 17 Apr 2017 13:38:09 +0000 (13:38 +0000)] 
Improve coverage of code in fts3.

FossilOrigin-Name: 1a08a836fa919524216a16faf5212eebc9ad788c9e15463b68b0576dfccd4387

8 years agoFix the ".column" output mode in the command-line shell so that it correctly
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

8 years agoIn the showwal command-line tool, for unix builds, if the
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

8 years agoAdd the anycollseq.c loadable extension in etc/misc
drh [Sun, 16 Apr 2017 22:08:31 +0000 (22:08 +0000)] 
Add the anycollseq.c loadable extension in etc/misc

FossilOrigin-Name: d7b9813cb17615c3d00afd6994a4309d6d48c8e924b6cd813c543e1fa65c7719

8 years agoIn the skip-ahead-distinct optimization, fix a bug in the logic that determines
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

8 years agoFix to the decision logic for when to use the skip-ahead-distinct optimization. skip-ahead-distinct
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

8 years agoRemove end-of-line whitespace from lemon.c.
drh [Fri, 14 Apr 2017 19:46:12 +0000 (19:46 +0000)] 
Remove end-of-line whitespace from lemon.c.

FossilOrigin-Name: d78355c85f49e139f1ac1a660563865350f0e442652b7bc50b684398f81cc602

8 years agoFix some left-over K&amp;R-C constructs in lemon.c. No changes to the core.
drh [Fri, 14 Apr 2017 19:44:15 +0000 (19:44 +0000)] 
Fix some left-over K&amp;R-C constructs in lemon.c.  No changes to the core.

FossilOrigin-Name: a53799059d4ece246610b6c877ab7088ded3548cbca7149a03deea8ac0e27e68

8 years agoAdd the TK_IF_NULL_ROW opcode to deal with non-NULL result columns in the left-join-view
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

8 years agoWhen doing a DISTINCT query using an index, try to use the index to skip ahead
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

8 years agoAn initial attempt to optimize VIEWs that occur as the right operand of a
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

8 years agoMake USE_FULLWARN=1 the default for MSVC and fix harmless compiler warnings.
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

8 years agoEnhance the sqlite3TreeView() display for Expr objects so that it shows
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

8 years agoSimplify the interface to the subst() routines that are part of the
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

8 years agoRemove an incorrect ALWAYS().
drh [Fri, 14 Apr 2017 12:27:45 +0000 (12:27 +0000)] 
Remove an incorrect ALWAYS().

FossilOrigin-Name: f956f6ae6b0863c70c4a2b227338d5c332e87f2ec6f3fcdf2233c14c5b78ca2b

8 years agoFix a couple of unreachable branches.
drh [Fri, 14 Apr 2017 00:45:51 +0000 (00:45 +0000)] 
Fix a couple of unreachable branches.

FossilOrigin-Name: 1aa0ea8db7580aff8bed2f78117ed50019e5545cef48cab782f512a2599fd0c5

8 years agoFix the skip-ahead-distinct optimization so that it works with indexes that
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

8 years agoSimplification of the skip-ahead-distinct logic. There is still an issue
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

8 years agoNew test cases and minor fixes for the optimization on this branch.
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

8 years agoReinstate the SQLITE_API qualifier on the sqlite3_delete_database() method in
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

8 years agoUpdate the code in test_delete.c to use the "win32" VFS if SQLITE_OS_WIN is
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

8 years agoOnly use the skip-ahead-distinct optimization if the index has been analyzed
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

8 years agoAllow a user column name to be used on the LHS of a MATCH operator in FTS5.
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

8 years agoForward port the skip-ahead-distinct branch which was abandoned for some reason
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

8 years agoFix a regression caused by the fix for ticket [6c9b5514077fed34551f98e64c09a1] -
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

8 years agoUpdate fts5 to support "<colset> : ( <expr> )" for column filtering, as well
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

8 years agoImproved \n and \r escapes in the ext/misc/dbdump.c utility function. The
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

8 years agoAvoid updating unaffected indexes on a table as part of an UPDATE that
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

8 years agoAvoid updating unaffected indexes on a table as part of an UPDATE that requires fkey-optimization
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

8 years agoLimit the depth of recursion for valid JSON in the JSON1 extension in order
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

8 years agoSmaller and faster implementation of exprMightBeIndexed().
drh [Tue, 11 Apr 2017 18:06:48 +0000 (18:06 +0000)] 
Smaller and faster implementation of exprMightBeIndexed().

FossilOrigin-Name: 76cd611d41465fcec61c21520d55172cb236530f38386b7d4a5544ba87de2353

8 years agoVery slight smaller and faster sqlite3SelectNew()
drh [Tue, 11 Apr 2017 16:44:39 +0000 (16:44 +0000)] 
Very slight smaller and faster sqlite3SelectNew()

FossilOrigin-Name: 4143650c4ce32289d2301cdfc69bb10877246420f656bed122886f6803fc956a

8 years agoAdd an ALWAYS() around an unreachable condition in sqlite3VdbeMemGrow().
drh [Tue, 11 Apr 2017 12:20:54 +0000 (12:20 +0000)] 
Add an ALWAYS() around an unreachable condition in sqlite3VdbeMemGrow().

FossilOrigin-Name: 0f3eb61f44c94234ffc14c3a493a27ec62c0d1e2bb62798f36eafa98ddcdc58e

8 years agoFix a segfault that could occur if an indexed expression was used in a
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

8 years agoWhen using an index on an expression, try to use the columns of the index
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

8 years agoImproved comments. Fix a problem when an indexed expression is used in an covering-index-on-expr
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

8 years agoMerge changes from trunk.
drh [Mon, 10 Apr 2017 23:42:04 +0000 (23:42 +0000)] 
Merge changes from trunk.

FossilOrigin-Name: 8978465f335925378d3aa99df6190ce6a1ee6b130205ccc493f2399803844760

8 years agoSmaller and faster vdbeFreeOpArray()
drh [Mon, 10 Apr 2017 20:51:21 +0000 (20:51 +0000)] 
Smaller and faster vdbeFreeOpArray()

FossilOrigin-Name: e052436d9f54b785facd661adc648512356b831c0547aa8f347ebf4bd8ef1254

8 years agoSlightly smaller and faster sqlite3VdbeMemGrow().
drh [Mon, 10 Apr 2017 20:27:54 +0000 (20:27 +0000)] 
Slightly smaller and faster sqlite3VdbeMemGrow().

FossilOrigin-Name: efd1702ae8da8e0dd3d2ee7bd5a1bd8aeff2b370498e404041fcb406fdaf72e4

8 years agoAdd a new JSON test case to verify that all control characters are escaped
drh [Mon, 10 Apr 2017 12:31:15 +0000 (12:31 +0000)] 
Add a new JSON test case to verify that all control characters are escaped
in the json_quote() function.

FossilOrigin-Name: 6ee12221fa252784c897a24ae8cff64dfe6149cbc9020abe14539df33202d892

8 years agoChange the JSON extension so that it disallows control characters inside of
drh [Mon, 10 Apr 2017 12:25:05 +0000 (12:25 +0000)] 
Change the JSON extension so that it disallows control characters inside of
strings.  Fix for ticket [6c9b5514077fed34551f98e64c09a10dc2fc8e16].

FossilOrigin-Name: 475d8f82ec61a4ff3e6a7650731230ccecb6cc580d1397d189d0ba479d9bad4d

8 years agoDo not expose the name of the internal Mem object in the public interface
drh [Sun, 9 Apr 2017 19:23:55 +0000 (19:23 +0000)] 
Do not expose the name of the internal Mem object in the public interface
defined by sqlite3.h.

FossilOrigin-Name: 19dd753f9e50fee247b1ab141669817c7e88bc3f6d6065dba6c731db9f7a2409

8 years agoDisallow leading zeros on numeric constants in JSON.
drh [Sat, 8 Apr 2017 18:18:22 +0000 (18:18 +0000)] 
Disallow leading zeros on numeric constants in JSON.
Fix for ticket [b93be8729a895a528e2]

FossilOrigin-Name: 204e72f0080e8f08f99978870bd3cb9d59b068ecffee82192d707c650548b43b

8 years agoExpand on the comment above OP_Destroy to explain why it throws an error if
dan [Sat, 8 Apr 2017 14:11:47 +0000 (14:11 +0000)] 
Expand on the comment above OP_Destroy to explain why it throws an error if
there are any active reader VMs.

FossilOrigin-Name: b9a8c2b9bec9f537b2d5aff6659a5748b1f70b53519a1f9dfceb5209154eca8e

8 years agoHave the rtree module close any open blob-handle within the xSavepoint method.
dan [Sat, 8 Apr 2017 13:52:41 +0000 (13:52 +0000)] 
Have the rtree module close any open blob-handle within the xSavepoint method.
This prevents such an open blob handle from interfering with DROP TABLE
operations.

FossilOrigin-Name: fa4416adc2a9a3a80db1d5befc0b95c3d0fc41affe38f7f2f45cdfae3f1b49eb

8 years agoFix the quoting mechanism for ".dump" so that it is not applied for the
drh [Sat, 8 Apr 2017 13:42:55 +0000 (13:42 +0000)] 
Fix the quoting mechanism for ".dump" so that it is not applied for the
".mode quote" output.

FossilOrigin-Name: 78c1e90305d48917d9423d8e50a7dfd15ec27aa93cb421610062229c7ede13a6

8 years agoHave fts5 close any open blob-handle when a new savepoint is opened. This
dan [Sat, 8 Apr 2017 09:12:20 +0000 (09:12 +0000)] 
Have fts5 close any open blob-handle when a new savepoint is opened. This
ensures that fts5 does not prevent DROP TABLE statements (which always open a
savepoint) from succeeding.

FossilOrigin-Name: a921ada89050ce1d162fd1b0056939573635e2cec7ac0c2a99ae924b3ae593f7