Thread: heap_markpos and heap_restrpos

heap_markpos and heap_restrpos

From
Heikki Linnakangas
Date:
What's the purpose of mark/restrpos in heapam.c?

AFAIK, mark/restore is only used by merge joins, and you can't feed a 
merge join from a heap scan because merge join requires sorted input.

Unless I'm missing something, heap_markpos and heap_restrpos are dead code.

--  Heikki Linnakangas EnterpriseDB   http://www.enterprisedb.com



Re: heap_markpos and heap_restrpos

From
Tom Lane
Date:
Heikki Linnakangas <heikki@enterprisedb.com> writes:
> What's the purpose of mark/restrpos in heapam.c?

It's deadwood --- see the comment for ExecSupportsMarkRestore:

/** ExecSupportsMarkRestore - does a plan type support mark/restore?** XXX Ideally, all plan node types would support
mark/restore,and this* wouldn't be needed.  For now, this had better match the routines above.* But note the test is on
Plannodetype, not PlanState nodetype.** (However, since the only present use of mark/restore is in mergejoin,* there is
noneed to support mark/restore in any plan type that is not* capable of generating ordered output.  So the seqscan,
tidscan,*functionscan, and valuesscan support is actually useless code at present.)*/
 

I haven't seen a reason to take it out, but if you have in mind
something that would actively break it, removing it is no problem.
        regards, tom lane