From: | Joan Pujol <joanpujol(at)gmail(dot)com> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Retrieve results in PostgreSQL stored procedure allowing query parallelism |
Date: | 2023-11-21 18:31:04 |
Message-ID: | CACdKRvK3yxx5zbm79HpoV__fvTR0NcRaXO6em5Pr+FkAp_8iTQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Thanks, David.
If I try to do something like:
EXECUTE SELECT INTO ARRAY_AGG(t.*) INTO result_records
Would internally use cursors too and have the same restrictions?
Cheers,
On Tue, 21 Nov 2023 at 19:22, David G. Johnston
<david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
>
> On Tue, Nov 21, 2023, 11:10 Joan Pujol <joanpujol(at)gmail(dot)com> wrote:
>>
>> I want to execute an SQL query and process its results inside a stored
>> procedure without preventing query parallelism. Since I don't want to
>> prevent query parallelism, cursors can't be used, and I would like to
>> avoid creating a temporal table.
>>
>> Is this possible? If so, what is the best way to execute the query,
>> retrieve all results in memory, and process them inside the stored
>> procedure?
>
>
> You must use create table as if you want a result that is both accessible to subsequent statements and uses parallelism to be produced. There is no saving results into memory - you either save them explicitly or iterate over them and the later prevents parallelism as you've noted.
>
> David J.
--
Joan Jesús Pujol Espinar
http://www.joanpujol.cat
From | Date | Subject | |
---|---|---|---|
Next Message | CG | 2023-11-21 18:41:24 | Removing oids with pg_repack |
Previous Message | David G. Johnston | 2023-11-21 18:21:58 | Re: Retrieve results in PostgreSQL stored procedure allowing query parallelism |