From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Marc Mamin <M(dot)Mamin(at)intershop(dot)de> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Fetching from psql procedures |
Date: | 2015-11-19 19:22:56 |
Message-ID: | CAFj8pRB=Hrn1MT4E9UnOxOTJpqUjr8iOGw0+ib5DBaqfZ6J-wA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi
2015-11-19 14:51 GMT+01:00 Marc Mamin <M(dot)Mamin(at)intershop(dot)de>:
> Hi,
>
> I'm looking for a way to build large xml documents based on a set of
> tables, hence using recursive queries.
>
>
> something like:
>
> FOR rec1 IN ...
> FOR rec2 IN ...
>
> RETURN QUERY select '<foo>
> FOR rec3 IN ...
>
> RETURN QUERY select (XMLELEMENT (...))::text
>
> END LOOP;
> RETURN QUERY select '</foo>
>
> END LOOP;
> END LOOP;
>
>
>
> but if I wrap this in a function, it seems that I won't get a result
> before the whole document is prepared.
>
> Is there any way to stream the result as it get produced ?
> or does anybody knows of a good tutotial for a task like this ?
>
you can try CTE Common Table Expression. It isn't possible with plpgsql :(
Theoretically you can write C extension where SRF function can returns data
continually.But plpgsql function using local stack and returns data as
block.
Regards
Pavel
>
>
> thanks and best regards,
>
> Marc Mamin
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
From | Date | Subject | |
---|---|---|---|
Next Message | Bill Moran | 2015-11-19 20:29:16 | Re: controlling memory management with regard to a specific query (or groups of connections) |
Previous Message | Karsten Hilbert | 2015-11-19 19:16:30 | Re: postgres zeroization of dead tuples ? i.e scrubbing dead tuples with sensitive data. |