aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeMergejoin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/nodeMergejoin.c')
-rw-r--r--src/backend/executor/nodeMergejoin.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c
index b41454ab6d9..5ff3f4c3a44 100644
--- a/src/backend/executor/nodeMergejoin.c
+++ b/src/backend/executor/nodeMergejoin.c
@@ -893,11 +893,10 @@ ExecMergeJoin(PlanState *pstate)
if (compareResult == 0)
node->mj_JoinState = EXEC_MJ_JOINTUPLES;
- else
- {
- Assert(compareResult < 0);
+ else if (compareResult < 0)
node->mj_JoinState = EXEC_MJ_NEXTOUTER;
- }
+ else /* compareResult > 0 should not happen */
+ elog(ERROR, "mergejoin input data is out of order");
break;
case MJEVAL_NONMATCHABLE:
@@ -1087,7 +1086,7 @@ ExecMergeJoin(PlanState *pstate)
node->mj_JoinState = EXEC_MJ_JOINTUPLES;
}
- else
+ else if (compareResult > 0)
{
/* ----------------
* if the new outer tuple didn't match the marked inner
@@ -1106,7 +1105,6 @@ ExecMergeJoin(PlanState *pstate)
* no more inners, no more matches are possible.
* ----------------
*/
- Assert(compareResult > 0);
innerTupleSlot = node->mj_InnerTupleSlot;
/* reload comparison data for current inner */
@@ -1140,6 +1138,8 @@ ExecMergeJoin(PlanState *pstate)
return NULL;
}
}
+ else /* compareResult < 0 should not happen */
+ elog(ERROR, "mergejoin input data is out of order");
break;
/*----------------------------------------------------------