You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by lu...@apache.org on 2015/01/15 13:26:23 UTC
[07/50] [abbrv] incubator-kylin git commit: put tuplefilter and
Ituple into medadata module
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/filter/ExtractTupleFilter.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/filter/ExtractTupleFilter.java b/storage/src/main/java/com/kylinolap/storage/filter/ExtractTupleFilter.java
deleted file mode 100644
index 478c604..0000000
--- a/storage/src/main/java/com/kylinolap/storage/filter/ExtractTupleFilter.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.kylinolap.storage.filter;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import com.kylinolap.storage.tuple.ITuple;
-
-/**
- *
- * @author xjiang
- *
- */
-public class ExtractTupleFilter extends TupleFilter {
-
- private int date;
- private List<String> values;
-
- public ExtractTupleFilter(FilterOperatorEnum op) {
- super(new ArrayList<TupleFilter>(3), op);
- assert (op == FilterOperatorEnum.EXTRACT);
- this.values = new ArrayList<String>(1);
- this.values.add(null);
- this.date = 0;
- }
-
- @Override
- public String toString() {
- return "ExtractTupleFilter=[children=" + this.children + "]";
- }
-
- @Override
- public boolean isEvaluable() {
- return false;
- }
-
- @Override
- public boolean evaluate(ITuple tuple) {
- // extract tuple value
- String extractType = null;
- String tupleValue = null;
- for (TupleFilter filter : this.children) {
- filter.evaluate(tuple);
- if (filter instanceof ConstantTupleFilter) {
- tupleValue = filter.getValues().iterator().next();
- } else if (filter instanceof CompareTupleFilter) {
- extractType = filter.getValues().iterator().next();
- }
- }
-
- // extract date
- this.date = extractDate(extractType, Integer.valueOf(tupleValue));
- return true;
- }
-
- private int extractDate(String type, int inDate) {
- // this shifts the epoch back to astronomical year -4800 instead of the
- // start of the Christian era in year AD 1 of the proleptic Gregorian
- // calendar.
- int j = inDate + 32044;
- int g = j / 146097;
- int dg = j % 146097;
- int c = (dg / 36524 + 1) * 3 / 4;
- int dc = dg - c * 36524;
- int b = dc / 1461;
- int db = dc % 1461;
- int a = (db / 365 + 1) * 3 / 4;
- int da = db - a * 365;
-
- // integer number of full years elapsed since March 1, 4801 BC
- int y = g * 400 + c * 100 + b * 4 + a;
- // integer number of full months elapsed since the last March 1
- int m = (da * 5 + 308) / 153 - 2;
- // number of days elapsed since day 1 of the month
- int d = da - (m + 4) * 153 / 5 + 122;
- int year = y - 4800 + (m + 2) / 12;
- int month = (m + 2) % 12 + 1;
- int day = d + 1;
- if ("YEAR".equalsIgnoreCase(type)) {
- return year;
- }
- if ("MONTH".equalsIgnoreCase(type)) {
- return month;
- }
- if ("DAY".equalsIgnoreCase(type)) {
- return day;
- }
- return -1;
- }
-
- @Override
- public Collection<String> getValues() {
- this.values.set(0, String.valueOf(this.date));
- return this.values;
- }
-
- @Override
- public byte[] serialize() {
- return new byte[0];
- }
-
- @Override
- public void deserialize(byte[] bytes) {
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/filter/LogicalTupleFilter.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/filter/LogicalTupleFilter.java b/storage/src/main/java/com/kylinolap/storage/filter/LogicalTupleFilter.java
deleted file mode 100644
index 0fb9902..0000000
--- a/storage/src/main/java/com/kylinolap/storage/filter/LogicalTupleFilter.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2013-2014 eBay Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.kylinolap.storage.filter;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
-import com.kylinolap.storage.tuple.ITuple;
-
-public class LogicalTupleFilter extends TupleFilter {
-
- public LogicalTupleFilter(FilterOperatorEnum op) {
- super(new ArrayList<TupleFilter>(2), op);
- boolean opGood = (op == FilterOperatorEnum.AND || op == FilterOperatorEnum.OR || op == FilterOperatorEnum.NOT);
- if (opGood == false)
- throw new IllegalArgumentException("Unsupported operator " + op);
- }
-
- private LogicalTupleFilter(List<TupleFilter> filters, FilterOperatorEnum op) {
- super(filters, op);
- }
-
- @Override
- public TupleFilter copy() {
- List<TupleFilter> cloneChildren = new LinkedList<TupleFilter>(children);
- TupleFilter cloneTuple = new LogicalTupleFilter(cloneChildren, operator);
- return cloneTuple;
- }
-
- @Override
- public TupleFilter reverse() {
- switch (operator) {
- case NOT:
- assert (children.size() == 1);
- return children.get(0);
- case AND:
- case OR:
- LogicalTupleFilter reverse = new LogicalTupleFilter(REVERSE_OP_MAP.get(operator));
- for (TupleFilter child : children) {
- reverse.addChild(child.reverse());
- }
- return reverse;
- default:
- throw new IllegalStateException();
- }
- }
-
- @Override
- public String toString() {
- return "LogicalFilter [operator=" + operator + ", children=" + children + "]";
- }
-
- @Override
- public boolean evaluate(ITuple tuple) {
- switch (this.operator) {
- case AND:
- return evalAnd(tuple);
- case OR:
- return evalOr(tuple);
- case NOT:
- return evalNot(tuple);
- default:
- return false;
- }
- }
-
- private boolean evalAnd(ITuple tuple) {
- for (TupleFilter filter : this.children) {
- if (!filter.evaluate(tuple)) {
- return false;
- }
- }
- return true;
- }
-
- private boolean evalOr(ITuple tuple) {
- for (TupleFilter filter : this.children) {
- if (filter.evaluate(tuple)) {
- return true;
- }
- }
- return false;
- }
-
- private boolean evalNot(ITuple tuple) {
- return !this.children.get(0).evaluate(tuple);
- }
-
- @Override
- public Collection<String> getValues() {
- return Collections.emptyList();
- }
-
- @Override
- public boolean isEvaluable() {
- return true;
- }
-
- @Override
- public byte[] serialize() {
- return new byte[0];
- }
-
- @Override
- public void deserialize(byte[] bytes) {
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/filter/TupleFilter.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/filter/TupleFilter.java b/storage/src/main/java/com/kylinolap/storage/filter/TupleFilter.java
deleted file mode 100644
index 69a9399..0000000
--- a/storage/src/main/java/com/kylinolap/storage/filter/TupleFilter.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright 2013-2014 eBay Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.kylinolap.storage.filter;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import com.google.common.collect.Maps;
-import com.kylinolap.storage.tuple.ITuple;
-
-/**
- *
- * @author xjiang
- *
- */
-public abstract class TupleFilter {
-
- public enum FilterOperatorEnum {
- EQ(1), NEQ(2), GT(3), LT(4), GTE(5), LTE(6), ISNULL(7), ISNOTNULL(8), IN(9), NOTIN(10), AND(20), OR(21), NOT(22), COLUMN(30), CONSTANT(31), DYNAMIC(32), EXTRACT(33), CASE(34);
-
- private final int value;
-
- private FilterOperatorEnum(int v) {
- this.value = v;
- }
-
- public int getValue() {
- return this.value;
- }
- }
-
- public static final int BUFFER_SIZE = 10240;
-
- protected static final Map<FilterOperatorEnum, FilterOperatorEnum> REVERSE_OP_MAP = Maps.newHashMap();
- protected static final Map<FilterOperatorEnum, FilterOperatorEnum> SWAP_OP_MAP = Maps.newHashMap();
-
- static {
- REVERSE_OP_MAP.put(FilterOperatorEnum.EQ, FilterOperatorEnum.NEQ);
- REVERSE_OP_MAP.put(FilterOperatorEnum.NEQ, FilterOperatorEnum.EQ);
- REVERSE_OP_MAP.put(FilterOperatorEnum.GT, FilterOperatorEnum.LTE);
- REVERSE_OP_MAP.put(FilterOperatorEnum.LTE, FilterOperatorEnum.GT);
- REVERSE_OP_MAP.put(FilterOperatorEnum.LT, FilterOperatorEnum.GTE);
- REVERSE_OP_MAP.put(FilterOperatorEnum.GTE, FilterOperatorEnum.LT);
- REVERSE_OP_MAP.put(FilterOperatorEnum.IN, FilterOperatorEnum.NOTIN);
- REVERSE_OP_MAP.put(FilterOperatorEnum.NOTIN, FilterOperatorEnum.IN);
- REVERSE_OP_MAP.put(FilterOperatorEnum.ISNULL, FilterOperatorEnum.ISNOTNULL);
- REVERSE_OP_MAP.put(FilterOperatorEnum.ISNOTNULL, FilterOperatorEnum.ISNULL);
- REVERSE_OP_MAP.put(FilterOperatorEnum.AND, FilterOperatorEnum.OR);
- REVERSE_OP_MAP.put(FilterOperatorEnum.OR, FilterOperatorEnum.AND);
-
- SWAP_OP_MAP.put(FilterOperatorEnum.EQ, FilterOperatorEnum.EQ);
- SWAP_OP_MAP.put(FilterOperatorEnum.NEQ, FilterOperatorEnum.NEQ);
- SWAP_OP_MAP.put(FilterOperatorEnum.GT, FilterOperatorEnum.LT);
- SWAP_OP_MAP.put(FilterOperatorEnum.LTE, FilterOperatorEnum.GTE);
- SWAP_OP_MAP.put(FilterOperatorEnum.LT, FilterOperatorEnum.GT);
- SWAP_OP_MAP.put(FilterOperatorEnum.GTE, FilterOperatorEnum.LTE);
- }
-
- protected final List<TupleFilter> children;
- protected FilterOperatorEnum operator;
- protected boolean hasChildren;
-
- protected TupleFilter(List<TupleFilter> filters, FilterOperatorEnum op) {
- this.children = filters;
- this.operator = op;
- }
-
- public void addChild(TupleFilter child) {
- children.add(child);
- }
-
- final public void addChildren(List<? extends TupleFilter> children) {
- for (TupleFilter c : children)
- addChild(c); // subclass overrides addChild()
- }
-
- public List<? extends TupleFilter> getChildren() {
- return children;
- }
-
- public boolean hasChildren() {
- return children != null && !children.isEmpty();
- }
-
- public FilterOperatorEnum getOperator() {
- return operator;
- }
-
- public TupleFilter copy() {
- throw new UnsupportedOperationException();
- }
-
- public TupleFilter reverse() {
- throw new UnsupportedOperationException();
- }
-
- public TupleFilter flatFilter() {
- return flattenInternal(this);
- }
-
- private TupleFilter flattenInternal(TupleFilter filter) {
- TupleFilter flatFilter = null;
- if (!(filter instanceof LogicalTupleFilter)) {
- flatFilter = new LogicalTupleFilter(FilterOperatorEnum.AND);
- flatFilter.addChild(filter);
- return flatFilter;
- }
-
- // post-order recursive travel
- FilterOperatorEnum op = filter.getOperator();
- List<TupleFilter> andChildren = new LinkedList<TupleFilter>();
- List<TupleFilter> orChildren = new LinkedList<TupleFilter>();
- for (TupleFilter child : filter.getChildren()) {
- TupleFilter flatChild = flattenInternal(child);
- FilterOperatorEnum childOp = flatChild.getOperator();
- if (childOp == FilterOperatorEnum.AND) {
- andChildren.add(flatChild);
- } else if (childOp == FilterOperatorEnum.OR) {
- orChildren.add(flatChild);
- } else {
- throw new IllegalStateException("Filter is " + filter + " and child is " + flatChild);
- }
- }
-
- // boolean algebra flatten
- if (op == FilterOperatorEnum.AND) {
- flatFilter = new LogicalTupleFilter(FilterOperatorEnum.AND);
- for (TupleFilter andChild : andChildren) {
- flatFilter.addChildren(andChild.getChildren());
- }
- if (!orChildren.isEmpty()) {
- List<TupleFilter> fullAndFilters = cartesianProduct(orChildren, flatFilter);
- flatFilter = new LogicalTupleFilter(FilterOperatorEnum.OR);
- flatFilter.addChildren(fullAndFilters);
- }
- } else if (op == FilterOperatorEnum.OR) {
- flatFilter = new LogicalTupleFilter(FilterOperatorEnum.OR);
- for (TupleFilter orChild : orChildren) {
- flatFilter.addChildren(orChild.getChildren());
- }
- flatFilter.addChildren(andChildren);
- } else if (op == FilterOperatorEnum.NOT) {
- assert (filter.children.size() == 1);
- TupleFilter reverse = filter.children.get(0).reverse();
- flatFilter = flattenInternal(reverse);
- } else {
- throw new IllegalStateException("Filter is " + filter);
- }
- return flatFilter;
- }
-
- private List<TupleFilter> cartesianProduct(List<TupleFilter> leftOrFilters, TupleFilter partialAndFilter) {
- List<TupleFilter> oldProductFilters = new LinkedList<TupleFilter>();
- oldProductFilters.add(partialAndFilter);
- for (TupleFilter orFilter : leftOrFilters) {
- List<TupleFilter> newProductFilters = new LinkedList<TupleFilter>();
- for (TupleFilter orChildFilter : orFilter.getChildren()) {
- for (TupleFilter productFilter : oldProductFilters) {
- TupleFilter fullAndFilter = productFilter.copy();
- fullAndFilter.addChildren(orChildFilter.getChildren());
- newProductFilters.add(fullAndFilter);
- }
- }
- oldProductFilters = newProductFilters;
- }
- return oldProductFilters;
- }
-
- public abstract boolean isEvaluable();
-
- public abstract boolean evaluate(ITuple tuple);
-
- public abstract Collection<String> getValues();
-
- public abstract byte[] serialize();
-
- public abstract void deserialize(byte[] bytes);
-
- public static boolean isEvaluableRecursively(TupleFilter filter) {
- if (filter == null)
- return true;
-
- if (filter.isEvaluable() == false)
- return false;
-
- for (TupleFilter child : filter.getChildren()) {
- if (isEvaluableRecursively(child) == false)
- return false;
- }
- return true;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/filter/TupleFilterSerializer.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/filter/TupleFilterSerializer.java b/storage/src/main/java/com/kylinolap/storage/filter/TupleFilterSerializer.java
deleted file mode 100644
index 3a3fc03..0000000
--- a/storage/src/main/java/com/kylinolap/storage/filter/TupleFilterSerializer.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright 2013-2014 eBay Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.kylinolap.storage.filter;
-
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Stack;
-
-import com.kylinolap.common.util.BytesUtil;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
-
-/**
- * http://eli.thegreenplace.net/2011/09/29/an-interesting-tree-serialization-algorithm-from-dwarf
- *
- * @author xjiang
- *
- */
-public class TupleFilterSerializer {
-
- public static interface Decorator {
- TupleFilter onSerialize(TupleFilter filter);
- }
-
- private static final int BUFFER_SIZE = 65536;
- private static final Map<Integer, FilterOperatorEnum> ID_OP_MAP = new HashMap<Integer, FilterOperatorEnum>();
-
- static {
- for (FilterOperatorEnum op : FilterOperatorEnum.values()) {
- ID_OP_MAP.put(op.getValue(), op);
- }
- }
-
- public static byte[] serialize(TupleFilter rootFilter) {
- return serialize(rootFilter, null);
- }
-
- public static byte[] serialize(TupleFilter rootFilter, Decorator decorator) {
- ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);
- internalSerialize(rootFilter, decorator, buffer);
- byte[] result = new byte[buffer.position()];
- System.arraycopy(buffer.array(), 0, result, 0, buffer.position());
- return result;
- }
-
- private static void internalSerialize(TupleFilter filter, Decorator decorator, ByteBuffer buffer) {
- if (decorator != null) { // give decorator a chance to manipulate the
- // output filter
- filter = decorator.onSerialize(filter);
- }
-
- if (filter == null) {
- return;
- }
-
- if (filter.hasChildren()) {
- // serialize filter+true
- serializeFilter(1, filter, decorator, buffer);
- // serialize children
- for (TupleFilter child : filter.getChildren()) {
- internalSerialize(child, decorator, buffer);
- }
- // serialize none
- serializeFilter(-1, filter, decorator, buffer);
- } else {
- // serialize filter+false
- serializeFilter(0, filter, decorator, buffer);
- }
- }
-
- private static void serializeFilter(int flag, TupleFilter filter, Decorator decorator, ByteBuffer buffer) {
- if (flag < 0) {
- BytesUtil.writeVInt(-1, buffer);
- } else {
- byte[] bytes = filter.serialize();
- int opVal = filter.getOperator().getValue();
- BytesUtil.writeVInt(opVal, buffer);
- BytesUtil.writeByteArray(bytes, buffer);
- BytesUtil.writeVInt(flag, buffer);
- }
- }
-
- public static TupleFilter deserialize(byte[] bytes) {
- ByteBuffer buffer = ByteBuffer.wrap(bytes);
- TupleFilter rootFilter = null;
- Stack<TupleFilter> parentStack = new Stack<TupleFilter>();
- while (buffer.hasRemaining()) {
- int opVal = BytesUtil.readVInt(buffer);
- if (opVal < 0) {
- parentStack.pop();
- continue;
- }
-
- // deserialize filter
- TupleFilter filter = createTupleFilter(opVal);
- byte[] filetrBytes = BytesUtil.readByteArray(buffer);
- filter.deserialize(filetrBytes);
-
- if (rootFilter == null) {
- // push root to stack
- rootFilter = filter;
- parentStack.push(filter);
- BytesUtil.readVInt(buffer);
- continue;
- }
-
- // add filter to parent
- TupleFilter parentFilter = parentStack.peek();
- if (parentFilter != null) {
- parentFilter.addChild(filter);
- }
-
- // push filter to stack or not based on having children or not
- int hasChild = BytesUtil.readVInt(buffer);
- if (hasChild == 1) {
- parentStack.push(filter);
- }
- }
- return rootFilter;
- }
-
- private static TupleFilter createTupleFilter(int opVal) {
- FilterOperatorEnum op = ID_OP_MAP.get(opVal);
- if (op == null) {
- throw new IllegalStateException("operator value is " + opVal);
- }
- TupleFilter filter = null;
- switch (op) {
- case AND:
- case OR:
- case NOT:
- filter = new LogicalTupleFilter(op);
- break;
- case EQ:
- case NEQ:
- case LT:
- case LTE:
- case GT:
- case GTE:
- case IN:
- case ISNULL:
- case ISNOTNULL:
- filter = new CompareTupleFilter(op);
- break;
- case EXTRACT:
- filter = new ExtractTupleFilter(op);
- break;
- case CASE:
- filter = new CaseTupleFilter();
- break;
- case COLUMN:
- filter = new ColumnTupleFilter(null);
- break;
- case CONSTANT:
- filter = new ConstantTupleFilter();
- break;
- case DYNAMIC:
- filter = new DynamicTupleFilter(null);
- break;
- default:
- throw new IllegalStateException("Error FilterOperatorEnum: " + op.getValue());
- }
-
- return filter;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/ColumnValueRange.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/ColumnValueRange.java b/storage/src/main/java/com/kylinolap/storage/hbase/ColumnValueRange.java
index 4033a9e..8305475 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/ColumnValueRange.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/ColumnValueRange.java
@@ -22,7 +22,7 @@ import java.util.Set;
import com.google.common.collect.Sets;
import com.kylinolap.cube.kv.RowKeyColumnOrder;
import com.kylinolap.metadata.model.TblColRef;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
/**
*
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/ConcurrentHBaseTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/ConcurrentHBaseTupleIterator.java b/storage/src/main/java/com/kylinolap/storage/hbase/ConcurrentHBaseTupleIterator.java
index ff6ac6d..e920eeb 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/ConcurrentHBaseTupleIterator.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/ConcurrentHBaseTupleIterator.java
@@ -69,8 +69,8 @@ import com.kylinolap.metadata.model.MeasureDesc;
import com.kylinolap.cube.model.CubeDesc.DeriveInfo;
import com.kylinolap.metadata.model.TblColRef;
import com.kylinolap.storage.StorageContext;
-import com.kylinolap.storage.filter.TupleFilter;
-import com.kylinolap.storage.tuple.ITupleIterator;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.tuple.ITupleIterator;
import com.kylinolap.storage.tuple.Tuple;
import com.kylinolap.storage.tuple.Tuple.IDerivedColumnFiller;
import com.kylinolap.storage.tuple.TupleInfo;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/CubeSegmentTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/CubeSegmentTupleIterator.java b/storage/src/main/java/com/kylinolap/storage/hbase/CubeSegmentTupleIterator.java
index 60eebd4..eed280e 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/CubeSegmentTupleIterator.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/CubeSegmentTupleIterator.java
@@ -56,8 +56,8 @@ import com.kylinolap.metadata.model.MeasureDesc;
import com.kylinolap.cube.model.CubeDesc.DeriveInfo;
import com.kylinolap.metadata.model.TblColRef;
import com.kylinolap.storage.StorageContext;
-import com.kylinolap.storage.filter.TupleFilter;
-import com.kylinolap.storage.tuple.ITupleIterator;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.tuple.ITupleIterator;
import com.kylinolap.storage.tuple.Tuple;
import com.kylinolap.storage.tuple.Tuple.IDerivedColumnFiller;
import com.kylinolap.storage.tuple.TupleInfo;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/CubeStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/CubeStorageEngine.java b/storage/src/main/java/com/kylinolap/storage/hbase/CubeStorageEngine.java
index 9000666..117ad20 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/CubeStorageEngine.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/CubeStorageEngine.java
@@ -43,12 +43,12 @@ import com.kylinolap.cube.model.CubeDesc.DeriveInfo;
import com.kylinolap.dict.lookup.LookupStringTable;
import com.kylinolap.storage.IStorageEngine;
import com.kylinolap.storage.StorageContext;
-import com.kylinolap.storage.filter.ColumnTupleFilter;
-import com.kylinolap.storage.filter.CompareTupleFilter;
-import com.kylinolap.storage.filter.LogicalTupleFilter;
-import com.kylinolap.storage.filter.TupleFilter;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
-import com.kylinolap.storage.tuple.ITupleIterator;
+import com.kylinolap.metadata.filter.ColumnTupleFilter;
+import com.kylinolap.metadata.filter.CompareTupleFilter;
+import com.kylinolap.metadata.filter.LogicalTupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.tuple.ITupleIterator;
/**
* @author xjiang, yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/DerivedFilterTranslator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/DerivedFilterTranslator.java b/storage/src/main/java/com/kylinolap/storage/hbase/DerivedFilterTranslator.java
index bc6b30e..20bf9ce 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/DerivedFilterTranslator.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/DerivedFilterTranslator.java
@@ -29,13 +29,13 @@ import com.kylinolap.cube.model.CubeDesc.DeriveInfo;
import com.kylinolap.cube.model.CubeDesc.DeriveType;
import com.kylinolap.dict.lookup.LookupStringTable;
import com.kylinolap.metadata.model.TblColRef;
-import com.kylinolap.storage.filter.ColumnTupleFilter;
-import com.kylinolap.storage.filter.CompareTupleFilter;
-import com.kylinolap.storage.filter.ConstantTupleFilter;
-import com.kylinolap.storage.filter.LogicalTupleFilter;
-import com.kylinolap.storage.filter.TupleFilter;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
-import com.kylinolap.storage.tuple.ITuple;
+import com.kylinolap.metadata.filter.ColumnTupleFilter;
+import com.kylinolap.metadata.filter.CompareTupleFilter;
+import com.kylinolap.metadata.filter.ConstantTupleFilter;
+import com.kylinolap.metadata.filter.LogicalTupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.tuple.ITuple;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/InvertedIndexStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/InvertedIndexStorageEngine.java b/storage/src/main/java/com/kylinolap/storage/hbase/InvertedIndexStorageEngine.java
index c00c802..add6bfe 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/InvertedIndexStorageEngine.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/InvertedIndexStorageEngine.java
@@ -28,7 +28,7 @@ import com.kylinolap.storage.IStorageEngine;
import com.kylinolap.storage.StorageContext;
import com.kylinolap.storage.hbase.coprocessor.endpoint.EndpointTupleIterator;
import com.kylinolap.metadata.realization.SQLDigest;
-import com.kylinolap.storage.tuple.ITupleIterator;
+import com.kylinolap.metadata.tuple.ITupleIterator;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/SerializedHBaseTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/SerializedHBaseTupleIterator.java b/storage/src/main/java/com/kylinolap/storage/hbase/SerializedHBaseTupleIterator.java
index c2f4ab0..ba7d9b0 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/SerializedHBaseTupleIterator.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/SerializedHBaseTupleIterator.java
@@ -31,9 +31,9 @@ import com.kylinolap.cube.CubeSegment;
import com.kylinolap.cube.kv.RowValueDecoder;
import com.kylinolap.metadata.model.TblColRef;
import com.kylinolap.storage.StorageContext;
-import com.kylinolap.storage.filter.TupleFilter;
-import com.kylinolap.storage.tuple.ITuple;
-import com.kylinolap.storage.tuple.ITupleIterator;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.tuple.ITuple;
+import com.kylinolap.metadata.tuple.ITupleIterator;
/**
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/CoprocessorFilter.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/CoprocessorFilter.java b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/CoprocessorFilter.java
index 6836283..983335d 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/CoprocessorFilter.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/CoprocessorFilter.java
@@ -28,14 +28,14 @@ import com.kylinolap.cube.CubeSegment;
import com.kylinolap.cube.kv.RowKeyColumnIO;
import com.kylinolap.dict.Dictionary;
import com.kylinolap.metadata.model.TblColRef;
-import com.kylinolap.storage.filter.ColumnTupleFilter;
-import com.kylinolap.storage.filter.CompareTupleFilter;
-import com.kylinolap.storage.filter.ConstantTupleFilter;
-import com.kylinolap.storage.filter.TupleFilter;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
-import com.kylinolap.storage.filter.TupleFilterSerializer;
-import com.kylinolap.storage.filter.TupleFilterSerializer.Decorator;
-import com.kylinolap.storage.tuple.ITuple;
+import com.kylinolap.metadata.filter.ColumnTupleFilter;
+import com.kylinolap.metadata.filter.CompareTupleFilter;
+import com.kylinolap.metadata.filter.ConstantTupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.filter.TupleFilterSerializer;
+import com.kylinolap.metadata.filter.TupleFilterSerializer.Decorator;
+import com.kylinolap.metadata.tuple.ITuple;
/**
* @author yangli9
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
index 53e848f..33f33b6 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
@@ -22,15 +22,15 @@ import com.kylinolap.metadata.model.DataType;
import com.kylinolap.metadata.model.FunctionDesc;
import com.kylinolap.metadata.model.TblColRef;
import com.kylinolap.storage.StorageContext;
-import com.kylinolap.storage.filter.ConstantTupleFilter;
-import com.kylinolap.storage.filter.TupleFilter;
+import com.kylinolap.metadata.filter.ConstantTupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
import com.kylinolap.storage.hbase.coprocessor.CoprocessorFilter;
import com.kylinolap.storage.hbase.coprocessor.CoprocessorProjector;
import com.kylinolap.storage.hbase.coprocessor.CoprocessorRowType;
import com.kylinolap.storage.hbase.coprocessor.endpoint.generated.IIProtos;
import com.kylinolap.storage.hbase.coprocessor.endpoint.generated.IIProtos.IIResponse.IIRow;
-import com.kylinolap.storage.tuple.ITuple;
-import com.kylinolap.storage.tuple.ITupleIterator;
+import com.kylinolap.metadata.tuple.ITuple;
+import com.kylinolap.metadata.tuple.ITupleIterator;
import com.kylinolap.storage.tuple.Tuple;
import com.kylinolap.storage.tuple.TupleInfo;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverEnabler.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverEnabler.java b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverEnabler.java
index e1d1925..8f6d74d 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverEnabler.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverEnabler.java
@@ -39,7 +39,7 @@ import com.kylinolap.cube.cuboid.Cuboid;
import com.kylinolap.cube.kv.RowValueDecoder;
import com.kylinolap.metadata.model.TblColRef;
import com.kylinolap.storage.StorageContext;
-import com.kylinolap.storage.filter.TupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
import com.kylinolap.storage.hbase.RegionScannerAdapter;
import com.kylinolap.storage.hbase.ResultScannerAdapter;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverTuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverTuple.java b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverTuple.java
index f2301b6..6725958 100644
--- a/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverTuple.java
+++ b/storage/src/main/java/com/kylinolap/storage/hbase/coprocessor/observer/ObserverTuple.java
@@ -23,7 +23,7 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import com.kylinolap.dict.Dictionary;
import com.kylinolap.metadata.model.TblColRef;
-import com.kylinolap.storage.tuple.ITuple;
+import com.kylinolap.metadata.tuple.ITuple;
/**
* A special kind of tuple that exposes column value (dictionary ID) directly on
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/tuple/ITuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/tuple/ITuple.java b/storage/src/main/java/com/kylinolap/storage/tuple/ITuple.java
deleted file mode 100644
index 3d77154..0000000
--- a/storage/src/main/java/com/kylinolap/storage/tuple/ITuple.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2013-2014 eBay Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.kylinolap.storage.tuple;
-
-import java.util.List;
-
-import com.kylinolap.metadata.model.TblColRef;
-
-/**
- * Tuple is a record row, contains multiple values being lookup by either field
- * (optiq notion) or column (kylin notion).
- *
- * @author yangli9
- */
-public interface ITuple {
-
- public List<String> getAllFields();
-
- public List<TblColRef> getAllColumns();
-
- public Object[] getAllValues();
-
- public Object getValue(TblColRef col);
-
- public Object getValue(String field);
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/tuple/ITupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/tuple/ITupleIterator.java b/storage/src/main/java/com/kylinolap/storage/tuple/ITupleIterator.java
deleted file mode 100644
index af20d2a..0000000
--- a/storage/src/main/java/com/kylinolap/storage/tuple/ITupleIterator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2013-2014 eBay Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.kylinolap.storage.tuple;
-
-/**
- * @author xjiang
- */
-public interface ITupleIterator {
- public static final ITupleIterator EMPTY_TUPLE_ITERATOR = new ITupleIterator() {
- @Override
- public boolean hasNext() {
- return false;
- }
-
- @Override
- public Tuple next() {
- return null;
- }
-
- @Override
- public void close() {
- }
- };
-
- public boolean hasNext();
-
- public ITuple next();
-
- public void close();
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/main/java/com/kylinolap/storage/tuple/Tuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/com/kylinolap/storage/tuple/Tuple.java b/storage/src/main/java/com/kylinolap/storage/tuple/Tuple.java
index b342429..1351a09 100644
--- a/storage/src/main/java/com/kylinolap/storage/tuple/Tuple.java
+++ b/storage/src/main/java/com/kylinolap/storage/tuple/Tuple.java
@@ -26,6 +26,7 @@ import com.kylinolap.cube.model.CubeDesc.DeriveInfo;
import com.kylinolap.dict.DateStrDictionary;
import com.kylinolap.dict.lookup.LookupStringTable;
import com.kylinolap.metadata.model.TblColRef;
+import com.kylinolap.metadata.tuple.ITuple;
/**
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/test/java/com/kylinolap/storage/filter/BitMapFilterEvaluatorTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/com/kylinolap/storage/filter/BitMapFilterEvaluatorTest.java b/storage/src/test/java/com/kylinolap/storage/filter/BitMapFilterEvaluatorTest.java
index fedba0b..5d3f012 100644
--- a/storage/src/test/java/com/kylinolap/storage/filter/BitMapFilterEvaluatorTest.java
+++ b/storage/src/test/java/com/kylinolap/storage/filter/BitMapFilterEvaluatorTest.java
@@ -1,11 +1,11 @@
package com.kylinolap.storage.filter;
-import static org.junit.Assert.*;
-
import java.util.ArrayList;
import com.kylinolap.dict.Dictionary;
+import com.kylinolap.metadata.filter.*;
import org.junit.Test;
+import static org.junit.Assert.*;
import it.uniroma3.mat.extendedset.intset.ConciseSet;
@@ -14,7 +14,7 @@ import com.kylinolap.metadata.model.ColumnDesc;
import com.kylinolap.metadata.model.TableDesc;
import com.kylinolap.metadata.model.TblColRef;
import com.kylinolap.storage.filter.BitMapFilterEvaluator.BitMapProvider;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
public class BitMapFilterEvaluatorTest {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/test/java/com/kylinolap/storage/filter/FilterBaseTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/com/kylinolap/storage/filter/FilterBaseTest.java b/storage/src/test/java/com/kylinolap/storage/filter/FilterBaseTest.java
index cb22bf0..05e6f81 100644
--- a/storage/src/test/java/com/kylinolap/storage/filter/FilterBaseTest.java
+++ b/storage/src/test/java/com/kylinolap/storage/filter/FilterBaseTest.java
@@ -21,10 +21,11 @@ import java.util.Collection;
import java.util.List;
import java.util.Random;
+import com.kylinolap.metadata.filter.*;
import com.kylinolap.metadata.model.ColumnDesc;
import com.kylinolap.metadata.model.TableDesc;
import com.kylinolap.metadata.model.TblColRef;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
import com.kylinolap.storage.tuple.Tuple;
import com.kylinolap.storage.tuple.TupleInfo;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/test/java/com/kylinolap/storage/filter/FilterEvaluateTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/com/kylinolap/storage/filter/FilterEvaluateTest.java b/storage/src/test/java/com/kylinolap/storage/filter/FilterEvaluateTest.java
index c4b77c5..0eadee3 100644
--- a/storage/src/test/java/com/kylinolap/storage/filter/FilterEvaluateTest.java
+++ b/storage/src/test/java/com/kylinolap/storage/filter/FilterEvaluateTest.java
@@ -21,6 +21,8 @@ import static org.junit.Assert.*;
import java.util.Collection;
import java.util.List;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.filter.TupleFilterSerializer;
import org.junit.Test;
import com.kylinolap.metadata.model.TblColRef;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/test/java/com/kylinolap/storage/filter/FilterSerializeTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/com/kylinolap/storage/filter/FilterSerializeTest.java b/storage/src/test/java/com/kylinolap/storage/filter/FilterSerializeTest.java
index c948dbd..a84a8a5 100644
--- a/storage/src/test/java/com/kylinolap/storage/filter/FilterSerializeTest.java
+++ b/storage/src/test/java/com/kylinolap/storage/filter/FilterSerializeTest.java
@@ -19,12 +19,15 @@ package com.kylinolap.storage.filter;
import java.util.ArrayList;
import java.util.List;
+import com.kylinolap.metadata.filter.LogicalTupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.filter.TupleFilterSerializer;
import org.junit.Test;
import com.kylinolap.metadata.model.ColumnDesc;
import com.kylinolap.metadata.model.TableDesc;
import com.kylinolap.metadata.model.TblColRef;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
/**
* @author xjiang
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/test/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java b/storage/src/test/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
index 672f037..1a4301e 100644
--- a/storage/src/test/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
+++ b/storage/src/test/java/com/kylinolap/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
@@ -10,10 +10,10 @@ import com.kylinolap.invertedindex.index.TableRecordInfo;
import com.kylinolap.metadata.MetadataManager;
import com.kylinolap.metadata.measure.MeasureAggregator;
import com.kylinolap.metadata.model.*;
-import com.kylinolap.storage.filter.ColumnTupleFilter;
-import com.kylinolap.storage.filter.CompareTupleFilter;
-import com.kylinolap.storage.filter.ConstantTupleFilter;
-import com.kylinolap.storage.filter.TupleFilter;
+import com.kylinolap.metadata.filter.ColumnTupleFilter;
+import com.kylinolap.metadata.filter.CompareTupleFilter;
+import com.kylinolap.metadata.filter.ConstantTupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
import com.kylinolap.storage.hbase.coprocessor.CoprocessorFilter;
import com.kylinolap.storage.hbase.coprocessor.CoprocessorProjector;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/94352aec/storage/src/test/java/com/kylinolap/storage/test/StorageTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/com/kylinolap/storage/test/StorageTest.java b/storage/src/test/java/com/kylinolap/storage/test/StorageTest.java
index 1573d34..e1cf96f 100644
--- a/storage/src/test/java/com/kylinolap/storage/test/StorageTest.java
+++ b/storage/src/test/java/com/kylinolap/storage/test/StorageTest.java
@@ -18,8 +18,10 @@ package com.kylinolap.storage.test;
import static org.junit.Assert.*;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import com.kylinolap.metadata.realization.SQLDigest;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
@@ -40,15 +42,15 @@ import com.kylinolap.metadata.model.TblColRef;
import com.kylinolap.storage.IStorageEngine;
import com.kylinolap.storage.StorageContext;
import com.kylinolap.storage.StorageEngineFactory;
-import com.kylinolap.storage.filter.ColumnTupleFilter;
-import com.kylinolap.storage.filter.CompareTupleFilter;
-import com.kylinolap.storage.filter.ConstantTupleFilter;
-import com.kylinolap.storage.filter.LogicalTupleFilter;
-import com.kylinolap.storage.filter.TupleFilter;
-import com.kylinolap.storage.filter.TupleFilter.FilterOperatorEnum;
+import com.kylinolap.metadata.filter.ColumnTupleFilter;
+import com.kylinolap.metadata.filter.CompareTupleFilter;
+import com.kylinolap.metadata.filter.ConstantTupleFilter;
+import com.kylinolap.metadata.filter.LogicalTupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter;
+import com.kylinolap.metadata.filter.TupleFilter.FilterOperatorEnum;
import com.kylinolap.storage.hbase.ScanOutOfLimitException;
-import com.kylinolap.storage.tuple.ITuple;
-import com.kylinolap.storage.tuple.ITupleIterator;
+import com.kylinolap.metadata.tuple.ITuple;
+import com.kylinolap.metadata.tuple.ITupleIterator;
public class StorageTest extends HBaseMetadataTestCase {
@@ -146,7 +148,8 @@ public class StorageTest extends HBaseMetadataTestCase {
int count = 0;
ITupleIterator iterator = null;
try {
- iterator = storageEngine.search(groups, filter, groups, aggregations, context);
+ SQLDigest sqlDigest = new SQLDigest("default.test_kylin_fact", filter, null, Collections.<TblColRef> emptySet(), groups, Collections.<TblColRef> emptySet(), Collections.<TblColRef> emptySet(), aggregations);
+ iterator = storageEngine.search(context, sqlDigest);
while (iterator.hasNext()) {
ITuple tuple = iterator.next();
System.out.println("Tuple = " + tuple);