Обсуждение: Missed parallelism option in plpgsql?

Поиск
Список
Период
Сортировка

Missed parallelism option in plpgsql?

От
Tom Lane
Дата:
I happened to notice that while writing this in plpgsql
will consider a parallel plan:

    select count(*) into s from tenk1 where ten = x;

writing this will not:

    s := count(*) from tenk1 where ten = x;

Is that intentional?  Seems to me these cases ought to be
treated the same.

The reason for it is that exec_assign_expr's call of
exec_prepare_plan does not specify CURSOR_OPT_PARALLEL_OK.

            regards, tom lane


Re: Missed parallelism option in plpgsql?

От
Robert Haas
Дата:
On Wed, Dec 20, 2017 at 2:26 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I happened to notice that while writing this in plpgsql
> will consider a parallel plan:
>
>         select count(*) into s from tenk1 where ten = x;
>
> writing this will not:
>
>         s := count(*) from tenk1 where ten = x;
>
> Is that intentional?  Seems to me these cases ought to be
> treated the same.
>
> The reason for it is that exec_assign_expr's call of
> exec_prepare_plan does not specify CURSOR_OPT_PARALLEL_OK.

Hmm, I think I didn't realize that you could include a "from" clause
in an assignment statement.  I assumed it would just be a simple
expression getting evaluated, which wouldn't make sense to do in
parallel.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company