On 03/18/2014 12:55 PM, Andres Freund wrote:
> On 2014-03-18 12:52:49 -0700, Josh Berkus wrote:
>> On 03/18/2014 12:35 PM, Andres Freund wrote:
>>> I still think a rewriting noop ALTER TABLE ... ALTER COLUMN col TYPE
>>> old_type USING (col); is the only real thing to do.
>>
>> Then why wouldn't VACUUM FULL work?
>
> Please read the referenced message and children. It will use
> rewriteheap.c which tries to maintain the update chains.
Reading ... hmmm. Well, the ALTER TABLE thing may work, but I'm really
hesitant to recommend it as a general solution for our users; it doesn't
look repliable. Too bad we don't have a handy corrupted database to
practice on.
I will note that VACUUM FULL doesn't work either.
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com