[ 
https://issues.apache.org/jira/browse/CALCITE-419?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde closed CALCITE-419.
-------------------------------

Closing now that 1.0.0-incubating has been released.

> Naming convention for planner rules
> -----------------------------------
>
>                 Key: CALCITE-419
>                 URL: https://issues.apache.org/jira/browse/CALCITE-419
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>             Fix For: 1.0.0-incubating
>
>
> I propose a new naming convention for planner rules. This change would rename 
> existing rules.
> The naming convention is advisory, not mandatory. Rule authors would not need 
> to follow it if they don’t feel that it makes things clearer.
> Discussion from the dev list:
> As the number of rules grows, it becomes more difficult to find out whether a 
> similar rule has already been added. The fact that there are several ways to 
> name a rule adds to the confusion.
> For instance, consider a rule that converts ‘join(project( x ), project( y 
> ))’ into ‘project(join(x, y))’. The actual rule is called 
> {{PullUpProjectsAboveJoinRule}} but it could equally be called 
> {{PushJoinThroughProjectsRule}}.
> There are lots of rules called {{PushXxxThroughYyyRule}}, too.
> I propose the naming convention
>    {{<Reltype1><Reltype2>[…]<Verb>Rule}}
> where {{ReltypeN}} is the class of the Nth {{RelNode}} matched, in 
> depth-first order, ignoring unimportant operands, and removing any ‘Rel’ 
> suffix
> Verb is what happens — typically Transpose, Swap, Merge, Optimize.
> Thus:
> * {{PullUpProjectsAboveJoinRule}} becomes {{JoinProjectTransposeRule}}
> * {{PushAggregateThroughUnionRule}} becomes {{AggregateUnionTransposeRule}}
> * {{MergeProjectRule}} becomes {{ProjectMergeRule}}
> * {{MergeFilterOntoCalcRule}} becomes {{FilterCalcMergeRule}}
> * {{EnumerableJoinRule}} remains {{EnumerableJoinRule}} (Or how about 
> {{JoinAsEnumerableRule}}?)
> * {{SwapJoinRule}} becomes {{JoinSwapInputsRule}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to