diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c index ec37558..6cb5229 100644 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@ -454,7 +454,10 @@ ExecHashJoinImpl(PlanState *pstate, bool parallel) if (joinqual == NULL || ExecQual(joinqual, econtext)) { node->hj_MatchedOuter = true; - HeapTupleHeaderSetMatch(HJTUPLE_MINTUPLE(node->hj_CurTuple)); + if (!HeapTupleHeaderHasMatch(HJTUPLE_MINTUPLE(node->hj_CurTuple))) + { + HeapTupleHeaderSetMatch(HJTUPLE_MINTUPLE(node->hj_CurTuple)); + } /* In an antijoin, we never return a matched tuple */ if (node->js.jointype == JOIN_ANTI)