Commit 2b2b2ae2 authored by Robert Haas's avatar Robert Haas

Correct ALTER TYPE -> SET DATA TYPE in ALTER TABLE documentation.

The latter is the correct name of the operation to change the data type
of a column.

Noah Misch
parent 5042d16d
...@@ -777,7 +777,7 @@ ALTER TABLE <replaceable class="PARAMETER">name</replaceable> ...@@ -777,7 +777,7 @@ ALTER TABLE <replaceable class="PARAMETER">name</replaceable>
</para> </para>
<para> <para>
The fact that <literal>ALTER TYPE</> requires rewriting the whole table The fact that <literal>SET DATA TYPE</> requires rewriting the whole table
is sometimes an advantage, because the rewriting process eliminates is sometimes an advantage, because the rewriting process eliminates
any dead space in the table. For example, to reclaim the space occupied any dead space in the table. For example, to reclaim the space occupied
by a dropped column immediately, the fastest way is: by a dropped column immediately, the fastest way is:
...@@ -792,15 +792,15 @@ ALTER TABLE table ALTER COLUMN anycol TYPE anytype; ...@@ -792,15 +792,15 @@ ALTER TABLE table ALTER COLUMN anycol TYPE anytype;
</para> </para>
<para> <para>
The <literal>USING</literal> option of <literal>ALTER TYPE</> can actually The <literal>USING</literal> option of <literal>SET DATA TYPE</> can actually
specify any expression involving the old values of the row; that is, it specify any expression involving the old values of the row; that is, it
can refer to other columns as well as the one being converted. This allows can refer to other columns as well as the one being converted. This allows
very general conversions to be done with the <literal>ALTER TYPE</> very general conversions to be done with the <literal>SET DATA TYPE</>
syntax. Because of this flexibility, the <literal>USING</literal> syntax. Because of this flexibility, the <literal>USING</literal>
expression is not applied to the column's default value (if any); the expression is not applied to the column's default value (if any); the
result might not be a constant expression as required for a default. result might not be a constant expression as required for a default.
This means that when there is no implicit or assignment cast from old to This means that when there is no implicit or assignment cast from old to
new type, <literal>ALTER TYPE</> might fail to convert the default even new type, <literal>SET DATA TYPE</> might fail to convert the default even
though a <literal>USING</literal> clause is supplied. In such cases, though a <literal>USING</literal> clause is supplied. In such cases,
drop the default with <literal>DROP DEFAULT</>, perform the <literal>ALTER drop the default with <literal>DROP DEFAULT</>, perform the <literal>ALTER
TYPE</>, and then use <literal>SET DEFAULT</> to add a suitable new TYPE</>, and then use <literal>SET DEFAULT</> to add a suitable new
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment