Re: Should we SetQuerySnapshot() between actions of a rule?
От | Hiroshi Inoue |
---|---|
Тема | Re: Should we SetQuerySnapshot() between actions of a rule? |
Дата | |
Msg-id | 01b801c3117e$b5f10950$0e283ddb@PbgX обсуждение исходный текст |
Ответ на | Should we SetQuerySnapshot() between actions of a rule? (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
> -----Original Message----- > From: Tom Lane > > I just noticed that there is an inconsistency between the way that > PREPARE executes multiple queries (since PREPARE itself accepts > only one SQL statement, any such multiple queries must have been > generated by rule expansion) and the way that it is done in > pg_exec_query_string(). The latter will do a SetQuerySnapshot() > between actions of the rule, the former only does > CommandCounterIncrement(). > > If you're in a serializable transaction then there's no difference > in behavior. But in READ COMMITTED mode this means that later actions > in the rule may be able to see the effects of other transactions that > committed while earlier actions were running. > > ISTM we had better make the behavior consistent between PREPARE and > interactive execution. But which one do we want? I could see an > argument that it'd be best for all the actions of a rule to see a > consistent snapshot of the state of other transactions; Is it appropriate to use the word *snapshot* for queries other than read-only ones ? regards, Hiroshi Inoue
В списке pgsql-hackers по дате отправления: