RE: Parallel INSERT (INTO ... SELECT ...) - Mailing list pgsql-hackers

From Hou, Zhijie
Subject RE: Parallel INSERT (INTO ... SELECT ...)
Date
Msg-id 32f9ee578e1d4b099add33635b8aab61@G08CNEXMBPEKD05.g08.fujitsu.local
Whole thread Raw
In response to Re: Parallel INSERT (INTO ... SELECT ...)  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: Parallel INSERT (INTO ... SELECT ...)
List pgsql-hackers
> > > --------
> > > static Query *
> > > rewriteRuleAction(Query *parsetree,
> > > ...
> > >                 if (sub_action_ptr)
> > > +               {
> > >                         *sub_action_ptr = sub_action;
> > > +                       rule_action->hasModifyingCTE |=
> > parsetree->hasModifyingCTE;
> > > +               }
> > > --------
> > >
> > > And the Basic test passed.
> > > What do you think ?
> >
> > That is very close to what I was going to suggest, which is this:
> >
> > diff --git a/src/backend/rewrite/rewriteHandler.c
> > b/src/backend/rewrite/rewriteHandler.c
> > index 0672f497c6..3c4417af98 100644
> > --- a/src/backend/rewrite/rewriteHandler.c
> > +++ b/src/backend/rewrite/rewriteHandler.c
> > @@ -631,6 +631,8 @@ rewriteRuleAction(Query *parsetree,
> >                 checkExprHasSubLink((Node *)
> > rule_action->returningList);
> >     }
> >
> > +   rule_action->hasModifyingCTE |= parsetree->hasModifyingCTE;
> > +
> >     return rule_action;
> >  }
> 
> 
>     if (parsetree->cteList != NIL && sub_action->commandType !=
> CMD_UTILITY)
>     {
>     ...
>         sub_action->cteList = list_concat(sub_action->cteList,
>     }
> 
> Is is possible when sub_action is CMD_UTILITY ?
> In this case CTE will be copied to the newone, should we set the set the
> flag in this case ?

Sorry , a typo in my word.
In this case CTE will not be copied to the newone, should we set the set the flag in this case ?

Best regards,
houzj



pgsql-hackers by date:

Previous
From: "Hou, Zhijie"
Date:
Subject: RE: Parallel INSERT (INTO ... SELECT ...)
Next
From: Dilip Kumar
Date:
Subject: Re: [HACKERS] Custom compression methods