diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index d844b8b..1bb76dd 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -2132,25 +2132,6 @@ _copyOnConflictExpr(const OnConflictExpr *from)
 	return newnode;
 }
 
-static PartitionClauseInfo *
-_copyPartitionClauseInfo(const PartitionClauseInfo *from)
-{
-	PartitionClauseInfo *newnode = makeNode(PartitionClauseInfo);
-
-	int i;
-	for (i = 0; i < PARTITION_MAX_KEYS; i++)
-		COPY_NODE_FIELD(keyclauses[i]);
-
-	COPY_NODE_FIELD(or_clauses);
-	COPY_NODE_FIELD(ne_clauses);
-	COPY_BITMAPSET_FIELD(keyisnull);
-	COPY_BITMAPSET_FIELD(keyisnotnull);
-	COPY_SCALAR_FIELD(constfalse);
-	COPY_SCALAR_FIELD(foundkeyclauses);
-
-	return newnode;
-}
-
 /* ****************************************************************
  *						relation.h copy functions
  *
@@ -5024,9 +5005,6 @@ copyObjectImpl(const void *from)
 		case T_OnConflictExpr:
 			retval = _copyOnConflictExpr(from);
 			break;
-		case T_PartitionClauseInfo:
-			retval = _copyPartitionClauseInfo(from);
-			break;
 
 			/*
 			 * RELATION NODES
diff --git a/src/include/catalog/partition.h b/src/include/catalog/partition.h
index 0dd6bd3..26a8df8 100644
--- a/src/include/catalog/partition.h
+++ b/src/include/catalog/partition.h
@@ -40,6 +40,40 @@ typedef struct PartitionDescData
 	PartitionBoundInfo boundinfo;	/* collection of partition bounds */
 } PartitionDescData;
 
+/* Stores clauses which were matched to a partition key.
+ *
+ * Each matching "operator" clause is stored in the 'keyclauses' list for the
+ * partition key that it was matched to, except if the operator is <>, in
+ * which case, the clause is added to the 'ne_clauses' list.
+ *
+ * Boolean OR clauses whose at least one argument clause matches a partition
+ * key are added to the 'or_clauses' list.
+ *
+ * Based on a IS NULL or IS NOT NULL clause that was matched to a partition
+ * key, the corresponding bit in 'keyisnull' or 'keyisnotnull' is set.
+ */
+typedef struct PartitionClauseInfo
+{
+	/* Lists of clauses indexed by the partition key */
+	List   *keyclauses[PARTITION_MAX_KEYS];
+
+	/* Each members is a List itself of a given OR clauses's arguments. */
+	List   *or_clauses;
+
+	/* List of clauses containing <> operator. */
+	List   *ne_clauses;
+
+	/* Nth (0 <= N < partnatts) bit set if the key is NULL or NOT NULL. */
+	Bitmapset   *keyisnull;
+	Bitmapset   *keyisnotnull;
+
+	/* True if at least one of above fields contains valid information. */
+	bool	foundkeyclauses;
+
+	/* True if mutually contradictory clauses were found. */
+	bool	constfalse;
+} PartitionClauseInfo;
+
 typedef struct PartitionDescData *PartitionDesc;
 
 typedef struct PartitionPruneContext
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h
index 81d223c..c097da6 100644
--- a/src/include/nodes/nodes.h
+++ b/src/include/nodes/nodes.h
@@ -190,7 +190,6 @@ typedef enum NodeTag
 	T_JoinExpr,
 	T_FromExpr,
 	T_OnConflictExpr,
-	T_PartitionClauseInfo,
 	T_IntoClause,
 
 	/*
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index 6cfb876..1b4b0d7 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -1506,44 +1506,4 @@ typedef struct OnConflictExpr
 	List	   *exclRelTlist;	/* tlist of the EXCLUDED pseudo relation */
 } OnConflictExpr;
 
-/*----------
- * PartitionClauseInfo
- *
- * Stores clauses which were matched to a partition key.
- *
- * Each matching "operator" clause is stored in the 'keyclauses' list for the
- * partition key that it was matched to, except if the operator is <>, in
- * which case, the clause is added to the 'ne_clauses' list.
- *
- * Boolean OR clauses whose at least one argument clause matches a partition
- * key are added to the 'or_clauses' list.
- *
- * Based on a IS NULL or IS NOT NULL clause that was matched to a partition
- * key, the corresponding bit in 'keyisnull' or 'keyisnotnull' is set.
- *----------
- */
-typedef struct PartitionClauseInfo
-{
-	NodeTag		type;
-
-	/* Lists of clauses indexed by the partition key */
-	List   *keyclauses[PARTITION_MAX_KEYS];
-
-	/* Each members is a List itself of a given OR clauses's arguments. */
-	List   *or_clauses;
-
-	/* List of clauses containing <> operator. */
-	List   *ne_clauses;
-
-	/* Nth (0 <= N < partnatts) bit set if the key is NULL or NOT NULL. */
-	Bitmapset   *keyisnull;
-	Bitmapset   *keyisnotnull;
-
-	/* True if at least one of above fields contains valid information. */
-	bool	foundkeyclauses;
-
-	/* True if mutually contradictory clauses were found. */
-	bool	constfalse;
-} PartitionClauseInfo;
-
 #endif							/* PRIMNODES_H */
