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();
-    }
-
 }