[
https://issues.apache.org/jira/browse/CALCITE-2658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16678584#comment-16678584
]
Julian Hyde commented on CALCITE-2658:
--------------------------------------
Yes, more rules are welcome. (We can argue about how they are named later!)
Follow the principle of using traits rather than structurally matching
particular kinds of RelNode. This applies for the Sort-based rules (the rules
use the RelCollation trait rather than matching Sort explicitly) and also
applies to the Exchange-based rules (use RelDistribution rather than looking
for an Exchange).
I will be interested to see how you deal with SortExchange in the rules, since
it does two things at the same time.
RelBuilder will need a factory for creating Exchange and SortExchange instances.
> Introducing more ReduceExpressionRules
> --------------------------------------
>
> Key: CALCITE-2658
> URL: https://issues.apache.org/jira/browse/CALCITE-2658
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.17.0
> Reporter: Chunwei Lei
> Assignee: Julian Hyde
> Priority: Major
> Fix For: 1.18.0
>
>
> It is useful to have rules reducing Exchange/Sort/SortExchange keys, e.g.,
> SELECT key,value FROM (SELECT 1 AS key, value FROM src) r DISTRIBUTE BY key;
> can be reduced to
> SELECT 1 AS key, value FROM src; # Since singleton requirement may already
> required by SELECT.
> SELECT key,value FROM (SELECT 1 AS key, value FROM src) r ORDER BY key;
> can be reduced to
> SELECT 1 AS key, value FROM src; # Since ordering on constant is useless.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)