From b34f8f409bec4921d260ac84668917f5fff04319 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 9 Sep 2013 22:25:37 -0400 Subject: Show schemas in information_schema.schemata that the current has access to Before, it would only show schemas that the current user owns. Per discussion, the new behavior is more useful and consistent for PostgreSQL. --- src/backend/catalog/information_schema.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index 95f267f224..c5f7a8b210 100644 --- a/src/backend/catalog/information_schema.sql +++ b/src/backend/catalog/information_schema.sql @@ -1502,7 +1502,9 @@ CREATE VIEW schemata AS CAST(null AS sql_identifier) AS default_character_set_name, CAST(null AS character_data) AS sql_path FROM pg_namespace n, pg_authid u - WHERE n.nspowner = u.oid AND pg_has_role(n.nspowner, 'USAGE'); + WHERE n.nspowner = u.oid + AND (pg_has_role(n.nspowner, 'USAGE') + OR has_schema_privilege(n.oid, 'CREATE, USAGE')); GRANT SELECT ON schemata TO PUBLIC; -- cgit v1.2.3