diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml
index 6119a150626..e86712e26b5 100644
--- a/doc/src/sgml/ref/alter_table.sgml
+++ b/doc/src/sgml/ref/alter_table.sgml
@@ -1,5 +1,5 @@
@@ -399,17 +399,26 @@ where action is one of:
The DROP COLUMN form does not physically remove
the column, but simply makes it invisible to SQL operations. Subsequent
- insert and update operations in the table will store a null value for the column.
- Thus, dropping a column is quick but it will not immediately reduce the
- on-disk size of your table, as the space occupied
+ insert and update operations in the table will store a null value for the
+ column. Thus, dropping a column is quick but it will not immediately
+ reduce the on-disk size of your table, as the space occupied
by the dropped column is not reclaimed. The space will be
reclaimed over time as existing rows are updated.
- To reclaim the space at once, do a dummy UPDATE> of all rows
- and then vacuum, as in:
+
+
+
+ The fact that ALTER 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
-UPDATE table SET col = col;
-VACUUM FULL table;
+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.