]>
git.ipfire.org Git - thirdparty/sqlite.git/log
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
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
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
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
dan [Tue, 6 Apr 2021 17:51:18 +0000 (17:51 +0000)]
Fix issue with failing --enable-debug --enable-fts5 build.
FossilOrigin-Name:
e7491acc0c93b7b0b5a27130d956bb23f876b90ced11cdd416a86727af076ee1
drh [Tue, 6 Apr 2021 16:55:30 +0000 (16:55 +0000)]
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
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
dan [Tue, 6 Apr 2021 14:46:50 +0000 (14:46 +0000)]
Remove some test routines from release builds of fts5.
FossilOrigin-Name:
3088bf15ca53fac3bad94f241e648836631b6d801d42837c238ff27d85074ca4
dan [Tue, 6 Apr 2021 13:57:23 +0000 (13:57 +0000)]
Fix incorrect RETURNING test cases in wherelimit.test
FossilOrigin-Name:
20d21ff9be558c5f7773efa4efba7d36752f56c9a0caf1fd9c601aab5562dcef
drh [Tue, 6 Apr 2021 13:56:46 +0000 (13:56 +0000)]
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
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
drh [Tue, 6 Apr 2021 12:50:24 +0000 (12:50 +0000)]
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
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
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
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
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
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
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
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
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
larrybr [Sun, 4 Apr 2021 14:22:02 +0000 (14:22 +0000)]
Avoid compile error when SQLITE_OMIT_VIRTUALTABLE defined.
FossilOrigin-Name:
0ee0ef476ba9e17794c088a1347a136df3eb1ef864da884cfe81e3b2e94e9719
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
drh [Sat, 3 Apr 2021 23:30:33 +0000 (23:30 +0000)]
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
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
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
dan [Fri, 2 Apr 2021 19:55:48 +0000 (19:55 +0000)]
Add experimental SQLITE_FCNTL_EXTERNAL_READER file control.
FossilOrigin-Name:
e16da5af822ef31d7e05992403cf9787fbb3d9abb0b5283aba55ea07e1830a72
drh [Fri, 2 Apr 2021 18:59:13 +0000 (18:59 +0000)]
Fix a problem with the geopoly_bbox() function.
FossilOrigin-Name:
f3a2eb979f1003e8249e613b34afd345f157c0d54b4f05ea0db230ef70e71351
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
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
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
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
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
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
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
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
drh [Mon, 29 Mar 2021 19:47:39 +0000 (19:47 +0000)]
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
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
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
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
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
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
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
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
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
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
drh [Wed, 24 Mar 2021 17:04:32 +0000 (17:04 +0000)]
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
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
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
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
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
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
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
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
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
drh [Mon, 22 Mar 2021 18:53:26 +0000 (18:53 +0000)]
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
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
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
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
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
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
drh [Sat, 20 Mar 2021 01:00:26 +0000 (01:00 +0000)]
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
drh [Fri, 19 Mar 2021 19:09:24 +0000 (19:09 +0000)]
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
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
larrybr [Fri, 19 Mar 2021 15:02:59 +0000 (15:02 +0000)]
Fix tokenizer's classification of EBCDIC newline.
FossilOrigin-Name:
8680f6a8fb34b9c0ea9b4286888b4df5df427d2df10c782d198bc3f2fdcd0704
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
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
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
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
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
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
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
drh [Thu, 18 Mar 2021 16:52:06 +0000 (16:52 +0000)]
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
drh [Thu, 18 Mar 2021 16:36:31 +0000 (16:36 +0000)]
Remove unnecessary code from sqlite3BtreeClose() and add test cases.
FossilOrigin-Name:
edbfdcaefae1e9a42c046c058341bf5b0f533c0b0cbd39543fcaa2a83d67561d
drh [Thu, 18 Mar 2021 15:42:59 +0000 (15:42 +0000)]
Further sanity checking of the OpenDup cursors.
FossilOrigin-Name:
0ec71cf16983697f68ab8d921d80a5f39611e4cb5e6e19cbc4a9ad6d49bfc835
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
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
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
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
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
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
drh [Wed, 17 Mar 2021 19:07:21 +0000 (19:07 +0000)]
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
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
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
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
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
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
drh [Tue, 16 Mar 2021 14:43:26 +0000 (14:43 +0000)]
drh [Tue, 16 Mar 2021 14:26:56 +0000 (14:26 +0000)]
Fix recent breakage of the appendvfs extension.
FossilOrigin-Name:
7dbbe5b34eea31ea54a5804035d4d0dfeb09c42cd9ab337e1e64c1296decbef3
drh [Tue, 16 Mar 2021 14:12:26 +0000 (14:12 +0000)]
Comment and stylistic changes to the appendvfs.c implementation.
FossilOrigin-Name:
25c3186aa143328157fb506a29802e87099cd14be4fa218230484a3212f20621