From: Bruce Momjian Date: Wed, 26 Apr 2006 23:01:13 +0000 (+0000) Subject: Fix SELECT INTO and CREATE TABLE AS to create tables in the default X-Git-Tag: REL8_0_8~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=382825da9d803ea6c392079cf87128b9bd44ba8e;p=thirdparty%2Fpostgresql.git Fix SELECT INTO and CREATE TABLE AS to create tables in the default tablespace, not the base directory. Kris Jurka --- diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 3a86d311629..8f753ffe0fb 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.241.4.2 2006/01/12 21:49:17 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.241.4.3 2006/04/26 23:01:13 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -36,6 +36,7 @@ #include "catalog/heap.h" #include "catalog/namespace.h" #include "commands/tablecmds.h" +#include "commands/tablespace.h" #include "commands/trigger.h" #include "executor/execdebug.h" #include "executor/execdefs.h" @@ -731,6 +732,7 @@ InitPlan(QueryDesc *queryDesc, bool explainOnly) { char *intoName; Oid namespaceId; + Oid tablespaceId; AclResult aclresult; Oid intoRelationId; TupleDesc tupdesc; @@ -747,6 +749,16 @@ InitPlan(QueryDesc *queryDesc, bool explainOnly) aclcheck_error(aclresult, ACL_KIND_NAMESPACE, get_namespace_name(namespaceId)); + tablespaceId = GetDefaultTablespace(); + if (OidIsValid(tablespaceId)) { + aclresult = pg_tablespace_aclcheck(tablespaceId, GetUserId(), + ACL_CREATE); + + if (aclresult != ACLCHECK_OK) + aclcheck_error(aclresult, ACL_KIND_TABLESPACE, + get_tablespace_name(tablespaceId)); + } + /* * have to copy tupType to get rid of constraints */ @@ -754,7 +766,7 @@ InitPlan(QueryDesc *queryDesc, bool explainOnly) intoRelationId = heap_create_with_catalog(intoName, namespaceId, - InvalidOid, + tablespaceId, tupdesc, RELKIND_RELATION, false,