Stephen Frost <sfrost@snowman.net> writes:
> * DT (kurt023@hotmail.com) wrote:
>> I'm reading code of nodeSeqscan, and was confused with ExecSeqMarkPos and
>> ExecSeqRestrPos. They are only called by ExecMergeJoin. Could merge join use
>> a plain seqscan as outer/inner plan? If not, what are they used for?
> ExecSeqMarkPos and ExecSeqRestPos are called through execAmi.c's
> generalized ExecMarkPos and ExecRestrPos, which are then used by both
> nodeMergejoin.c and nodeResult.c. Offhand, it seems unlikely that there
> would ever be a path from MergeJoin down to ExecSeqMarkPos as MergeJoin
> requires sorted inputs. Perhaps it could happen with a full cartesian
> product but I don't know that we'd ever use a MergeJoin to implement
> that or that we have such an optimization today.
I'm pretty sure those are dead code. See the comment for
ExecSupportsMarkRestore.
regards, tom lane