On Thu, Jun 10, 2010 at 5:54 PM, Jim Nasby <jim@nasby.net> wrote:
> test_us@workbook=# select has_table_privilege( 'public', 'test', 'SELECT' );
> ERROR: role "public" does not exist
> test_us@workbook=#
>
> So there's no way to see if a particular privilege has been granted to public. ISTM 'public' should be accepted,
sinceyou can't use it as a role name anyway...
>
> test_us@workbook=# create role public;
> ERROR: role name "public" is reserved
> test_us@workbook=# create role "public";
> ERROR: role name "public" is reserved
It's a bit sticky - you could make that work for
has_table_privilege(name, oid, text) or has_table_privilege(name,
text, text), but what would you do about the versions whose first
argument is an oid? It would seem a bit awkward to have the behavior
by asymmetrical, although I guess we could...
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company