Re: Returning multiple result sets - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Returning multiple result sets
Date
Msg-id 28702.1132504179@sss.pgh.pa.us
Whole thread Raw
In response to Re: Returning multiple result sets  (Martijn van Oosterhout <kleptog@svana.org>)
Responses Re: Returning multiple result sets  (Martijn van Oosterhout <kleptog@svana.org>)
Re: Returning multiple result sets  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
Martijn van Oosterhout <kleptog@svana.org> writes:
> libpq supports it just fine. You do a PQsendQuery() and then as many
> PQgetResult()s as it takes to get back the results. This worked for a
> while AFAIK.

That only works if the caller is prepared to read each result serially,
and not (say) a row at a time in parallel.  There are a bunch of
ease-of-use problems as well, such as knowing which resultset is which,
coping with errors detected after the first resultset(s) are sent, etc.

A more realistic way of dealing with multiple resultsets is to deliver
them as named cursor references and allow the client to FETCH
reasonable-sized chunks.  We can sort of handle this today, but it's
notationally painful at both the stored-procedure and client ends.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Virtual tuple slots versus TOAST: big problem
Next
From: Jan Wieck
Date:
Subject: Re: Virtual tuple slots versus TOAST: big problem