Re: Functions and transactions

Поиск
Список
Период
Сортировка
От Kris Kiger
Тема Re: Functions and transactions
Дата
Msg-id 4231CBEE.60109@musicrebellion.com
обсуждение исходный текст
Ответ на Re: Functions and transactions  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Functions and transactions  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-admin
Interesting.  That makes sense, though.  So, is there a good way to lock
a set of rows using SELECT FOR UPDATE in plpgsql?  I assume using
PERFORM would yield the same problem, because it immediately discards
the results.

Thanks!

Kris

Tom Lane wrote:

>Kris Kiger <kris@musicrebellion.com> writes:
>
>
>>In your second paragraph, I think that you are saying that SELECT FOR
>>UPDATE only locks one row, even though the select itself may return
>>many.  Am I mis-interpreting you?
>>
>>
>
>No, I'm saying that plpgsql's SELECT INTO operation only reads one row.
>The fact that the SELECT might have found more rows if allowed to run
>to completion doesn't enter into it.  If the first row read doesn't have
>active = true then it won't conflict against concurrent UPDATEs, because
>you are carefully not UPDATEing rows with active = false.  It's the
>combination of those two things that creates the hazard.
>
>            regards, tom lane
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
>


В списке pgsql-admin по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: Too frequent warnings for wraparound failure
Следующее
От: David Fetter
Дата:
Сообщение: Re: [HACKERS] PostgreSQL pam ldap document