diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c
index ab17524..a2488ab 100644
--- a/src/backend/catalog/partition.c
+++ b/src/backend/catalog/partition.c
@@ -2111,7 +2111,6 @@ extract_partition_key_clauses(PartitionKey partkey, List *clauses,
 			PartClause *pc;
 			Oid			partopfamily = partkey->partopfamily[i];
 			Oid			partcoll = partkey->partcollation[i];
-			Oid			commutator = InvalidOid;
 			AttrNumber	partattno = partkey->partattrs[i];
 			Expr	   *partexpr = NULL;
 
@@ -2144,6 +2143,7 @@ extract_partition_key_clauses(PartitionKey partkey, List *clauses,
 			if (IsA(clause, OpExpr))
 			{
 				OpExpr	   *opclause = (OpExpr *) clause;
+				Oid			comparator = opclause->opno;
 				Expr	   *leftop,
 						   *rightop,
 						   *valueexpr;
@@ -2161,13 +2161,14 @@ extract_partition_key_clauses(PartitionKey partkey, List *clauses,
 					valueexpr = rightop;
 				else if (EXPR_MATCHES_PARTKEY(rightop, partattno, partexpr))
 				{
-					valueexpr = leftop;
-
-					commutator = get_commutator(opclause->opno);
+					Oid commutator = get_commutator(opclause->opno);
 
 					/* nothing we can do unless we can swap the operands */
 					if (!OidIsValid(commutator))
 						continue;
+
+					valueexpr = leftop;
+					comparator = commutator;
 				}
 				else
 					/* Clause does not match this partition key. */
@@ -2212,7 +2213,7 @@ extract_partition_key_clauses(PartitionKey partkey, List *clauses,
 					 * equality operator *and* this is a list partitioned
 					 * table, we can use it prune partitions.
 					 */
-					negator = get_negator(opclause->opno);
+					negator = get_negator(comparator);
 					if (OidIsValid(negator) &&
 						op_in_opfamily(negator, partopfamily))
 					{
@@ -2236,7 +2237,7 @@ extract_partition_key_clauses(PartitionKey partkey, List *clauses,
 				}
 
 				pc = (PartClause *) palloc0(sizeof(PartClause));
-				pc->opno = OidIsValid(commutator) ? commutator : opclause->opno;
+				pc->opno = comparator;
 				pc->inputcollid = opclause->inputcollid;
 				pc->value = valueexpr;
 
