Hi, What's the difference between below two queue implementations?
-- -- With advisory locks. -- BEGIN; SELECT pg_advisory_lock((SELECT oid FROM pg_class WHERE relname = 'queue')); DELETE FROM queue WHERE id = (SELECT MIN(id) FROM queue) RETURNING id, val; SELECT pg_advisory_unlock((SELECT oid FROM pg_class WHERE relname = 'queue')); COMMIT; -- -- With LOCK table command. -- BEGIN; LOCK TABLE queue; DELETE FROM queue WHERE id = (SELECT MIN(id) FROM queue) RETURNING id, val; COMMIT; Any helps will be appreciated. (BTW, yep, I'm aware of PGQ module of skyytools[1].) Regards. [1] http://skytools.projects.postgresql.org/ -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql