Search code examples
postgresqltransactionssqlalchemy

How to check for pending operations in a PostgreSQL transaction


I have a session (SQLAlchemy) on PostgreSQL, with an active uncommitted transaction. I have just passed the session to some call tree that may or may not have issued SQL INSERT/UPDATE/DELETE statements, through sqlalchemy.orm or directly through the underlying connection.

Is there a way to check whether there are any pending data-modifying statements in this transaction? I.e. whether commit would be a no-op or not, and whether rollback would discard something or not?

I've seen people point out v$transaction in Oracle for the same thing (see this SO question). I'm looking for something similar to use on PostgreSQL.


Solution

  • Start by checking into system view pg_locks.

    http://www.postgresql.org/docs/8.4/interactive/view-pg-locks.html