From 6daef2bca400600b8a3d34ad8cceafd6bdaf049f Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 12 Oct 2007 18:55:12 +0000 Subject: Remove hack in pg_tablespace_aclmask() that disallowed permissions on pg_global even to superusers, and replace it with checks in various other places to complain about invalid uses of pg_global. This ends up being a bit more code but it allows a more specific error message to be given, and it un-breaks pg_tablespace_size() on pg_global. Per discussion. --- src/backend/commands/dbcommands.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/backend/commands/dbcommands.c') diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 094f51b5cc9..434e9838947 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -13,7 +13,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.199 2007/09/28 22:25:49 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.200 2007/10/12 18:55:12 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -302,6 +302,12 @@ createdb(const CreatedbStmt *stmt) aclcheck_error(aclresult, ACL_KIND_TABLESPACE, tablespacename); + /* pg_global must never be the default tablespace */ + if (dst_deftablespace == GLOBALTABLESPACE_OID) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("pg_global cannot be used as default tablespace"))); + /* * If we are trying to change the default tablespace of the template, * we require that the template not have any files in the new default -- cgit v1.2.3