Thread

  1. Re: obtaining row locking information

    Tatsuo Ishii <t-ishii@sra.co.jp> — 2005-08-12T05:08:29Z

    > On Fri, Aug 12, 2005 at 12:27:25PM +0900, Tatsuo Ishii wrote:
    > 
    > > However even one of transactions, for example 647 commits, still it
    > > shows as if 647 is a member of muitixid 3.
    > > 
    > > test=# select * from pgrowlocks('t1');
    > >  locked_row | lock_type | locker | multi |   xids    
    > > ------------+-----------+--------+-------+-----------
    > >       (0,1) | Shared    |      3 | t     | {646,647}
    > > (1 row)
    > > 
    > > Am I missing something?
    > 
    > By design, a MultiXactId does not change its membership, that is, no
    > members are added nor deleted.  When this has to happen (for example a
    > row is locked by another backend), a new MultiXactId is generated.  The
    > caller is expected to check whether the member transactions are still
    > running.
    
    But it seems when members are deleted, new multixid is not
    generated. i.e. I see "locker" column does not change. Is this an
    expected behavior?
    --
    Tatsuo Ishii