diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index c020dc2e4ecbd8702eb1f7c3e0f97b457d1c5e4f..9a7649bb4f95581e0169f0a341a9d8d0b1287db3 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -591,8 +591,7 @@ rebuild_relation(Relation OldHeap, Oid indexOid,
 Oid
 make_new_heap(Oid OIDOldHeap, Oid NewTableSpace)
 {
-	TupleDesc	OldHeapDesc,
-				tupdesc;
+	TupleDesc	OldHeapDesc;
 	char		NewHeapName[NAMEDATALEN];
 	Oid			OIDNewHeap;
 	Oid			toastid;
@@ -605,13 +604,11 @@ make_new_heap(Oid OIDOldHeap, Oid NewTableSpace)
 	OldHeapDesc = RelationGetDescr(OldHeap);
 
 	/*
-	 * Need to make a copy of the tuple descriptor, since
-	 * heap_create_with_catalog modifies it.  Note that the NewHeap will not
+	 * Note that the NewHeap will not
 	 * receive any of the defaults or constraints associated with the OldHeap;
 	 * we don't need 'em, and there's no reason to spend cycles inserting them
 	 * into the catalogs only to delete them.
 	 */
-	tupdesc = CreateTupleDescCopy(OldHeapDesc);
 
 	/*
 	 * But we do want to use reloptions of the old heap for new heap.
@@ -645,7 +642,7 @@ make_new_heap(Oid OIDOldHeap, Oid NewTableSpace)
 										  InvalidOid,
 										  InvalidOid,
 										  OldHeap->rd_rel->relowner,
-										  tupdesc,
+										  OldHeapDesc,
 										  NIL,
 										  OldHeap->rd_rel->relkind,
 										  OldHeap->rd_rel->relpersistence,
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index df1d3cab4d16258017439ec4d69e12ae695cc3d1..2f8deb470c56fb901bb063c4a9287cd8b14b0256 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -2394,7 +2394,6 @@ OpenIntoRel(QueryDesc *queryDesc)
 	Oid			tablespaceId;
 	Datum		reloptions;
 	Oid			intoRelationId;
-	TupleDesc	tupdesc;
 	DR_intorel *myState;
 	static char *validnsps[] = HEAP_RELOPT_NAMESPACES;
 
@@ -2467,9 +2466,6 @@ OpenIntoRel(QueryDesc *queryDesc)
 									 false);
 	(void) heap_reloptions(RELKIND_RELATION, reloptions, true);
 
-	/* Copy the tupdesc because heap_create_with_catalog modifies it */
-	tupdesc = CreateTupleDescCopy(queryDesc->tupDesc);
-
 	/* Now we can actually create the new relation */
 	intoRelationId = heap_create_with_catalog(intoName,
 											  namespaceId,
@@ -2478,7 +2474,7 @@ OpenIntoRel(QueryDesc *queryDesc)
 											  InvalidOid,
 											  InvalidOid,
 											  GetUserId(),
-											  tupdesc,
+											  queryDesc->tupDesc,
 											  NIL,
 											  RELKIND_RELATION,
 											  into->rel->relpersistence,
@@ -2492,8 +2488,6 @@ OpenIntoRel(QueryDesc *queryDesc)
 											  allowSystemTableMods);
 	Assert(intoRelationId != InvalidOid);
 
-	FreeTupleDesc(tupdesc);
-
 	/*
 	 * Advance command counter so that the newly-created relation's catalog
 	 * tuples will be visible to heap_open.