Suya Huang wrote: > I’ve encountered a weird problem in PostgreSQL : > > postgres=> create user test password ‘test’; > > postgres=> grant select on pg_catalog.pg_database_size to test; This statement produces an error: ERROR: relation "pg_catalog.pg_database_size" does not exist > postgres=> grant execute on function pg_catalog.pg_database_size(name) to test; > > --login as user test > postgres=> select current_user; > current_user > -------------- > test > (1 row) > > > --query individual database size is fine > postgres=> select pg_database_size('postgres'); > pg_database_size > ------------------ > 25611884 > (1 row) > > --fails if try to get all db size in one sql > postgres=> SELECT current_date,pg_database_size(pg_database.datname) from pg_database; > ERROR: permission denied for database control Works for me. It seems like you have a database called "control" for which user "test" has no connect privilege. Yours, Laurenz Albe