What do you mean?
What I mean is to use "project(rexNodes, filedNames)", we can keep the
alias, take https://issues.apache.org/jira/browse/CALCITE-4037, we just
replace the "project(rexNodes)" to "project(rexNodes, filedNames)", then we
can keep the alias. But as said "keep the alias, there are many cases that
can not be promoted.", so do this mean we should use "project(rexNodes)",
but there are many rule use "project(rexNodes, filedNames)", does this meet
the expectations?

Regards!

Aron Tao


Julian Hyde <[email protected]> 于2020年10月22日周四 下午4:40写道:

> Did you read the javadoc for the two ‘project’ methods?
>
> Julian
>
>
> > On Oct 22, 2020, at 1:15 AM, JiaTao Tao <[email protected]> wrote:
> >
> > Some rules we use `RelBuilder project(Iterable<? extends RexNode> nodes)
> `,
> > sometimes use `RelBuilder project(Iterable<? extends RexNode> nodes,
> > Iterable<String>
> > fieldNames)`,  and this really makes me confused.
> >
> >
> > Regards!
> >
> > Aron Tao
> >
> >
> > JiaTao Tao <[email protected]> 于2020年10月22日周四 下午4:13写道:
> >
> >> Thanks, Julian
> >> One more question is that I can see many
> >> RelBuilder#project(java.lang.Iterable<? extends
> >> org.apache.calcite.rex.RexNode>, java.lang.Iterable<java.lang.String>)
> >> calling in some rules, does this meets the expect, if we don't want to
> keep
> >> alias in optimizer.
> >>
> >>
> >> Regards!
> >>
> >> Aron Tao
> >>
> >>
> >> Julian Hyde <[email protected]> 于2020年10月22日周四 下午3:29写道:
> >>
> >>> See my comments in 1584. I think that answers your question.
> >>>
> >>> Julian
> >>>
> >>>> On Oct 21, 2020, at 23:35, JiaTao Tao <[email protected]> wrote:
> >>>>
> >>>> Hi Danny
> >>>> Thanks for your reply, can you explain "Calcite only optimize based on
> >>> the
> >>>> field input refs, if we always keep the alias, there are many cases
> that
> >>>> can not be promoted" a bit? In my mind, alias just field names,
> doesn't
> >>>> affect the input refs?
> >>>>
> >>>> Regards!
> >>>>
> >>>> Aron Tao
> >>>>
> >>>>
> >>>> Danny Chan <[email protected]> 于2020年10月22日周四 上午11:29写道:
> >>>>
> >>>>> During planning, Calcite only optimize based on the field input refs,
> >>> if
> >>>>> we always keep the alias, there are many cases that can not be
> >>> promoted. I
> >>>>> collected some cases that already tracked by the JIRA issue:
> >>>>>
> >>>>> [1] https://issues.apache.org/jira/browse/CALCITE-4037
> >>>>> [2] https://issues.apache.org/jira/browse/CALCITE-3662
> >>>>> [3] https://issues.apache.org/jira/browse/CALCITE-1584
> >>>>>
> >>>>> Best,
> >>>>> Danny Chan
> >>>>> 在 2020年10月21日 +0800 PM2:49,JiaTao Tao <[email protected]>,写道:
> >>>>>> Hi fellows
> >>>>>> I found in some place, we just call `project(Iterable<? extends
> >>> RexNode>
> >>>>>> nodes) `, but this will lose alias, why don't we try to call
> >>>>>> `project(Iterable<?
> >>>>>> extends RexNode> nodes, Iterable<String> fieldNames) ` to keep
> alias?
> >>>>>>
> >>>>>> Regards!
> >>>>>>
> >>>>>> Aron Tao
> >>>>>
> >>>
> >>
>
>

Reply via email to