]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoAdd the SQLITE_ALLOW_ROWID_IN_VIEW option to omitttest.tcl. no-rowid-on-view
drh [Wed, 7 Apr 2021 18:08:23 +0000 (18:08 +0000)] 
Add the SQLITE_ALLOW_ROWID_IN_VIEW option to omitttest.tcl.

FossilOrigin-Name: 83b8e4c281c5295950fbf2330a45193b73054b0749b51a6c2c4fbc79a7a5f82d

4 years agoAlso prohibit the use of rowid from a subquery. Add the
drh [Wed, 7 Apr 2021 15:45:01 +0000 (15:45 +0000)] 
Also prohibit the use of rowid from a subquery.  Add the
SQLITE_ALLOW_ROWID_IN_VIEW compile-time option to restore legacy behavior
in case somebody actually needs it.

FossilOrigin-Name: 14b1d56ef84b0e62b7f9c4e5f7f985ca10e770c8db59f54004ad892c2a2dcbfb

4 years agoRaise an error if a query tries to access the "rowid" of a view, as views
drh [Tue, 6 Apr 2021 19:13:44 +0000 (19:13 +0000)] 
Raise an error if a query tries to access the "rowid" of a view, as views
do not have rowids.

FossilOrigin-Name: 7a73c6166bb1d9f2e2de280fa4e973db152caaf6cc76b8e6a92cfe9560ddc224

4 years agoUpdate an assert statement that could fail when using "PRAGMA writable_schema = 1...
dan [Tue, 6 Apr 2021 18:02:17 +0000 (18:02 +0000)] 
Update an assert statement that could fail when using "PRAGMA writable_schema = 1" to access a database with a corrupt schema.

FossilOrigin-Name: 55cad6f628a4313c6652b36474c3397f097ac5c2503ae94605c030a54dc40916

4 years agoFix issue with failing --enable-debug --enable-fts5 build.
dan [Tue, 6 Apr 2021 17:51:18 +0000 (17:51 +0000)] 
Fix issue with failing --enable-debug --enable-fts5 build.

FossilOrigin-Name: e7491acc0c93b7b0b5a27130d956bb23f876b90ced11cdd416a86727af076ee1

4 years agoNew test cases added to fuzzdata8.db.
drh [Tue, 6 Apr 2021 16:55:30 +0000 (16:55 +0000)] 
New test cases added to fuzzdata8.db.

FossilOrigin-Name: 039ad662dd899048da04238c05b8cf384323f6e8c1087b96428ea9e20726c8c0

4 years agoSilence an msan warning triggered by a corrupt database by initializing a local varia...
dan [Tue, 6 Apr 2021 16:42:05 +0000 (16:42 +0000)] 
Silence an msan warning triggered by a corrupt database by initializing a local variable in sqlite3Insert().

FossilOrigin-Name: f64deecee1691cf21b4f3d27d8490ecc8eae65cf26df7a22f8d15317f0cecd5b

4 years agoAvoid a use-after-free that may occur when accessing a corrupt database schema with...
dan [Tue, 6 Apr 2021 16:16:15 +0000 (16:16 +0000)] 
Avoid a use-after-free that may occur when accessing a corrupt database schema with "PRAGMA writable_schema = 1" set.

FossilOrigin-Name: a1d823f6879ce1acfd251de35ffdfdf5ce7d8e0552205c2c4a1fee179e3a6972

4 years agoRemove some test routines from release builds of fts5.
dan [Tue, 6 Apr 2021 14:46:50 +0000 (14:46 +0000)] 
Remove some test routines from release builds of fts5.

FossilOrigin-Name: 3088bf15ca53fac3bad94f241e648836631b6d801d42837c238ff27d85074ca4

4 years agoFix incorrect RETURNING test cases in wherelimit.test
dan [Tue, 6 Apr 2021 13:57:23 +0000 (13:57 +0000)] 
Fix incorrect RETURNING test cases in wherelimit.test

FossilOrigin-Name: 20d21ff9be558c5f7773efa4efba7d36752f56c9a0caf1fd9c601aab5562dcef

4 years agoEarlier detection of OOM errors during window function processing.
drh [Tue, 6 Apr 2021 13:56:46 +0000 (13:56 +0000)] 
Earlier detection of OOM errors during window function processing.
dbsqlfuzz b08676f5a0437552c95d2a5d7ef285f8c451ea35.

FossilOrigin-Name: 8e04f52e32c9655b703ab0a6dc6d57e6bd134db9e7168807b7b2ce81974f9274

4 years agoHandle "RETURNING rowid" clauses attached to INSERTs on views without causing an...
dan [Tue, 6 Apr 2021 13:53:10 +0000 (13:53 +0000)] 
Handle "RETURNING rowid" clauses attached to INSERTs on views without causing an assert() to fail. Fixes dbsqlfuzz crash 0081f863d7b2002045ac2361879fc80dfebb98f1.

FossilOrigin-Name: 9c5b7386d013a7f22a93c69722c4648e2ab60eef180f48b5470bfea6fa74b3da

4 years agoFurther improvements (subsequent to [d91450847a3a3a72]) to handling of attempts
drh [Tue, 6 Apr 2021 13:03:06 +0000 (13:03 +0000)] 
Further improvements (subsequent to [d91450847a3a3a72]) to handling of attempts
to delete a journal using the memdb VFS.
dbsqlfuzz ac61dab357279a6a531de067f040e9a4828d2df0.

FossilOrigin-Name: a0839406426a0d8ec52cc3116ea7d8b582344b44f3f8c9365bbf5187370c3386

4 years agoEarlier detection and handling of OOM problems.
drh [Tue, 6 Apr 2021 12:50:24 +0000 (12:50 +0000)] 
Earlier detection and handling of OOM problems.
dbsqlfuzz 39f2963ea5559aa3a16e24e0e3cb42aac85a7371.

FossilOrigin-Name: 8d46df73132e46abb32b9dc129b6beb978d34dac3d372fb004ca283b0832d04c

4 years agoRelax an assertion on the sqlite3WhereEnd() routine after dbsqlfuzz found
drh [Mon, 5 Apr 2021 22:42:15 +0000 (22:42 +0000)] 
Relax an assertion on the sqlite3WhereEnd() routine after dbsqlfuzz found
a counter-example.

FossilOrigin-Name: e6b591e76523034c41884b39d71d4b721f1df709bdafd842e2d4b4084c158ec0

4 years agoAdd a missing CORRUPT_DB to an assert in the OP_ResultRow opcode.
drh [Mon, 5 Apr 2021 22:30:56 +0000 (22:30 +0000)] 
Add a missing CORRUPT_DB to an assert in the OP_ResultRow opcode.

FossilOrigin-Name: 82f92d79e1901911b0ce57d0aa30d462847748159443c7db8af16e6b37e8212c

4 years agoAdjust the README.md file so that build instructions work for Fossil version
drh [Mon, 5 Apr 2021 19:23:18 +0000 (19:23 +0000)] 
Adjust the README.md file so that build instructions work for Fossil version
2.12 and later.  [forum:/forumpost/51f28bb701|Forum post 51f28bb701].

FossilOrigin-Name: 51f87adc7f90935484eadad82f751f1df8c1607d463dae9589a71aeda2184b3a

4 years agoDo not allow floating point rounding errors to cause a window function xInverse(...
dan [Mon, 5 Apr 2021 19:05:18 +0000 (19:05 +0000)] 
Do not allow floating point rounding errors to cause a window function xInverse() function to be invoked before the corresponding xStep() call.

FossilOrigin-Name: 7a19fed4f222bc6c20e13a1367c8235916d21ba5e6f5a31cd26842efe748e744

4 years agoFix an assert() that can be false when doing an incremental vacuum on a
drh [Mon, 5 Apr 2021 17:50:38 +0000 (17:50 +0000)] 
Fix an assert() that can be false when doing an incremental vacuum on a
corrupt database file.  dbsqlfuzz cced0668cfd4da4eb2382cb9dd26c17c64aaff76.

FossilOrigin-Name: 15b801016fa204b8e4b7c89e236adb73dd57687959d825664de5097370b24030

4 years agoAvoid coding unindexed WHERE constraints if an equivalent transitive term has already...
dan [Mon, 5 Apr 2021 16:20:59 +0000 (16:20 +0000)] 
Avoid coding unindexed WHERE constraints if an equivalent transitive term has already been coded by an outer loop.

FossilOrigin-Name: 644bb77f8bb2c3499db7c280440c92fd2649a98ce714ae0d5d690eabfdc04326

4 years agoDo not invoke the xDelete method when converting to PRAGMA journal_mode=OFF
drh [Mon, 5 Apr 2021 13:41:42 +0000 (13:41 +0000)] 
Do not invoke the xDelete method when converting to PRAGMA journal_mode=OFF
if the underlying VFS does not support that method.
dbsqlfuzz 39d6af88ef5242f866c4f9b21ede330c5c1e36a8.

FossilOrigin-Name: d91450847a3a3a7217f8f5947adea9a4d12cf77607d40f9724d6ba093919b524

4 years agoAs a continuation of [1f66a85b7757754f], ensure that an OOM that occurs
drh [Mon, 5 Apr 2021 11:39:55 +0000 (11:39 +0000)] 
As a continuation of [1f66a85b7757754f], ensure that an OOM that occurs
while checking the validity of the schema is reported out as SQLITE_NOMEM
and not as SQLITE_SCHEMA.

FossilOrigin-Name: 5045c8a748f0065638d0ff4f6e3ccd124183fbc518cb9b0418d125b04dbc1491

4 years agoFix an assert() in sqlite3BtreeLast() that needs an "|| CORRUPT_DB" term.
drh [Sun, 4 Apr 2021 23:56:15 +0000 (23:56 +0000)] 
Fix an assert() in sqlite3BtreeLast() that needs an "|| CORRUPT_DB" term.
Dbsqlfuzz case b92b72e4de80b5140c30ab71372ca719b8feb618.

FossilOrigin-Name: ad718388a1f6e25ceba43a40160fac0d9d9d3f26888e98d7b9db478c0b1780be

4 years agoAvoid compile error when SQLITE_OMIT_VIRTUALTABLE defined.
larrybr [Sun, 4 Apr 2021 14:22:02 +0000 (14:22 +0000)] 
Avoid compile error when SQLITE_OMIT_VIRTUALTABLE defined.

FossilOrigin-Name: 0ee0ef476ba9e17794c088a1347a136df3eb1ef864da884cfe81e3b2e94e9719

4 years agoMake shell .parameter feature type-agnostic. Hush harmless compiler warning.
larrybr [Sun, 4 Apr 2021 12:52:58 +0000 (12:52 +0000)] 
Make shell .parameter feature type-agnostic. Hush harmless compiler warning.

FossilOrigin-Name: 35cf295e026d067c9f059fde6b150e65163fe171d37501eb1e5742e691793340

4 years agoImproved robustness to OOM conditions in the window function logic.
drh [Sat, 3 Apr 2021 23:30:33 +0000 (23:30 +0000)] 
Improved robustness to OOM conditions in the window function logic.
dbsqlfuzz 0c123f7d80b29beaafc8411c12129e46f7ffdac3.

FossilOrigin-Name: 35ff7cbf547d41109b7cd4217a5439b3b4a1a4c310309c572c88f596fbc1b099

4 years agoTake care not to change an SQLITE_NOMEM error into SQLITE_SCHEMA.
drh [Sat, 3 Apr 2021 20:35:08 +0000 (20:35 +0000)] 
Take care not to change an SQLITE_NOMEM error into SQLITE_SCHEMA.

FossilOrigin-Name: 1f66a85b7757754ff9aa0a626f66250c5fabc5fc8ab67bbc4b2ae8e6d9231a72

4 years agoFix a crash in handling queries of the form "SELECT aggregate(DISTINCT tbl.col) FROM...
dan [Sat, 3 Apr 2021 19:23:59 +0000 (19:23 +0000)] 
Fix a crash in handling queries of the form "SELECT aggregate(DISTINCT tbl.col) FROM ... LEFT JOIN tbl ...". Fixes a problem introduced by [ef4ac0ddd297bbd3].

FossilOrigin-Name: 0dcf808ddf23da834da724d88b1715ed06565f1f1290713ff42a3fcf6ffb802e

4 years agoCorrectly capture the error when a RETURNING clause appears on an
drh [Fri, 2 Apr 2021 20:43:26 +0000 (20:43 +0000)] 
Correctly capture the error when a RETURNING clause appears on an
attempt to UPDATE an eponymous virtual table.
dbsqlfuzz 486f791cbe2dc45839310073e71367a1d8ad22dd.

FossilOrigin-Name: 778a9a6e6f8d960fd55ac9be7eea20b1875a46192db85e63dddc61b632b30173

4 years agoAdd experimental SQLITE_FCNTL_EXTERNAL_READER file control.
dan [Fri, 2 Apr 2021 19:55:48 +0000 (19:55 +0000)] 
Add experimental SQLITE_FCNTL_EXTERNAL_READER file control.

FossilOrigin-Name: e16da5af822ef31d7e05992403cf9787fbb3d9abb0b5283aba55ea07e1830a72

4 years agoFix a problem with the geopoly_bbox() function.
drh [Fri, 2 Apr 2021 18:59:13 +0000 (18:59 +0000)] 
Fix a problem with the geopoly_bbox() function.

FossilOrigin-Name: f3a2eb979f1003e8249e613b34afd345f157c0d54b4f05ea0db230ef70e71351

4 years agoWhen resolving names in the RETURNING clause, do not accept trigger names
drh [Wed, 31 Mar 2021 23:56:55 +0000 (23:56 +0000)] 
When resolving names in the RETURNING clause, do not accept trigger names
even within subquires.  See
[forum:/info/34c81d83c9177f46|forum post 34c81d83c9177f46] for context.

FossilOrigin-Name: fd4ea3f626b6e4957d56c2369be711895735cfc37cfde65650a6682ad5a3eb1a

4 years agoWhen resolving column names in the RETURNING clause, do not ignore an
drh [Wed, 31 Mar 2021 17:42:24 +0000 (17:42 +0000)] 
When resolving column names in the RETURNING clause, do not ignore an
incorrect table name qualifier.  Raise an error instead.
See [forum:forumpost/85aef8bc01|forum post 85aef8bc01] for context.

FossilOrigin-Name: 51d5c50b2fb373e4c7ddb7e26657c26ad39dc9c2fc629bba5c2522b4150d8fac

4 years agoDefer deletion of expressions that are optimized out by the AND optimizer
drh [Wed, 31 Mar 2021 13:31:33 +0000 (13:31 +0000)] 
Defer deletion of expressions that are optimized out by the AND optimizer
in the sqlite3ExprAnd() routine until the corresponding Parse object is
deleted.  This avoids a dangling pointer in AggInfo if sqlite3ExprAnd()
is invoked by the push-down optimization.  The dangling pointer appears
to be harmless in release builds, only showing up in debug builds.
Problem found by dbsqlfuzz.

FossilOrigin-Name: c36b43589abd9f62a709bdb47b8748e0c1e8743487a3d83d1eb35eb06b65d763

4 years agoEnsure that negative numbers may not be used in frame offset clauses even if they...
dan [Wed, 31 Mar 2021 11:31:19 +0000 (11:31 +0000)] 
Ensure that negative numbers may not be used in frame offset clauses even if they are initially text value. e.g. (RANGE BETWEEN '-1' PRECEDING ...).

FossilOrigin-Name: 8b681b274dd01c3e0f76d5bbddcbb2450c6d9475b9cfa0db961a3ab5edf51db1

4 years agoRaise an error if a term of the form "TABLE.*" appears in the RETURNING clause,
drh [Tue, 30 Mar 2021 01:52:21 +0000 (01:52 +0000)] 
Raise an error if a term of the form "TABLE.*" appears in the RETURNING clause,
as SQLite does not (yet) know how to handle that.
Ticket [132994c8b1063bfb].

FossilOrigin-Name: 3039bcaff95bb5d096c80b5eefdaeda6abd1d1337e829f32fd28a968f663f481

4 years agoDo not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause.
dan [Mon, 29 Mar 2021 20:28:27 +0000 (20:28 +0000)] 
Do not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause.

FossilOrigin-Name: d07e246f9b6d4d7aef63a6debcb7ab2832bff6f80a245f50bcebb3f8de1bacc7

4 years agoAdd "#ifdef SQLITE_DEBUG" blocks around test variables sqlite3_fts5_may_be_corrupt...
dan [Mon, 29 Mar 2021 20:04:31 +0000 (20:04 +0000)] 
Add "#ifdef SQLITE_DEBUG" blocks around test variables sqlite3_fts5_may_be_corrupt and sqlite3_fts3_may_be_corrupt.

FossilOrigin-Name: 004559544e661f9afa60306c4ac6842c29a8630b3663d62aa0cdc637f176932e

4 years agoSimplify the comparison opcodes in the bytecode engine, for a performance
drh [Mon, 29 Mar 2021 20:01:04 +0000 (20:01 +0000)] 
Simplify the comparison opcodes in the bytecode engine, for a performance
improvement.

FossilOrigin-Name: f2af5868be83c65dbc593dafd4357fdb7d5d740128e9225dd1b2de16947012b3

4 years agoFix VDBE coverage macros. compare-opcode-opt
drh [Mon, 29 Mar 2021 19:47:39 +0000 (19:47 +0000)] 
Fix VDBE coverage macros.

FossilOrigin-Name: ebe100de55ccdf6abccde5d8e6e96099b6e8dc3527f1441265e2b86b6661a66b

4 years agoOmit the SQLITE_STOREP2 and SQLITE_KEEPNULL options from the comparison
drh [Mon, 29 Mar 2021 18:53:47 +0000 (18:53 +0000)] 
Omit the SQLITE_STOREP2 and SQLITE_KEEPNULL options from the comparison
opcodes, allowing them to run faster.  This required refactoring the
vector comparison logic, which in turn required changing OP_ElseNotEq into
OP_ElseEq.

FossilOrigin-Name: 380b46054b6a9b67e57357815e8e94057253fa3cce838ae76e5d5031c6bd26b2

4 years agoAdd the OP_ZeroOrNull opcode and use it to compute boolean values for
drh [Mon, 29 Mar 2021 14:40:48 +0000 (14:40 +0000)] 
Add the OP_ZeroOrNull opcode and use it to compute boolean values for
scalar comparisons, rather than the SQLITE_STOREP2 parameter to the comparison
opcode.

FossilOrigin-Name: 93781b6f10a94fb273204b95156a8b90e07071f28c89e7966c659a0f44f60e98

4 years agoThe comparison opcodes (ex: OP_Eq) now set the iCompare flag so that the
drh [Mon, 29 Mar 2021 13:47:20 +0000 (13:47 +0000)] 
The comparison opcodes (ex: OP_Eq) now set the iCompare flag so that the
result of comparison can be used by subsequent OP_Jump or OP_ElseNotEq
opcodes.

FossilOrigin-Name: bd00df8f07b7163b0712590d2bb517e838a36c994dc47d7b39b5a07d14e6e6af

4 years agoAlternative implementation of the comparison opcode speed-up of
drh [Sun, 28 Mar 2021 23:37:56 +0000 (23:37 +0000)] 
Alternative implementation of the comparison opcode speed-up of
check-in [4a8805d9a66dc888] that should pass muster with UBSAN.

FossilOrigin-Name: afb18f64541effaeaada2d72c7c91adfe5ec3e2b1418c0bc281083125fb5badb

4 years agoDocument the "%token" directive for Lemon. This directive has been in place
drh [Sun, 28 Mar 2021 20:44:01 +0000 (20:44 +0000)] 
Document the "%token" directive for Lemon.  This directive has been in place
for a while, but was previously undocumented.

FossilOrigin-Name: 36624d3740a8d095eee061bcc5037deabddb88a53444ec1a956a8af7684efa43

4 years agoFor the sqlite3_bind_text16 TCL binding used for testing, ensure that there
drh [Sat, 27 Mar 2021 16:21:34 +0000 (16:21 +0000)] 
For the sqlite3_bind_text16 TCL binding used for testing, ensure that there
are at least 3 terminating zeros, so that there will always be a \u0000
character even if the original byte sequence is an odd number of bytes.

FossilOrigin-Name: c23d092f37c535f88a47e9f55aa7b2fd40cfd5c50eec9191a68073d7f9141ecd

4 years agoIn the sqlite3_bind_text and sqlite3_bind_text16 TCL commands of the test
drh [Fri, 26 Mar 2021 23:59:37 +0000 (23:59 +0000)] 
In the sqlite3_bind_text and sqlite3_bind_text16 TCL commands of the test
suite, ensure that the string is zero-terminated if the size argument is
negative.

FossilOrigin-Name: f472fd64434cb2eac169587faa34bec489bc82002d529bc72dbfbba5251e5517

4 years agoRemove old testcases() macros. Also remove surplus end-of-line whitespace.
drh [Wed, 24 Mar 2021 23:30:06 +0000 (23:30 +0000)] 
Remove old testcases() macros.  Also remove surplus end-of-line whitespace.

FossilOrigin-Name: 54b41915ed8ef993b4116b2de00f3f4bba7570a1d28ad6bb93ba158a6b89eff3

4 years agoComment improvements to on the distinct-agg optimization. Show a line in
drh [Wed, 24 Mar 2021 19:44:01 +0000 (19:44 +0000)] 
Comment improvements to on the distinct-agg optimization.  Show a line in
the EQP output when using an ephemeral table to implement DISTINCT on an
aggregate.

FossilOrigin-Name: 037ca79e6032ca962b4f6182187bc12a7d91170d73630c8cd6fb191d2c183ee4

4 years agoImprovements to distinct aggregates such that they can sometimes avoid
drh [Wed, 24 Mar 2021 17:28:11 +0000 (17:28 +0000)] 
Improvements to distinct aggregates such that they can sometimes avoid
using an ephermeral table to test for duplicates if the column that is
distinct is part of an index.

FossilOrigin-Name: ef4ac0ddd297bbd38351410c5a387e1628561b3f1bec9e4c2c9d76fbe29f955a

4 years agoFix a harmless compiler warning.
drh [Wed, 24 Mar 2021 17:04:32 +0000 (17:04 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 26b005a95e4f3e378e3bc40f57321ffbab72b6fc990d13b56b3121990d325f63

4 years agoFix a problem with renaming a column when there is a quoted string immediately follow...
dan [Tue, 23 Mar 2021 22:15:34 +0000 (22:15 +0000)] 
Fix a problem with renaming a column when there is a quoted string immediately following the column name somewhere in the schema.

FossilOrigin-Name: 4719fae6262aa3563f3df6aca0170c6d847bb18ab7b0e6e7609a0e7b6f0c6b1b

4 years agoAdd an ALWAYS() on a branch that is always taken.
drh [Tue, 23 Mar 2021 21:02:24 +0000 (21:02 +0000)] 
Add an ALWAYS() on a branch that is always taken.

FossilOrigin-Name: 0646d2260c523d368e3f6bc3d110a9011d35ce83bd6751ad412d8fd9a253cb7a

4 years agoTest result adjustments in test/misc7.test due to the EQP format change.
drh [Tue, 23 Mar 2021 19:39:27 +0000 (19:39 +0000)] 
Test result adjustments in test/misc7.test due to the EQP format change.

FossilOrigin-Name: d3ade8c7fe58e05af9d44a79478776b050a680c1338188f2d4b222b937e682ea

4 years agoWhen doing schema updates, try to convert (incorrect) double-quoted strings
drh [Tue, 23 Mar 2021 16:34:13 +0000 (16:34 +0000)] 
When doing schema updates, try to convert (incorrect) double-quoted strings
into (SQL-standard) single-quoted strings.

FossilOrigin-Name: 0770470488e140fa21cb5097c26d58e21da85544af8b69faced1670bbc6d6089

4 years agoTweaks to test/scanstatus.test to account for the new EQP format.
drh [Tue, 23 Mar 2021 15:39:02 +0000 (15:39 +0000)] 
Tweaks to test/scanstatus.test to account for the new EQP format.

FossilOrigin-Name: 2eb28afd01f43143a9c0cd6cea68f3095f993952d54ee06b781514a7754490cd

4 years agoChanges to test/analyzeG.test to conform to the new EXPLAIN QUERY PLAN syntax.
drh [Tue, 23 Mar 2021 15:07:17 +0000 (15:07 +0000)] 
Changes to test/analyzeG.test to conform to the new EXPLAIN QUERY PLAN syntax.

FossilOrigin-Name: d8afde1bf1d41a349a161a293533a9fdf23ff23b8f1bcc323e79e806c5c526f1

4 years agoFix a test case in bigmmap.test so that it works with the new
drh [Tue, 23 Mar 2021 14:33:35 +0000 (14:33 +0000)] 
Fix a test case in bigmmap.test so that it works with the new
EXPLAIN QUERY PLAN output format.

FossilOrigin-Name: 9ac064fe2aee4aa1423e7c8043dfec52ecf2af3e8361ebb7d9c104cca82b4d23

4 years agoAdd the ExprList.nAlloc column and use it to make the sqlite3ExprListAppend()
drh [Tue, 23 Mar 2021 14:27:35 +0000 (14:27 +0000)] 
Add the ExprList.nAlloc column and use it to make the sqlite3ExprListAppend()
routine much faster.

FossilOrigin-Name: 1d3c4662c2f522ac695d97441324069f3fc65f3fa0b87194c7094dfb8cd549f2

4 years agoEnhance the EXPLAIN QUERY PLAN output to use symbolic names to describe
drh [Tue, 23 Mar 2021 01:06:02 +0000 (01:06 +0000)] 
Enhance the EXPLAIN QUERY PLAN output to use symbolic names to describe
subqueries, where possible, instead of cryptic subquery index numbers.
And in other ways, make the EQP output cleaner and easier to read.  Little
code is changed, but many of the test results had to be tweaked to align
with the new output format.

FossilOrigin-Name: f8e28308fdb45fbdef30003320d653410d69bb8ec92eef35c4245a99e2d0603b

4 years agoMerge recent fixes from trunk. eqp-improvements
drh [Mon, 22 Mar 2021 18:53:26 +0000 (18:53 +0000)] 
Merge recent fixes from trunk.

FossilOrigin-Name: 4a343698b4ec3364b0eecb7fa074512ecac8b586aff1f977ca77f215e96e0ce5

4 years agoIncrease the version number to 3.36.0 to begin the next development cycle.
drh [Mon, 22 Mar 2021 16:50:39 +0000 (16:50 +0000)] 
Increase the version number to 3.36.0 to begin the next development cycle.

FossilOrigin-Name: 5cee689d647087a5e796da2acb247a4f469a8b39b54f59bb4ad2386647cef1bd

4 years agoFix an assert() that in preupdate-hook logic (not normally built) that same-as-3.35.3
drh [Sun, 21 Mar 2021 18:23:48 +0000 (18:23 +0000)] 
Fix an assert() that in preupdate-hook logic (not normally built) that
can be false when running VACUUM on a corrupt database file under
PRAGMA writable_schema=ON.

FossilOrigin-Name: 6bb2134027a12801de8e0c73482d94682f902024800a7e426614f65a2fe4f64c

4 years agoAdd a better comment and an assert() on the code inside sqlite3CreateIndex()
drh [Sun, 21 Mar 2021 17:52:47 +0000 (17:52 +0000)] 
Add a better comment and an assert() on the code inside sqlite3CreateIndex()
that REPLACE indexes come at the end of the index list.
[forum:/forumpost/ceb51d83f7|forum post ceb51d83f7]

FossilOrigin-Name: 71e4da136bd1b5b75a699d69fbaaaec0f9dd1a87e2a9d049a55154892b06647b

4 years agoFix the "box" output mode in the shell when statement returns zero-column
drh [Sat, 20 Mar 2021 23:15:52 +0000 (23:15 +0000)] 
Fix the "box" output mode in the shell when statement returns zero-column
rows (for example from "PRAGMA incremental_vacuum").

FossilOrigin-Name: 34439fe3aeea7cbbc817245d39c345a7f5df7a82ac15ee4d71bb9a4d818198ed

4 years agoUse the canonical name, not the AS name, when showing the MATERIALIZE or
drh [Sat, 20 Mar 2021 15:46:01 +0000 (15:46 +0000)] 
Use the canonical name, not the AS name, when showing the MATERIALIZE or
CO-ROUTINE lines for a CTE.

FossilOrigin-Name: 1b83e232c490fe6e9f999d30399faebfac6094bf940dc21dc459ed2c97657cb2

4 years agoRevise tests cases to align with the new EXPLAIN QUERY PLAN output.
drh [Sat, 20 Mar 2021 15:11:29 +0000 (15:11 +0000)] 
Revise tests cases to align with the new EXPLAIN QUERY PLAN output.

FossilOrigin-Name: 50fbd532602d2c316813046ed6be8be2991c281eb5f295c4c28520a0de73862c

4 years agoFix a faulty assert() in the OP_SkipScan opcode.
drh [Sat, 20 Mar 2021 01:00:26 +0000 (01:00 +0000)] 
Fix a faulty assert() in the OP_SkipScan opcode.
dbsqlfuzz a15a9b2ca82e812ad52f62c86cc93dca0dc72f01.
Test cases in TH3.

FossilOrigin-Name: 1805b9aaf1172e36e08271f78ebb7676bba9f3c4c28e077ee94cc31b8e7ec741

4 years agoFurther simplification of the EQP output. Only show "SUBQUERY n" if the
drh [Fri, 19 Mar 2021 19:44:56 +0000 (19:44 +0000)] 
Further simplification of the EQP output.  Only show "SUBQUERY n" if the
subquery is anonymous.

FossilOrigin-Name: 1fadd30525dbf22678ba014b78af3a0fb33047692f073b7c62a90a028081ac48

4 years agoMerge enhancements from trunk.
drh [Fri, 19 Mar 2021 19:09:24 +0000 (19:09 +0000)] 
Merge enhancements from trunk.

FossilOrigin-Name: d192d737755876293a2914fcb9a0d5efbe07f3cd281c038666ea5aa879c06321

4 years agoIn the wholenumber virtual table, increase the cost penalty for running
drh [Fri, 19 Mar 2021 17:54:43 +0000 (17:54 +0000)] 
In the wholenumber virtual table, increase the cost penalty for running
open-loop.  This appears to fix the problem reported by
[https://sqlite.org/forum/forumpost/b52a020ce4|forum post b52a020ce4].

FossilOrigin-Name: f12b54042e27b2fe99f23f97c103ee4371f8d4df3b049d9bb5d64891db56eee5

4 years agoDbsqlfuzz found a new way to make that branch in codeVectorCompare
drh [Fri, 19 Mar 2021 16:29:40 +0000 (16:29 +0000)] 
Dbsqlfuzz found a new way to make that branch in codeVectorCompare
reachable.

FossilOrigin-Name: 959272c27555e39f180d46257afe45d41da1f5df38ea269196c06741ff6a278e

4 years agoFix tokenizer's classification of EBCDIC newline.
larrybr [Fri, 19 Mar 2021 15:02:59 +0000 (15:02 +0000)] 
Fix tokenizer's classification of EBCDIC newline.

FossilOrigin-Name: 8680f6a8fb34b9c0ea9b4286888b4df5df427d2df10c782d198bc3f2fdcd0704

4 years agoRestore the NEVER() that was taken out by [f481636f1a0333c6] because that
drh [Fri, 19 Mar 2021 14:51:15 +0000 (14:51 +0000)] 
Restore the NEVER() that was taken out by [f481636f1a0333c6] because that
case is no longer reachable after the previous check-in.

FossilOrigin-Name: e3a78b2a237a2e101faf01dde913f63641da8854720a9daa4b45a9c5dfe30b1b

4 years agoFix a crash that could occur when an INSERT has more than one ON CONFLICT clause...
dan [Fri, 19 Mar 2021 14:26:24 +0000 (14:26 +0000)] 
Fix a crash that could occur when an INSERT has more than one ON CONFLICT clause, at least one of which contains an unresolvable symbol.

FossilOrigin-Name: 74208386508012326a0e88ec5b4a995d1b99607720bb05785a01c2d89ea03543

4 years agoCorrelated CTEs should not generate a materialization subroutine. If they
drh [Fri, 19 Mar 2021 13:53:34 +0000 (13:53 +0000)] 
Correlated CTEs should not generate a materialization subroutine.  If they
need to be materialized, each use case must be materialized separately.
dbsqlfuzz 01b8355086998f0a452cb31208e80b9d29ca739a.

FossilOrigin-Name: d72d865d3e8503a545603038eb26044bee42e4e8725522be678059ce6517fc8d

4 years agoImproved labeling of EXPLAIN QUERY PLAN output. Many test failures due to
drh [Fri, 19 Mar 2021 13:00:28 +0000 (13:00 +0000)] 
Improved labeling of EXPLAIN QUERY PLAN output.  Many test failures due to
the different output format.

FossilOrigin-Name: 6f8faec0222a7ca07cc1a5ed16cc08d92c6e20bbcb34851b4eff9e624de53601

4 years agoAdd a NEVER() on a branch that was made unreachable by the
drh [Thu, 18 Mar 2021 20:04:46 +0000 (20:04 +0000)] 
Add a NEVER() on a branch that was made unreachable by the
"circular reference" fix.

FossilOrigin-Name: 114d9780aecdd9f03f235fc1f2ab81ef89cb00b3bafa61cff612e939595ff5f0

4 years agoDisable a test case requiring generate_series when virtual tables are not
drh [Thu, 18 Mar 2021 18:27:37 +0000 (18:27 +0000)] 
Disable a test case requiring generate_series when virtual tables are not
available.

FossilOrigin-Name: ee86e2f4c5999a090a5d2fe8251107cf55e621a6b988f315eb82f462cc1e377d

4 years agoFix a problem causing spurious "<cte>: circular reference" errors to be reported...
dan [Thu, 18 Mar 2021 18:25:43 +0000 (18:25 +0000)] 
Fix a problem causing spurious "<cte>: circular reference" errors to be reported when there is actually a different error in the SQL statement.

FossilOrigin-Name: 9981223618782bf867dfc8988d0c634a42f569228880c5c5e00aa4ae762cfff2

4 years agoIncrease the patch level to 3.35.3.
drh [Thu, 18 Mar 2021 16:52:06 +0000 (16:52 +0000)] 
Increase the patch level to 3.35.3.

FossilOrigin-Name: 259b7c3e219873f3f679b00d3a89ecdac8a02c3472176d3a260f399e1faf3611

4 years agoFix the OP_OpenDup opcode so that it is able to duplicate a cursor that
drh [Thu, 18 Mar 2021 16:47:24 +0000 (16:47 +0000)] 
Fix the OP_OpenDup opcode so that it is able to duplicate a cursor that
was itself opened by OP_OpenDup.  Add additional verification of
ephemeral tables.  Fix for ticket [bb8a9fd4a9b7fce5].

FossilOrigin-Name: bcbe5308f3a3b94f965b0f5627cb29cce2e09343b86d757e2de889f7773576e7

4 years agoRemove unnecessary code from sqlite3BtreeClose() and add test cases. opendup-fix
drh [Thu, 18 Mar 2021 16:36:31 +0000 (16:36 +0000)] 
Remove unnecessary code from sqlite3BtreeClose() and add test cases.

FossilOrigin-Name: edbfdcaefae1e9a42c046c058341bf5b0f533c0b0cbd39543fcaa2a83d67561d

4 years agoFurther sanity checking of the OpenDup cursors.
drh [Thu, 18 Mar 2021 15:42:59 +0000 (15:42 +0000)] 
Further sanity checking of the OpenDup cursors.

FossilOrigin-Name: 0ec71cf16983697f68ab8d921d80a5f39611e4cb5e6e19cbc4a9ad6d49bfc835

4 years agoFix the dbsqlfuzz-derived authorizer in fuzzcheck to avoid creating junk
drh [Thu, 18 Mar 2021 14:36:19 +0000 (14:36 +0000)] 
Fix the dbsqlfuzz-derived authorizer in fuzzcheck to avoid creating junk
files when running rogue tests.

FossilOrigin-Name: eca21a620630b0c8d21a91ad6a8760a6c87270ab2a45cafa18bd31b305c53dba

4 years agoAutomatically close ephemeral b-trees when their last cursor is closed.
dan [Thu, 18 Mar 2021 14:31:37 +0000 (14:31 +0000)] 
Automatically close ephemeral b-trees when their last cursor is closed.

FossilOrigin-Name: 39b5af18c0580c8e92516d410f8c465bfec31b2d0be9df1cfd6a1d1a19b4fc14

4 years agoFix a problem with the filename normalizer in unix, discovered by dbsqlfuzz.
drh [Thu, 18 Mar 2021 13:55:25 +0000 (13:55 +0000)] 
Fix a problem with the filename normalizer in unix, discovered by dbsqlfuzz.

FossilOrigin-Name: ff1eca7fcdcbc550a5f23db9d85281e5373500912699a7c7ae54bc0df0547e26

4 years agoAllow instruction OP_OpenDup to duplicate cursors created by OP_OpenDup, as well...
dan [Thu, 18 Mar 2021 13:42:53 +0000 (13:42 +0000)] 
Allow instruction OP_OpenDup to duplicate cursors created by OP_OpenDup, as well as by OP_OpenEphemeral.

FossilOrigin-Name: b8de980b2fb78088ef74e053cb987bb84319d13dc96ce1e89baaaa3fe8cf1efc

4 years agoNew assert statements associated with Ephemeral cursors in the bytecode engine.
drh [Thu, 18 Mar 2021 13:19:41 +0000 (13:19 +0000)] 
New assert statements associated with Ephemeral cursors in the bytecode engine.

FossilOrigin-Name: a8ce73e2573b271d5d45838802ed1905ce5e18d5fafe0078700e79fab85457e2

4 years agoChange the name of the iDataVersion field of Btree to iBDataVersion to make
drh [Thu, 18 Mar 2021 12:36:09 +0000 (12:36 +0000)] 
Change the name of the iDataVersion field of Btree to iBDataVersion to make
it distinct from Pager.iDataVersion.

FossilOrigin-Name: e4c44c0bca317c03f8e6d3aa7cc88e5f96159a3d91c07257d408f7db028fd151

4 years agoVersion 3.35.2 union-all-flattener-limit version-3.35.2
drh [Wed, 17 Mar 2021 19:07:21 +0000 (19:07 +0000)] 
Version 3.35.2

FossilOrigin-Name: ea80f3002f4120f5dcee76e8779dfdc88e1e096c5cdd06904c20fd26d50c3827

4 years agoFix a harmless compiler warning in the appendvfs.c extension.
drh [Wed, 17 Mar 2021 19:05:59 +0000 (19:05 +0000)] 
Fix a harmless compiler warning in the appendvfs.c extension.

FossilOrigin-Name: 0ed7eb9115510511f13dca715bb2b178580648517d8d30436a992d70a2e85ac1

4 years agoIf there are already 500 or more simple SELECTs in a query, do not add more by flatte...
dan [Wed, 17 Mar 2021 14:29:37 +0000 (14:29 +0000)] 
If there are already 500 or more simple SELECTs in a query, do not add more by flattening UNION ALL sub-queries into parent join queries.

FossilOrigin-Name: 9520bed2bd87dc56543ee58123323d293e960ecd84707b77f15f41669a2c9c3d

4 years agoFix a problem in sqldiff virtual table hanlding to do with tab and other non-space...
dan [Wed, 17 Mar 2021 11:25:42 +0000 (11:25 +0000)] 
Fix a problem in sqldiff virtual table hanlding to do with tab and other non-space whitespace characters in the CREATE VIRTUAL TABLE statement.

FossilOrigin-Name: 1737e4fdfc9a3628415b234338a68a64cbbaadb23598517761e571ab7ed7ad14

4 years agoDate/time functions with no arguments (ex: date() or time()) should be
drh [Tue, 16 Mar 2021 18:41:20 +0000 (18:41 +0000)] 
Date/time functions with no arguments (ex: date() or time()) should be
non-deterministic.  Fix for ticket [2c6c8689fb5f3d2f].

FossilOrigin-Name: 1734c332e7f609769fc30f82cf7af097c2964e08900ee3e297f6a25e6df60555

4 years agoAdd tests for sqlite_rename_quotefix(). Fix a memory leak in the same. alter-quotefix
dan [Tue, 16 Mar 2021 18:24:49 +0000 (18:24 +0000)] 
Add tests for sqlite_rename_quotefix(). Fix a memory leak in the same.

FossilOrigin-Name: 531550056c38589c99c9a97b6afdbf8f34ff8d2131d74e9d42af3506e8045064

4 years agoHave ALTER TABLE RENAME COLUMN and DROP COLUMN use sqlite_rename_quotefix() to conver...
dan [Tue, 16 Mar 2021 16:14:48 +0000 (16:14 +0000)] 
Have ALTER TABLE RENAME COLUMN and DROP COLUMN use sqlite_rename_quotefix() to convert any double-quoted strings in the database schema to their single-quoted equivalents.

FossilOrigin-Name: 6446c0961077396086251670102ea7bf17d54a6b0f0ca56c6af89028a1ff9039

4 years agoIncrease the version number to 3.35.2.
drh [Tue, 16 Mar 2021 14:43:26 +0000 (14:43 +0000)] 
Increase the version number to 3.35.2.

FossilOrigin-Name: 7a211b3f09b17b758ac43c3ed14e3f90c55459077412a57baca0f7cadff47fbf

4 years agoFix recent breakage of the appendvfs extension.
drh [Tue, 16 Mar 2021 14:26:56 +0000 (14:26 +0000)] 
Fix recent breakage of the appendvfs extension.

FossilOrigin-Name: 7dbbe5b34eea31ea54a5804035d4d0dfeb09c42cd9ab337e1e64c1296decbef3

4 years agoComment and stylistic changes to the appendvfs.c implementation. appendvfs_fix
drh [Tue, 16 Mar 2021 14:12:26 +0000 (14:12 +0000)] 
Comment and stylistic changes to the appendvfs.c implementation.

FossilOrigin-Name: 25c3186aa143328157fb506a29802e87099cd14be4fa218230484a3212f20621