Re: Is setQuerySnapshot called for embedded plpgsql function calls?
От | Burak Seydioglu |
---|---|
Тема | Re: Is setQuerySnapshot called for embedded plpgsql function calls? |
Дата | |
Msg-id | 1b8a973c0702021401s18c6dad8wa351b69050f6d6a7@mail.gmail.com обсуждение исходный текст |
Ответ на | Is setQuerySnapshot called for embedded plpgsql function calls? ("Burak Seydioglu" <buraks78@gmail.com>) |
Список | pgsql-novice |
Created a pure PHP solution... Still the same result... Isn't this conflicting with the documentation quoted below... Or INSERTs are not considered updates? I am lost at this point... Burak On 2/1/07, Burak Seydioglu <buraks78@gmail.com> wrote: > Searched for CommandCounterIncrement and it is apparently a mechanism > to allow transactions to see their own updates. > (http://library.n0i.net/programming/database/po-devfaq/) > > From http://www.postgresql.org/docs/7.4/interactive/transaction-iso.html > > "Read Committed is the default isolation level in PostgreSQL. When a > transaction runs on this isolation level, a SELECT query sees only > data committed before the query began; it never sees either > uncommitted data or changes committed during query execution by > concurrent transactions. (However, the SELECT does see the effects of > previous updates executed within its own transaction, even though they > are not yet committed.) In effect, a SELECT query sees a snapshot of > the database as of the instant that that query begins to run. Notice > that two successive SELECT commands can see different data, even > though they are within a single transaction, if other transactions > commit changes during execution of the first SELECT. " > > So basically, my transactions should be able to see its own updates. > SInce they can not, I assume CommandCounterIncrement is not called and > this is related to the plpgsql language implementation. Using PHP, for > instance, would address this issue, correct? And last of all, is there > any way to to call CommandCounterIncrement within the plpgsql? - I > know this sounds retarded but I am desperate at this point... > > Production server is 7.4. Localhost is 8.0.8. Unfortunately, I could > not get this transaction to work properly on both servers. > > Thank you for you time. I really appreciate your help. > > Burak > > > On 2/1/07, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > "Burak Seydioglu" <buraks78@gmail.com> writes: > > > For some reason, the consecutive second_func() calls do not see the > > > newly inserted data. So the total for the next second_func() call > > > always remains zero. Please see the code below. > > > > > Is this because setQuerySnapshot() is not called for embedded plpgsql > > > functions but only for the first_function() call? > > > > For operations within a single transaction, what counts is > > CommandCounterIncrement not SetQuerySnapshot. > > > > > I am runnging 7.4 btw. > > > > I believe we changed the rules for this in 8.0 ... can you upgrade? > > > > regards, tom lane > > >
В списке pgsql-novice по дате отправления: