You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2018/06/16 06:52:31 UTC

[kylin] 01/04: KYLIN-3386 adjust TopN measure validation code

This is an automated email from the ASF dual-hosted git repository.

shaofengshi pushed a commit to branch v2.4.0-release
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit efe0a07a10698fe1006494d029c8b7da47bc1175
Author: Yifei Wu <va...@gmail.com>
AuthorDate: Mon Jan 29 19:06:47 2018 +0800

    KYLIN-3386 adjust TopN measure validation code
    
    Signed-off-by: shaofengshi <sh...@apache.org>
---
 .../cube/model/validation/rule/FunctionRule.java   | 24 ----------------------
 .../apache/kylin/measure/topn/TopNMeasureType.java |  4 ++++
 2 files changed, 4 insertions(+), 24 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 36631ce..64179e9 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
@@ -26,18 +26,14 @@ import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.DimensionDesc;
 import org.apache.kylin.cube.model.validation.IValidatorRule;
 import org.apache.kylin.cube.model.validation.ResultLevel;
 import org.apache.kylin.cube.model.validation.ValidateContext;
-import org.apache.kylin.measure.topn.TopNMeasureType;
 import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.ParameterDesc;
 
-import com.google.common.collect.Lists;
-
 /**
  * Validate function parameter.
  * <p/>
@@ -105,26 +101,6 @@ public class FunctionRule implements IValidatorRule<CubeDesc> {
 
             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<String> 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 6b4c5b7..d095596 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<TopNCounter<ByteArray>> {
 
     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) {

-- 
To stop receiving notification emails like this one, please contact
shaofengshi@apache.org.