On 18.03.24 22:30, Tom Lane wrote:
> regression=# revoke foo from joe;
> WARNING: role "joe" has not been granted membership in role "foo" by role "postgres"
> REVOKE ROLE
>
> What the OP is on about is that that last case issues WARNING not
> ERROR.
Another point is that granting a role that has already been granted is
not an error. So it makes some sense that revoking a role that has not
been granted is also not an error. Both of these operations are
idempotent in the same way.