Thanks for your help.
I get your point. But there are many other rules such as :
private ElasticsearchFilterRule() {
super(LogicalFilter.class, Convention.NONE, ElasticsearchRel.CONVENTION,
"ElasticsearchFilterRule");
}will convert the Convention.NONE to ElasticsearchRel.CONVENTION. The ElasticsearchToEnumerableConverterRule should take effect after that, but not Best Jocean.shi Yuzhao Chen <[email protected]> 于2019年3月11日周一 下午5:34写道: > Every ConverterRule will match kind of RelNode with special calling > convention, for ElasticsearchToEnumerableConverterRule, it is > ElasticsearchRel.convention, you can see it from the constructor: > private ElasticsearchToEnumerableConverterRule( > RelBuilderFactory relBuilderFactory) { > super(RelNode.class, (Predicate<RelNode>) r -> true, > ElasticsearchRel.CONVENTION, EnumerableConvention.INSTANCE, > relBuilderFactory, "ElasticsearchToEnumerableConverterRule"); > } > > Best, > Yuzhao Chen > 在 2019年3月11日 +0800 AM11:04,Jocean shi <[email protected]>,写道: > > Hi All: > > I have a question. > > The ElasticsearchToEnumerableConverterRule is used to match > > RelNode.class. I think this rule can convert all RelNode. but only > convert > > the root RelNode in fact. why? > > > > Jocean.shi > > Best wishes >
