Re: [PATCHES] TRUNCATE TABLE with IDENTITY

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Alvaro Herrera <alvherre@commandprompt.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, 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-07-01T18:09:28Z
Lists: pgsql-hackers
Alvaro Herrera wrote:
> 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.

Done:

* Fix TRUNCATE ... RESTART IDENTITY so its affect on sequences is rolled
  back on transaction abort

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +