Vladimir, I generally agree with what you are saying,
>Enumerable backend provides a clear and consistent contract: we support collation and reset everything That sounds like a way to go until there's a way to externalize "input trait enforcement" rules. "output" traits are simpler since they can be computed with metadataquery (however, we still hard-code the set of computed traits). It might be worth trying to compute all the traits known to the planner. However, Enumerable could play well with in-core distribution trait as well, so there's no need to limit enumerable to "collation only". If you don't like in-core distribution trait, you just do not use it. There's no much sense in limiting enumerable to collation only. Vladimir
