Re: [HACKERS] TRUNCATE TABLE with IDENTITY

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@commandprompt.com>
Cc: Simon Riggs <simon@2ndquadrant.com>, Neil Conway <neilc@samurai.com>, Zoltan Boszormenyi <zb@cybertec.at>, List pgsql-patches <pgsql-patches@postgresql.org>, Decibel! <decibel@decibel.org>, Steve Crawford <scrawford@pinpointresearch.com>, pgsql-hackers@postgresql.org
Date: 2008-06-08T16:26:06Z
Lists: pgsql-hackers
Alvaro Herrera <alvherre@commandprompt.com> writes:
> Tom Lane wrote:
>> 2. I had first dismissed Neil's idea of transactional sequence updates
>> as impossible, but on second look it could be done.  Suppose RESTART
>> IDENTITY does this for each sequence;
>> 
>> * obtain AccessExclusiveLock;
>> * assign a new relfilenode;
>> * insert a sequence row with all parameters copied except
>> last_value copies start_value;
>> * hold AccessExclusiveLock till commit.

> Hmm, this kills the idea of moving sequence data to a single
> non-transactional catalog :-(

Well, there are a number of holes in our ideas of how to do that anyway.
But offhand I don't see why we couldn't distinguish regular heap_update
from update_in_place on single rows within a catalog.

			regards, tom lane