Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> Hmm, I believe the idea of heap_open is to check that the relation is
> backed by a heap that you can read with heap_beginscan+heap_next. At the
> moment that includes normal tables, sequences and toast tables. Foreign
> tables would not fall into that category.
I don't believe that that definition is documented anyplace; if we
decide that's what we want it to mean, some code comments would be in
order.
> Yeah, you're right that most of the callers of heap_open actually want
> to a tighter check than that.
I think probably most of the physical calls of heap_open are actually
associated with system catalog accesses, and the fact that the code says
heap_open not relation_open has got more to do with copy&paste than any
real thought about what we're specifying.
regards, tom lane