From cbb6c0bdedd3026ac8a4970b5d13f93cd7842018 Mon Sep 17 00:00:00 2001 From: "Yifei Wu" Date: Mon, 29 Jan 2018 19:06:47 +0800 Subject: [PATCH] KYLIN-3386 adjust TopN measure validation code --- .../cube/model/validation/rule/FunctionRule.java | 20 -------------------- .../apache/kylin/measure/topn/TopNMeasureType.java | 4 ++++ 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java index 36631ce87..a44ab6250 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java @@ -105,26 +105,6 @@ public class FunctionRule implements IValidatorRule { if (func.isCount()) countFuncs.add(func); - - if (TopNMeasureType.FUNC_TOP_N.equalsIgnoreCase(func.getExpression())) { - if (parameter.getNextParameter() == null) { - context.addResult(ResultLevel.ERROR, "Must define at least 2 parameters for function " + func.getExpression() + " in " + measure.getName()); - return; - } - - ParameterDesc groupByCol = parameter.getNextParameter(); - List duplicatedCol = Lists.newArrayList(); - while (groupByCol != null) { - String embeded_groupby = groupByCol.getValue(); - for (DimensionDesc dimensionDesc : cube.getDimensions()) { - if (dimensionDesc.getColumn() != null && dimensionDesc.getColumn().equalsIgnoreCase(embeded_groupby)) { - duplicatedCol.add(embeded_groupby); - } - } - groupByCol = groupByCol.getNextParameter(); - } - - } } if (countFuncs.size() != 1) { diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java index 6b4c5b747..d095596a7 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java @@ -97,6 +97,10 @@ public class TopNMeasureType extends MeasureType> { public void validate(FunctionDesc functionDesc) throws IllegalArgumentException { validate(functionDesc.getExpression(), functionDesc.getReturnDataType(), true); + + if (functionDesc.getParameter() == null || functionDesc.getParameter().getNextParameter() == null) { + throw new IllegalArgumentException("Must define at least 2 parameters for function " + functionDesc.getExpression()); + } } private void validate(String funcName, DataType dataType, boolean checkDataType) { -- 2.14.3 (Apple Git-98)