aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2006-04-26 23:01:13 +0000
committerBruce Momjian <bruce@momjian.us>2006-04-26 23:01:13 +0000
commit382825da9d803ea6c392079cf87128b9bd44ba8e (patch)
tree50f3cbf3a742b53c60a4fc67f531734ebde27077 /src
parent46942e84d94bb25ef95cd32ac41c259e1825a47d (diff)
downloadpostgresql-382825da9d803ea6c392079cf87128b9bd44ba8e.tar.gz
postgresql-382825da9d803ea6c392079cf87128b9bd44ba8e.zip
Fix SELECT INTO and CREATE TABLE AS to create tables in the default
tablespace, not the base directory. Kris Jurka
Diffstat (limited to 'src')
-rw-r--r--src/backend/executor/execMain.c16
1 files changed, 14 insertions, 2 deletions
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,