Thread: pg_locks.relation question

pg_locks.relation question

From
Daniel Westermann
Date:
Hi,

session one:

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.

Thanks in advance
Daniel

Re: pg_locks.relation question

From
Pavan Deolasee
Date:


On Wed, Apr 18, 2018 at 5:35 PM, Daniel Westermann <daniel.westermann@dbi-services.com> wrote:
Hi,

session one:

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. 

Thanks,
Pavan

--
 Pavan Deolasee                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Re: pg_locks.relation question

From
Daniel Westermann
Date:
On Wed, Apr 18, 2018 at 5:35 PM, Daniel Westermann <daniel.westermann@dbi-services.com> wrote:
Hi,

session one:

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. 

Thx, Pavan, that's it.