Notes * The name of the new command. It's a good name, if not for the history. There are two commands showing the same information about roles: \du and \dr. The addition of \drg may be misinterpreted: if there is \drg, then there is also \dug. Maybe it's time to think about deprecating of the \du command and leave only \dg in the next versions?
I would add \dr as the new official command to complement adding \drg and deprecate both \du and \dg. Though actual removal and de-documenting doesn't seem like a good idea. But if we ever did assign something non-role to \dr it would be very confusing.
* The new meta-command will also make sense for versions <16. The ADMIN OPTION is available in all supported versions.
Doesn't every role pre-16 gain SET permission? We can also deduce whether the grant provides INHERIT based upon the attribute of the role in question.
* The new meta-command will not show all roles. It will only show the roles included in other roles. To show all roles you need to add an outer join between pg_roles and pg_auth_members. But all columns except "role" will be left blank. Is it worth doing this?
I'm inclined to want this. I would be good when specifying a role to filter upon that all rows that do exist matching that filter end up in the output regardless if they are standalone or not.