Hi Julian,

Thanks a lot for your reply and the detailed explanation. It solves my
doubts well.
My custom trait only contains one value, so I think that there will not be
a problem.

May I further the email with another question:
Is it ok or right to use a trait to pass configurations through RelNodes?
For example, a configuration set from api for the aggregate and used after
the optimization.
If not, are there any standard ways to achieve this?

I haven't found any clear definition about trait. Only find comments in
code: *RelTrait represents the manifestation of a relational expression
trait within a trait definition.*

Thank you!

On Tue, Jan 15, 2019 at 3:12 AM Julian Hyde <[email protected]> wrote:

> In most cases increasing the number of traits from one to two will
> increase the planning time by a negligible amount.
>
> But it can increase the size of the search space. Suppose a particular
> relational expression has 5 possible sort orders (order by x, order by x,
> y, order by (), order by z, order by x, z), and initially you have only the
> collation trait enabled. A particular equivalence set might have 5 subsets,
> one for each sort order. Now let’s suppose you add the distribution trait
> to the mix, and there are 3 distributions (partition by (), partition by x,
> partition by z). Now that subset will have 15 subsets, for the cartesian
> product of the traits.
>
> A larger search space could increase the planning time (and memory usage)
> significantly.
>
> But if each trait has only one or two values I doubt that there will be a
> problem.
>
> Julian
>
>
> > On Jan 14, 2019, at 1:38 AM, Hequn Cheng <[email protected]> wrote:
> >
> > Hi everyone,
> >
> > I want to pass properties through RelNodes via trait and I wonder if the
> > number of traits in traitSet will affect the time of Volcano
> optimization.
> > For example, increasing one traitDef to two in VolcanoPlanner.
> >
> > I guess the answer is No. Is it correct?
> > As long as the search space is not increased, the Volcano optimization
> time
> > will not increase. And simply increasing the number of traits alone does
> > not add complexity.
> >
> > Furthermore, besides time, are there any other side effects if I increase
> > the number of traits?
> >
> > Thank you very much!
> >
> > Best,
> > Hequn
>
>

Reply via email to