Re: Why is LockClassinfoForUpdate()'s mark4update a good idea?

From: Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: Why is LockClassinfoForUpdate()'s mark4update a good idea?
Date: 2001-01-16 00:50:37
Message-ID: 3A639ADD.A612A90F@tpf.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:
>
> Why does LockClassinfoForUpdate() insist on doing heap_mark4update?

Because I want to guard the target pg_class tuple by myself.
I don't think we could rely on the assumption that the lock on
the corresponding relation is held. For example, AlterTableOwner()
doesn't seem to open the corresponding relation.

> As far as I can see, this accomplishes nothing except to break
> concurrent index builds. If I do
>
> create index tenk1_s1 on tenk1(stringu1);
> create index tenk1_s2 on tenk1(stringu2);
>
> in two psqls at approximately the same time, the second one fails with
>
> ERROR: LockStatsForUpdate couldn't lock relid 274157
>

This is my fault. The error could be avoided by retrying
to acquire the lock like "SELECT FOR UPDATE" does.

Regards.
Hiroshi Inoue

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tatsuo Ishii 2001-01-16 01:04:12 Re: copy from stdin; bug?
Previous Message Nathan Myers 2001-01-15 23:45:27 Re: CRCs