BTW, I realized we do not support granting roles to PUBLIC:
regression=# create role r;CREATE ROLEregression=# grant r to public;ERROR: role "public" does not exist
but as far as I can tell SQL99 expects this to work.
regards, tom lane