From 13bf801a255aaa18c43f0d17e24ffdb03a77ca31 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 22 Jul 2016 11:32:23 -0400 Subject: [PATCH] Remove GetUserMappingId() and GetUserMappingById(). These functions were added in commits fbe5a3fb7 and a104a017f, but commit 45639a052 removed their only callers. Put the related code in foreign.c back to the way it was in 9.5, to avoid pointless cross-version diffs. Etsuro Fujita Patch: --- doc/src/sgml/fdwhandler.sgml | 14 ---- src/backend/foreign/foreign.c | 122 +++++----------------------------- src/include/foreign/foreign.h | 2 - 3 files changed, 17 insertions(+), 121 deletions(-) diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml index 9137a965a7..0c1db070ed 100644 --- a/doc/src/sgml/fdwhandler.sgml +++ b/doc/src/sgml/fdwhandler.sgml @@ -1323,20 +1323,6 @@ GetForeignTable(Oid relid); -UserMapping * -GetUserMappingById(Oid umid); - - - This function returns the UserMapping object for - the given user mapping OID. The OID of a user mapping for a foreign scan - is available in the RelOptInfo. - If there is no mapping for the OID, this function will throw an error. - A UserMapping object contains properties of the - user mapping (see foreign/foreign.h for details). - - - - List * GetForeignColumnOptions(Oid relid, AttrNumber attnum); diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c index 66f98f1c7e..242d6d2696 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 ad586e446a..5dc2c90f3c 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);