diff options
Diffstat (limited to 'src/backend/executor/nodeMergejoin.c')
-rw-r--r-- | src/backend/executor/nodeMergejoin.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c index 29c54fcd753..b593905978b 100644 --- a/src/backend/executor/nodeMergejoin.c +++ b/src/backend/executor/nodeMergejoin.c @@ -175,7 +175,7 @@ static MergeJoinClause MJExamineQuals(List *mergeclauses, Oid *mergefamilies, Oid *mergecollations, - int *mergestrategies, + bool *mergereversals, bool *mergenullsfirst, PlanState *parent) { @@ -193,7 +193,7 @@ MJExamineQuals(List *mergeclauses, MergeJoinClause clause = &clauses[iClause]; Oid opfamily = mergefamilies[iClause]; Oid collation = mergecollations[iClause]; - StrategyNumber opstrategy = mergestrategies[iClause]; + bool reversed = mergereversals[iClause]; bool nulls_first = mergenullsfirst[iClause]; int op_strategy; Oid op_lefttype; @@ -212,12 +212,7 @@ MJExamineQuals(List *mergeclauses, /* Set up sort support data */ clause->ssup.ssup_cxt = CurrentMemoryContext; clause->ssup.ssup_collation = collation; - if (opstrategy == BTLessStrategyNumber) - clause->ssup.ssup_reverse = false; - else if (opstrategy == BTGreaterStrategyNumber) - clause->ssup.ssup_reverse = true; - else /* planner screwed up */ - elog(ERROR, "unsupported mergejoin strategy %d", opstrategy); + clause->ssup.ssup_reverse = reversed; clause->ssup.ssup_nulls_first = nulls_first; /* Extract the operator's declared left/right datatypes */ @@ -1608,7 +1603,7 @@ ExecInitMergeJoin(MergeJoin *node, EState *estate, int eflags) mergestate->mj_Clauses = MJExamineQuals(node->mergeclauses, node->mergeFamilies, node->mergeCollations, - node->mergeStrategies, + node->mergeReversals, node->mergeNullsFirst, (PlanState *) mergestate); |