Skip to content

Commit 9c75e1a

Browse files
committed
Forbid parallel Hash Right Join or Hash Full Join.
That won't work. You'll get bogus null-extended rows. Mithun Cy
1 parent cfb863f commit 9c75e1a

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/backend/optimizer/path/joinpath.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1450,10 +1450,14 @@ hash_inner_and_outer(PlannerInfo *root,
14501450
* If the joinrel is parallel-safe, we may be able to consider a
14511451
* partial hash join. However, we can't handle JOIN_UNIQUE_OUTER,
14521452
* because the outer path will be partial, and therefore we won't be
1453-
* able to properly guarantee uniqueness. Also, the resulting path
1454-
* must not be parameterized.
1453+
* able to properly guarantee uniqueness. Similarly, we can't handle
1454+
* JOIN_FULL and JOIN_RIGHT, because they can produce false null
1455+
* extended rows. Also, the resulting path must not be parameterized.
14551456
*/
1456-
if (joinrel->consider_parallel && jointype != JOIN_UNIQUE_OUTER &&
1457+
if (joinrel->consider_parallel &&
1458+
jointype != JOIN_UNIQUE_OUTER &&
1459+
jointype != JOIN_FULL &&
1460+
jointype != JOIN_RIGHT &&
14571461
outerrel->partial_pathlist != NIL &&
14581462
bms_is_empty(joinrel->lateral_relids))
14591463
{

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy