diff --git a/src/backend/executor/execJunk.c b/src/backend/executor/execJunk.c
index 5d0174c5afeaa01d34ccfaa0cde9b9f2123721c7..3e995c8f07bcad3f422b9891518a74e6f489220f 100644
--- a/src/backend/executor/execJunk.c
+++ b/src/backend/executor/execJunk.c
@@ -40,9 +40,9 @@
  *
  * Finally, when at the top level we get back a tuple, we can call
  * ExecFindJunkAttribute/ExecGetJunkAttribute to retrieve the values of the
- * junk attributes we are interested in, and ExecFilterJunk or ExecRemoveJunk
- * to remove all the junk attributes from a tuple. This new "clean" tuple is
- * then printed, inserted, or updated.
+ * junk attributes we are interested in, and ExecFilterJunk to remove all the
+ * junk attributes from a tuple.  This new "clean" tuple is then printed,
+ * inserted, or updated.
  *
  *-------------------------------------------------------------------------
  */
@@ -317,15 +317,3 @@ ExecFilterJunk(JunkFilter *junkfilter, TupleTableSlot *slot)
 	 */
 	return ExecStoreVirtualTuple(resultSlot);
 }
-
-/*
- * ExecRemoveJunk
- *
- * Convenience routine to generate a physical clean tuple,
- * rather than just a virtual slot.
- */
-HeapTuple
-ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot)
-{
-	return ExecCopySlotTuple(ExecFilterJunk(junkfilter, slot));
-}
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h
index 482e8d382df7d78aefe10f148ea8687ab82471f4..018b14ac843e726feab717585ed4229f709f9862 100644
--- a/src/include/executor/executor.h
+++ b/src/include/executor/executor.h
@@ -148,7 +148,6 @@ extern Datum ExecGetJunkAttribute(TupleTableSlot *slot, AttrNumber attno,
 					 bool *isNull);
 extern TupleTableSlot *ExecFilterJunk(JunkFilter *junkfilter,
 			   TupleTableSlot *slot);
-extern HeapTuple ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot);
 
 
 /*