Hi
> > I may be wrong, and if I miss sth in previous mails, please give me some
> hints.
> > IMO, serial insertion with underlying parallel SELECT can be
> > considered for foreign table or temporary table, as the insertions only
> happened in the leader process.
> >
>
> I don't think we support parallel scan for temporary tables. Can you please
> try once both of these operations without Insert being involved? If you
> are able to produce a parallel plan without Insert then we can see why it
> is not supported with Insert.
Sorry, may be I did not express it clearly, I actually means the case when insert's target(not in select part) table is
temporary.
And you are right that parallel select is not enabled when temporary table is in select part.
I test for the case when insert's target table is temporary or not.
--insert into not temporary table---
postgres=# explain (costs off) insert into notemp select * from test where i < 600;
QUERY PLAN
---------------------------------------
Gather
Workers Planned: 4
-> Insert on notemp
-> Parallel Seq Scan on test
Filter: (i < 600)
--insert into temporary table---
postgres=# explain (costs off) insert into temp select * from test where i < 600;
QUERY PLAN
---------------------------
Insert on temp
-> Seq Scan on test
Filter: (i < 600)
---without insert part---
postgres=# explain (costs off) select * from test where i < 600;
QUERY PLAN
---------------------------------
Gather
Workers Planned: 4
-> Parallel Seq Scan on test
Filter: (i < 600)
Best regards,
houzj