It seems arbitrary to include Collation but exclude other traits. Convention 
is, and should remain, the only “special” trait.

Distribution does apply to Enumerable operators. Other traits, including those 
defined by the user without modifying core Calcite, should also be supported.

I acknowledge that it’s not easy to make an API to make that happen. The 
"RelTraitSet.replaceIf(RelTraitDef, Supplier<RelTrait>)” was my attempt to move 
in that direction.

It’s problematic to test this stuff, because most of the real examples in 
Calcite core only use the Convention and Collation traits.

Julian




> On May 4, 2021, at 3:00 AM, Vladimir Sitnikov <[email protected]> 
> wrote:
> 
> Vladimir Sitnikov>in the other hand, Project might indeed affect
> distribution,
> Vladimir Sitnikov>so EnumerableProject could keep distribution trait just
> fine.
> 
> Correction: "EnumerableFilter could keep distribution while
> EnumerableProject should destroy or compute it"
> 
> Vladimir

Reply via email to