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 по дате отправления: