Revert "Avoid race condition between "GRANT role" and "DROP ROLE"".
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Sep 2025 17:05:53 +0000 (13:05 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Sep 2025 17:05:53 +0000 (13:05 -0400)
commit8abbbbae610cd62faad4f9ec18e7cfa908593796
tree9fc35b902d0523281aa36f91e55b8b50307b2045
parentc044b50d199cf592eba2ac84f48cf0fcb5fb65f8
Revert "Avoid race condition between "GRANT role" and "DROP ROLE"".

This reverts commit 98fc31d6499163a0a781aa6f13582a07f09cd7c6.
That change allowed DROP OWNED BY to drop grants of the target
role to other roles, arguing that nobody would need those
privileges anymore.  But that's not so: if you're not superuser,
you still need admin privilege on the target role so you can
drop it.

It's not clear whether or how the dependency-based approach
to solving the original problem can be adapted to keep these
grants.  Since v18 release is fast approaching, the sanest
thing to do seems to be to revert this patch for now.  The
race-condition problem is low severity and not worth taking
risks for.

I didn't force a catversion bump in 98fc31d64, so I won't do
so here either.

Reported-by: Dipesh Dhameliya <dipeshdhameliya125@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CABgZEgczOFicCJoqtrH9gbYMe_BV3Hq8zzCBRcMgmU6LRsihUA@mail.gmail.com
Backpatch-through: 18
doc/src/sgml/ref/drop_owned.sgml
src/backend/commands/user.c
src/test/regress/expected/privileges.out
src/test/regress/sql/privileges.sql