mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Remove GetUserMappingId() and GetUserMappingById().
These functions were added in commitsfbe5a3fb7anda104a017f, but commit45639a052removed 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: <d674a3f1-6b63-519c-ef3f-f3188ed6a178@lab.ntt.co.jp>
This commit is contained in:
		@@ -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.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user