Re: What are ExecSeqMarkPos and ExecSeqRestrPos used for

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: DT <kurt023(at)hotmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: What are ExecSeqMarkPos and ExecSeqRestrPos used for
Date: 2013-05-28 13:32:48
Message-ID: 20130528133248.GC8597@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

* DT (kurt023(at)hotmail(dot)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.

Thanks,

Stephen

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message image 2013-05-28 14:34:12 Restore a pgsql base from openERP v5(ubuntu) to v7(windows7)
Previous Message Moshe Jacobson 2013-05-28 13:30:33 Re: search_path for database vs user vs session