The following bug has been logged online:
Bug reference: 4689
Logged by:
Email address:
xuan--2009(dot)03--submitbug--support--postgresql(dot)org(at)baldauf(dot)org
PostgreSQL version: 8.3.5
Operating system: Linux 2.6.18-6-amd64
Description: Expanding the length of a VARCHAR column should not
induce a table rewrite
Details:
Suppose there is a table "sometable" with a column "somecolumn" of type
"VARCHAR(5)".
This table as many rows.
When executing
"ALTER TABLE sometable ALTER COLUMN somecolumn TYPE VARCHAR(7)", the whole
table is re-written, and this rewrite takes many hours. During these hours,
all writers on this table stall, making the database effectively
unavailable.
However, in almost all cases, there is no need for such relaxing of limits
to require a table rewrite.
So the expected run time needed for this statement is about one second, the
actual run time needed for this statement is many hours.