]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
3 years agoCode EP_InnerJoin constraints at the same time that EP_FromJoin constraints joinD
drh [Wed, 4 May 2022 17:30:51 +0000 (17:30 +0000)] 
Code EP_InnerJoin constraints at the same time that EP_FromJoin constraints
are coded.

FossilOrigin-Name: b57033d2af2196e2f7e5305f3504fc20da5cadeb66026d38b999fe909cab8ac5

3 years agoMerge ON-clause constraint usage fix from trunk into the joinD branch.
drh [Wed, 4 May 2022 14:46:08 +0000 (14:46 +0000)] 
Merge ON-clause constraint usage fix from trunk into the joinD branch.

FossilOrigin-Name: 0a20d4a85964fb5f2060b9522356ad2711f41d0d526ba3d2e58fc51029878298

3 years agoFix ON-clause constraint usage for FULL and RIGHT JOINs.
drh [Wed, 4 May 2022 14:45:19 +0000 (14:45 +0000)] 
Fix ON-clause constraint usage for FULL and RIGHT JOINs.

FossilOrigin-Name: 544268a723cafdf0460221f5f018e752836436bad0fac90852cec70e63d9dcde

3 years agoNew test cases using various join types and Bloom filters. Two cases
drh [Wed, 4 May 2022 11:49:26 +0000 (11:49 +0000)] 
New test cases using various join types and Bloom filters.  Two cases
differ from PG and need to be resolved.

FossilOrigin-Name: befa8cbc0682bc3269f87e392a1f3d4baacf4db7c716ea84192bb9c13c99490b

3 years agoFix CLI use of wrong allocator for free().
larrybr [Wed, 4 May 2022 03:45:32 +0000 (03:45 +0000)] 
Fix CLI use of wrong allocator for free().

FossilOrigin-Name: 9fb20a21feb8f6979812f45691e06aa3e297d7370cf0d5820523e817a4e97863

3 years agoIn the query planner, do not let tables commute across any outer join.
drh [Wed, 4 May 2022 02:01:49 +0000 (02:01 +0000)] 
In the query planner, do not let tables commute across any outer join.

FossilOrigin-Name: 8cee5388232ade91ea627bb6857eb8937d7530b5ea519e0ae6da362c37c7ed35

3 years agoTypos cleared from README.md
larrybr [Tue, 3 May 2022 21:58:24 +0000 (21:58 +0000)] 
Typos cleared from README.md

FossilOrigin-Name: be3a1879c865cff85d8b1f0cc7b95295019c28cce67c687692a3210eeea6e314

3 years agoFix the Bloom filter pull-down optimization so that it jumps to the correct
drh [Tue, 3 May 2022 14:01:48 +0000 (14:01 +0000)] 
Fix the Bloom filter pull-down optimization so that it jumps to the correct
place if it encounters a NULL key.  Fix for the bug described by
[forum:/forumpost/2482b32700384a0f|forum thread 2482b32700384a0f].

FossilOrigin-Name: 6eda9b1a7784cf6d58c8876551f67ab98e78a08e726a0579d4def5ba881985bb

3 years agoAdd assert()s to show that jumps always land an an instruction that is between
drh [Tue, 3 May 2022 12:11:16 +0000 (12:11 +0000)] 
Add assert()s to show that jumps always land an an instruction that is between
1 and Vdbe.nOp-1.  Had these assert()s been in place before, they would have
caused an assertion fault for the byte-code error reported by
[forum:/forumpost/2482b32700|forum post 2482b32700].

FossilOrigin-Name: 8f8a58feb7047d19522ca32efbe42fd9ddf49aaf9064f7373eb56a88982406a2

3 years agoRemove a testcase() macro taht was made obsolete by [a8da85c57e07721d].
drh [Mon, 2 May 2022 15:47:57 +0000 (15:47 +0000)] 
Remove a testcase() macro taht was made obsolete by [a8da85c57e07721d].

FossilOrigin-Name: 053cf45ecaa7eac8cc64c7b2672807f736a45575a84b426263b2e1feb060b401

3 years agoDocument (in comments) that the SQLITE_FlttnUnionAll bit has a specific value
drh [Mon, 2 May 2022 15:31:06 +0000 (15:31 +0000)] 
Document (in comments) that the SQLITE_FlttnUnionAll bit has a specific value
needed by TH3.

FossilOrigin-Name: bcaa4a44749d157c5953c6f54c88b1ba29b4035f4b21fce986b7efbea372e109

3 years agoFix a harmless compiler warning in sqlite3TreeViewWinFunc() (a routine that
drh [Mon, 2 May 2022 15:23:59 +0000 (15:23 +0000)] 
Fix a harmless compiler warning in sqlite3TreeViewWinFunc() (a routine that
does not even appear in release builds).

FossilOrigin-Name: daff6070039e45df7c47b323a8352e56d1264a7bfb065fe2d79c58454c95a262

3 years agoImprovement on check-in [a193749730d6cfba] so that the subroutine call to
drh [Mon, 2 May 2022 14:32:56 +0000 (14:32 +0000)] 
Improvement on check-in [a193749730d6cfba] so that the subroutine call to
the IN operator right-hand side generator from the RIGHT JOIN no-match logic
does not generate unreachable byte code.

FossilOrigin-Name: cc458317bd77046c4328715ae9e3409f3f4cd422a01162cb33405ef3a142b0a3

3 years agoBring the comments on sqlite3FindInIndex() into closer alignment with what
drh [Mon, 2 May 2022 11:24:21 +0000 (11:24 +0000)] 
Bring the comments on sqlite3FindInIndex() into closer alignment with what
that routine actually does.

FossilOrigin-Name: 40f3274745b53bb72933c1052d0e85bc74be56d3a1068e9d54dc28763a2cfef9

3 years agoDefensive code in sqlite3TreeViewWindow() to fix a compiler warning.
drh [Sat, 30 Apr 2022 19:55:28 +0000 (19:55 +0000)] 
Defensive code in sqlite3TreeViewWindow() to fix a compiler warning.

FossilOrigin-Name: b250c218b4b6327a1cae3edbc037625ba998f89ee13a9bfbc2cefd1edfc4b768

3 years agoSimplified fix to the problem with subroutine reuse in the RIGHT JOIN no-match
drh [Sat, 30 Apr 2022 18:40:22 +0000 (18:40 +0000)] 
Simplified fix to the problem with subroutine reuse in the RIGHT JOIN no-match
logic for a subquery on the right-hand side of an IN operator.  The code still
needs simplification.

FossilOrigin-Name: a193749730d6cfba617f2a64e7254c78f92bbf29b109c19055fc33f6cc643d4c

3 years agoPreserve the COLLATE operator on an index on an expression when resolving
drh [Sat, 30 Apr 2022 12:35:51 +0000 (12:35 +0000)] 
Preserve the COLLATE operator on an index on an expression when resolving
the use of that expression into a reference to the index.  See
[forum:/info/7efabf4b03328e57|forum thread 7efabf4b03328e57] for details.

FossilOrigin-Name: a8da85c57e07721dc1c918d67433d6c99ce48421e369123cc3194d855e55f7e8

3 years agoFurther improvements to codeEqualityTerm() for cases when an IN operator with
drh [Sat, 30 Apr 2022 00:06:52 +0000 (00:06 +0000)] 
Further improvements to codeEqualityTerm() for cases when an IN operator with
a right-hand side subquery is used as a constraint that needs to be processed
by the RIGHT JOIN non-matched logic.

FossilOrigin-Name: bb2798be3fb5737827eec505db2d4c8cb510d227d98fc26ce748bf2da7e8b382

3 years agoEnhance the TreeView debugging output for Expr with opcode TK_IN so as to
drh [Sat, 30 Apr 2022 00:05:37 +0000 (00:05 +0000)] 
Enhance the TreeView debugging output for Expr with opcode TK_IN so as to
show the RHS table and the subroutine address.

FossilOrigin-Name: aec1e4cd59ae874b66335e4f87322fbe31fbb752429e68bf41338db316d0a9ed

3 years agoEnhance the codeEqualityTerm() routine inside the code generator so that it is
drh [Fri, 29 Apr 2022 19:00:11 +0000 (19:00 +0000)] 
Enhance the codeEqualityTerm() routine inside the code generator so that it is
able to reuse an IN operator that has an invariant subquery on its right-hand
side while coding the non-matched loop of a RIGHT JOIN.
dbsqlfuzz 19f1102a70cf966ab249de56d944fc20dbebcfcf

FossilOrigin-Name: 56dd3065469e49320b13af039471b3f0b85e6f7368cfd97b1cdc0cf8fa8e1956

3 years agoWith TreeView, only show the table columns for a SrcItem if the data source
drh [Fri, 29 Apr 2022 17:45:39 +0000 (17:45 +0000)] 
With TreeView, only show the table columns for a SrcItem if the data source
is a subquery rather than a persistent table.

FossilOrigin-Name: 7b4a0d0fa1d8facaf5e550650d9b261eda7eb7a2a413627f2751f01c5477e1f3

3 years agoMultiple enhancements to the TreeView output for SrcItem, cherrypicked from
drh [Fri, 29 Apr 2022 17:13:52 +0000 (17:13 +0000)] 
Multiple enhancements to the TreeView output for SrcItem, cherrypicked from
the right-join experimental branch.

FossilOrigin-Name: 293afa81112e824eec2557d004a27319d484276f796936e16d64243fe24f6b68

3 years agoMinor typo fix in a comment, for the benefit of broken IDE syntax highlighters.
drh [Fri, 29 Apr 2022 12:09:43 +0000 (12:09 +0000)] 
Minor typo fix in a comment, for the benefit of broken IDE syntax highlighters.

FossilOrigin-Name: 680ccecbc839373194ed2dcc1053e25512d9ea3f12f8c8963cb8fbd1a034d2f8

3 years agoFix problem with SQLITE_OMIT_VIRTUALTABLE builds.
dan [Thu, 28 Apr 2022 18:33:02 +0000 (18:33 +0000)] 
Fix problem with SQLITE_OMIT_VIRTUALTABLE builds.

FossilOrigin-Name: a99ee612b9bd6d75b63e557ef5bdac2143425a558cf023a0480cc28c8300a9a8

3 years agoFix a harmless typo in a comment.
drh [Wed, 27 Apr 2022 18:38:46 +0000 (18:38 +0000)] 
Fix a harmless typo in a comment.

FossilOrigin-Name: e1f4a115df34e45cf1bcf98961c699b582f564a58a979e95853b219bda06212c

3 years agoWhen computing STAT1 values using ANALYZE, if a ratio comes out to be between
drh [Wed, 27 Apr 2022 16:41:56 +0000 (16:41 +0000)] 
When computing STAT1 values using ANALYZE, if a ratio comes out to be between
1.0 and 1.1, then round it down to 1 rather than the using the default rounding
rule of changing it to 2.  The reduces the estimation error for the
case where a column value is very nearly, but not quite unique.

FossilOrigin-Name: eb59c46a5aed69bc6fd096997bf24c082e533c1085439f6ec1fbe5ff78e8b374

3 years agoFix a test problem in rbubusy.test causing a crash under some circumstances.
dan [Wed, 27 Apr 2022 13:33:48 +0000 (13:33 +0000)] 
Fix a test problem in rbubusy.test causing a crash under some circumstances.

FossilOrigin-Name: bc5bbd9fa636cc9ef0cbbc0600b8fc1404b9732670ac4e7a8b5a230fbce758d5

3 years agoUpdate corruptL.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds.
dan [Tue, 26 Apr 2022 19:16:11 +0000 (19:16 +0000)] 
Update corruptL.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds.

FossilOrigin-Name: b1bec72043f798f4d4d30e6b60a45ed4dc521115c8a9f97bb8228e3f089deefb

3 years agoFix a problem with automatic indexes introduced by
drh [Mon, 25 Apr 2022 20:56:55 +0000 (20:56 +0000)] 
Fix a problem with automatic indexes introduced by
check-in [664b461bb5063d980] and reported by
[forum:/forumpost/0d3200f4f3bcd3a3|forum post 0d3200f4f3bcd3a3].

FossilOrigin-Name: 134cfb18ff930e4bccc1a7412a02be353bf67c6d5080bc0673afaac81afa889c

3 years agoDo not allow the push-down optimization on the right table of a RIGHT JOIN. autoindex-fix
drh [Mon, 25 Apr 2022 20:47:58 +0000 (20:47 +0000)] 
Do not allow the push-down optimization on the right table of a RIGHT JOIN.

FossilOrigin-Name: 05917bfa02a7b6678c147d10fb53f55532ab15fd5d82d925ae921ae3759f0115

3 years agoThe pushDownWhereTerms() routine should be using
drh [Mon, 25 Apr 2022 20:38:42 +0000 (20:38 +0000)] 
The pushDownWhereTerms() routine should be using
sqlite3ExprIsTableConstraint(), not sqlite3ExprIsTableConstant().  This fixes
many problems, but still an error persists in join7.test.

FossilOrigin-Name: 10bf0e613809f71cc1a47ad40b517e2a66671212a6464e179c9d377e8b70d499

3 years agoFix a problem with automatic indexes introduced by
drh [Mon, 25 Apr 2022 19:40:33 +0000 (19:40 +0000)] 
Fix a problem with automatic indexes introduced by
check-in [664b461bb5063d980] and reported by
[forum:/forumpost/0d3200f4f3bcd3a3|forum post 0d3200f4f3bcd3a3].

FossilOrigin-Name: 7ca3456c00998a429418ff29cf251b381586b330b88344c94a40c5df0b71da85

3 years agoAdd a new optimizer disabling bit to disable just the UNION ALL branch of the
drh [Mon, 25 Apr 2022 14:59:59 +0000 (14:59 +0000)] 
Add a new optimizer disabling bit to disable just the UNION ALL branch of the
query flattener.

FossilOrigin-Name: c0f9ebab5455d8541a562122d3270b95ce571c3fd870b0048dda2b036c2b66c0

3 years agoAvoid unintended side-effects on Parse.nSelect in the
drh [Mon, 25 Apr 2022 14:49:48 +0000 (14:49 +0000)] 
Avoid unintended side-effects on Parse.nSelect in the
sqlite3ViewGetColumnNames() routine.

FossilOrigin-Name: 59789fe1e745bb6f81898176e7e9c6064ac9f4bbefb4dc3c8f3e4c1379568f69

3 years agoRemove NEVER() on branches formerly thought to unreachable
drh [Mon, 25 Apr 2022 10:43:19 +0000 (10:43 +0000)] 
Remove NEVER() on branches formerly thought to unreachable
(see check-in [71272caff5874137]) in order to fix the first bug reported
by [forum:/forumpost/28821db852|forum post 28821db852].

FossilOrigin-Name: bd6811d8110d5f00596e2eff6d4b02af8b6d8557d41990e6f50518ead0fa01fb

3 years agoPrevent the ORDER BY LIMIT optimization from running if the innermost loop
drh [Sat, 23 Apr 2022 19:21:47 +0000 (19:21 +0000)] 
Prevent the ORDER BY LIMIT optimization from running if the innermost loop
is a right-join, as doing so will get an incorrect answer.

FossilOrigin-Name: 3aefc874d31885c64a5e02868edb2aa56a2b4429252d494e67e4088a9298ce5b

3 years agoIn debug builds, add extra code to verify that there are no jumps that try to
drh [Sat, 23 Apr 2022 18:46:03 +0000 (18:46 +0000)] 
In debug builds, add extra code to verify that there are no jumps that try to
escape from the right-join body subroutine.

FossilOrigin-Name: 45fe919266ba1843f3eeeb511ab43126069d4976c9fc64e57e0390c21f110b6e

3 years agoFix false-positives in sqlite3VdbeNoJumpsOutsideSubrtn(). All tests pass now. right-join-subrtn-check
drh [Sat, 23 Apr 2022 18:34:55 +0000 (18:34 +0000)] 
Fix false-positives in sqlite3VdbeNoJumpsOutsideSubrtn().  All tests pass now.

FossilOrigin-Name: 1300d978d5a072780e0f16722e42461dc983de9b4dfb2f5a7023c74c92ab9bc8

3 years agoFor debug builds, if the RIGHT JOIN body subroutine contains a jump that
drh [Sat, 23 Apr 2022 18:04:31 +0000 (18:04 +0000)] 
For debug builds, if the RIGHT JOIN body subroutine contains a jump that
escapes the subroutine, then abort the prepared statement with a descriptive
error and SQLITE_INTERNAL.  This extra sanity check causes many tests to
fail.

FossilOrigin-Name: 2c5bb2bff26cc70d8cac78ddd12d5ac37ab1472f5f88afbd975950a18ac2804d

3 years agoMake use of the "%!S" format when running ExplainSubquery.
drh [Fri, 22 Apr 2022 18:07:38 +0000 (18:07 +0000)] 
Make use of the "%!S" format when running ExplainSubquery.

FossilOrigin-Name: 9425d79cb407dedc259655625369e023d22a04ef7db606ea3eefe7e4d662be1a

3 years agoImprove EXPLAIN QUERY PLAN output and comments on bytecode listings by
drh [Fri, 22 Apr 2022 17:36:10 +0000 (17:36 +0000)] 
Improve EXPLAIN QUERY PLAN output and comments on bytecode listings by
distinguishing between "subquery" and "join" and using consistent names
across EQP and bytecode.

FossilOrigin-Name: a2d3ee92420ec564e31eb0005367cf7ff3d00bfaed5a98ffdbe17c91c95d9d97

3 years agoHonor the MATERIALIZED keyword on a common table expression by not flattening
drh [Fri, 22 Apr 2022 16:15:48 +0000 (16:15 +0000)] 
Honor the MATERIALIZED keyword on a common table expression by not flattening
the CTE into an outer query.

FossilOrigin-Name: 8d631a6b9eb06b54b10eda595a4c588ca38f909b4afa653b24d1f720b55d72f7

3 years agoAdd test cases to check the handling of SQLITE_BUSY in rbu.
dan [Fri, 22 Apr 2022 15:18:41 +0000 (15:18 +0000)] 
Add test cases to check the handling of SQLITE_BUSY in rbu.

FossilOrigin-Name: 6fccc733c6041a2946fb3d37e4737ae37defae5c110225dd746cdc038cc64957

3 years agoSimplification of data structures in the wildcard expander for
drh [Fri, 22 Apr 2022 13:34:45 +0000 (13:34 +0000)] 
Simplification of data structures in the wildcard expander for
SF_NestedFrom queries.

FossilOrigin-Name: f7c18262347ff430879d5afc7a118d2b9b0050c845c6b1fe6c047062ea2ba8fe

3 years agoMinor simplification to the result-set wildcard expander for SF_NestedFrom.
drh [Fri, 22 Apr 2022 12:46:46 +0000 (12:46 +0000)] 
Minor simplification to the result-set wildcard expander for SF_NestedFrom.

FossilOrigin-Name: d942530a6550a0cbe31790e462b0f0d57b9b4a896161878b7d45d11cbc1cb7a3

3 years agoMerge the latest trunk fixes into the right-join branch.
drh [Fri, 22 Apr 2022 09:57:57 +0000 (09:57 +0000)] 
Merge the latest trunk fixes into the right-join branch.

FossilOrigin-Name: c74dc574c3b24a7d3533202f33b15341b043cfd89a80250563e6771ab6b6b8a7

3 years agoPrevious fix to join8.test needs a return.
drh [Thu, 21 Apr 2022 23:34:35 +0000 (23:34 +0000)] 
Previous fix to join8.test needs a return.

FossilOrigin-Name: 7b4cd705a0339ddacad19564b07e50e4f68f54bf14dd2cd5d59b39314a4d2523

3 years agoDisable join8.test if the build lacks support for virtual tables.
drh [Thu, 21 Apr 2022 23:01:24 +0000 (23:01 +0000)] 
Disable join8.test if the build lacks support for virtual tables.

FossilOrigin-Name: 94e1916a2f594e6b8a54734027deb99688244d05cefb3c78f23afab49af1e08f

3 years agoAdd support for RIGHT and FULL JOIN.
drh [Thu, 21 Apr 2022 19:38:17 +0000 (19:38 +0000)] 
Add support for RIGHT and FULL JOIN.

FossilOrigin-Name: f766dff012af0ea3c28a8ce4db850cd0205729a8283bce1e442992aded7c734b

3 years agoFix harmless compiler warnings.
drh [Thu, 21 Apr 2022 19:25:51 +0000 (19:25 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 29255664127a975e5b0d5767cd4e56d93ff2ea1994702cdfbdca1b700952502e

3 years agoFix a harmless uninitialized variable warning in MSVC.
drh [Thu, 21 Apr 2022 19:20:38 +0000 (19:20 +0000)] 
Fix a harmless uninitialized variable warning in MSVC.

FossilOrigin-Name: b870d2a2fa54ddab6ffc9b9d95f52420a5a6831aeb73dac75355ca1ab15a190e

3 years agoFix harmless compiler warnings in the CLI.
drh [Thu, 21 Apr 2022 19:14:23 +0000 (19:14 +0000)] 
Fix harmless compiler warnings in the CLI.

FossilOrigin-Name: dfd2100bc4f316825fd199b347849d1a2b941837f9eedcf36f3c3d280692b991

3 years agoMake sure the code generator knows to invoke row-value subroutines which
drh [Thu, 21 Apr 2022 14:48:40 +0000 (14:48 +0000)] 
Make sure the code generator knows to invoke row-value subroutines which
running the right-join post-processing loop.

FossilOrigin-Name: fd328e52aee1dace12b1c2f44b6f7e9d15d8f77c8e9d9e3d85840a129a4b1808

3 years agoEnsure correct fg.isNestedFrom values even on crazy parses.
drh [Thu, 21 Apr 2022 14:08:29 +0000 (14:08 +0000)] 
Ensure correct fg.isNestedFrom values even on crazy parses.

FossilOrigin-Name: e611e8e62c948d28cd3f28452d3096bab06998a685ed9434061cc2054f5cac32

3 years agoAvoid materializing columns of SF_NestedFrom subqueries that are never used.
drh [Thu, 21 Apr 2022 13:11:26 +0000 (13:11 +0000)] 
Avoid materializing columns of SF_NestedFrom subqueries that are never used.
Other code improvements manually imported from the right-join-paren branch.

FossilOrigin-Name: cd8272fc2a34d1b245fd95208b9b601266ee7d2ff0f5ce52d03752f2c4e852a2

3 years agoFor CLI, fix how columnar mode fills in empty portions of wrapped row outputs.
larrybr [Wed, 20 Apr 2022 22:41:10 +0000 (22:41 +0000)] 
For CLI, fix how columnar mode fills in empty portions of wrapped row outputs.

FossilOrigin-Name: 77aed89192bdbad819ac17bf5d08728278a9b8cbbbef1d805df230caff79b417

3 years agoSmall correction to the new bUsed logic of sqlite3ProcessJoin().
drh [Wed, 20 Apr 2022 18:12:42 +0000 (18:12 +0000)] 
Small correction to the new bUsed logic of sqlite3ProcessJoin().

FossilOrigin-Name: ba04142e09bb1ccc86824760a2e11df47e070285a2d09c2f61b75255886597cd

3 years agoMerge window function fix from trunk.
drh [Wed, 20 Apr 2022 16:54:47 +0000 (16:54 +0000)] 
Merge window function fix from trunk.

FossilOrigin-Name: b6b9e185f8c44b5f2f51111f7c5e4e2d77c8b853c5be271467ce138e8066340c

3 years agoRemove an unnecessary assignment operation.
drh [Wed, 20 Apr 2022 16:53:23 +0000 (16:53 +0000)] 
Remove an unnecessary assignment operation.

FossilOrigin-Name: ed46527aca170ccbe9ed9ea4ae065db72c82dec17da7b99c928fae4495f05c2b

3 years agoFix a problem with using multiple SQLITE_SUBTYPE function as window functions in...
dan [Wed, 20 Apr 2022 16:42:57 +0000 (16:42 +0000)] 
Fix a problem with using multiple SQLITE_SUBTYPE function as window functions in a single query.

FossilOrigin-Name: 9430ead7ba433cbfce99f4f364a0c08499230e3a04f167326b0f131f098ffa09

3 years agoComment fixes and improvements in sqlite3ProcessJoin().
drh [Wed, 20 Apr 2022 16:26:22 +0000 (16:26 +0000)] 
Comment fixes and improvements in sqlite3ProcessJoin().

FossilOrigin-Name: 1118655f4d58da1273e83954c80d8bc17fa3bde7a39e81cb9947d59894d5ab93

3 years agoImproved tracking of nested SELECT objects used to implement
drh [Wed, 20 Apr 2022 15:07:39 +0000 (15:07 +0000)] 
Improved tracking of nested SELECT objects used to implement
parenthensized FROM terms.

FossilOrigin-Name: 0da2232624571f4020c05d775ea518514d748fba8dacd4caba2e2e6ed1ae399f

3 years agoAlso show the ENAME_SPAN value in sqlite3TreeViewExprList(), if there is one.
drh [Wed, 20 Apr 2022 12:15:51 +0000 (12:15 +0000)] 
Also show the ENAME_SPAN value in sqlite3TreeViewExprList(), if there is one.

FossilOrigin-Name: c1d42861778d65f7014c43fbaf09972a69ff0d81bfc2f4720160a989489cf2c8

3 years agoImproved TreeView output for ExprList: Show the ENAME_TAB value, if there
drh [Wed, 20 Apr 2022 12:14:20 +0000 (12:14 +0000)] 
Improved TreeView output for ExprList:   Show the ENAME_TAB value, if there
is one.

FossilOrigin-Name: eb3f883b45f1bf3f388823360f4aec2d4b8776bfd96185b4fb44b7bc95c62318

3 years agoAdd a new comment to the body of lookupName(). No code changes.
drh [Wed, 20 Apr 2022 12:02:52 +0000 (12:02 +0000)] 
Add a new comment to the body of lookupName().  No code changes.

FossilOrigin-Name: 22fa9b9b450fbbf7578597714eb1094f7d7433ac13497dc7d4a9affc4a2652ad

3 years agoMerge the ALTER TABLE fix from trunk.
drh [Tue, 19 Apr 2022 23:00:32 +0000 (23:00 +0000)] 
Merge the ALTER TABLE fix from trunk.

FossilOrigin-Name: d5ceaef3fca8cb4791ead9cbfe00d0eafa1bdc2b0522c3599c68b40fe6a7efe2

3 years agoFix a problem in ALTER TABLE with handling "table.*" expressions within SELECT statem...
dan [Tue, 19 Apr 2022 20:47:18 +0000 (20:47 +0000)] 
Fix a problem in ALTER TABLE with handling "table.*" expressions within SELECT statements in triggers.

FossilOrigin-Name: 24755fd0657252e49793bb1fe906973a2dd84a1bde03bea9a762de36cc96c2d2

3 years agoImproved comment on the JF_LTORJ constant definition.
drh [Tue, 19 Apr 2022 19:51:51 +0000 (19:51 +0000)] 
Improved comment on the JF_LTORJ constant definition.

FossilOrigin-Name: e0744da95fc010dc3a2e030ff491bcfa08a18691ee6ebc7d4e8aab3850f56eec

3 years agoFix a NULL-pointer dereference that can occur on an aggregate query that
drh [Tue, 19 Apr 2022 18:23:01 +0000 (18:23 +0000)] 
Fix a NULL-pointer dereference that can occur on an aggregate query that
uses FULL JOIN.  dbsqlfuzz 496a35dd4eefcd7935aaaeb0c69056bf49785d28.

FossilOrigin-Name: 63b8f8aec2a9ac3fbbd02715aa308eaf43c9ffde9d7c6db026d46edc575e7bdd

3 years agoMark an unreachable "just-in-case" branch as unreachable.
drh [Tue, 19 Apr 2022 15:56:03 +0000 (15:56 +0000)] 
Mark an unreachable "just-in-case" branch as unreachable.

FossilOrigin-Name: b966d52437f08a6759a83a45cafb0d706a8933a8e55dee38ae78166d1a5b3ba4

3 years agoAdd 512 new join test cases derived from PostgreSQL output.
drh [Tue, 19 Apr 2022 15:01:57 +0000 (15:01 +0000)] 
Add 512 new join test cases derived from PostgreSQL output.

FossilOrigin-Name: 78d58e461f99366d2749ccd6d02ab4cba0cab20bb80c097e7128da1e50303549

3 years agoRemove unnecessary cases for the resolver.
drh [Tue, 19 Apr 2022 09:39:39 +0000 (09:39 +0000)] 
Remove unnecessary cases for the resolver.

FossilOrigin-Name: 5bc9aa68e2f938f6a70dd4b08703fe52416d17efe461ec65d37332b57b827fdd

3 years agoAdd the omitted "finish_test" to the end of joinA.test.
drh [Tue, 19 Apr 2022 02:03:18 +0000 (02:03 +0000)] 
Add the omitted "finish_test" to the end of joinA.test.

FossilOrigin-Name: 0907505cc9bb051280108fe5074211374b31836fae1ae6667a3de69f9d83fc01

3 years agoNew test cases for RIGHT and FULL JOIN.
drh [Tue, 19 Apr 2022 00:24:52 +0000 (00:24 +0000)] 
New test cases for RIGHT and FULL JOIN.

FossilOrigin-Name: 5c2f670e0fb35648e1d6e1c48f4d8af815cd57d59eac6ba22e253511bb078870

3 years agoFix the query flattener so that it does not flatten a RIGHT or FULL JOIN into
drh [Mon, 18 Apr 2022 23:20:02 +0000 (23:20 +0000)] 
Fix the query flattener so that it does not flatten a RIGHT or FULL JOIN into
any position of the outer query other than the first.

FossilOrigin-Name: 837322aa95b1c46201b7dd0c2e6c7b9915b4276d997949f1ecf961fb7f3514cf

3 years agoNew test cases, including one that gets a different result than Postgres.
drh [Mon, 18 Apr 2022 22:51:24 +0000 (22:51 +0000)] 
New test cases, including one that gets a different result than Postgres.

FossilOrigin-Name: 49ea11a4a5fd630db44f458304d4f45fa103529ed6b36d538c78074965e8d799

3 years agoDisable the unused EU4_EXPR mode for the IdList object.
drh [Mon, 18 Apr 2022 19:48:31 +0000 (19:48 +0000)] 
Disable the unused EU4_EXPR mode for the IdList object.

FossilOrigin-Name: 5bcf4aa3bf6b1b9f47142bc37683bb3bf0adeffd052d07449af7c9b415add052

3 years agoEven more test cases.
drh [Mon, 18 Apr 2022 19:34:41 +0000 (19:34 +0000)] 
Even more test cases.

FossilOrigin-Name: 5f4310a104443ac3fc56f9d9cd2d428dd3e7a2a0285c8e74de6f499439fd6868

3 years agoNew test cases for parenthesized NATURAL FULL JOINs.
drh [Mon, 18 Apr 2022 19:28:08 +0000 (19:28 +0000)] 
New test cases for parenthesized NATURAL FULL JOINs.

FossilOrigin-Name: e34250efd34b526373bf072a43a7984ca19690836d7d2464dea8338066eaee8f

3 years agoNew test case demonstrating the ability to invoke OP_NullRow on a cursor
drh [Mon, 18 Apr 2022 18:01:38 +0000 (18:01 +0000)] 
New test case demonstrating the ability to invoke OP_NullRow on a cursor
that has never been opened.

FossilOrigin-Name: d173edc242f295f5812a58cad184695881d9b1b160cd5b25e303e22848e90ce1

3 years agoMerge the btree bug-fix from trunk.
drh [Mon, 18 Apr 2022 16:23:01 +0000 (16:23 +0000)] 
Merge the btree bug-fix from trunk.

FossilOrigin-Name: a333c0b50c3af7cd818470a647d78c7c691ef15418ec7cffe80dd88405393069

3 years agoEnsure that left-hand side WITHOUT ROWID tables are set to OP_NullRow prior
drh [Mon, 18 Apr 2022 16:20:59 +0000 (16:20 +0000)] 
Ensure that left-hand side WITHOUT ROWID tables are set to OP_NullRow prior
to running the right-join loop.  This fixes a problem introduced by the
previous check-in.

FossilOrigin-Name: aab7665ce6c004df701a72aef1a5135f2c78f16c6ff728a00076afb66ba9d3a0

3 years agoFix problems with WHERE clauses that follow multiple FULL JOINs. This
drh [Mon, 18 Apr 2022 16:10:07 +0000 (16:10 +0000)] 
Fix problems with WHERE clauses that follow multiple FULL JOINs.  This
introduces some new faults in the tests, probably due to something
unrelated.

FossilOrigin-Name: 95b242d4c2fed7c713299565ac1010f8a7534a5695589e87d5a0204c7bf5f3dc

3 years agoAvoid an assert() failure in allocateSpace() triggered by a corrupt database. dbsqlfu...
dan [Mon, 18 Apr 2022 15:56:58 +0000 (15:56 +0000)] 
Avoid an assert() failure in allocateSpace() triggered by a corrupt database. dbsqlfuzz f022eb0ce64d27808574d1dcde5cf7d002dabde8.

FossilOrigin-Name: 2de7f8cc7fe18f0828bb53f1fd11f5eb828faf4d6dfaf39693dff4f8926c1c7a

3 years agoMerge the latest fixes from trunk.
drh [Mon, 18 Apr 2022 14:41:24 +0000 (14:41 +0000)] 
Merge the latest fixes from trunk.

FossilOrigin-Name: 1ba3b3ccf145d84fa75afabe2fa925f65e43f815b25b15bd60073a41aa97bf57

3 years agoImproved comment field in the bytecode generated for OP_Column and OP_Rowid.
drh [Mon, 18 Apr 2022 14:15:07 +0000 (14:15 +0000)] 
Improved comment field in the bytecode generated for OP_Column and OP_Rowid.

FossilOrigin-Name: 1b2c5cef9560123344db391cd065090d1914724715ec6643d2d9b5fac2051a21

3 years agoImproved comment field in the bytecode generated for OP_Column and OP_Rowid.
drh [Mon, 18 Apr 2022 13:57:57 +0000 (13:57 +0000)] 
Improved comment field in the bytecode generated for OP_Column and OP_Rowid.

FossilOrigin-Name: 009bbf8026106c5a74cced06cced48badb870a4b6e6a2f8104a544d2a8d79e45

3 years agoNew RIGHT JOIN test cases, one of which is currently failing.
drh [Mon, 18 Apr 2022 13:08:17 +0000 (13:08 +0000)] 
New RIGHT JOIN test cases, one of which is currently failing.

FossilOrigin-Name: 9168cbbedd1c9d735279295a78212d830e24269f6d7e445e71faa2c06973223d

3 years agoChange the row-value initialization subroutine call from within the
drh [Mon, 18 Apr 2022 11:22:46 +0000 (11:22 +0000)] 
Change the row-value initialization subroutine call from within the
right-join body subroutine from an issue to an optimization opportunity.

FossilOrigin-Name: 829d49f27c041651ffeadc1397e4dd87a9994c9290e13b93542dbd2c514769cd

3 years agoDo not allow an empty table bypass to jump outside of a right-join body
drh [Mon, 18 Apr 2022 10:26:50 +0000 (10:26 +0000)] 
Do not allow an empty table bypass to jump outside of a right-join body
subroutine.

FossilOrigin-Name: 1549dcd2353903b70abadd428eeef971ab940df04fb05a6b83b04ee30932db6d

3 years agoFix the sqlite3SrcListAppendList() routine so that it correctly adds
drh [Mon, 18 Apr 2022 10:09:29 +0000 (10:09 +0000)] 
Fix the sqlite3SrcListAppendList() routine so that it correctly adds
the JT_LTORJ attribute to the first SrcItem, if needed.

FossilOrigin-Name: 07ed0dca310d828f9fe152efa8ee2a89202771a8f661afa1dbeee34aaabef67a

3 years agoLeave sqlite3ProcessJoin() early if an OOM is encountered in the NATURAL
drh [Mon, 18 Apr 2022 09:59:33 +0000 (09:59 +0000)] 
Leave sqlite3ProcessJoin() early if an OOM is encountered in the NATURAL
to USING converter.  This avoids NULL pointer dereferences further along in
the code.

FossilOrigin-Name: 0ccb224e13ad44c7e1a3aa186821a929faabc0075fe15799476c00d9a92e9d91

3 years agoFix to the coalesce() function generation in the resolver.
drh [Mon, 18 Apr 2022 00:57:11 +0000 (00:57 +0000)] 
Fix to the coalesce() function generation in the resolver.

FossilOrigin-Name: 584bd55e20669d09b7efe3429ba847c42c32fb1eb960784c4e0dedcd96899313

3 years agoWhen converting a NATURAL JOIN into a JOIN USING, make sure to insert the
drh [Mon, 18 Apr 2022 00:04:15 +0000 (00:04 +0000)] 
When converting a NATURAL JOIN into a JOIN USING, make sure to insert the
name correctly into the IdList even if it is a wierd quoted name.

FossilOrigin-Name: e62156b696f2496e2697cb3b46f136551b58644e2a5824aa3d759596694b2f4b

3 years agoFix to the logic that computes coalesc() functions to resolve USING terms.
drh [Sun, 17 Apr 2022 23:46:18 +0000 (23:46 +0000)] 
Fix to the logic that computes coalesc() functions to resolve USING terms.

FossilOrigin-Name: 20388548d868511f8c8437718985d75fe9801835811fec716f1700727b9aa367

3 years agoDeal with OP_Return bypass in the RIGHT JOIN subroutine by adding extra
drh [Sun, 17 Apr 2022 22:58:23 +0000 (22:58 +0000)] 
Deal with OP_Return bypass in the RIGHT JOIN subroutine by adding extra
OP_Returns where needed.

FossilOrigin-Name: 71abe5641f599f27d1f0c800f6182e1168909f8aa99389b835b07d4b5f5483eb

3 years agoChange OP_Return such that if P3 is 1, the Return is a no-op when the
drh [Sun, 17 Apr 2022 20:30:52 +0000 (20:30 +0000)] 
Change OP_Return such that if P3 is 1, the Return is a no-op when the
P1 register contains a NULL.

FossilOrigin-Name: c90602328a4b26f06d76c5343d29ebb7a782186c86ea88f5965a41040cff5346

3 years agoFurther improvements to USING() processing for RIGHT and FULL JOINs. All
drh [Sun, 17 Apr 2022 18:46:17 +0000 (18:46 +0000)] 
Further improvements to USING() processing for RIGHT and FULL JOINs.  All
currently known issues are now resolved.  Performace is improved.

FossilOrigin-Name: 9fd3f22e2228dfba127f6ffe549109f3a4e910fa124adcc9c5483931bd6d5cd7

3 years agoNew test cases, one of which is failing, indicating a bug that needs fixing.
drh [Sat, 16 Apr 2022 23:38:29 +0000 (23:38 +0000)] 
New test cases, one of which is failing, indicating a bug that needs fixing.

FossilOrigin-Name: bd5fd68435ff068c18d7d46b33cf7591263a03c32a917a7df7c087b08c573cc8

3 years agoFix the USING to ON translation so that it works correctly for a sequence
drh [Sat, 16 Apr 2022 22:57:41 +0000 (22:57 +0000)] 
Fix the USING to ON translation so that it works correctly for a sequence
of two or more joins where one of the joins to the right-hand side of the
list is a RIGHT or FULL JOIN.

FossilOrigin-Name: 9ffc2b231956cde1bc90519aa174b0e2dc30ef671ed745f4f3ffa9fbb7ffab4b