For set_append_rel_size(), it seems this is the difference between query_level != 1 and query_level == 1:
+ (root->parent_root->parse->CTASParallelInsInfo & CTAS_PARALLEL_INS_IGN_TUP_COST_APPEND) && Maybe extract the common conditions into its own expression / variable so that the code is easier to read. Cheers On Mon, Dec 14, 2020 at 4:50 AM Hou, Zhijie <houzj.f...@cn.fujitsu.com> wrote: > Hi > > > Attaching v11 patch set. Please review it further. > > Currently with the patch, we can allow parallel CTAS when topnode is > Gather. > When top-node is Append and Gather is the sub-node of Append, I think we > can still enable > Parallel CTAS by pushing Parallel CTAS down to the sub-node Gather, such > as: > > Append > ------>Gather > --------->Create table > ------------->Seqscan > ------>Gather > --------->create table > ------------->Seqscan > > And the use case seems common to me, such as: > select * from A where xxx union all select * from B where xxx; > > I attatch a WIP patch which just show the possibility of this feature. > The patch is based on the latest v11-patch. > > What do you think? > > Best regards, > houzj > > > > > >