diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 301aa124962..a298945ae62 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" @@ -2746,6 +2747,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,