summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-06-07 19:19:57 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-06-07 19:19:57 +0000
commit24ee8af57378ee3b065f6a0d62aeb5a5c7313284 (patch)
treea6cac1fd93221aad889f8f869d8fdbc97ff8834b /doc/src
parent2d9d7a6bf56801e38ba93e22346a5ef3b9ac73ea (diff)
Rework temp_tablespaces patch so that temp tablespaces are assigned separately
for each temp file, rather than once per sort or hashjoin; this allows spreading the data of a large sort or join across multiple tablespaces. (I remain dubious that this will make any difference in practice, but certain people insisted.) Arrange to cache the results of parsing the GUC variable instead of recomputing from scratch on every demand, and push usage of the cache down to the bottommost fd.c level.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/config.sgml22
1 files changed, 14 insertions, 8 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index e1948b8bde2..03dccd47f5d 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.125 2007/06/03 17:05:29 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.126 2007/06/07 19:19:56 tgl Exp $ -->
<chapter Id="runtime-config">
<title>Server Configuration</title>
@@ -3510,16 +3510,22 @@ SELECT * FROM parent WHERE key = 2400;
<para>
The value is a list of names of tablespaces. When there is more than
one name in the list, <productname>PostgreSQL</> chooses a random
- member of the list each time a temporary object is to be created.
+ member of the list each time a temporary object is to be created;
+ except that within a transaction, successively created temporary
+ objects are placed in successive tablespaces from the list.
+ If any element of the list is an empty string,
+ <productname>PostgreSQL</> will automatically use the default
+ tablespace of the current database instead.
</para>
<para>
- If any element of the list is an empty string or does not match the
- name of any existing tablespace, <productname>PostgreSQL</> will
- automatically use the default tablespace of the current database
- instead. If a nondefault tablespace
- is specified, the user must have <literal>CREATE</> privilege
- for it, or creation attempts will fail.
+ When <varname>temp_tablespaces</> is set interactively, specifying a
+ nonexistent tablespace is an error, as is specifying a tablespace for
+ which the user does not have <literal>CREATE</> privilege. However,
+ when using a previously set value, nonexistent tablespaces are
+ ignored, as are tablespaces for which the user lacks
+ <literal>CREATE</> privilege. In particular, this rule applies when
+ using a value set in <filename>postgresql.conf</>.
</para>
<para>