Re: Retrieve results in PostgreSQL stored procedure allowing query parallelism

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

In response to

Responses

Browse pgsql-general by date

  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