aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2007-03-06 02:06:15 +0000
committerBruce Momjian <bruce@momjian.us>2007-03-06 02:06:15 +0000
commita535cdf130167ca6a086805b35f59a6b669b73d7 (patch)
tree16b33abaf606c064c704a52601562a40856e8153 /src
parent4ae6967f5fcee119d2dba964cf5217b521be37e8 (diff)
downloadpostgresql-a535cdf130167ca6a086805b35f59a6b669b73d7.tar.gz
postgresql-a535cdf130167ca6a086805b35f59a6b669b73d7.zip
Revert temp_tablespaces because of coding problems, per Tom.
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/indexcmds.c10
-rw-r--r--src/backend/commands/tablecmds.c6
-rw-r--r--src/backend/commands/tablespace.c143
-rw-r--r--src/backend/executor/execMain.c6
-rw-r--r--src/backend/storage/file/fd.c54
-rw-r--r--src/backend/utils/misc/guc.c13
-rw-r--r--src/backend/utils/misc/postgresql.conf.sample2
-rw-r--r--src/include/commands/tablespace.h3
-rw-r--r--src/include/utils/guc.h6
9 files changed, 15 insertions, 228 deletions
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index b01093106c0..8c5fdbb6c94 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.155 2007/02/01 19:10:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.156 2007/03/06 02:06:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -209,13 +209,7 @@ DefineIndex(RangeVar *heapRelation,
}
else
{
- /*
- * if the target table is temporary then use a temp_tablespace
- */
- if (!rel->rd_istemp)
- tablespaceId = GetDefaultTablespace();
- else
- tablespaceId = GetTempTablespace();
+ tablespaceId = GetDefaultTablespace();
/* note InvalidOid is OK in this case */
}
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index a4d13f38013..ebc974f8731 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.215 2007/02/16 22:04:02 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.216 2007/03/06 02:06:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -330,10 +330,6 @@ DefineRelation(CreateStmt *stmt, char relkind)
errmsg("tablespace \"%s\" does not exist",
stmt->tablespacename)));
}
- else if (stmt->relation->istemp)
- {
- tablespaceId = GetTempTablespace();
- }
else
{
tablespaceId = GetDefaultTablespace();
diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c
index 80c5a927a30..aa2b33c9326 100644
--- a/src/backend/commands/tablespace.c
+++ b/src/backend/commands/tablespace.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.42 2007/02/01 19:10:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.43 2007/03/06 02:06:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -65,12 +65,9 @@
#include "utils/lsyscache.h"
-/* GUC variables */
+/* GUC variable */
char *default_tablespace = NULL;
-char *temp_tablespaces = NULL;
-int next_temp_tablespace;
-int num_temp_tablespaces;
static bool remove_tablespace_directories(Oid tablespaceoid, bool redo);
static void set_short_version(const char *path);
@@ -933,142 +930,6 @@ GetDefaultTablespace(void)
return result;
}
-/*
- * Routines for handling the GUC variable 'temp_tablespaces'.
- */
-
-/* assign_hook: validate new temp_tablespaces, do extra actions as needed */
-const char *
-assign_temp_tablespaces(const char *newval, bool doit, GucSource source)
-{
- char *rawname;
- List *namelist;
- ListCell *l;
-
- /* Need a modifiable copy of string */
- rawname = pstrdup(newval);
-
- /* Parse string into list of identifiers */
- if (!SplitIdentifierString(rawname, ',', &namelist))
- {
- /* syntax error in name list */
- pfree(rawname);
- list_free(namelist);
- return NULL;
- }
-
- num_temp_tablespaces = 0;
- foreach(l, namelist)
- {
- char *curname = (char *) lfirst(l);
-
- /*
- * If we aren't inside a transaction, we cannot do database access so
- * cannot verify the individual names. Must accept the list on faith.
- */
- if (source >= PGC_S_INTERACTIVE && IsTransactionState())
- {
- /*
- * Verify that all the names are valid tablspace names
- * We do not check for USAGE rights should we?
- */
- if (get_tablespace_oid(curname) == InvalidOid)
- ereport((source == PGC_S_TEST) ? NOTICE : ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("tablespace \"%s\" does not exist", curname)));
- }
- num_temp_tablespaces++;
- }
-
- /*
- * Select the first tablespace to use
- */
- next_temp_tablespace = MyProcPid % num_temp_tablespaces;
-
- pfree(rawname);
- list_free(namelist);
- return newval;
-}
-
-/*
- * GetTempTablespace -- get the OID of the tablespace for temporary objects
- *
- * May return InvalidOid to indicate "use the database's default tablespace"
- *
- * This exists to hide the temp_tablespace GUC variable.
- */
-Oid
-GetTempTablespace(void)
-{
- Oid result;
- char *curname = NULL;
- char *rawname;
- List *namelist;
- ListCell *l;
- int i = 0;
-
- if ( temp_tablespaces == NULL )
- return InvalidOid;
-
- /* Need a modifiable version of temp_tablespaces */
- rawname = pstrdup(temp_tablespaces);
-
- /* Parse string into list of identifiers */
- if (!SplitIdentifierString(rawname, ',', &namelist))
- {
- /* syntax error in name list */
- pfree(rawname);
- list_free(namelist);
- return InvalidOid;
- }
-
- /*
- * Iterate through the list of namespaces until the one we need
- * (next_temp_tablespace)
- */
- foreach(l, namelist)
- {
- curname = (char *) lfirst(l);
- if ( i == next_temp_tablespace )
- break;
- i++;
- }
-
-
- /* Prepare for the next time the function is called */
- next_temp_tablespace++;
- if (next_temp_tablespace == num_temp_tablespaces)
- next_temp_tablespace = 0;
-
- /* Fast path for temp_tablespaces == "" */
- if ( curname == NULL || curname[0] == '\0') {
- list_free(namelist);
- pfree(rawname);
- return InvalidOid;
- }
-
- /*
- * It is tempting to cache this lookup for more speed, but then we would
- * fail to detect the case where the tablespace was dropped since the GUC
- * variable was set. Note also that we don't complain if the value fails
- * to refer to an existing tablespace; we just silently return InvalidOid,
- * causing the new object to be created in the database's tablespace.
- */
- result = get_tablespace_oid(curname);
-
- /* We don't free rawname before because curname points to a part of it */
- pfree(rawname);
-
- /*
- * Allow explicit specification of database's default tablespace in
- * default_tablespace without triggering permissions checks.
- */
- if (result == MyDatabaseTableSpace)
- result = InvalidOid;
-
- list_free(namelist);
- return result;
-}
/*
* get_tablespace_oid - given a tablespace name, look up the OID
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 333edf69441..239656dd06b 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.289 2007/02/27 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.290 2007/03/06 02:06:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2440,10 +2440,6 @@ OpenIntoRel(QueryDesc *queryDesc)
errmsg("tablespace \"%s\" does not exist",
into->tableSpaceName)));
}
- else if (into->rel->istemp)
- {
- tablespaceId = GetTempTablespace();
- }
else
{
tablespaceId = GetDefaultTablespace();
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index 7af361adf0c..1d04caad4f2 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.136 2007/02/28 15:59:30 mha Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.137 2007/03/06 02:06:14 momjian Exp $
*
* NOTES:
*
@@ -46,8 +46,6 @@
#include <unistd.h>
#include <fcntl.h>
-#include "commands/tablespace.h"
-
#include "miscadmin.h"
#include "access/xact.h"
#include "storage/fd.h"
@@ -78,7 +76,6 @@
*/
#define FD_MINFREE 10
-#define OIDCHARS 10 /* max chars printed by %u */
/*
* A number of platforms allow individual processes to open many more files
@@ -883,51 +880,13 @@ OpenTemporaryFile(bool interXact)
{
char tempfilepath[MAXPGPATH];
File file;
- Oid oid;
- char *path;
- int pathlen;
/*
- * Take a look what should be the path of the temporary file
+ * Generate a tempfile name that should be unique within the current
+ * database instance.
*/
- oid = GetTempTablespace();
- if (oid != InvalidOid)
- {
- /*
- * As we got a valid tablespace, try to create the
- * file there
- */
-
- pathlen = strlen("pg_tblspc/") + OIDCHARS + 1;
- path = (char *) palloc(pathlen);
- snprintf(path, pathlen, "pg_tblspc/%u", oid );
-
- /*
- * Generate a tempfile name that should be unique within the current
- * database instance.
- */
- snprintf(tempfilepath, sizeof(tempfilepath),
- "%s/%s%d.%ld", path, PG_TEMP_FILE_PREFIX,
- MyProcPid, tempFileCounter++);
- pfree(path);
- file = PathNameOpenFile(tempfilepath,
- O_RDWR | O_CREAT | O_TRUNC | PG_BINARY,
- 0600);
- }
-
- /*
- * Create a normal temporary file if no tablespace returned or
- * couldn't create the file in the tablespace "oid"
- */
- if (oid == InvalidOid || file <= 0)
- {
- path = PG_TEMP_FILES_DIR;
- /*
- * Generate a tempfile name that should be unique within the current
- * database instance.
- */
- snprintf(tempfilepath, sizeof(tempfilepath),
- "%s/%s%d.%ld", path, PG_TEMP_FILE_PREFIX,
+ snprintf(tempfilepath, sizeof(tempfilepath),
+ "%s/%s%d.%ld", PG_TEMP_FILES_DIR, PG_TEMP_FILE_PREFIX,
MyProcPid, tempFileCounter++);
/*
@@ -959,8 +918,7 @@ OpenTemporaryFile(bool interXact)
if (file <= 0)
elog(ERROR, "could not create temporary file \"%s\": %m",
tempfilepath);
- }
- }
+ }
/* Mark it for deletion at close */
VfdCache[file].fdstate |= FD_TEMPORARY;
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 173e9903c50..0fa3489fb62 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.378 2007/03/03 18:46:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.379 2007/03/06 02:06:14 momjian Exp $
*
*--------------------------------------------------------------------
*/
@@ -99,7 +99,6 @@ extern bool Log_disconnections;
extern int CommitDelay;
extern int CommitSiblings;
extern char *default_tablespace;
-extern char *temp_tablespaces;
extern bool fullPageWrites;
#ifdef TRACE_SORT
@@ -2317,16 +2316,6 @@ static struct config_string ConfigureNamesString[] =
"content", assign_xmloption, NULL
},
- {
- {"temp_tablespaces", PGC_USERSET, PGC_S_FILE,
- gettext_noop("Sets the tablespaces suitable for creating new objects and sort files."),
- NULL,
- GUC_LIST_INPUT | GUC_LIST_QUOTE
- },
- &temp_tablespaces,
- NULL, assign_temp_tablespaces, NULL
- },
-
#ifdef USE_SSL
{
{"ssl_ciphers", PGC_POSTMASTER, CONN_AUTH_SECURITY,
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 7ee8d417c00..cf2dfdc099e 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -404,8 +404,6 @@
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses
# the default
-#temp_tablespaces = '' # a list of tablespace names,
- # '' uses default_tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
diff --git a/src/include/commands/tablespace.h b/src/include/commands/tablespace.h
index 6d3a333cf29..47e4beb255c 100644
--- a/src/include/commands/tablespace.h
+++ b/src/include/commands/tablespace.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/commands/tablespace.h,v 1.15 2007/01/25 04:35:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/commands/tablespace.h,v 1.16 2007/03/06 02:06:15 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -41,7 +41,6 @@ extern void AlterTableSpaceOwner(const char *name, Oid newOwnerId);
extern void TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo);
extern Oid GetDefaultTablespace(void);
-extern Oid GetTempTablespace(void);
extern Oid get_tablespace_oid(const char *tablespacename);
extern char *get_tablespace_name(Oid spc_oid);
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 51cc05a7a73..3efb8618938 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -7,7 +7,7 @@
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
- * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.79 2007/01/25 04:35:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.80 2007/03/06 02:06:15 momjian Exp $
*--------------------------------------------------------------------
*/
#ifndef GUC_H
@@ -238,8 +238,4 @@ extern const char *assign_search_path(const char *newval,
extern const char *assign_xlog_sync_method(const char *method,
bool doit, GucSource source);
-/* in commands/tablespace.c */
-extern const char *assign_temp_tablespaces(const char *newval,
- bool doit, GucSource source);
-
#endif /* GUC_H */