[ https://issues.apache.org/jira/browse/FLINK-12600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
godfrey he updated FLINK-12600: ------------------------------- Description: This issue aims to introduce planner rules to to do deterministic rewriting on RelNode , rules include: 1. {{FlinkLimit0RemoveRule}} that rewrites `limit 0` to empty {{Values}} 2. {{FlinkRewriteSubQueryRule}} that rewrites a {{Filter}} with condition: `(select count( *) from T) > 0` to a {{Filter}} with condition: `exists(select * from T)` 3. {{ReplaceIntersectWithSemiJoinRule}} that rewrites distinct {{Intersect}} to a distinct {{Aggregate}} on a SEMI {{Join}}. 4. {{ReplaceMinusWithAntiJoinRule}} that rewrite distinct {{Minus}} to a distinct {{Aggregate}} on an ANTI {{Join}}. was: This issue aims to introduce planner rules to to do deterministic rewriting on RelNode , rules include: 1. {{FlinkLimit0RemoveRule}} that rewrites `limit 0` to empty {{Values}} 2. {{FlinkRewriteSubQueryRule}} that rewrites a {{Filter}} with condition: `(select count(*) from T) > 0` to a {{Filter}} with condition: `exists(select * from T)` 3. {{ReplaceIntersectWithSemiJoinRule}} that rewrites distinct {{Intersect}} to a distinct {{Aggregate}} on a SEMI {{Join}}. 4. {{ReplaceMinusWithAntiJoinRule}} that rewrite distinct {{Minus}} to a distinct {{Aggregate}} on an ANTI {{Join}}. > Introduce planner rules to do deterministic rewriting on RelNode > ----------------------------------------------------------------- > > Key: FLINK-12600 > URL: https://issues.apache.org/jira/browse/FLINK-12600 > Project: Flink > Issue Type: New Feature > Components: Table SQL / Planner > Reporter: godfrey he > Assignee: godfrey he > Priority: Major > > This issue aims to introduce planner rules to to do deterministic rewriting > on RelNode , rules include: > 1. {{FlinkLimit0RemoveRule}} that rewrites `limit 0` to empty {{Values}} > 2. {{FlinkRewriteSubQueryRule}} that rewrites a {{Filter}} with condition: > `(select count( *) from T) > 0` to a {{Filter}} with condition: > `exists(select * from T)` > 3. {{ReplaceIntersectWithSemiJoinRule}} that rewrites distinct {{Intersect}} > to a distinct {{Aggregate}} on a SEMI {{Join}}. > 4. {{ReplaceMinusWithAntiJoinRule}} that rewrite distinct {{Minus}} to a > distinct {{Aggregate}} on an ANTI {{Join}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)