test_us(at)workbook=# select has_table_privilege( 'public', 'test', 'SELECT' );
ERROR: role "public" does not exist
test_us(at)workbook=#
So there's no way to see if a particular privilege has been granted to public. ISTM 'public' should be accepted, since you can't use it as a role name anyway...
test_us(at)workbook=# create role public;
ERROR: role name "public" is reserved
test_us(at)workbook=# create role "public";
ERROR: role name "public" is reserved
--
Jim C. Nasby, Database Architect jim(at)nasby(dot)net
512.569.9461 (cell) http://jim.nasby.net