diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index bcab54397f2..657a778290a 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -38,6 +38,7 @@ #include "access/xact.h" #include "catalog/heap.h" #include "catalog/namespace.h" +#include "catalog/pg_tablespace.h" #include "catalog/toasting.h" #include "commands/tablespace.h" #include "commands/trigger.h" @@ -2249,6 +2250,12 @@ OpenIntoRel(QueryDesc *queryDesc) get_tablespace_name(tablespaceId)); } + /* In all cases disallow placing user relations in pg_global */ + if (tablespaceId == GLOBALTABLESPACE_OID) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("only shared relations can be placed in pg_global tablespace"))); + /* Parse and validate any reloptions */ reloptions = transformRelOptions((Datum) 0, into->options,