locks=# begin; BEGIN locks=# alter table test add column b text; ALTER TABLE locks=#
Session 2 querying pg_locks for the PID from above:
locks=# select locktype,relation::regclass,mode from pg_locks where pid = 2026 and locktype = 'relation'; locktype | relation | mode ----------+----------+--------------------- relation | test | AccessExclusiveLock relation | 17728 | AccessExclusiveLock relation | 17726 | ShareLock (3 rows)
What are these 17728 and 17726 OIDs? Nothing else is happening except these two sessions.
Those are probably the OIDs of the toast table and the index on it. If you commit the transaction running in Session 1 and then query pg_class for those OIDs, you might see more details. Of course, I am just guessing without looking into much detail.