On Mon, Dec 28, 2009 at 2:54 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> In ExecTidReScan, we have the following:
>> /* If we are being passed an outer tuple, save it for runtime
>> key calc */
>> if (exprCtxt != NULL)
>> node->ss.ps.ps_ExprContext->ecxt_outertuple =
>> exprCtxt->ecxt_outertuple;
>
>> Is this dead code?
>
> I don't think it's reachable at the moment, but we do have interest
> in allowing joins using the TID value. See for example
> http://archives.postgresql.org/pgsql-hackers/2009-01/msg01746.php
> http://archives.postgresql.org/pgsql-performance/2007-04/msg00231.php
> So I wouldn't be in favor of removing it.
Hmm. If you're joining a table to itself on CTID, it seems that you
would normally be able to optimize away the join completely. We've
had some previous requests to do that when the join is on the primary
key, and the CTID is an even more clear-cut case.
...Robert