Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8167ef8

Browse files
committed
Fix user mapping object description
We were using "user mapping for user XYZ" as description for user mappings, butthat's ambiguous because users can have mappings on multiple foreignservers; therefore change it to "for user XYZ on server UVW" instead.Object identities for user mappings are also updated in the same way, inbranches 9.3 and above.The incomplete description string was introduced together with the wholeSQL/MED infrastructure by commitcae565e of 8.4 era, so backpatch allthe way back.
1 parentdcb467b commit8167ef8

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

‎src/backend/catalog/dependency.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2773,14 +2773,18 @@ getObjectDescription(const ObjectAddress *object)
27732773
HeapTupletup;
27742774
Oiduseid;
27752775
char*usename;
2776+
Form_pg_user_mappingumform;
2777+
ForeignServer*srv;
27762778

27772779
tup=SearchSysCache1(USERMAPPINGOID,
27782780
ObjectIdGetDatum(object->objectId));
27792781
if (!HeapTupleIsValid(tup))
27802782
elog(ERROR,"cache lookup failed for user mapping %u",
27812783
object->objectId);
27822784

2783-
useid= ((Form_pg_user_mapping)GETSTRUCT(tup))->umuser;
2785+
umform= (Form_pg_user_mapping)GETSTRUCT(tup);
2786+
useid=umform->umuser;
2787+
srv=GetForeignServer(umform->umserver);
27842788

27852789
ReleaseSysCache(tup);
27862790

@@ -2789,7 +2793,9 @@ getObjectDescription(const ObjectAddress *object)
27892793
else
27902794
usename="public";
27912795

2792-
appendStringInfo(&buffer,_("user mapping for %s"),usename);
2796+
appendStringInfo(&buffer,_("user mapping for %s on server %s"),usename,
2797+
srv->servername);
2798+
27932799
break;
27942800
}
27952801

‎src/test/regress/expected/foreign_data.out

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ CREATE USER MAPPING FOR current_user SERVER s1;
240240
DROP FOREIGN DATA WRAPPER foo; -- ERROR
241241
ERROR: cannot drop foreign-data wrapper foo because other objects depend on it
242242
DETAIL: server s1 depends on foreign-data wrapper foo
243-
user mapping for foreign_data_user depends on server s1
243+
user mapping for foreign_data_useron server s1depends on server s1
244244
HINT: Use DROP ... CASCADE to drop the dependent objects too.
245245
SET ROLE regress_test_role;
246246
DROP FOREIGN DATA WRAPPER foo CASCADE; -- ERROR
@@ -250,7 +250,7 @@ RESET ROLE;
250250
DROP FOREIGN DATA WRAPPER foo CASCADE;
251251
NOTICE: drop cascades to 2 other objects
252252
DETAIL: drop cascades to server s1
253-
drop cascades to user mapping for foreign_data_user
253+
drop cascades to user mapping for foreign_data_user on server s1
254254
\dew+
255255
List of foreign-data wrappers
256256
Name | Owner | Handler | Validator | Access privileges | Options
@@ -502,10 +502,10 @@ CREATE USER MAPPING FOR current_user SERVER s3;
502502

503503
DROP SERVER s3; -- ERROR
504504
ERROR: cannot drop server s3 because other objects depend on it
505-
DETAIL: user mapping for foreign_data_user depends on server s3
505+
DETAIL: user mapping for foreign_data_useron server s3depends on server s3
506506
HINT: Use DROP ... CASCADE to drop the dependent objects too.
507507
DROP SERVER s3 CASCADE;
508-
NOTICE: drop cascades to user mapping for foreign_data_user
508+
NOTICE: drop cascades to user mapping for foreign_data_user on server s3
509509
\des
510510
List of foreign servers
511511
Name | Owner | Foreign-data wrapper
@@ -1050,8 +1050,8 @@ GRANT USAGE ON FOREIGN SERVER s9 TO regress_test_role;
10501050
CREATE USER MAPPING FOR current_user SERVER s9;
10511051
DROP SERVER s9 CASCADE;
10521052
NOTICE: drop cascades to 2 other objects
1053-
DETAIL: drop cascades to user mapping for public
1054-
drop cascades to user mapping for unprivileged_role
1053+
DETAIL: drop cascades to user mapping for public on server s9
1054+
drop cascades to user mapping for unprivileged_role on server s9
10551055
RESET ROLE;
10561056
CREATE SERVER s9 FOREIGN DATA WRAPPER foo;
10571057
GRANT USAGE ON FOREIGN SERVER s9 TO unprivileged_role;
@@ -1076,14 +1076,14 @@ DROP ROLE regress_test_role; -- ERROR
10761076
ERROR: role "regress_test_role" cannot be dropped because some objects depend on it
10771077
DETAIL: privileges for server s4
10781078
privileges for foreign-data wrapper foo
1079-
owner of user mapping for regress_test_role
1080-
owner of user mapping for regress_test_role
1079+
owner of user mapping for regress_test_role on server s6
1080+
owner of user mapping for regress_test_role on server s5
10811081
owner of server s5
10821082
owner of server t2
10831083
DROP SERVER s5 CASCADE;
1084-
NOTICE: drop cascades to user mapping for regress_test_role
1084+
NOTICE: drop cascades to user mapping for regress_test_role on server s5
10851085
DROP SERVER t1 CASCADE;
1086-
NOTICE: drop cascades to user mapping for public
1086+
NOTICE: drop cascades to user mapping for public on server t1
10871087
DROP SERVER t2;
10881088
DROP USER MAPPING FOR regress_test_role SERVER s6;
10891089
-- This test causes some order dependent cascade detail output,
@@ -1094,8 +1094,8 @@ NOTICE: drop cascades to 5 other objects
10941094
\set VERBOSITY default
10951095
DROP SERVER s8 CASCADE;
10961096
NOTICE: drop cascades to 2 other objects
1097-
DETAIL: drop cascades to user mapping for foreign_data_user
1098-
drop cascades to user mapping for public
1097+
DETAIL: drop cascades to user mapping for foreign_data_user on server s8
1098+
drop cascades to user mapping for public on server s8
10991099
DROP ROLE regress_test_indirect;
11001100
DROP ROLE regress_test_role;
11011101
DROP ROLE unprivileged_role; -- ERROR

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp