Re: [HACKERS] TRUNCATE TABLE with IDENTITY

Alvaro Herrera <alvherre@commandprompt.com>

From: Alvaro Herrera <alvherre@commandprompt.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
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-08T00:30:50Z
Lists: pgsql-hackers
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 :-(

> So what I think we should do is leave the patch there, revise the
> warning per Neil's complaint, and add a TODO item to reimplement RESTART
> IDENTITY transactionally.

I think the TODO item did not make it, but the docs do seem updated.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support