Szymon, The PUBLIC role is a default, non login role, that is created
with every postgres cluster/instance. To my knowledge PUBLIC is a standard user in any rdbms. So, existence
of public is not the issue here. Sincerely, Kasia From: Szymon Guz
[mailto:mabewlun@xxxxxxxxx] 2010/8/10 Kasia Tuszynska <ktuszynska@xxxxxxxx> Hello Postgres Gurus, Is it expected behavior for the has_table_privilege
postgres function to not handle the user PUBLIC? Or should I submit a bug? The has_table_privilege function does not
handle PUBLIC – the following queries returns the error: SELECT
has_table_privilege ('PUBLIC','bob.gdb.test1','SELECT') AS SELECT, has_table_privilege
('PUBLIC','bob.gdb.test1','INSERT') AS INSERT, has_table_privilege
('PUBLIC','bob.gdb.test1','DELETE') AS DELETE, has_table_privilege
('PUBLIC','bob.gdb.test1','UPDATE') AS UPDATE; ERROR: role
"PUBLIC" does not exist SQL state: 42704 SELECT
has_table_privilege ('public','bob.gdb.test1','SELECT') AS SELECT, has_table_privilege
('public','bob.gdb.test1','INSERT') AS INSERT, has_table_privilege
('public','bob.gdb.test1','DELETE') AS DELETE, has_table_privilege
('public','bob.gdb.test1','UPDATE') AS UPDATE; ERROR: role
"public" does not exist SQL state: 42704 Thank you, Sincerley, Kasia Do you have any role that is named PUBLIC? I think that you
don't have one. Check e.g. in the table pg_user. regards Szymon |