You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/02/06 06:12:42 UTC

[jira] [Commented] (FLINK-5406) add normalization phase for predicate logical plan rewriting between decorrelate query phase and volcano optimization phase

    [ https://issues.apache.org/jira/browse/FLINK-5406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15853576#comment-15853576 ] 

ASF GitHub Bot commented on FLINK-5406:
---------------------------------------

Github user godfreyhe commented on a diff in the pull request:

    https://github.com/apache/flink/pull/3101#discussion_r99522172
  
    --- Diff: flink-libraries/flink-table/src/test/scala/org/apache/flink/table/AggregationTest.scala ---
    @@ -165,14 +165,20 @@ class AggregationTest extends TableTestBase {
         val util = batchTestUtil()
         val sourceTable = util.addTable[(Int, Long, Int)]("MyTable", 'a, 'b, 'c)
     
    -    val resultTable = sourceTable.groupBy('a)
    +    // Move "where" before "groupBy" for the former query would generate
    +    // nondeterministic plans with same cost. If we change FlinkRuleSets.DATASET_OPT_RULES,
    +    // the importance of relNode may change, and the test may fail. This issue is mentioned
    +    // in FLINK-5394, we could move "where" to the end when FLINK-5394 is fixed.
    +    val resultTable = sourceTable.where('a === 1)
    --- End diff --
    
    OK


> add normalization phase for predicate logical plan rewriting between decorrelate query phase and volcano optimization phase
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-5406
>                 URL: https://issues.apache.org/jira/browse/FLINK-5406
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table API & SQL
>            Reporter: godfrey he
>            Assignee: godfrey he
>
> Normalization phase is for predicate logical plan rewriting and is independent of cost module. The rules in normalization phase do not need to repeatedly applied to different logical plan which is different to volcano optimization phase. And the benefit of normalization phase is to reduce the running time of volcano planner.
> *ReduceExpressionsRule* can apply various simplifying transformations on RexNode trees. Currently, there are two transformations:
> 1) Constant reduction, which evaluates constant subtrees, replacing them with a corresponding RexLiteral
> 2) Removal of redundant casts, which occurs when the argument into the cast is the same as the type of the resulting cast expression
> the above transformations do not depend on the cost module,  so we can move the rules in *ReduceExpressionsRule* from DATASET_OPT_RULES/DATASTREAM_OPT_RULES to DataSet/DataStream Normalization Rules.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)