summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2015-03-05 18:03:16 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2015-03-05 18:03:16 -0300
commite166e6441f14f612489706ca793cfd19f15d5951 (patch)
tree3ba377822086e2add317bf4a1219f832fd793e84 /src/backend
parentd13bbfabb4d8402e898bdd8650f6ec9b3bb41451 (diff)
Fix user mapping object description
We were using "user mapping for user XYZ" as description for user mappings, but that's ambiguous because users can have mappings on multiple foreign servers; therefore change it to "for user XYZ on server UVW" instead. Object identities for user mappings are also updated in the same way, in branches 9.3 and above. The incomplete description string was introduced together with the whole SQL/MED infrastructure by commit cae565e503 of 8.4 era, so backpatch all the way back.
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/catalog/dependency.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index 3914f46af76..997936108d7 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -2863,6 +2863,8 @@ getObjectDescription(const ObjectAddress *object)
HeapTuple tup;
Oid useid;
char *usename;
+ Form_pg_user_mapping umform;
+ ForeignServer *srv;
tup = SearchSysCache1(USERMAPPINGOID,
ObjectIdGetDatum(object->objectId));
@@ -2870,7 +2872,9 @@ getObjectDescription(const ObjectAddress *object)
elog(ERROR, "cache lookup failed for user mapping %u",
object->objectId);
- useid = ((Form_pg_user_mapping) GETSTRUCT(tup))->umuser;
+ umform = (Form_pg_user_mapping) GETSTRUCT(tup);
+ useid = umform->umuser;
+ srv = GetForeignServer(umform->umserver);
ReleaseSysCache(tup);
@@ -2879,7 +2883,9 @@ getObjectDescription(const ObjectAddress *object)
else
usename = "public";
- appendStringInfo(&buffer, _("user mapping for %s"), usename);
+ appendStringInfo(&buffer, _("user mapping for %s on server %s"), usename,
+ srv->servername);
+
break;
}