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 have been pouring through all the callers of
ExecReScan() and AFAICT the only place where we use an exprCtxt that
is neither pushed down from a higher-level executor node nor NULL is
in ExecNestLoop(). So I think that the only reason why we would need
this if we supported a nestloop with an inner tidscan. But I don't
think we do, nor do I see an obvious application for such a thing. A
romp through CVS history shows we have had some variant of this code
in ExecTidReScan since tid-scans were originally added, which makes me
suspicious that there was some point to this at least at one time, but
I haven't been able to figure out what it is/was.
...Robert