> In contrast the current alternatives appear to be either LOCK
> the entire table (preventing ALL inserts and selects),
SHARE ROW EXCLUSIVE mode doesn't prevent selects...
> or to create a UNIQUE constraint (forcing complete rollbacks
> and restarts in event of a collision :( ).
Hopefully, savepoints will be in 7.2
> Any comments, suggestions or tips would be welcome. It looks
> like quite a complex thing to do - I've only just started
> looking at the postgresql internals and the lock manager.
It's very easy to do (from my PoV -:)) We need in yet another
pseudo table like one we use in XactLockTableInsert/XactLockTableWait
- try to look there...
Vadim