Re: not(t_xmax = 0)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: not(t_xmax = 0)
Дата
Msg-id 28040.1358713846@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: not(t_xmax = 0)  ("Kevin Grittner" <kgrittn@mail.com>)
Ответы Re: not(t_xmax = 0)  (Alejandro Carrillo <fasterzip@yahoo.es>)
Список pgsql-general
"Kevin Grittner" <kgrittn@mail.com> writes:
> Alejandro Carrillo wrote:
>> I try to do a function that let know which rows are deleted in a
>> table using the xmax !=0

> That's not something you're going to have much luck with by using
> plpgsql to try to parse heap pages.

No, because xmax being nonzero doesn't prove much: the row might be
updated/deleted, or it might only have been locked by SELECT FOR UPDATE,
or it might be perfectly fine because the updating transaction rolled
back.  You could get a limited amount of information by checking the
hint bits in t_infomask, but if the hint bits aren't set you won't know
what the row's state is.

You'd really need to do this in C using the tqual.c functions for the
results to be trustworthy.

I'm a bit surprised that contrib/pageinspect doesn't have a mechanism
for pulling out only committed-good heap tuples...

            regards, tom lane


В списке pgsql-general по дате отправления:

Предыдущее
От: "Kevin Grittner"
Дата:
Сообщение: Re: not(t_xmax = 0)
Следующее
От: Robert James
Дата:
Сообщение: Re: Understanding TIMESTAMP WITH TIME ZONE