mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Sort dependent objects before reporting them in DROP ROLE.
Commit 8aa9dd74b
didn't quite finish the job in this area after all,
because DROP ROLE has a code path distinct from DROP OWNED BY, and
it was still reporting dependent objects in whatever order the index
scan returned them in.
Buildfarm experience shows that index ordering of equal-keyed objects is
significantly less stable than before in the wake of using heap TIDs as
tie-breakers. So if we try to hide the unstable ordering by suppressing
DETAIL reports, we're just going to end up having to do that for every
DROP that reports multiple objects. That's not great from a coverage
or problem-detection standpoint, and it's something we'll inevitably
forget in future patches, leading to more iterations of fixing-an-
unstable-result. So let's just bite the bullet and sort here too.
Discussion: https://postgr.es/m/E1h6eep-0001Mw-Vd@gemulon.postgresql.org
This commit is contained in:
@ -128,8 +128,8 @@ FROM pg_type JOIN pg_class c ON typrelid = c.oid WHERE typname = 'deptest_t';
|
||||
-- doesn't work: grant still exists
|
||||
DROP USER regress_dep_user1;
|
||||
ERROR: role "regress_dep_user1" cannot be dropped because some objects depend on it
|
||||
DETAIL: privileges for table deptest1
|
||||
privileges for database regression
|
||||
DETAIL: privileges for database regression
|
||||
privileges for table deptest1
|
||||
owner of default privileges on new relations belonging to role regress_dep_user1 in schema deptest
|
||||
DROP OWNED BY regress_dep_user1;
|
||||
DROP USER regress_dep_user1;
|
||||
|
Reference in New Issue
Block a user