"Jeff Martin" <jeff(at)dgjc(dot)org> writes:
> LOCK TABLE Test IN EXCLUSIVE MODE;
> /* This function should be able to operate concurrently BUT CANNOT */
How you figure that? EXCLUSIVE lock is clearly documented to be
self-conflicting; so only one process can hold it at a time. See
http://www.ca.postgresql.org/users-lounge/docs/7.1/postgres/locking-tables.html
If concurrency is important I'd suggest generating your ID values using
a sequence generator, rather than trying to build your own
implementation.
regards, tom lane