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.