Re: Question about isolation

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Question about isolation
Дата
Msg-id 7527.1075331005@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Question about isolation  (Samuel Tardieu <sam@rfc1149.net>)
Список pgsql-sql
Samuel Tardieu <sam@rfc1149.net> writes:
>>> Do I have the guarantee that, in any event, rows deleted from
>>> table t by the delete won't reappear in the select result?
>> 
>> i do not think you have that guarantee in READ COMMITTED mode
>> because there is a slight possibility another backend sneaked a
>> committed insert in between the delete and select
>> statement.

> Yes. But the possible effect your describe (insertion of new rows
> after the DELETE statement and before the SELECT) matches accurately
> the symptoms we are observing.

Hmm.  I think you need to look closer.  AFAIR the READ COMMITTED
behavior is only an issue if you give the commands interactively
from the client.  Inside a plpgsql function we do not do
SetQuerySnapshot() and therefore the snapshot of other transactions'
effects does not advance.  So I think the coding should be safe
... at the moment.  (A number of people think the lack of
SetQuerySnapshot inside functions is a bug; so the behavior might
change in future.)

Using SERIALIZABLE mode would probably make your code more future-proof,
but if you are presently seeing failures, there's some other effect
involved here.
        regards, tom lane


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

Предыдущее
От: Samuel Tardieu
Дата:
Сообщение: Re: Question about isolation
Следующее
От: "Octavio Alvarez"
Дата:
Сообщение: LEFT JOIN on one and/or another column