pg_dbms_lock v2.0 has been released

Posted on 2026-07-05 by HexaCluster
Related Open Source

Bangkok, Thailand - June 17, 2026

PostgreSQL DBMS_LOCK compatibility extension

PostgreSQL extension to manages advisory locks in a way compatible to Oracle DBMS_LOCK package.

This extension uses PostgreSQL advisory locks to emulate the same behavior following the lock mode (exclusive or shared), the timeout and the on commit release settings.

pg_dbms_lock v2.0 has been released, this is a maintenance release to add compatibility with PostgreSQL 19 and add compatibility with the extension pg_background v2+ API.

Note that this version will not be compatible with pg_background prior to the 2.0 version.

Complete list of changes and acknolegments are available here

This PostgreSQL extension provided compatibility with the DBMS_LOCK Oracle package except the DBMS_LOCK.CONVERT() function and some unsupported lock modes. The following stored procedures are implemented:

  • ALLOCATE_UNIQUE(): Allocates a unique lock ID to a named lock.
  • REQUEST(): Requests a lock of a specific mode.
  • RELEASE(): Releases a lock.
  • SLEEP(): Puts a procedure to sleep for a specific time.

For instance, user locks can be used to do the following:

  • Provide exclusive access to an external device or service (like a printer).
  • Coordinate or synchronize parallelized applications.
  • Disable or enable execution of programs at specific times.
  • Detect whether a session has ended a transaction using COMMIT or ROLLBACK.

Links & Credits

pg_dbms_lock is an open project under the PostgreSQL license maintained by HexaCluster and created by Gilles Darold as part of the improvement of Ora2Pg. Any contribution to build a better tool is welcome. You can send your ideas, features requests or patches using the GitHub tools.

Links :

About pg_dbms_lock

Documentation at https://github.com/HexaCluster/pg_dbms_lock#readme