mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-03 02:26:52 +02:00
Forbid parallel Hash Right Join or Hash Full Join.
That won't work. You'll get bogus null-extended rows. Mithun Cy
This commit is contained in:
parent
cfb863f20a
commit
9c75e1a36b
@ -1450,10 +1450,14 @@ hash_inner_and_outer(PlannerInfo *root,
|
|||||||
* If the joinrel is parallel-safe, we may be able to consider a
|
* If the joinrel is parallel-safe, we may be able to consider a
|
||||||
* partial hash join. However, we can't handle JOIN_UNIQUE_OUTER,
|
* partial hash join. However, we can't handle JOIN_UNIQUE_OUTER,
|
||||||
* because the outer path will be partial, and therefore we won't be
|
* because the outer path will be partial, and therefore we won't be
|
||||||
* able to properly guarantee uniqueness. Also, the resulting path
|
* able to properly guarantee uniqueness. Similarly, we can't handle
|
||||||
* must not be parameterized.
|
* JOIN_FULL and JOIN_RIGHT, because they can produce false null
|
||||||
|
* extended rows. Also, the resulting path must not be parameterized.
|
||||||
*/
|
*/
|
||||||
if (joinrel->consider_parallel && jointype != JOIN_UNIQUE_OUTER &&
|
if (joinrel->consider_parallel &&
|
||||||
|
jointype != JOIN_UNIQUE_OUTER &&
|
||||||
|
jointype != JOIN_FULL &&
|
||||||
|
jointype != JOIN_RIGHT &&
|
||||||
outerrel->partial_pathlist != NIL &&
|
outerrel->partial_pathlist != NIL &&
|
||||||
bms_is_empty(joinrel->lateral_relids))
|
bms_is_empty(joinrel->lateral_relids))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user