Using an 8.0.3 database, if I do:
CREATE GROUP testgrp WITH USER pgsql;
GRANT ALL ON timezone TO GROUP testgrp;
DROP GROUP testgrp;
The table permissions still contain the reference to the 'group':
public | timezone | table | {pgsql=arwdRxt/pgsql,"group 100=arwdRxt/pgsql"}
And you can't REVOKE those permissions afterwards:
ams=# REVOKE ALL ON timezone FROM GROUP testgrp;
ERROR: group "testgrp" does not exist
ams=# REVOKE ALL ON timezone FROM GROUP "100";
ERROR: group "100" does not exist
Should there not be an ERROR returned when you try and drop a user/group
that has permissions on a table in the database, to prevent this?