Re: a SELECT FOR UPDATE question

Поиск
Список
Период
Сортировка
Искать
От
Tom Lane
Тема
Re: a SELECT FOR UPDATE question
Дата
Msg-id
26510.1108047229@sss.pgh.pa.us
Ответ на
Список
Дерево обсуждения
a SELECT FOR UPDATE question Tim Vadnais <tvadnais@bwks.com>
Re: a SELECT FOR UPDATE question Michael Fuhr <mike@fuhr.org>
Re: a SELECT FOR UPDATE question Tom Lane <tgl@sss.pgh.pa.us>
Re: a SELECT FOR UPDATE question Michael Fuhr <mike@fuhr.org>
Re: a SELECT FOR UPDATE question Tom Lane <tgl@sss.pgh.pa.us>
Re: a SELECT FOR UPDATE question Michael Fuhr <mike@fuhr.org>
Re: a SELECT FOR UPDATE question Tom Lane <tgl@sss.pgh.pa.us>
Re: a SELECT FOR UPDATE question Michael Fuhr <mike@fuhr.org>
Re: a SELECT FOR UPDATE question Tom Lane <tgl@sss.pgh.pa.us>
Re: a SELECT FOR UPDATE question Michael Fuhr <mike@fuhr.org>
Re: a SELECT FOR UPDATE question Tom Lane <tgl@sss.pgh.pa.us>
Michael Fuhr  writes:
> xactA: updates row
> xactB: attempts to update same row, blocks until xactA completes
> xactC: query finds xactA in row's xmax
> xactA: commits
> xactB: unblocks and acquires a lock on the row
> xactC: query to pg_locks doesn't find xactA, so assumes row not locked

> Does that sound like what you're talking about?

Right.  Furthermore, xactC's query result could have been stale when it
was obtained, nevermind the separate query to pg_locks:

xactA: updates row
xactC: starts, sets snapshot
xactB: attempts to update same row, blocks until xactA completes
xactA: commits
xactB: unblocks and acquires a lock on the row
xactC: query finds xactA in row's xmax because of MVCC rules

			regards, tom lane
В списке pgsql-general по дате отправления
От: Christopher Browne
Дата:
От: Ed L.
Дата:
FAQ