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/03/14 01:01:30 UTC
[17/50] incubator-kylin git commit: KYLIN-625, split IEvaluatableTuple
KYLIN-625, split IEvaluatableTuple
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/fd0fbd5c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/fd0fbd5c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/fd0fbd5c
Branch: refs/heads/streaming
Commit: fd0fbd5cba7b1b97bac333b0ef9cd3bc77a5f04c
Parents: 9ec330a
Author: Li, Yang <ya...@ebay.com>
Authored: Mon Mar 9 15:04:52 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Mon Mar 9 15:04:52 2015 +0800
----------------------------------------------------------------------
.../kylin/metadata/filter/CaseTupleFilter.java | 4 +--
.../metadata/filter/ColumnTupleFilter.java | 3 +-
.../metadata/filter/CompareTupleFilter.java | 3 +-
.../metadata/filter/ConstantTupleFilter.java | 3 +-
.../metadata/filter/DynamicTupleFilter.java | 3 +-
.../metadata/filter/ExtractTupleFilter.java | 4 +--
.../metadata/filter/IEvaluatableTuple.java | 9 ++++++
.../metadata/filter/LogicalTupleFilter.java | 10 +++---
.../kylin/metadata/filter/TupleFilter.java | 6 ++--
.../org/apache/kylin/metadata/tuple/ITuple.java | 5 +--
.../storage/hbase/DerivedFilterTranslator.java | 32 ++++---------------
.../hbase/coprocessor/CoprocessorFilter.java | 14 ++++++---
.../coprocessor/observer/ObserverTuple.java | 33 ++------------------
13 files changed, 43 insertions(+), 86 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
index 1b1d979..5acbe5c 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
@@ -18,8 +18,6 @@
package org.apache.kylin.metadata.filter;
-import org.apache.kylin.metadata.tuple.ITuple;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -64,7 +62,7 @@ public class CaseTupleFilter extends TupleFilter {
}
@Override
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
if (whenFilters.size() != thenFilters.size()) {
elseFilter = whenFilters.remove(whenFilters.size() - 1);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
index 865dab3..1cf1f3c 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
@@ -28,7 +28,6 @@ import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.tuple.ITuple;
/**
*
@@ -67,7 +66,7 @@ public class ColumnTupleFilter extends TupleFilter {
}
@Override
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
this.tupleValue = tuple.getValue(columnRef);
return true;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/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 6e1cca9..16114c5 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
@@ -27,7 +27,6 @@ import java.util.Map;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.tuple.ITuple;
/**
* @author xjiang
@@ -142,7 +141,7 @@ public class CompareTupleFilter extends TupleFilter {
// TODO requires generalize, currently only evaluates COLUMN {op} CONST
@Override
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
// extract tuple value
String tupleValue = null;
for (TupleFilter filter : this.children) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/ConstantTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/ConstantTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/ConstantTupleFilter.java
index 6234db2..1b21728 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/ConstantTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/ConstantTupleFilter.java
@@ -24,7 +24,6 @@ import java.util.Collections;
import java.util.HashSet;
import org.apache.kylin.common.util.BytesUtil;
-import org.apache.kylin.metadata.tuple.ITuple;
/**
*
@@ -64,7 +63,7 @@ public class ConstantTupleFilter extends TupleFilter {
}
@Override
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
return constantValues.size() > 0;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/DynamicTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/DynamicTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/DynamicTupleFilter.java
index c19a30f..08426ba 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/DynamicTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/DynamicTupleFilter.java
@@ -23,7 +23,6 @@ import java.util.Collection;
import java.util.Collections;
import org.apache.kylin.common.util.BytesUtil;
-import org.apache.kylin.metadata.tuple.ITuple;
/**
*
@@ -54,7 +53,7 @@ public class DynamicTupleFilter extends TupleFilter {
}
@Override
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
return true;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
index d96da2e..a02f91a 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
@@ -18,8 +18,6 @@
package org.apache.kylin.metadata.filter;
-import org.apache.kylin.metadata.tuple.ITuple;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -54,7 +52,7 @@ public class ExtractTupleFilter extends TupleFilter {
}
@Override
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
// extract tuple value
String extractType = null;
String tupleValue = null;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/IEvaluatableTuple.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/IEvaluatableTuple.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/IEvaluatableTuple.java
new file mode 100644
index 0000000..92f83f1
--- /dev/null
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/IEvaluatableTuple.java
@@ -0,0 +1,9 @@
+package org.apache.kylin.metadata.filter;
+
+import org.apache.kylin.metadata.model.TblColRef;
+
+public interface IEvaluatableTuple {
+
+ public Object getValue(TblColRef col);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
index 5d4f642..2649674 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
@@ -18,8 +18,6 @@
package org.apache.kylin.metadata.filter;
-import org.apache.kylin.metadata.tuple.ITuple;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -71,7 +69,7 @@ public class LogicalTupleFilter extends TupleFilter {
}
@Override
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
switch (this.operator) {
case AND:
return evalAnd(tuple);
@@ -84,7 +82,7 @@ public class LogicalTupleFilter extends TupleFilter {
}
}
- private boolean evalAnd(ITuple tuple) {
+ private boolean evalAnd(IEvaluatableTuple tuple) {
for (TupleFilter filter : this.children) {
if (!filter.evaluate(tuple)) {
return false;
@@ -93,7 +91,7 @@ public class LogicalTupleFilter extends TupleFilter {
return true;
}
- private boolean evalOr(ITuple tuple) {
+ private boolean evalOr(IEvaluatableTuple tuple) {
for (TupleFilter filter : this.children) {
if (filter.evaluate(tuple)) {
return true;
@@ -102,7 +100,7 @@ public class LogicalTupleFilter extends TupleFilter {
return false;
}
- private boolean evalNot(ITuple tuple) {
+ private boolean evalNot(IEvaluatableTuple tuple) {
return !this.children.get(0).evaluate(tuple);
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
index d3e6873..9a461c4 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
@@ -24,9 +24,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import com.google.common.collect.Maps;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.tuple.ITuple;
+
+import com.google.common.collect.Maps;
/**
*
@@ -188,7 +188,7 @@ public abstract class TupleFilter {
public abstract boolean isEvaluable();
- public abstract boolean evaluate(ITuple tuple);
+ public abstract boolean evaluate(IEvaluatableTuple tuple);
public abstract Collection<String> getValues();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITuple.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITuple.java b/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITuple.java
index c1f6536..e5dbf08 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITuple.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITuple.java
@@ -20,6 +20,7 @@ package org.apache.kylin.metadata.tuple;
import java.util.List;
+import org.apache.kylin.metadata.filter.IEvaluatableTuple;
import org.apache.kylin.metadata.model.TblColRef;
/**
@@ -28,7 +29,7 @@ import org.apache.kylin.metadata.model.TblColRef;
*
* @author yangli9
*/
-public interface ITuple {
+public interface ITuple extends IEvaluatableTuple {
public List<String> getAllFields();
@@ -36,7 +37,7 @@ public interface ITuple {
public Object[] getAllValues();
- public Object getValue(TblColRef col);
+ // declared in IEvaluatableTuple: public Object getValue(TblColRef col);
public Object getValue(String field);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
index e542555..bfa9d3c 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
@@ -22,22 +22,22 @@ import java.util.List;
import java.util.Set;
import org.apache.hadoop.hbase.util.Pair;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
import org.apache.kylin.common.util.Array;
import org.apache.kylin.cube.kv.RowKeyColumnOrder;
import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
import org.apache.kylin.cube.model.CubeDesc.DeriveType;
import org.apache.kylin.dict.lookup.LookupStringTable;
-import org.apache.kylin.metadata.model.TblColRef;
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.IEvaluatableTuple;
import org.apache.kylin.metadata.filter.LogicalTupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
-import org.apache.kylin.metadata.tuple.ITuple;
+import org.apache.kylin.metadata.model.TblColRef;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
/**
* @author yangli9
@@ -172,7 +172,7 @@ public class DerivedFilterTranslator {
}
}
- private static class SingleColumnTuple implements ITuple {
+ private static class SingleColumnTuple implements IEvaluatableTuple {
private TblColRef col;
private String value;
@@ -182,21 +182,6 @@ public class DerivedFilterTranslator {
}
@Override
- public List<String> getAllFields() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public List<TblColRef> getAllColumns() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Object[] getAllValues() {
- throw new UnsupportedOperationException();
- }
-
- @Override
public Object getValue(TblColRef col) {
if (this.col.equals(col))
return value;
@@ -204,11 +189,6 @@ public class DerivedFilterTranslator {
throw new IllegalArgumentException("unexpected column " + col);
}
- @Override
- public Object getValue(String field) {
- throw new UnsupportedOperationException();
- }
-
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
index 6d238ba..aedce4d 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
@@ -22,17 +22,21 @@ import java.util.Collection;
import java.util.Set;
import org.apache.hadoop.hbase.util.Bytes;
-
-import com.google.common.collect.Sets;
import org.apache.kylin.common.util.BytesUtil;
import org.apache.kylin.cube.kv.RowKeyColumnIO;
import org.apache.kylin.dict.Dictionary;
import org.apache.kylin.dict.ISegment;
-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.IEvaluatableTuple;
+import org.apache.kylin.metadata.filter.TupleFilter;
import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.filter.TupleFilterSerializer;
import org.apache.kylin.metadata.filter.TupleFilterSerializer.Decorator;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.tuple.ITuple;
+
+import com.google.common.collect.Sets;
/**
* @author yangli9
@@ -216,7 +220,7 @@ public class CoprocessorFilter {
return unstrictlyFilteredColumns;
}
- public boolean evaluate(ITuple tuple) {
+ public boolean evaluate(IEvaluatableTuple tuple) {
if (filter == null)
return true;
else
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/fd0fbd5c/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
index 72ae5de..288afa9 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
@@ -18,14 +18,11 @@
package org.apache.kylin.storage.hbase.coprocessor.observer;
-import java.util.List;
-
-import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
import org.apache.kylin.dict.Dictionary;
+import org.apache.kylin.metadata.filter.IEvaluatableTuple;
import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.tuple.ITuple;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
/**
* A special kind of tuple that exposes column value (dictionary ID) directly on
@@ -33,7 +30,7 @@ import org.apache.kylin.metadata.tuple.ITuple;
*
* @author yangli9
*/
-public class ObserverTuple implements ITuple {
+public class ObserverTuple implements IEvaluatableTuple {
final CoprocessorRowType type;
@@ -53,20 +50,6 @@ public class ObserverTuple implements ITuple {
}
}
- @Override
- public List<TblColRef> getAllColumns() {
- return type.columnsAsList;
- }
-
- @Override
- public Object[] getAllValues() {
- int n = type.getColumnCount();
- for (int i = 0; i < n; i++) {
- getValueAt(i);
- }
- return values;
- }
-
private String getValueAt(int i) {
int n = type.getColumnCount();
if (i < 0 || i >= n)
@@ -85,14 +68,4 @@ public class ObserverTuple implements ITuple {
return getValueAt(i);
}
- @Override
- public List<String> getAllFields() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Object getValue(String field) {
- throw new UnsupportedOperationException();
- }
-
}