Re: Remembering bug #6123

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Remembering bug #6123
Date: 2012-01-12 20:24:55
Message-ID: 4F0EED37020000250004473D@gw.wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> it needs to check the tuple's cmax [...] And that means the patch
> will be a bit more invasive than this, because heap_update and
> heap_delete don't return that information at present.

I'm thinking that I could keep the test for:

GetCurrentCommandId(false) != estate->es_output_cid

as a "first pass". If that's true, I could use EvalPlanQualFetch()
to find the last version of the tuple, and generate the error if the
tuple's cmax != estate->es_output_cid. I think, although I'm not
entirely sure, that EvalPlanQualFetch needs a little work to support
this usage.

Attached is a patch based on these thoughts. Is it on the right
track? I suspect I haven't got everything covered, but thought a
reality check was in order at this point.

It does pass regression tests, including the new ones I added.

-Kevin

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2012-01-12 20:29:13 Re: Remembering bug #6123
Previous Message Tom Lane 2012-01-12 20:04:32 Re: pgbench post-connection command