summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/ref/alter_tablespace.sgml
blob: 6ec863400d17b391fb7a20e334dad252dd0c1803 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!--
doc/src/sgml/ref/alter_tablespace.sgml
PostgreSQL documentation
-->

<refentry id="sql-altertablespace">
 <indexterm zone="sql-altertablespace">
  <primary>ALTER TABLESPACE</primary>
 </indexterm>

 <refmeta>
  <refentrytitle>ALTER TABLESPACE</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>ALTER TABLESPACE</refname>
  <refpurpose>change the definition of a tablespace</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
ALTER TABLESPACE <replaceable>name</replaceable> RENAME TO <replaceable>new_name</replaceable>
ALTER TABLESPACE <replaceable>name</replaceable> OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER TABLESPACE <replaceable>name</replaceable> SET ( <replaceable class="parameter">tablespace_option</replaceable> = <replaceable class="parameter">value</replaceable> [, ... ] )
ALTER TABLESPACE <replaceable>name</replaceable> RESET ( <replaceable class="parameter">tablespace_option</replaceable> [, ... ] )
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>ALTER TABLESPACE</command> can be used to change the definition of
   a tablespace.
  </para>

  <para>
   You must own the tablespace to change the definition of a tablespace.
   To alter the owner, you must also be able to <literal>SET ROLE</literal>
   to the new owning role.
   (Note that superusers have these privileges automatically.)
  </para>

 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable class="parameter">name</replaceable></term>
    <listitem>
     <para>
      The name of an existing tablespace.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_name</replaceable></term>
    <listitem>
     <para>
      The new name of the tablespace.  The new name cannot
      begin with <literal>pg_</literal>, as such names
      are reserved for system tablespaces.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_owner</replaceable></term>
    <listitem>
     <para>
      The new owner of the tablespace.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">tablespace_option</replaceable></term>
    <listitem>
     <para>
      A tablespace parameter to be set or reset.  Currently, the only
      available parameters are <varname>seq_page_cost</varname>,
      <varname>random_page_cost</varname>, <varname>effective_io_concurrency</varname>
      and <varname>maintenance_io_concurrency</varname>.
      Setting these values for a particular tablespace will override the
      planner's usual estimate of the cost of reading pages from tables in
      that tablespace, and the executor's prefetching behavior, as established
      by the configuration parameters of the
      same name (see <xref linkend="guc-seq-page-cost"/>,
      <xref linkend="guc-random-page-cost"/>,
      <xref linkend="guc-effective-io-concurrency"/>,
      <xref linkend="guc-maintenance-io-concurrency"/>).  This may be useful if
      one tablespace is located on a disk which is faster or slower than the
      remainder of the I/O subsystem.
     </para>
    </listitem>
   </varlistentry>

  </variablelist>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   Rename tablespace <literal>index_space</literal> to <literal>fast_raid</literal>:
<programlisting>
ALTER TABLESPACE index_space RENAME TO fast_raid;
</programlisting>
  </para>

  <para>
   Change the owner of tablespace <literal>index_space</literal>:
<programlisting>
ALTER TABLESPACE index_space OWNER TO mary;
</programlisting></para>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   There is no <command>ALTER TABLESPACE</command> statement in
   the SQL standard.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-createtablespace"/></member>
   <member><xref linkend="sql-droptablespace"/></member>
  </simplelist>
 </refsect1>
</refentry>