Re: Parallel Inserts in CREATE TABLE AS - Mailing list pgsql-hackers

From Bharath Rupireddy
Subject Re: Parallel Inserts in CREATE TABLE AS
Date
Msg-id CALj2ACUQbaB+htJnDdTmnP=7nTy8ho5+EzxFLOrj2bXTQfiDKQ@mail.gmail.com
Whole thread Raw
In response to Re: Parallel Inserts in CREATE TABLE AS  (Dilip Kumar <dilipbalaut@gmail.com>)
Responses Re: Parallel Inserts in CREATE TABLE AS  (Dilip Kumar <dilipbalaut@gmail.com>)
List pgsql-hackers
On Wed, Jan 6, 2021 at 10:17 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> On Wed, Jan 6, 2021 at 9:23 AM Bharath Rupireddy
> <bharath.rupireddyforpostgres@gmail.com> wrote:
> >
>
> +/*
> + * List the commands here for which parallel insertions are possible.
> + */
> +typedef enum ParallelInsertCmdKind
> +{
> + PARALLEL_INSERT_CMD_UNDEF = 0,
> + PARALLEL_INSERT_CMD_CREATE_TABLE_AS
> +} ParallelInsertCmdKind;
>
> I see there is some code that is generic for CTAS and INSERT INTO
> SELECT *,  So is it
> possible to take out that common code to a separate base patch?  Later
> both CTAS and INSERT INTO SELECT * can expand
> that for their usage.

I currently see the common code for parallel inserts i.e. insert into
selects, copy, ctas/create mat view/refresh mat view is the code in -
heapam.c, xact.c and xact.h. I can make a separate patch if required
for these changes alone. Thoughts?

IIRC parallel inserts in insert into select and copy don't use the
design idea of pushing the dest receiver down to Gather. Whereas
ctas/create mat view, refresh mat view, copy to can use the idea of
pushing the dest receiver to Gather and can easily extend on the
patches I made here.

Is there anything else do you feel that we can have in common?

With Regards,
Bharath Rupireddy.
EnterpriseDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Bharath Rupireddy
Date:
Subject: Re: Parallel Inserts in CREATE TABLE AS
Next
From: "Hou, Zhijie"
Date:
Subject: RE: Parallel Inserts in CREATE TABLE AS