You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/11/17 10:47:23 UTC
[2/2] incubator-kylin git commit: KYLIN-993 Code review,
minor formattings
KYLIN-993 Code review, minor formattings
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/3285a42a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/3285a42a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/3285a42a
Branch: refs/heads/1.x-staging
Commit: 3285a42ab4d376cda314b06237f5f78de54016b7
Parents: bed15ab
Author: Li, Yang <ya...@ebay.com>
Authored: Tue Nov 17 17:47:13 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Tue Nov 17 17:47:13 2015 +0800
----------------------------------------------------------------------
.../metadata/filter/CompareTupleFilter.java | 22 +++--
.../metadata/filter/FunctionTupleFilter.java | 13 ++-
.../metadata/filter/util/BuiltInMethod.java | 8 +-
.../kylin/storage/hbase/CubeStorageEngine.java | 3 +-
.../storage/hbase/FuzzyValueCombination.java | 2 -
.../CoprocessorTupleFilterTranslator.java | 93 +++++++++-----------
6 files changed, 67 insertions(+), 74 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3285a42a/metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java
index 6754ff7..73fd0fb 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/CompareTupleFilter.java
@@ -19,9 +19,12 @@
package org.apache.kylin.metadata.filter;
import java.nio.ByteBuffer;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
-import org.apache.calcite.sql.SqlFunction;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.tuple.ITuple;
@@ -31,12 +34,15 @@ import org.apache.kylin.metadata.tuple.ITuple;
*/
public class CompareTupleFilter extends TupleFilter {
+ // operand 1 is either a column or a function
private TblColRef column;
+ private FunctionTupleFilter function;
+
+ // operand 2 is constants
private Collection<String> conditionValues;
private String firstCondValue;
private Map<String, String> dynamicVariables;
private String nullString;
- private FunctionTupleFilter functionTupleFilter;
public CompareTupleFilter(FilterOperatorEnum op) {
super(new ArrayList<TupleFilter>(2), op);
@@ -80,7 +86,7 @@ public class CompareTupleFilter extends TupleFilter {
DynamicTupleFilter dynamicFilter = (DynamicTupleFilter) child;
this.dynamicVariables.put(dynamicFilter.getVariableName(), null);
} else if (child instanceof FunctionTupleFilter) {
- this.functionTupleFilter = (FunctionTupleFilter)child;
+ this.function = (FunctionTupleFilter)child;
}
//TODO
// else if (child instanceof ExtractTupleFilter) {
@@ -105,8 +111,8 @@ public class CompareTupleFilter extends TupleFilter {
return column;
}
- public FunctionTupleFilter getFunctionTupleFilter() {
- return functionTupleFilter;
+ public FunctionTupleFilter getFunction() {
+ return function;
}
public Map<String, String> getVariables() {
@@ -141,7 +147,7 @@ public class CompareTupleFilter extends TupleFilter {
@Override
public String toString() {
- return "CompareFilter [" + (functionTupleFilter == null ? column : functionTupleFilter) + " " + operator + " " + conditionValues + ", children=" + children + "]";
+ return "CompareFilter [" + (function == null ? column : function) + " " + operator + " " + conditionValues + ", children=" + children + "]";
}
// TODO requires generalize, currently only evaluates COLUMN {op} CONST
@@ -213,7 +219,7 @@ public class CompareTupleFilter extends TupleFilter {
@Override
public boolean isEvaluable() {
- return (functionTupleFilter != null || column != null) && !conditionValues.isEmpty();
+ return (function != null || column != null) && !conditionValues.isEmpty();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3285a42a/metadata/src/main/java/org/apache/kylin/metadata/filter/FunctionTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/FunctionTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/FunctionTupleFilter.java
index 62ab42f..731e5ab 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/FunctionTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/FunctionTupleFilter.java
@@ -47,7 +47,7 @@ public class FunctionTupleFilter extends TupleFilter {
private boolean isValid = false;
public FunctionTupleFilter(SqlOperator sqlOperator) {
- super(Lists.<TupleFilter>newArrayList(), FilterOperatorEnum.FUNCTION);
+ super(Lists.<TupleFilter> newArrayList(), FilterOperatorEnum.FUNCTION);
this.methodParams = Lists.newArrayList();
this.sqlOperator = sqlOperator;
@@ -67,9 +67,9 @@ public class FunctionTupleFilter extends TupleFilter {
return null;
if (columnContainerFilter instanceof ColumnTupleFilter)
- return ((ColumnTupleFilter)columnContainerFilter).getColumn();
+ return ((ColumnTupleFilter) columnContainerFilter).getColumn();
else if (columnContainerFilter instanceof FunctionTupleFilter)
- return ((FunctionTupleFilter)columnContainerFilter).getColumn();
+ return ((FunctionTupleFilter) columnContainerFilter).getColumn();
throw new UnsupportedOperationException("Wrong type TupleFilter in FunctionTupleFilter.");
}
@@ -79,7 +79,7 @@ public class FunctionTupleFilter extends TupleFilter {
methodParams.set(colPosition, input);
else if (columnContainerFilter instanceof FunctionTupleFilter)
methodParams.set(colPosition, ((FunctionTupleFilter) columnContainerFilter).invokeFunction(input));
- return method.invoke(null, (Object[])(methodParams.toArray()));
+ return method.invoke(null, (Object[]) (methodParams.toArray()));
}
public boolean isValid() {
@@ -87,7 +87,6 @@ public class FunctionTupleFilter extends TupleFilter {
}
@Override
- @SuppressWarnings("unchecked")
public void addChild(TupleFilter child) {
if (child instanceof ColumnTupleFilter || child instanceof FunctionTupleFilter) {
columnContainerFilter = child;
@@ -96,7 +95,7 @@ public class FunctionTupleFilter extends TupleFilter {
} else if (child instanceof ConstantTupleFilter) {
String constVal = child.getValues().iterator().next();
try {
- Class clazz = Primitives.wrap(method.getParameterTypes()[methodParams.size()]);
+ Class<?> clazz = Primitives.wrap(method.getParameterTypes()[methodParams.size()]);
if (!Primitives.isWrapperType(clazz))
methodParams.add(constVal);
else
@@ -125,7 +124,7 @@ public class FunctionTupleFilter extends TupleFilter {
}
@Override
- public String toString(){
+ public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(sqlOperator.getName());
sb.append("(");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3285a42a/metadata/src/main/java/org/apache/kylin/metadata/filter/util/BuiltInMethod.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/util/BuiltInMethod.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/util/BuiltInMethod.java
index 1f15c9c..3a36385 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/util/BuiltInMethod.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/util/BuiltInMethod.java
@@ -18,12 +18,12 @@
package org.apache.kylin.metadata.filter.util;
-import com.google.common.collect.ImmutableMap;
-import org.apache.calcite.avatica.util.DateTimeUtils;
+import java.lang.reflect.Method;
+
import org.apache.calcite.linq4j.tree.Types;
import org.apache.calcite.runtime.SqlFunctions;
-import java.lang.reflect.Method;
+import com.google.common.collect.ImmutableMap;
/**
* Created by dongli on 11/13/15.
@@ -50,7 +50,7 @@ public enum BuiltInMethod {
MAP = builder.build();
}
- BuiltInMethod(Class clazz, String methodName, Class... argumentTypes) {
+ BuiltInMethod(Class<?> clazz, String methodName, Class<?>... argumentTypes) {
this.method = Types.lookupMethod(clazz, methodName, argumentTypes);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3285a42a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
index fdb8986..ed12781 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
@@ -267,7 +267,8 @@ public class CubeStorageEngine implements IStorageEngine {
}
private void collectColumnsRecursively(TupleFilter filter, Set<TblColRef> collector) {
- if (filter == null) return;
+ if (filter == null)
+ return;
if (filter instanceof ColumnTupleFilter) {
collectColumns(((ColumnTupleFilter) filter).getColumn(), collector);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3285a42a/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java b/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
index 616a232..ce14b2b 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
@@ -18,9 +18,7 @@
package org.apache.kylin.storage.hbase;
-import java.util.Arrays;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3285a42a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorTupleFilterTranslator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorTupleFilterTranslator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorTupleFilterTranslator.java
index aae945d..6affc18 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorTupleFilterTranslator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorTupleFilterTranslator.java
@@ -18,16 +18,20 @@
package org.apache.kylin.storage.hbase.coprocessor;
-import com.google.common.primitives.Primitives;
import org.apache.kylin.cube.kv.RowKeyColumnIO;
import org.apache.kylin.dict.Dictionary;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.FunctionTupleFilter;
+import org.apache.kylin.metadata.filter.ITupleFilterTranslator;
+import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
import org.apache.kylin.metadata.model.TblColRef;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.lang.reflect.InvocationTargetException;
+import com.google.common.primitives.Primitives;
/**
* Created by dongli on 11/11/15.
@@ -71,17 +75,11 @@ public class CoprocessorTupleFilterTranslator implements ITupleFilterTranslator
try {
for (int i = dict.getMinId(); i <= dict.getMaxId(); i++) {
String dictVal = dict.getValueFromId(i);
- if ((Boolean)functionTupleFilter.invokeFunction(dictVal)) {
+ if ((Boolean) functionTupleFilter.invokeFunction(dictVal)) {
translated.addChild(new ConstantTupleFilter(dictVal));
}
}
- } catch (IllegalAccessException e) {
- logger.debug(e.getMessage());
- return null;
- } catch (InvocationTargetException e) {
- logger.debug(e.getMessage());
- return null;
- } catch (IllegalArgumentException e) {
+ } catch (Exception e) {
logger.debug(e.getMessage());
return null;
}
@@ -89,11 +87,11 @@ public class CoprocessorTupleFilterTranslator implements ITupleFilterTranslator
}
@SuppressWarnings("unchecked")
- private TupleFilter translateCompareTupleFilter(CompareTupleFilter compTupleFilter){
- if (compTupleFilter.getFunctionTupleFilter() == null)
+ private TupleFilter translateCompareTupleFilter(CompareTupleFilter compTupleFilter) {
+ if (compTupleFilter.getFunction() == null)
return null;
- FunctionTupleFilter functionTupleFilter = compTupleFilter.getFunctionTupleFilter();
+ FunctionTupleFilter functionTupleFilter = compTupleFilter.getFunction();
if (!functionTupleFilter.isValid())
return null;
@@ -109,55 +107,46 @@ public class CoprocessorTupleFilterTranslator implements ITupleFilterTranslator
for (int i = dict.getMinId(); i <= dict.getMaxId(); i++) {
String dictVal = dict.getValueFromId(i);
Object computedVal = functionTupleFilter.invokeFunction(dictVal);
- Class clazz = Primitives.wrap(computedVal.getClass());
+ Class<?> clazz = Primitives.wrap(computedVal.getClass());
Object targetVal = compTupleFilter.getFirstValue();
if (Primitives.isWrapperType(clazz))
targetVal = clazz.cast(clazz.getDeclaredMethod("valueOf", String.class).invoke(null, compTupleFilter.getFirstValue()));
- int comp = ((Comparable)computedVal).compareTo(targetVal);
+ int comp = ((Comparable<Object>) computedVal).compareTo(targetVal);
boolean compResult = false;
switch (compTupleFilter.getOperator()) {
- case EQ:
- compResult = comp == 0;
- break;
- case NEQ:
- compResult = comp != 0;
- break;
- case LT:
- compResult = comp < 0;
- break;
- case LTE:
- compResult = comp <= 0;
- break;
- case GT:
- compResult = comp > 0;
- break;
- case GTE:
- compResult = comp >= 0;
- break;
- case IN:
- compResult = compTupleFilter.getValues().contains(computedVal.toString());
- break;
- case NOTIN:
- compResult = !compTupleFilter.getValues().contains(computedVal.toString());
- break;
- default:
- break;
+ case EQ:
+ compResult = comp == 0;
+ break;
+ case NEQ:
+ compResult = comp != 0;
+ break;
+ case LT:
+ compResult = comp < 0;
+ break;
+ case LTE:
+ compResult = comp <= 0;
+ break;
+ case GT:
+ compResult = comp > 0;
+ break;
+ case GTE:
+ compResult = comp >= 0;
+ break;
+ case IN:
+ compResult = compTupleFilter.getValues().contains(computedVal.toString());
+ break;
+ case NOTIN:
+ compResult = !compTupleFilter.getValues().contains(computedVal.toString());
+ break;
+ default:
+ break;
}
if (compResult) {
translated.addChild(new ConstantTupleFilter(dictVal));
}
}
- } catch (IllegalAccessException e) {
- logger.debug(e.getMessage());
- return null;
- } catch (InvocationTargetException e) {
- logger.debug(e.getMessage());
- return null;
- } catch (IllegalArgumentException e) {
- logger.debug(e.getMessage());
- return null;
- } catch (NoSuchMethodException e) {
+ } catch (Exception e) {
logger.debug(e.getMessage());
return null;
}