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) {