For #1, can you please give an example?

For #2, I run the calcite UT, and they all passed. Is Durid test part of the 
UT? If not, how do I run them? Thanks.


> On Oct 28, 2019, at 7:57 PM, Danny Chan <yuzhao....@gmail.com> wrote:
> 
> Thanks Xiening Dai for bringing up this topic ~
> 
> I agree that for most of the planning rules, only matching logical nodes are 
> enough. There are 2 concerts from my side:
> 
> 
> • We have some plan rewrite that indeed happens on the “physical” node, so 
> some the rules may be still useful for such case, i.e. the ProjectMergeRule
> • I’m a little worried about the compatibility, maybe we can rule the test 
> cases like Apache Druid which give us more confidence that this is the right 
> way to go
> 
> 
> Best,
> Danny Chan
> 在 2019年10月29日 +0800 AM12:48,Xiening Dai <xndai....@gmail.com>,写道:
>> Hi all,
>> 
>> While I was looking at CALCITE-2970, I noticed that some of the rules are 
>> fired for both logical and physical nodes. For example, ProjectMergeRule 
>> matches Project.class, so it’s fired for LogicalProject. But then after 
>> LogicalProject is converted into EnummerableProject, the same rule is fired 
>> again for the physical rels. Same for EnumerableLimitRule, 
>> SortRemoveConstantKeysRule, etc.
>> 
>> This seems to be unnecessary. When ProjectMerge is applied to LogicalProject 
>> nodes, we already generate all possible alternatives with merged projects. 
>> We just need to convert the LogicalProject into EnumerableProject. There’s 
>> no need to merge EnumerableProject again.
>> 
>> If I update those rules to only match logical nodes, the planning time of 
>> the case in CALCITE-2970 is reduced ~30%.
>> 
>> Any thoughts?

Reply via email to