Michael Hirohama <kamesan@ricochet.net> wrote:
> The historical reason why the POSTGRES backend is required to send multiple
> result sets is to support cursors on queries involving type inheritance and
> anonymous target lists.
> begin
> declare c cursor for
> select e.oid, e.* from EMP* e
> fetch 10 in c
> ...
> To handle the command sequence above, frontend applications would need to
> be provided with a new result descriptor when the "fetch 10 in c" crosses a
> result set boundary.
I tried this and was unable to produce a failure. It looks like the
select only returns the set of fields applicable to the base class,
regardless of what additional fields may be possessed by some
subclasses. Which, in fact, is more or less what I'd expect.
Is Michael remembering some old behavior that is no longer implemented?
And if so, is the old or new behavior the correct one?
regards, tom lane