Github user jacques-n commented on the pull request:
https://github.com/apache/drill/pull/444#issuecomment-201341674
Your expectation about mixed conventions is inconsistent with my own. My
expectation: a RelSubset should only have a single convention (in fact it
should have only a single trait definition and all children should have
satisfying trait definitions). I would expect the following:
(1) Prels should only have PHYSICAL
(2) Drels should only have LOGICAL
(3) Calcite Logical Rels should only have NONE
My previous statement mistook the convention of the DrillAggregateRel in
the below. I thought it said NONE.
[rel#217:LogicalFilter.NONE.ANY([]).[],
rel#6972:DrillAggregateRel.LOGICAL.ANY([]).]
It seems like the actual problem is that LogicalFilter is allowing an input
of LOGICAL. I don't believe that LOGICAL should satisfy NONE. It seems that
LogicalFilter should assert that its child is of Convention NONE. (In other
words, a LogicalFilter shouldn't have Convention transformation properties.)
Otherwise, we'll see a large number of invalid (but infinite) plans.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---