mirror of
https://github.com/postgres/postgres.git
synced 2025-07-23 03:21:12 +03:00
Improve "user mapping not found" error message
Display the name of the foreign server for which the user mapping was not found. Author: Ian Lawrence Barwick <barwick@gmail.com> Reviewed-by: Laurenz Albe <laurenz.albe@cybertec.at> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Discussion: https://www.postgresql.org/message-id/flat/CAB8KJ=jFzNaeyFtLcTZNOc6fd1+F93pGVLFa-wyt31wn7VNxqQ@mail.gmail.com
This commit is contained in:
@ -2717,10 +2717,10 @@ ALTER FOREIGN TABLE ft4 OPTIONS (ADD use_remote_estimate 'true');
|
|||||||
-- regress_view_owner_another, the view owner, though it fails as expected
|
-- regress_view_owner_another, the view owner, though it fails as expected
|
||||||
-- due to the lack of a user mapping for that user.
|
-- due to the lack of a user mapping for that user.
|
||||||
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM v4;
|
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM v4;
|
||||||
ERROR: user mapping not found for "regress_view_owner_another"
|
ERROR: user mapping not found for user "regress_view_owner_another", server "loopback"
|
||||||
-- Likewise, but with the query under an UNION ALL
|
-- Likewise, but with the query under an UNION ALL
|
||||||
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM (SELECT * FROM v4 UNION ALL SELECT * FROM v4);
|
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM (SELECT * FROM v4 UNION ALL SELECT * FROM v4);
|
||||||
ERROR: user mapping not found for "regress_view_owner_another"
|
ERROR: user mapping not found for user "regress_view_owner_another", server "loopback"
|
||||||
-- Should not get that error once a user mapping is created
|
-- Should not get that error once a user mapping is created
|
||||||
CREATE USER MAPPING FOR regress_view_owner_another SERVER loopback OPTIONS (password_required 'false');
|
CREATE USER MAPPING FOR regress_view_owner_another SERVER loopback OPTIONS (password_required 'false');
|
||||||
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM v4;
|
EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM v4;
|
||||||
|
@ -217,10 +217,14 @@ GetUserMapping(Oid userid, Oid serverid)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!HeapTupleIsValid(tp))
|
if (!HeapTupleIsValid(tp))
|
||||||
|
{
|
||||||
|
ForeignServer *server = GetForeignServer(serverid);
|
||||||
|
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_UNDEFINED_OBJECT),
|
(errcode(ERRCODE_UNDEFINED_OBJECT),
|
||||||
errmsg("user mapping not found for \"%s\"",
|
errmsg("user mapping not found for user \"%s\", server \"%s\"",
|
||||||
MappingUserName(userid))));
|
MappingUserName(userid), server->servername)));
|
||||||
|
}
|
||||||
|
|
||||||
um = (UserMapping *) palloc(sizeof(UserMapping));
|
um = (UserMapping *) palloc(sizeof(UserMapping));
|
||||||
um->umid = ((Form_pg_user_mapping) GETSTRUCT(tp))->oid;
|
um->umid = ((Form_pg_user_mapping) GETSTRUCT(tp))->oid;
|
||||||
|
Reference in New Issue
Block a user