diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml
index 9137a965a709f5c4a0f55a0329bf65512e225b69..0c1db070ed88657965c02e16d611e3dc258fa371 100644
--- a/doc/src/sgml/fdwhandler.sgml
+++ b/doc/src/sgml/fdwhandler.sgml
@@ -1323,20 +1323,6 @@ GetForeignTable(Oid relid);
 
     <para>
 <programlisting>
-UserMapping *
-GetUserMappingById(Oid umid);
-</programlisting>
-
-     This function returns the <structname>UserMapping</structname> object for
-     the given user mapping OID.  The OID of a user mapping for a foreign scan
-     is available in the <structname>RelOptInfo</structname>.
-     If there is no mapping for the OID, this function will throw an error.
-     A <structname>UserMapping</structname> object contains properties of the
-     user mapping (see <filename>foreign/foreign.h</filename> for details).
-    </para>
-
-    <para>
-<programlisting>
 List *
 GetForeignColumnOptions(Oid relid, AttrNumber attnum);
 </programlisting>
diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c
index 66f98f1c7ec378bf25485819c4f9048516b51d87..242d6d2696371be6076d8534e5c7fad455553f2e 100644
--- a/src/backend/foreign/foreign.c
+++ b/src/backend/foreign/foreign.c
@@ -31,8 +31,6 @@
 extern Datum pg_options_to_table(PG_FUNCTION_ARGS);
 extern Datum postgresql_fdw_validator(PG_FUNCTION_ARGS);
 
-static HeapTuple find_user_mapping(Oid userid, Oid serverid);
-
 
 /*
  * GetForeignDataWrapper -	look up the foreign-data wrapper by OID.
@@ -161,54 +159,6 @@ GetForeignServerByName(const char *srvname, bool missing_ok)
 	return GetForeignServer(serverid);
 }
 
-/*
- * GetUserMappingById - look up the user mapping by its OID.
- */
-UserMapping *
-GetUserMappingById(Oid umid)
-{
-	Datum		datum;
-	HeapTuple	tp;
-	bool		isnull;
-	UserMapping *um;
-
-	tp = SearchSysCache1(USERMAPPINGOID, ObjectIdGetDatum(umid));
-	if (!HeapTupleIsValid(tp))
-		elog(ERROR, "cache lookup failed for user mapping %u", umid);
-
-	um = (UserMapping *) palloc(sizeof(UserMapping));
-	um->umid = umid;
-
-	/* Extract the umuser */
-	datum = SysCacheGetAttr(USERMAPPINGOID,
-							tp,
-							Anum_pg_user_mapping_umuser,
-							&isnull);
-	Assert(!isnull);
-	um->userid = DatumGetObjectId(datum);
-
-	/* Extract the umserver */
-	datum = SysCacheGetAttr(USERMAPPINGOID,
-							tp,
-							Anum_pg_user_mapping_umserver,
-							&isnull);
-	Assert(!isnull);
-	um->serverid = DatumGetObjectId(datum);
-
-	/* Extract the umoptions */
-	datum = SysCacheGetAttr(USERMAPPINGOID,
-							tp,
-							Anum_pg_user_mapping_umoptions,
-							&isnull);
-	if (isnull)
-		um->options = NIL;
-	else
-		um->options = untransformRelOptions(datum);
-
-	ReleaseSysCache(tp);
-
-	return um;
-}
 
 /*
  * GetUserMapping - look up the user mapping.
@@ -224,7 +174,23 @@ GetUserMapping(Oid userid, Oid serverid)
 	bool		isnull;
 	UserMapping *um;
 
-	tp = find_user_mapping(userid, serverid);
+	tp = SearchSysCache2(USERMAPPINGUSERSERVER,
+						 ObjectIdGetDatum(userid),
+						 ObjectIdGetDatum(serverid));
+
+	if (!HeapTupleIsValid(tp))
+	{
+		/* Not found for the specific user -- try PUBLIC */
+		tp = SearchSysCache2(USERMAPPINGUSERSERVER,
+							 ObjectIdGetDatum(InvalidOid),
+							 ObjectIdGetDatum(serverid));
+	}
+
+	if (!HeapTupleIsValid(tp))
+		ereport(ERROR,
+				(errcode(ERRCODE_UNDEFINED_OBJECT),
+				 errmsg("user mapping not found for \"%s\"",
+						MappingUserName(userid))));
 
 	um = (UserMapping *) palloc(sizeof(UserMapping));
 	um->umid = HeapTupleGetOid(tp);
@@ -246,60 +212,6 @@ GetUserMapping(Oid userid, Oid serverid)
 	return um;
 }
 
-/*
- * GetUserMappingId - look up the user mapping, and return its OID
- *
- * If no mapping is found for the supplied user, we also look for
- * PUBLIC mappings (userid == InvalidOid).
- */
-Oid
-GetUserMappingId(Oid userid, Oid serverid)
-{
-	HeapTuple	tp;
-	Oid			umid;
-
-	tp = find_user_mapping(userid, serverid);
-
-	/* Extract the Oid */
-	umid = HeapTupleGetOid(tp);
-
-	ReleaseSysCache(tp);
-
-	return umid;
-}
-
-/*
- * find_user_mapping - Guts of GetUserMapping family.
- *
- * If no mapping is found for the supplied user, we also look for
- * PUBLIC mappings (userid == InvalidOid).
- */
-static HeapTuple
-find_user_mapping(Oid userid, Oid serverid)
-{
-	HeapTuple	tp;
-
-	tp = SearchSysCache2(USERMAPPINGUSERSERVER,
-						 ObjectIdGetDatum(userid),
-						 ObjectIdGetDatum(serverid));
-
-	if (HeapTupleIsValid(tp))
-		return tp;
-
-	/* Not found for the specific user -- try PUBLIC */
-	tp = SearchSysCache2(USERMAPPINGUSERSERVER,
-						 ObjectIdGetDatum(InvalidOid),
-						 ObjectIdGetDatum(serverid));
-
-	if (!HeapTupleIsValid(tp))
-		ereport(ERROR,
-				(errcode(ERRCODE_UNDEFINED_OBJECT),
-				 errmsg("user mapping not found for \"%s\"",
-						MappingUserName(userid))));
-
-	return tp;
-}
-
 
 /*
  * GetForeignTable - look up the foreign table definition by relation oid.
diff --git a/src/include/foreign/foreign.h b/src/include/foreign/foreign.h
index ad586e446a9836c505d39f222db0df0381f7f665..5dc2c90f3c31028ded6c7299614bf30d0fe68ca1 100644
--- a/src/include/foreign/foreign.h
+++ b/src/include/foreign/foreign.h
@@ -72,8 +72,6 @@ typedef struct ForeignTable
 extern ForeignServer *GetForeignServer(Oid serverid);
 extern ForeignServer *GetForeignServerByName(const char *name, bool missing_ok);
 extern UserMapping *GetUserMapping(Oid userid, Oid serverid);
-extern Oid	GetUserMappingId(Oid userid, Oid serverid);
-extern UserMapping *GetUserMappingById(Oid umid);
 extern ForeignDataWrapper *GetForeignDataWrapper(Oid fdwid);
 extern ForeignDataWrapper *GetForeignDataWrapperByName(const char *name,
 							bool missing_ok);