From: | "Hou, Zhijie" <houzj(dot)fnst(at)cn(dot)fujitsu(dot)com> |
---|---|
To: | Greg Nancarrow <gregn4422(at)gmail(dot)com> |
Cc: | vignesh C <vignesh21(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Dilip Kumar <dilipbalaut(at)gmail(dot)com> |
Subject: | RE: Parallel INSERT (INTO ... SELECT ...) |
Date: | 2020-12-23 01:45:37 |
Message-ID: | 278f4203fc6540508cc3f3465ea9ec5f@G08CNEXMBPEKD05.g08.fujitsu.local |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi
I have an issue about the parallel-safety checks.
If target table is foreign table or temporary table,
rel_max_parallel_hazard_for_modify will return PROPARALLEL_UNSAFE,
which not only disable parallel insert but also disable underlying parallel SELECT.
+create temporary table temp_names (like names);
+explain (costs off) insert into temp_names select * from names;
+ QUERY PLAN
+-------------------------
+ Insert on temp_names
+ -> Seq Scan on names
+(2 rows)
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.
Are there any special considerations for this case ?
Best regards,
houzj
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2020-12-23 02:03:19 | Re: Parallel INSERT (INTO ... SELECT ...) |
Previous Message | Amit Kapila | 2020-12-23 01:41:16 | Re: [Patch] Optimize dropping of relation buffers using dlist |