Re: What are ExecSeqMarkPos and ExecSeqRestrPos used for - Mailing list pgsql-general

From Tom Lane
Subject Re: What are ExecSeqMarkPos and ExecSeqRestrPos used for
Date
Msg-id 15157.1370062071@sss.pgh.pa.us
Whole thread Raw
In response to Re: What are ExecSeqMarkPos and ExecSeqRestrPos used for  (Stephen Frost <sfrost@snowman.net>)
List pgsql-general
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


pgsql-general by date:

Previous
From: Bosco Rama
Date:
Subject: Re: Using a CTE for an update
Next
From: Tom Lane
Date:
Subject: Re: Strange behavior of "=" as assignment operator