BUG #6021: There is no difference between default and empty access privileges with \dp - Mailing list pgsql-bugs

From psql \dp showing empty Access privileges column for {}
Subject BUG #6021: There is no difference between default and empty access privileges with \dp
Date
Msg-id 201105110710.p4B7ALQ5021179@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #6021: There is no difference between default and empty access privileges with \dp
List pgsql-bugs
The following bug has been logged online:

Bug reference:      6021
Logged by:          psql \dp showing empty Access privileges column for {}
Email address:      gszpetkowski@gmail.com
PostgreSQL version: 9.0.4
Operating system:   Debian Squeeze
Description:        There is no difference between default and empty access
privileges with \dp
Details:

uname -a
Linux debian 2.6.32-5-686 #1 SMP Tue Mar 8 21:36:00 UTC 2011 i686 GNU/Linux

psql -tc "SELECT version()" postgres
 PostgreSQL 9.0.4 on i486-pc-linux-gnu, compiled by GCC gcc-4.4.real (Debian
4.4.5-8) 4.4.5, 32-bit

Reproducing:

1) Log as any role (for this myuser) to psql
2) CREATE TABLE testing (value int);;
3) \dp testing

                            Access privileges
 Schema |  Name   | Type  | Access privileges | Column access privileges
--------+---------+-------+-------------------+--------------------------
 public | testing | table |                   |
(1 row)

It is ok, because reading documentation I found that empty Access privileges
column means default privileges (in this example full privileges for myuser
and no privileges for PUBLIC).

4) SELECT relacl FROM pg_class WHERE relname = 'testing';
 relacl
--------

(1 row)

5) REVOKE ALL ON TABLE testing FROM myuser;
REVOKE

6) SELECT relacl FROM pg_class WHERE relname = 'testing';
 relacl
--------
 {}
(1 row)

7) \dp testing
                            Access privileges
 Schema |  Name   | Type  | Access privileges | Column access privileges
--------+---------+-------+-------------------+--------------------------
 public | testing | table |                   |
(1 row)

As you see "Access privileges" column is still blank. I except that this
means that object has still default privileges, but it is not.

8) TABLE testing;
ERROR:  permission denied for relation testing

Using psql -E I noticed that \dp (\z) effectively invokes:

SELECT array_to_string(c.relacl, E'\n') FROM pg_class c WHERE c.relname =
'testing';
 array_to_string
-----------------

(1 row)

I am not familiar with "Column access privileges", but I see that
pg_catalog.array_to_string(attacl, E'\n  '), so probably works as same.

Regards,
Grzegorz Szpetkowski

pgsql-bugs by date:

Previous
From: Craig Ringer
Date:
Subject: Re: BUG #5994: Can't excute DBI->connect to oracle by client site
Next
From: 李紅兵
Date:
Subject: Re: BUG #5994: Can't excute DBI->connect to oracle by client site