summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/optimizer/util/pathnode.c4
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;