On Thu, Oct 15, 2020 at 9:14 AM Bharath Rupireddy
<[email protected]> wrote:
>
> On Wed, Oct 14, 2020 at 6:16 PM Amit Kapila <[email protected]> wrote:
> >
> > > For prepared statements, the parallelism will not be picked and so is
> > > parallel insertion.
> >
> > Hmm, I am not sure what makes you say this statement. The parallelism
> > is enabled for prepared statements since commit 57a6a72b6b.
> >
>
> Thanks for letting me know this. I misunderstood the parallelism for prepared
> statements. Now, I verified with a proper use case(see below), where I had a
> prepared statement, CTAS having EXECUTE, in this case too parallelism is
> picked and parallel insertion happened with the patch proposed in this
> thread. Do we have any problems if we allow parallel insertion for these
> cases?
>
> PREPARE myselect AS SELECT * FROM t1;
> EXPLAIN ANALYZE CREATE TABLE t1_test AS EXECUTE myselect;
>
> I think the commit 57a6a72b6b has not added any test cases, isn't it good to
> add one in prepare.sql or select_parallel.sql?
>
I am not sure if it is worth as this is not functionality which is too
complex or there are many chances of getting it broken.
> >
> > > 1. How to represent the parallel insert for CTAS in explain plans? The
> > > explain CTAS shows the plan for only the SELECT part. How about having
> > > some textual info along with the Gather node? I'm not quite sure on
> > > this point, any suggestions are welcome.
> >
> > I am also not sure about this point because we don't display anything
> > for the DDL part in explain. Can you propose by showing some example
> > of what you have in mind?
> >
>
> I thought we could have something like this.
> -----------------------------------------------------------------------------
> Gather (cost=1000.00..108738.90 rows=0 width=8)
> Workers Planned: 2 Parallel Insert on t_test1
> -> Parallel Seq Scan on t_test (cost=0.00..106748.00 rows=4954
> width=8)
> Filter: (many < 10000)
> -----------------------------------------------------------------------------
>
maybe something like below:
Gather (cost=1000.00..108738.90 rows=0 width=8)
-> Create t_test1
-> Parallel Seq Scan on t_test
I don't know what is the best thing to do here. I think for the
temporary purpose you can keep something like above then once the
patch is matured then we can take a separate opinion for this.
--
With Regards,
Amit Kapila.