Repository: kylin Updated Branches: refs/heads/2.x-staging 7fdf1fda0 -> 9203b230e
KYLIN-976 Bug fix on HLLCMeasureType Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/9203b230 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/9203b230 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/9203b230 Branch: refs/heads/2.x-staging Commit: 9203b230ea285c6c26b094d1305ce6f493ba7b05 Parents: 7fdf1fd Author: Li, Yang <yang...@ebay.com> Authored: Wed Dec 9 15:02:46 2015 +0800 Committer: Li, Yang <yang...@ebay.com> Committed: Wed Dec 9 15:03:21 2015 +0800 ---------------------------------------------------------------------- .../java/org/apache/kylin/measure/hllc/HLLCMeasureType.java | 3 +-- .../java/org/apache/kylin/query/relnode/OLAPAggregateRel.java | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/9203b230/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HLLCMeasureType.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HLLCMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HLLCMeasureType.java index 5c4d8b4..fffb0d1 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HLLCMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HLLCMeasureType.java @@ -117,8 +117,7 @@ public class HLLCMeasureType extends MeasureType<HyperLogLogPlusCounter> { @Override public Class<?> getRewriteCalciteAggrFunctionClass() { - // TODO Auto-generated method stub - return null; + return HLLDistinctCountAggFunc.class; } public static boolean isCountDistinct(FunctionDesc func) { http://git-wip-us.apache.org/repos/asf/kylin/blob/9203b230/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java ---------------------------------------------------------------------- diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java index cebfd12..0c53703 100644 --- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java +++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java @@ -302,7 +302,7 @@ public class OLAPAggregateRel extends Aggregate implements OLAPRel { if (func.isCount()) { newAgg = SqlStdOperatorTable.SUM0; } else if (func.getMeasureType().getRewriteCalciteAggrFunctionClass() != null) { - newAgg = createCustomAggFunction(fieldType, func.getMeasureType().getRewriteCalciteAggrFunctionClass()); + newAgg = createCustomAggFunction(func.getExpression(), fieldType, func.getMeasureType().getRewriteCalciteAggrFunctionClass()); } // rebuild aggregate call @@ -310,9 +310,9 @@ public class OLAPAggregateRel extends Aggregate implements OLAPRel { return newAggCall; } - private SqlAggFunction createCustomAggFunction(RelDataType returnType, Class<?> customAggFuncClz) { + private SqlAggFunction createCustomAggFunction(String funcName, RelDataType returnType, Class<?> customAggFuncClz) { RelDataTypeFactory typeFactory = getCluster().getTypeFactory(); - SqlIdentifier sqlIdentifier = new SqlIdentifier(customAggFuncClz.getSimpleName(), new SqlParserPos(1, 1)); + SqlIdentifier sqlIdentifier = new SqlIdentifier(funcName, new SqlParserPos(1, 1)); AggregateFunction aggFunction = AggregateFunctionImpl.create(customAggFuncClz); List<RelDataType> argTypes = new ArrayList<RelDataType>(); List<SqlTypeFamily> typeFamilies = new ArrayList<SqlTypeFamily>();