Hi Julian, Xiong,

thanks for your fast replies!

So first, the default Rules were registered:

planner = new VolcanoPlanner();
RelOptUtil.registerDefaultRules(planner, false, true);

And as traits I used:

planner.addRelTraitDef(ConventionTraitDef.INSTANCE);
planner.addRelTraitDef(RelCollationTraitDef.INSTANCE);

I digged a bit deeper and what was triggered was the `SortRemoveRule`.
If I disabled the Collation Trait this did no longer happen and all worked.

I will later try to get a MWE done to reproduce this, if this is a bug.
Because the bug would then either be the Full Join producing a wrong Collation 
or the SortRemoveRule investigating the input Collation wrong, or?

But nonetheless, thank you very much!
Julian

From: Julian Hyde <jhyde.apa...@gmail.com>
Date: Tuesday, 11. January 2022 at 00:38
To: dev@calcite.apache.org <dev@calcite.apache.org>
Subject: Re: Sort getting removed during optimization
Is it possible that the Sort is being removed because some component knows that 
the input is already sorted?

In particular, if a relation has at most one row, it is always sorted. Maybe 
the planner is deducing this via a some row-count metadata or uniqueness 
constraint.


> On Jan 10, 2022, at 3:35 PM, xiong duan <nobigo...@gmail.com> wrote:
>
> If  I understand correctly, If we remove the  BINDABLE_SORT_RULE, the
> result will throw an exception about the  Plan transformation. So it looks
> like a wrong rule's result. If you don't customize the rule, It is a bug,
> and please test this using Calcite's new version.

Reply via email to