Re: Doubts about EvalPlanQual
От | Heikki Linnakangas |
---|---|
Тема | Re: Doubts about EvalPlanQual |
Дата | |
Msg-id | 499D4A14.4040902@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: Doubts about EvalPlanQual ("Jacky Leng" <lengjianquan@163.com>) |
Ответы |
Re: Doubts about EvalPlanQual
|
Список | pgsql-hackers |
Jacky Leng wrote: >> Tuples with an aborted xmin can be vacuumed right away. When we're >> following the update chain in EvalPlanQual, it's possible that the updater >> has aborted, the updated dead tuple is vacuumed away, and the slot is >> reused for another unrelated tuple. > > But if the updater aborted, how can EvalPlanQual be called? > In this situation (updater aborted), EvalPlanQual's caller (such as > ExecUpdate and ExecDelete) > should get "HeapTupleMayBeUpdated", rather than "HeapTupleUpdated". Well, consider this update chain: A -> B -> C If A is the tuple visible to the snapshot of the updating query, and the updater of (A->B) has committed, heap_update/delete call in ExecUpdate/Delete will return HeapTupleUpdate. Now that think about this more, I don't see either how that check in EvalPlanQual could ever be true. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: