Re: returning value from inside a transaction
| От | Stephan Szabo |
|---|---|
| Тема | Re: returning value from inside a transaction |
| Дата | |
| Msg-id | Pine.BSF.4.21.0109141250110.43495-100000@megazone23.bigpanda.com обсуждение исходный текст |
| Ответ на | returning value from inside a transaction ("Matt" <m@a.b>) |
| Список | pgsql-general |
On Wed, 12 Sep 2001, Matt wrote: > create table tez (i int); > insert into tez values(3); > > create function tezt0(int) returns int as ' > begin work; > lock table tez; > select * from tez as r; > commit work; > > select tez.i; > ' language 'sql'; It looks to me from testing reasonably recent sources that the above really isn't safe. Since we don't have nested transactions, that's not a separate transaction from whatever it's running in, but instead the begin will NOTICE if you're in a transaction and the commit will commit it and now you're no longer in a transaction... begin; select tezt0(4); insert into tez values (4); rollback; will end up with tez getting the row and a notice about the fact you weren't in a transaction from rollback. Is this really reasonable behavior?
В списке pgsql-general по дате отправления: