Durban, South Africa - October 20, 2025
The pg_dbms_errlog extension provides the infrastructure that enables you to create an error logging table so that DML operations can continue after encountering errors rather than abort and roll back. It requires the use of the pg_statement_rollback extension or to fully manage the SAVEPOINT in the DML script. Logging in the corresponding error table is done using dynamic shared memory for error queuing and a background worker to write the errors queued into the corresponding error log tables. Note that configuration setting max_worker_processes
must be high enough to support the extension, as it will launch up to pg_dbms_errlog.max_workers
dynamic background workers, plus an additional fixed background worker.
Error logging can be done synchronously by registering the error at query level or when the transaction ends using GUC pg_dbms_errlog.synchronous
. Logging at transaction is the default and must be preferred to query, it is the mode that can guarantee that only errors on a committed transaction will be logged. When synchronous logging is disabled off error logging is done when the bg_worker wakes up or when function dbms_errlog.publish_queue()
is called or that the synchronous level is changed.
pg_dbms_errlog v2.2 has been released, this is a maintenance release to add compatibility with PostgreSQL 17+.
The project has also been moved from the deprecated Migops repository to HexaCluster Corp.'s GitHub repository to ensure project maintenance.
Complete list of changes and acknowledgments are available here
pg_dbms_errlog 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 :
Documentation at https://github.com/HexaCluster/pg_dbms_errlog#readme