On Tue, 24 Jul 2007, Gregory Stark wrote: > "Csaba Nagy" <nagy@xxxxxxxxxxxxxx> writes: > > >> Unfortunately the stuff that makes a ctid=<value> nice doesn't seem to be > >> used when you're doing an in. It's possible that a function that does > >> something like > >> for rec in select ctid from my_table limit 10 loop > >> delete from my_table where ctid=rec.ctid; > >> end loop > >> might do okay, but I haven't tried it. > > > > OK, I think this will work. It would be nice though to have the 'ctid > > in' trick work just as well as 'ctid = ' ... > > Unfortunately I don't think this will work. Multiple backends will happily > pick up the same ctid in their selects and then try to delete the same > records. I'm pretty sure he said that the batch processing (and the delete) would only be happening from one backend at a time, no concurrency on that portion, merely concurrency with the large volume of inserts.