From 7fd7eb35efd9d0a6230fac52740b178e255bf506 Mon Sep 17 00:00:00 2001 From: "qianhao.zhou" Date: Tue, 25 Nov 2014 15:02:06 +0800 Subject: [PATCH] remove rule PushFilterPastProjectRule --- .../main/java/com/kylinolap/query/relnode/OLAPTableScan.java | 10 +++++----- query/src/test/resources/query/sql/query76.sql | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 query/src/test/resources/query/sql/query76.sql diff --git a/query/src/main/java/com/kylinolap/query/relnode/OLAPTableScan.java b/query/src/main/java/com/kylinolap/query/relnode/OLAPTableScan.java index 62c2fcd..9c50c36 100644 --- a/query/src/main/java/com/kylinolap/query/relnode/OLAPTableScan.java +++ b/query/src/main/java/com/kylinolap/query/relnode/OLAPTableScan.java @@ -30,10 +30,7 @@ import org.eigenbase.rel.RelNode; import org.eigenbase.rel.RelWriter; import org.eigenbase.rel.TableAccessRelBase; -import org.eigenbase.rel.rules.PushFilterPastJoinRule; -import org.eigenbase.rel.rules.PushJoinThroughJoinRule; -import org.eigenbase.rel.rules.RemoveDistinctAggregateRule; -import org.eigenbase.rel.rules.SwapJoinRule; +import org.eigenbase.rel.rules.*; import org.eigenbase.relopt.RelOptCluster; import org.eigenbase.relopt.RelOptCost; import org.eigenbase.relopt.RelOptPlanner; @@ -121,7 +118,10 @@ public void register(RelOptPlanner planner) { planner.removeRule(SwapJoinRule.INSTANCE); planner.removeRule(PushJoinThroughJoinRule.LEFT); planner.removeRule(PushJoinThroughJoinRule.RIGHT); - + + // for columns in having clause will enable table scan filter rule + // cause kylin does not depend on MPP + planner.removeRule(PushFilterPastProjectRule.INSTANCE); // distinct count will be split into a separated query that is joined with the left query planner.removeRule(RemoveDistinctAggregateRule.INSTANCE); } diff --git a/query/src/test/resources/query/sql/query76.sql b/query/src/test/resources/query/sql/query76.sql new file mode 100644 index 0000000..2bfd2a2 --- /dev/null +++ b/query/src/test/resources/query/sql/query76.sql @@ -0,0 +1,4 @@ +select lstg_format_name, sum(price) as GMV + from test_kylin_fact + group by lstg_format_name + having SLR_SEGMENT_CD > 0