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.