KYLIN-1551 check parameters for top_n measure

Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b43174f0
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b43174f0
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b43174f0

Branch: refs/heads/1.5.x-HBase1.1.3
Commit: b43174f092d96602bc6f982fdbccb68630d041a0
Parents: c6412c4
Author: shaofengshi <shaofeng...@apache.org>
Authored: Thu Apr 7 15:33:00 2016 +0800
Committer: shaofengshi <shaofeng...@apache.org>
Committed: Thu Apr 7 15:33:15 2016 +0800

----------------------------------------------------------------------
 .../kylin/cube/model/validation/rule/FunctionRule.java       | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b43174f0/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
----------------------------------------------------------------------
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 261c125..372ac9e 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
@@ -29,6 +29,7 @@ import org.apache.kylin.cube.model.CubeDesc;
 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.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
@@ -101,6 +102,13 @@ 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 2 
parameters for function " + func.getExpression() + " in " + measure.getName());
+                    return;
+                }
+            }
         }
 
         if (countFuncs.size() != 1) {

Reply via email to