From edad08ba545b43261b4d54d65122b45c9b5ee801 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Fri, 4 Feb 2011 13:08:56 -0500 Subject: [PATCH] Update ALTER TABLE docs to mention using VACUUM FULL for rewrites. Remove the claim that ALTER TABLE .. SET DATA TYPE is the fastest way of rewriting a table, since it no longer is. Noah Misch and Robert Haas, based on a suggestion from Tom Lane. --- doc/src/sgml/ref/alter_table.sgml | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index 1d52be6a73d..52f70cea18e 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -403,9 +403,9 @@ ALTER TABLE name for details on the available parameters. Note that the table contents will not be modified immediately by this command; depending on the parameter you might need to rewrite the table to get the desired effects. - That can be done with - or one of the forms of ALTER - TABLE that forces a table rewrite. + That can be done with VACUUM + FULL, or one of the forms + of ALTER TABLE that forces a table rewrite. @@ -777,18 +777,11 @@ ALTER TABLE name - The fact that SET DATA TYPE requires rewriting the whole table - is sometimes an advantage, because the rewriting process eliminates - any dead space in the table. For example, to reclaim the space occupied - by a dropped column immediately, the fastest way is: - -ALTER TABLE table ALTER COLUMN anycol TYPE anytype; - - where anycol is any remaining table column and - anytype is the same type that column already has. - This results in no semantically-visible change in the table, - but the command forces rewriting, which gets rid of no-longer-useful - data. + To force an immediate rewrite of the table, you can use + VACUUM FULL, + or one of the forms of ALTER TABLE that forces a rewrite, such as + SET DATA TYPE. This results in no semantically-visible change in the + table, but gets rid of no-longer-useful data.