mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
Back-patch "Fix parallel hash join path search."
Back-patch commit 655393a022bd653e2b48dbf20b69236981e35195 to 9.6. This synchronizes the relavant code and helps in generating parallel paths in some cases in 9.6. This also helps in back-patch of future patches where we can get the same plan in all branches. Discussion: https://postgr.es/m/CAA4eK1+XK_875cJA1HPVpx9C7C8Fp7i4QzLJ17T3igfU2iadxQ@mail.gmail.com
This commit is contained in:
parent
fd4f2af774
commit
271b678436
@ -1469,9 +1469,9 @@ hash_inner_and_outer(PlannerInfo *root,
|
|||||||
/*
|
/*
|
||||||
* Normally, given that the joinrel is parallel-safe, the cheapest
|
* Normally, given that the joinrel is parallel-safe, the cheapest
|
||||||
* total inner path will also be parallel-safe, but if not, we'll
|
* total inner path will also be parallel-safe, but if not, we'll
|
||||||
* have to search cheapest_parameterized_paths for the cheapest
|
* have to search for the cheapest safe, unparameterized inner
|
||||||
* safe, unparameterized inner path. If doing JOIN_UNIQUE_INNER,
|
* path. If doing JOIN_UNIQUE_INNER, we can't use any alternative
|
||||||
* we can't use any alternative inner path.
|
* inner path.
|
||||||
*/
|
*/
|
||||||
if (cheapest_total_inner->parallel_safe)
|
if (cheapest_total_inner->parallel_safe)
|
||||||
cheapest_safe_inner = cheapest_total_inner;
|
cheapest_safe_inner = cheapest_total_inner;
|
||||||
@ -1479,7 +1479,7 @@ hash_inner_and_outer(PlannerInfo *root,
|
|||||||
{
|
{
|
||||||
ListCell *lc;
|
ListCell *lc;
|
||||||
|
|
||||||
foreach(lc, innerrel->cheapest_parameterized_paths)
|
foreach(lc, innerrel->pathlist)
|
||||||
{
|
{
|
||||||
Path *innerpath = (Path *) lfirst(lc);
|
Path *innerpath = (Path *) lfirst(lc);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user