If you just want to control whether the rule gets applied, you can
override RelOptRule#matches which canreturns a boolean indicating
whether the rule should be applied.
--
Michael Mior
mm...@apache.org
Le ven. 9 août 2019 à 08:48, rahul patwari
a écrit :
>
> Hi,
>
> We want to create a ConverterR
The Volcano planner works in a top-down fashion. It starts by transforming
the root and move towards the leafs of the plan. Due to this when
transforming a logical join its inputs are still in the logical convention
so in principle they should not have any physical properties.
Normally when the ph
I guess in Rahul's case, the child node of join should be converted first,
thus physical properties will be appended.
But RelNode doesn't have a reference to parent, thus an independent
RelOptRule is needed to convert LogicalJoin.
Just as Michael said, you need to override the method of RelOptRule#
Hi,
The properties of the child nodes correspond to the external Convention.
So, the child nodes have to be converted before the parent can be
transformed.
If the property doesn't match (or) if the property cannot be
determined(child node not converted), the rule cannot be applied. So, we
end up i
If I understand correctly, you can try below steps:
1. Create a rule of Converter to convert child nodes to append external
Convention;
2. Create a rule of RelOptRule to convert the parent node -- check the
Convention of child node when matching
Is it applicable ?
rahul patwari 于2019年8月22日周四 下午1
Hi Jin,
We wanted to transform LogicalJoin to different Join Types in the external
system depending on the LogicalJoin Child Properties(which are in external
convention).
As LogicalJoin can be a child of LogicalJoin, because of VolcanoPlanner's
top-down approach, the child LogicalJoin is not conve
Hmm,, I get it
So maybe you can try HepPlanner with match order of BOTTOM_UP;
Or if VolcanoPlanner is necessary, how about call the optimization multiple
times, e.g. wrap it with a loop
Jin
rahul patwari 于2019年8月23日周五 上午10:59写道:
> Hi Jin,
>
> We wanted to transform LogicalJoin to different Join