Missed parallelism option in plpgsql?

Started by Tom Laneover 8 years ago2 messageshackers
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

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

#2Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#1)
Re: Missed parallelism option in plpgsql?

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