On 08/23/2014 12:47 PM, Andres Freund wrote:
> On 2014-08-23 17:28:38 +0100, Simon Riggs wrote:
>> On 23 August 2014 14:57, Andres Freund <andres@anarazel.de> wrote:
>>> On August 23, 2014 3:49:32 PM CEST, Simon Riggs <simon@2ndQuadrant.com> wrote:
>>>> On 22 August 2014 19:30, Alvaro Herrera <alvherre@alvh.no-ip.org>
>>>> wrote:
>>>>
>>>>> Implement ALTER TABLE .. SET LOGGED / UNLOGGED
>>>>>
>>>> When moving from unlogged to logged, where do we remove the init fork?
>>>>
>>>> Couldn't see the keywords fork or init anywhere in the patch, so maybe
>>>> its hidden somewhere.
>>> A new relfilenode is filled with the data - the old one, including the init fork, gets removed by the normal
mechanicsof rewriting rels.
>> Why do we do that? Table rewrite takes hours.
> There was a long thread about it on -hackers. Doing it without a rewrite
> and without loosing transactional semantics is really rather hard. And
> having the capability of doing it with a rewrite is better than not
> having it at all.
>
>
I think this needs to be documented very clearly and explicitly. My
question about the mechanism was similar to Simon's, and I looked in
vain for any clue about it in the committed docs.
cheers
andrew