Re: Fetching from psql procedures - Mailing list pgsql-general

From Marc Mamin
Subject Re: Fetching from psql procedures
Date
Msg-id B6F6FD62F2624C4C9916AC0175D56D88420B59C2@jenmbs01.ad.intershop.net
Whole thread Raw
In response to Re: Fetching from psql procedures  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: Fetching from psql procedures
List pgsql-general
>> 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
localstack and returns data as block.
 
> Regards
> Pavel 

Thanks.
A simpler solution will be to store the result in a temp table and then call a second query to stream it out.

regards,

Marc Mamin



pgsql-general by date:

Previous
From: Craig Ringer
Date:
Subject: Re: BDR and Backup and Recovery
Next
From: Pavel Stehule
Date:
Subject: Re: Fetching from psql procedures