mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Avoid a few more SET DATA TYPE table rewrites.
When the new type is an unconstrained domain over the old type, we don't need to rewrite the table. Noah Misch and Robert Haas
This commit is contained in:
@ -766,13 +766,14 @@ ALTER TABLE <replaceable class="PARAMETER">name</replaceable>
|
||||
<para>
|
||||
Adding a column with a non-null default or changing the type of an
|
||||
existing column will require the entire table and indexes to be rewritten.
|
||||
As an exception, if the old type type is binary coercible to the new
|
||||
type and the <literal>USING</> clause does not change the column contents,
|
||||
a table rewrite is not needed, but any indexes on the affected columns
|
||||
must still be rebuilt. Adding or removing a system <literal>oid</> column
|
||||
also requires rewriting the entire table. Table and/or index rebuilds may
|
||||
take a significant amount of time for a large table; and will temporarily
|
||||
require as much as double the disk space.
|
||||
As an exception, if the <literal>USING</> clause does not change the column
|
||||
contents and the old type is either binary coercible to the new type or
|
||||
an unconstrained domain over the new type, a table rewrite is not needed,
|
||||
but any indexes on the affected columns must still be rebuilt. Adding or
|
||||
removing a system <literal>oid</> column also requires rewriting the entire
|
||||
table. Table and/or index rebuilds may take a significant amount of time
|
||||
for a large table; and will temporarily require as much as double the disk
|
||||
space.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
Reference in New Issue
Block a user