diff options
-rw-r--r-- | src/backend/optimizer/util/pathnode.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index cfda133805..13c77c8544 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -1202,6 +1202,8 @@ set_joinpath_distribution(PlannerInfo *root, JoinPath *pathnode) { EquivalenceMember *em = (EquivalenceMember *) lfirst(emc); Expr *var = (Expr *)em->em_expr; + if (IsA(var, RelabelType)) + var = ((RelabelType *) var)->arg; if (!found_outer) found_outer = equal(var, outerd->distributionExpr); @@ -1234,6 +1236,8 @@ set_joinpath_distribution(PlannerInfo *root, JoinPath *pathnode) em = (EquivalenceMember *) lfirst(emc); emvar = (Expr *)em->em_expr; + if (IsA(emvar, RelabelType)) + emvar = ((RelabelType *) emvar)->arg; if (equal(var, emvar)) { targetd->distributionExpr = (Node *) var; |