Repository: kylin
Updated Branches:
  refs/heads/KYLIN-1971 2a123891e -> 1c278f368 (forced update)


KYLIN-1971 refactor, retire ColumnDesc.getRef()


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/cde08cdd
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/cde08cdd
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/cde08cdd

Branch: refs/heads/KYLIN-1971
Commit: cde08cdda69aa00e991b2a3260f2bcb3ad9160c2
Parents: e119cc9
Author: Yang Li <liy...@apache.org>
Authored: Sat Oct 22 19:28:27 2016 +0800
Committer: Yang Li <liy...@apache.org>
Committed: Sat Oct 22 20:47:26 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/job/DeployUtil.java   | 19 ++---
 .../kylin/job/dataGen/FactTableGenerator.java   | 11 ++-
 .../kylin/cube/CubeCapabilityChecker.java       | 12 +--
 .../org/apache/kylin/cube/model/CubeDesc.java   |  5 +-
 .../kylin/cube/model/v1_4_0/CubeDesc.java       |  8 +-
 .../java/org/apache/kylin/gridtable/GTUtil.java |  4 +-
 .../metadata/filter/ColumnTupleFilter.java      | 85 ++++++++++++++------
 .../apache/kylin/metadata/model/ColumnDesc.java | 10 ---
 .../kylin/metadata/model/DataModelDesc.java     | 10 +--
 .../kylin/metadata/model/PartitionDesc.java     | 23 +-----
 .../apache/kylin/metadata/model/TableRef.java   |  6 ++
 .../apache/kylin/metadata/model/TblColRef.java  | 21 +++--
 .../apache/kylin/storage/StorageMockUtils.java  | 17 ++--
 .../storage/gtrecord/DictGridTableTest.java     | 16 ++--
 .../storage/translate/ColumnValueRangeTest.java | 22 +----
 .../apache/kylin/source/kafka/KafkaMRInput.java | 30 +++----
 .../source/kafka/TimedJsonStreamParserTest.java | 44 +++-------
 .../common/coprocessor/CoprocessorRowType.java  |  2 +-
 .../hbase/common/FuzzyValueCombinationTest.java |  4 +-
 .../TimeConditionLiteralsReplacerTest.java      |  4 +-
 .../common/coprocessor/FilterBaseTest.java      | 11 +--
 .../observer/AggregateRegionObserverTest.java   |  5 +-
 22 files changed, 159 insertions(+), 210 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
----------------------------------------------------------------------
diff --git a/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java 
b/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
index be9b2a9..4a24ad2 100644
--- a/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
+++ b/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
@@ -18,7 +18,13 @@
 
 package org.apache.kylin.job;
 
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
 import java.nio.ByteBuffer;
 import java.util.List;
 
@@ -37,6 +43,7 @@ import 
org.apache.kylin.job.streaming.StreamingTableDataGenerator;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TableRef;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.source.hive.HiveClient;
 import org.apache.kylin.source.hive.HiveCmdBuilder;
@@ -48,9 +55,6 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Lists;
 
-import kafka.message.Message;
-import kafka.message.MessageAndOffset;
-
 public class DeployUtil {
     private static final Logger logger = 
LoggerFactory.getLogger(DeployUtil.class);
 
@@ -146,16 +150,13 @@ public class DeployUtil {
     public static void prepareTestDataForStreamingCube(long startTime, long 
endTime, int numberOfRecords, String cubeName, StreamDataLoader 
streamDataLoader) throws IOException {
         CubeInstance cubeInstance = 
CubeManager.getInstance(KylinConfig.getInstanceFromEnv()).getCube(cubeName);
         List<String> data = 
StreamingTableDataGenerator.generate(numberOfRecords, startTime, endTime, 
cubeInstance.getFactTable());
-        TableDesc tableDesc = cubeInstance.getFactTableDesc();
         //load into kafka
         streamDataLoader.loadIntoKafka(data);
         logger.info("Write {} messages into {}", data.size(), 
streamDataLoader.toString());
 
         //csv data for H2 use
-        List<TblColRef> tableColumns = Lists.newArrayList();
-        for (ColumnDesc columnDesc : tableDesc.getColumns()) {
-            tableColumns.add(columnDesc.getRef());
-        }
+        TableRef factTable = cubeInstance.getDataModelDesc().getFactTableRef();
+        List<TblColRef> tableColumns = 
Lists.newArrayList(factTable.getColumns());
         TimedJsonStreamParser timedJsonStreamParser = new 
TimedJsonStreamParser(tableColumns, null);
         StringBuilder sb = new StringBuilder();
         for (String json : data) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
----------------------------------------------------------------------
diff --git 
a/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java 
b/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
index 5aac4de..ce5d8c4 100644
--- 
a/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
+++ 
b/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
@@ -555,14 +555,13 @@ public class FactTableGenerator {
     }
 
     private LinkedList<String> createRow(TreeMap<String, String> 
factTableCol2LookupCol, TreeSet<String> usedCols, TreeSet<String> 
defaultColumns) throws Exception {
-        KylinConfig config = KylinConfig.getInstanceFromEnv();
         LinkedList<String> columnValues = new LinkedList<String>();
 
         long currentRowTime = -1;
 
-        for (ColumnDesc cDesc : 
MetadataManager.getInstance(config).getTableDesc(factTableName).getColumns()) {
+        for (TblColRef col : 
cube.getDataModelDesc().getFactTableRef().getColumns()) {
 
-            String colName = cDesc.getName();
+            String colName = col.getName();
 
             if (factTableCol2LookupCol.containsKey(colName)) {
 
@@ -572,15 +571,15 @@ public class FactTableGenerator {
                 columnValues.add(candidates.get(r.nextInt(candidates.size())));
             } else if (usedCols.contains(colName)) {
                 // if the current column is a metric or dimension column in 
fact table
-                columnValues.add(createCell(cDesc));
+                columnValues.add(createCell(col.getColumnDesc()));
             } else {
 
                 // otherwise this column is not useful in OLAP
-                columnValues.add(createDefaultsCell(cDesc.getTypeName()));
+                
columnValues.add(createDefaultsCell(col.getColumnDesc().getTypeName()));
                 defaultColumns.add(colName);
             }
 
-            if 
(cDesc.getRef().equals(this.cube.getDescriptor().getModel().getPartitionDesc().getPartitionDateColumnRef()))
 {
+            if 
(col.equals(cube.getDataModelDesc().getPartitionDesc().getPartitionDateColumnRef()))
 {
                 currentRowTime = 
format.parse(columnValues.get(columnValues.size() - 1)).getTime();
             }
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
----------------------------------------------------------------------
diff --git 
a/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java 
b/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
index 1eada16..24f15e0 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
@@ -25,22 +25,18 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.measure.MeasureType;
 import org.apache.kylin.measure.basic.BasicMeasureType;
-import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.filter.UDF.MassInTupleFilter;
-import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.IStorageAware;
 import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.ParameterDesc;
-import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.realization.CapabilityResult;
-import org.apache.kylin.metadata.realization.SQLDigest;
 import 
org.apache.kylin.metadata.realization.CapabilityResult.CapabilityInfluence;
+import org.apache.kylin.metadata.realization.SQLDigest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -82,11 +78,7 @@ public class CubeCapabilityChecker {
             } else {
                 //deal with query on lookup table, like 
https://issues.apache.org/jira/browse/KYLIN-2030
                 if 
(cube.getSegments().get(0).getSnapshots().containsKey(digest.factTable)) {
-                    TableDesc tableDesc = 
MetadataManager.getInstance(KylinConfig.getInstanceFromEnv()).getTableDesc(digest.factTable);
-                    Set<TblColRef> dimCols = Sets.newHashSet();
-                    for (ColumnDesc columnDesc : tableDesc.getColumns()) {
-                        dimCols.add(columnDesc.getRef());
-                    }
+                    Set<TblColRef> dimCols = 
Sets.newHashSet(cube.getDataModelDesc().getFactTableRef().getColumns());
                     tryDimensionAsMeasures(unmatchedAggregations, digest, 
cube, result, dimCols);
                 } else {
                     logger.info("Skip tryDimensionAsMeasures because current 
cube {} does not touch lookup table {} at all", cube.getName(), 
digest.factTable);

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java 
b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
index bfb51d0..5c73f21 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
@@ -61,7 +61,6 @@ import org.apache.kylin.metadata.model.IStorageAware;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.kylin.metadata.model.TableRef;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -785,9 +784,7 @@ public class CubeDesc extends RootPersistentEntity 
implements IEngineAware {
     }
 
     private TblColRef initDimensionColRef(DimensionDesc dim, String colName) {
-        TableRef table = dim.getTableRef();
-        TblColRef col = table.getColumn(colName);
-        checkArgument(col != null, "No column '%s' found in table %s", 
colName, table);
+        TblColRef col = model.findColumn(dim.getTable(), colName);
 
         // always use FK instead PK, FK could be shared by more than one 
lookup tables
         JoinDesc join = dim.getJoin();

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java
----------------------------------------------------------------------
diff --git 
a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java 
b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java
index 24c9ceb..fb2998a 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java
@@ -44,7 +44,6 @@ import org.apache.kylin.common.util.CaseInsensitiveStringMap;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.IEngineAware;
@@ -607,12 +606,7 @@ public class CubeDesc extends RootPersistentEntity {
     }
 
     private TblColRef initDimensionColRef(DimensionDesc dim, String colName) {
-        TableDesc table = dim.getTableDesc();
-        ColumnDesc col = table.findColumnByName(colName);
-        if (col == null)
-            throw new IllegalArgumentException("No column '" + colName + "' 
found in table " + table);
-
-        TblColRef ref = col.getRef();
+        TblColRef ref = model.findColumn(dim.getTable(), colName);
 
         // always use FK instead PK, FK could be shared by more than one 
lookup tables
         JoinDesc join = dim.getJoin();

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java 
b/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java
index 8d310a3..a4e574c 100644
--- a/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java
+++ b/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java
@@ -31,7 +31,6 @@ import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.IFilterCodeSystem;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilterSerializer;
-import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 
@@ -42,8 +41,7 @@ public class GTUtil {
     static final TableDesc MOCKUP_TABLE = TableDesc.mockup("GT_MOCKUP_TABLE");
 
     static TblColRef tblColRef(int col, String datatype) {
-        ColumnDesc desc = ColumnDesc.mockup(MOCKUP_TABLE, col + 1, "" + col, 
datatype);
-        return desc.getRef();
+        return TblColRef.mockup(MOCKUP_TABLE, col + 1, "" + col, datatype);
     }
 
     public static byte[] serializeGTFilter(TupleFilter gtFilter, GTInfo info) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
index 8c5e989..c8a8f07 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/filter/ColumnTupleFilter.java
@@ -24,9 +24,13 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.BytesUtil;
+import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TableRef;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.IEvaluatableTuple;
 
@@ -37,6 +41,8 @@ import org.apache.kylin.metadata.tuple.IEvaluatableTuple;
  */
 public class ColumnTupleFilter extends TupleFilter {
 
+    private static final String _QUALIFIED_ = "_QUALIFIED_";
+    
     private TblColRef columnRef;
     private Object tupleValue;
     private List<Object> values;
@@ -85,36 +91,67 @@ public class ColumnTupleFilter extends TupleFilter {
 
     @Override
     public void serialize(IFilterCodeSystem<?> cs, ByteBuffer buffer) {
-        String table = columnRef.getTable();
-        BytesUtil.writeUTFString(table, buffer);
-
-        String columnId = columnRef.getColumnDesc().getId();
-        BytesUtil.writeUTFString(columnId, buffer);
-
-        String columnName = columnRef.getName();
-        BytesUtil.writeUTFString(columnName, buffer);
-
-        String dataType = columnRef.getDatatype();
-        BytesUtil.writeUTFString(dataType, buffer);
+        TableRef tableRef = columnRef.getTableRef();
+        
+        if (tableRef == null) {
+            // un-qualified column
+            String table = columnRef.getTable();
+            BytesUtil.writeUTFString(table, buffer);
+
+            String columnId = columnRef.getColumnDesc().getId();
+            BytesUtil.writeUTFString(columnId, buffer);
+
+            String columnName = columnRef.getName();
+            BytesUtil.writeUTFString(columnName, buffer);
+
+            String dataType = columnRef.getDatatype();
+            BytesUtil.writeUTFString(dataType, buffer);
+        } else {
+            // qualified column (from model)
+            BytesUtil.writeUTFString(_QUALIFIED_, buffer);
+            
+            String model = tableRef.getModel().getName();
+            BytesUtil.writeUTFString(model, buffer);
+            
+            String alias = tableRef.getAlias();
+            BytesUtil.writeUTFString(alias, buffer);
+            
+            String col = columnRef.getName();
+            BytesUtil.writeUTFString(col, buffer);
+        }
     }
 
     @Override
     public void deserialize(IFilterCodeSystem<?> cs, ByteBuffer buffer) {
 
-        TableDesc table = null;
-        ColumnDesc column = new ColumnDesc();
-
         String tableName = BytesUtil.readUTFString(buffer);
-        if (tableName != null) {
-            table = new TableDesc();
-            table.setName(tableName);
+        
+        if (_QUALIFIED_.equals(tableName)) {
+            // qualified column (from model)
+            String model = BytesUtil.readUTFString(buffer);
+            String alias = BytesUtil.readUTFString(buffer);
+            String col = BytesUtil.readUTFString(buffer);
+            
+            KylinConfig config = KylinConfig.getInstanceFromEnv();
+            DataModelDesc modelDesc = 
MetadataManager.getInstance(config).getDataModelDesc(model);
+            this.columnRef = modelDesc.findColumn(alias, col);
+            
+        } else {
+            // un-qualified column
+            TableDesc tableDesc = null;
+
+            if (tableName != null) {
+                tableDesc = new TableDesc();
+                tableDesc.setName(tableName);
+            }
+
+            ColumnDesc column = new ColumnDesc();
+            column.setId(BytesUtil.readUTFString(buffer));
+            column.setName(BytesUtil.readUTFString(buffer));
+            column.setDatatype(BytesUtil.readUTFString(buffer));
+            column.init(tableDesc);
+
+            this.columnRef = column.getRef();
         }
-
-        column.setId(BytesUtil.readUTFString(buffer));
-        column.setName(BytesUtil.readUTFString(buffer));
-        column.setDatatype(BytesUtil.readUTFString(buffer));
-        column.init(table);
-
-        this.columnRef = column.getRef();
     }
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
index d131b92..1b19b50 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
@@ -36,16 +36,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = 
Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE)
 public class ColumnDesc implements Serializable {
 
-    public static ColumnDesc mockup(TableDesc table, int oneBasedColumnIndex, 
String name, String datatype) {
-        ColumnDesc desc = new ColumnDesc();
-        String id = "" + oneBasedColumnIndex;
-        desc.setId(id);
-        desc.setName(name);
-        desc.setDatatype(datatype);
-        desc.init(table);
-        return desc;
-    }
-
     @JsonProperty("id")
     private String id;
     @JsonProperty("name")

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
index d1df410..0d37bb8 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
@@ -263,9 +263,9 @@ public class DataModelDesc extends RootPersistentEntity {
         tableNameMap.clear();
         
         initTableAlias(tables);
-        initJoinColumns(tables);
+        initJoinColumns();
         ModelDimensionDesc.capicalizeStrings(dimensions);
-        initPartitionDesc(tables);
+        initPartitionDesc();
     }
 
     private void initTableAlias(Map<String, TableDesc> tables) {
@@ -315,12 +315,12 @@ public class DataModelDesc extends RootPersistentEntity {
         }
     }
 
-    private void initPartitionDesc(Map<String, TableDesc> tables) {
+    private void initPartitionDesc() {
         if (this.partitionDesc != null)
-            this.partitionDesc.init(tables);
+            this.partitionDesc.init(this);
     }
 
-    private void initJoinColumns(Map<String, TableDesc> tables) {
+    private void initJoinColumns() {
         for (LookupDesc lookup : this.lookups) {
             TableRef dimTable = lookup.getTableRef();
             JoinDesc join = lookup.getJoin();

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
index 6487bfa..1006b83 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
@@ -23,7 +23,6 @@ import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.DateFormat;
-import org.apache.kylin.common.util.StringSplitter;
 import org.apache.kylin.metadata.datatype.DataType;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
@@ -31,8 +30,6 @@ import 
com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
- * @author xduo
- * 
  */
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = 
Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = 
Visibility.NONE)
 public class PartitionDesc {
@@ -66,28 +63,12 @@ public class PartitionDesc {
     private TblColRef partitionDateColumnRef;
     private IPartitionConditionBuilder partitionConditionBuilder;
 
-    public void init(Map<String, TableDesc> tables) {
+    public void init(DataModelDesc model) {
         if (StringUtils.isEmpty(partitionDateColumn))
             return;
 
         partitionDateColumn = partitionDateColumn.toUpperCase();
-
-        String[] columns = StringSplitter.split(partitionDateColumn, ".");
-
-        if (null != columns && columns.length == 3) {
-            String tableName = columns[0].toUpperCase() + "." + 
columns[1].toUpperCase();
-
-            TableDesc table = tables.get(tableName);
-            ColumnDesc col = table.findColumnByName(columns[2]);
-            if (col != null) {
-                partitionDateColumnRef = new TblColRef(col);
-            } else {
-                throw new IllegalStateException("The column '" + 
partitionDateColumn + "' provided in 'partition_date_column' doesn't exist.");
-            }
-        } else {
-            throw new IllegalStateException("The 'partition_date_column' 
format is invalid: " + partitionDateColumn + ", it should be 
{db}.{table}.{column}.");
-        }
-
+        partitionDateColumnRef = model.findColumn(partitionDateColumn);
         partitionConditionBuilder = (IPartitionConditionBuilder) 
ClassUtil.newInstance(partitionConditionBuilderClz);
     }
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableRef.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableRef.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableRef.java
index 626fb16..975094c 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableRef.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableRef.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.metadata.model;
 
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Map;
 
 import com.google.common.collect.Maps;
@@ -64,6 +66,10 @@ public class TableRef {
         return columns.get(name);
     }
     
+    public Collection<TblColRef> getColumns() {
+        return Collections.unmodifiableCollection(columns.values());
+    }
+    
     @Override
     public boolean equals(Object o) {
         if (this == o)

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
index 0f3f70d..5f0fe94 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
@@ -61,6 +61,17 @@ public class TblColRef implements Serializable {
         return colRef;
     }
 
+    // for test only
+    public static TblColRef mockup(TableDesc table, int oneBasedColumnIndex, 
String name, String datatype) {
+        ColumnDesc desc = new ColumnDesc();
+        String id = "" + oneBasedColumnIndex;
+        desc.setId(id);
+        desc.setName(name);
+        desc.setDatatype(datatype);
+        desc.init(table);
+        return new TblColRef(desc);
+    }
+    
     // 
============================================================================
 
     private TableRef table;
@@ -74,19 +85,19 @@ public class TblColRef implements Serializable {
         this.table = table;
         this.column = column;
     }
-
+    
     public ColumnDesc getColumnDesc() {
         return column;
     }
 
-    public void setColumn(ColumnDesc column) {
-        this.column = column;
-    }
-
     public String getName() {
         return column.getName();
     }
 
+    public TableRef getTableRef() {
+        return table;
+    }
+    
     public String getTable() {
         if (column.getTable() == null) {
             return null;

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java
----------------------------------------------------------------------
diff --git 
a/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java 
b/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java
index 6e54899..456e768 100644
--- a/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java
+++ b/core-storage/src/test/java/org/apache/kylin/storage/StorageMockUtils.java
@@ -28,7 +28,6 @@ import org.apache.kylin.metadata.filter.CompareTupleFilter;
 import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
-import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.ParameterDesc;
 import org.apache.kylin.metadata.model.TableDesc;
@@ -61,14 +60,12 @@ public class StorageMockUtils {
         List<TblColRef> groups = new ArrayList<TblColRef>();
 
         TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        ColumnDesc c1 = ColumnDesc.mockup(t1, 2, "CAL_DT", "date");
-        TblColRef cf1 = c1.getRef();
-        groups.add(cf1);
+        TblColRef c1 = TblColRef.mockup(t1, 2, "CAL_DT", "date");
+        groups.add(c1);
 
         TableDesc t2 = TableDesc.mockup("DEFAULT.TEST_CATEGORY_GROUPINGS");
-        ColumnDesc c2 = ColumnDesc.mockup(t2, 14, "META_CATEG_NAME", "string");
-        TblColRef cf2 = c2.getRef();
-        groups.add(cf2);
+        TblColRef c2 = TblColRef.mockup(t2, 14, "META_CATEG_NAME", "string");
+        groups.add(c2);
 
         return groups;
     }
@@ -77,7 +74,7 @@ public class StorageMockUtils {
         List<FunctionDesc> functions = new ArrayList<FunctionDesc>();
 
         TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        TblColRef priceCol = ColumnDesc.mockup(t1, 7, "PRICE", 
"decimal(19,4)").getRef();
+        TblColRef priceCol = TblColRef.mockup(t1, 7, "PRICE", "decimal(19,4)");
 
         FunctionDesc f1 = new FunctionDesc();
         f1.setExpression("SUM");
@@ -96,8 +93,8 @@ public class StorageMockUtils {
         List<FunctionDesc> functions = new ArrayList<FunctionDesc>();
 
         TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        TblColRef priceCol = ColumnDesc.mockup(t1, 7, "PRICE", 
"decimal(19,4)").getRef();
-        TblColRef sellerCol = ColumnDesc.mockup(t1, 9, "SELLER_ID", 
"bigint").getRef();
+        TblColRef priceCol = TblColRef.mockup(t1, 7, "PRICE", "decimal(19,4)");
+        TblColRef sellerCol = TblColRef.mockup(t1, 9, "SELLER_ID", "bigint");
 
         FunctionDesc f1 = new FunctionDesc();
         f1.setExpression("SUM");

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
----------------------------------------------------------------------
diff --git 
a/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
 
b/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
index 0cdfa7e..d40eb08 100644
--- 
a/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
+++ 
b/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
@@ -360,8 +360,8 @@ public class DictGridTableTest extends 
LocalFileMetadataTestCase {
         GTInfo info = table.getInfo();
 
         TableDesc extTable = TableDesc.mockup("ext");
-        TblColRef extColA = ColumnDesc.mockup(extTable, 1, "A", 
"timestamp").getRef();
-        TblColRef extColB = ColumnDesc.mockup(extTable, 2, "B", 
"integer").getRef();
+        TblColRef extColA = TblColRef.mockup(extTable, 1, "A", "timestamp");
+        TblColRef extColB = TblColRef.mockup(extTable, 2, "B", "integer");
 
         CompareTupleFilter fComp1 = compare(extColA, FilterOperatorEnum.GT, 
"2015-01-14");
         CompareTupleFilter fComp2 = compare(extColB, FilterOperatorEnum.EQ, 
"10");
@@ -380,8 +380,8 @@ public class DictGridTableTest extends 
LocalFileMetadataTestCase {
         GTInfo info = table.getInfo();
 
         TableDesc extTable = TableDesc.mockup("ext");
-        TblColRef extColA = ColumnDesc.mockup(extTable, 1, "A", 
"timestamp").getRef();
-        TblColRef extColB = ColumnDesc.mockup(extTable, 2, "B", 
"integer").getRef();
+        TblColRef extColA = TblColRef.mockup(extTable, 1, "A", "timestamp");
+        TblColRef extColB = TblColRef.mockup(extTable, 2, "B", "integer");
 
         CompareTupleFilter fComp1 = compare(extColA, FilterOperatorEnum.GT, 
"2015-01-14");
         CompareTupleFilter fComp2 = compare(extColB, FilterOperatorEnum.LT, 
"9");
@@ -401,8 +401,8 @@ public class DictGridTableTest extends 
LocalFileMetadataTestCase {
         GTInfo info = table.getInfo();
 
         TableDesc extTable = TableDesc.mockup("ext");
-        TblColRef extColA = ColumnDesc.mockup(extTable, 1, "A", 
"timestamp").getRef();
-        TblColRef extColB = ColumnDesc.mockup(extTable, 2, "B", 
"integer").getRef();
+        TblColRef extColA = TblColRef.mockup(extTable, 1, "A", "timestamp");
+        TblColRef extColB = TblColRef.mockup(extTable, 2, "B", "integer");
 
         CompareTupleFilter fComp1 = compare(extColA, FilterOperatorEnum.GT, 
"2015-01-14");
         CompareTupleFilter fComp2 = compare(extColB, FilterOperatorEnum.LTE, 
"9");
@@ -422,8 +422,8 @@ public class DictGridTableTest extends 
LocalFileMetadataTestCase {
         GTInfo info = table.getInfo();
 
         TableDesc extTable = TableDesc.mockup("ext");
-        TblColRef extColA = ColumnDesc.mockup(extTable, 1, "A", 
"timestamp").getRef();
-        TblColRef extColB = ColumnDesc.mockup(extTable, 2, "B", 
"integer").getRef();
+        TblColRef extColA = TblColRef.mockup(extTable, 1, "A", "timestamp");
+        TblColRef extColB = TblColRef.mockup(extTable, 2, "B", "integer");
 
         CompareTupleFilter fComp1 = compare(extColA, FilterOperatorEnum.GT, 
"2015-01-14");
         CompareTupleFilter fComp2 = compare(extColB, FilterOperatorEnum.IN, 
"9", "10", "15");

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java
----------------------------------------------------------------------
diff --git 
a/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java
 
b/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java
index 36d9ea6..0e7e91f 100644
--- 
a/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java
+++ 
b/core-storage/src/test/java/org/apache/kylin/storage/translate/ColumnValueRangeTest.java
@@ -30,7 +30,6 @@ import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.dict.StringBytesConverter;
 import org.apache.kylin.dict.TrieDictionaryBuilder;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
-import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.junit.AfterClass;
@@ -121,24 +120,7 @@ public class ColumnValueRangeTest extends 
LocalFileMetadataTestCase {
     }
 
     public static TblColRef mockupTblColRef() {
-        TableDesc t = mockupTableDesc("table_a");
-        ColumnDesc c = mockupColumnDesc(t, 1, "col_1", "string");
-        return c.getRef();
-    }
-
-    private static TableDesc mockupTableDesc(String tableName) {
-        TableDesc mockup = new TableDesc();
-        mockup.setName(tableName);
-        return mockup;
-    }
-
-    private static ColumnDesc mockupColumnDesc(TableDesc table, int 
oneBasedColumnIndex, String name, String datatype) {
-        ColumnDesc desc = new ColumnDesc();
-        String id = "" + oneBasedColumnIndex;
-        desc.setId(id);
-        desc.setName(name);
-        desc.setDatatype(datatype);
-        desc.init(table);
-        return desc;
+        TableDesc t = TableDesc.mockup("table_a");
+        return TblColRef.mockup(t, 1, "col_1", "string");
     }
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaMRInput.java
----------------------------------------------------------------------
diff --git 
a/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaMRInput.java 
b/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaMRInput.java
index 4d1f5c9..54d8c92 100644
--- a/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaMRInput.java
+++ b/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaMRInput.java
@@ -17,10 +17,10 @@
 */
 package org.apache.kylin.source.kafka;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
-import org.apache.kylin.metadata.model.ISegment;
-import org.apache.kylin.source.kafka.hadoop.KafkaFlatTableJob;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.List;
+
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Job;
@@ -38,20 +38,18 @@ import 
org.apache.kylin.engine.mr.steps.CubingExecutableUtil;
 import org.apache.kylin.job.JoinedFlatTable;
 import org.apache.kylin.job.engine.JobEngineConfig;
 import org.apache.kylin.job.execution.DefaultChainedExecutable;
-import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.IJoinedFlatTableDesc;
+import org.apache.kylin.metadata.model.ISegment;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TableRef;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.source.kafka.config.KafkaConfig;
+import org.apache.kylin.source.kafka.hadoop.KafkaFlatTableJob;
 import org.apache.kylin.source.kafka.job.MergeOffsetStep;
 import org.apache.kylin.source.kafka.job.SeekOffsetStep;
 import org.apache.kylin.source.kafka.job.UpdateTimeRangeStep;
 
-import javax.annotation.Nullable;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.List;
+import com.google.common.collect.Lists;
 
 public class KafkaMRInput implements IMRInput {
 
@@ -59,7 +57,7 @@ public class KafkaMRInput implements IMRInput {
 
     @Override
     public IMRBatchCubingInputSide 
getBatchCubingInputSide(IJoinedFlatTableDesc flatDesc) {
-        this.cubeSegment = (CubeSegment)flatDesc.getSegment();
+        this.cubeSegment = (CubeSegment) flatDesc.getSegment();
         return new BatchCubingInputSide(cubeSegment);
     }
 
@@ -67,14 +65,8 @@ public class KafkaMRInput implements IMRInput {
     public IMRTableInputFormat getTableInputFormat(TableDesc table) {
         KafkaConfigManager kafkaConfigManager = 
KafkaConfigManager.getInstance(KylinConfig.getInstanceFromEnv());
         KafkaConfig kafkaConfig = 
kafkaConfigManager.getKafkaConfig(table.getIdentity());
-        List<TblColRef> columns = 
Lists.transform(Arrays.asList(table.getColumns()), new Function<ColumnDesc, 
TblColRef>() {
-            @Nullable
-            @Override
-            public TblColRef apply(ColumnDesc input) {
-                return input.getRef();
-            }
-        });
-
+        TableRef tableRef = 
cubeSegment.getCubeInstance().getDataModelDesc().findTable(table.getIdentity());
+        List<TblColRef> columns = Lists.newArrayList(tableRef.getColumns());
         return new KafkaTableInputFormat(cubeSegment, columns, kafkaConfig, 
null);
     }
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/source-kafka/src/test/java/org/apache/kylin/source/kafka/TimedJsonStreamParserTest.java
----------------------------------------------------------------------
diff --git 
a/source-kafka/src/test/java/org/apache/kylin/source/kafka/TimedJsonStreamParserTest.java
 
b/source-kafka/src/test/java/org/apache/kylin/source/kafka/TimedJsonStreamParserTest.java
index f92a24e..230ff00 100644
--- 
a/source-kafka/src/test/java/org/apache/kylin/source/kafka/TimedJsonStreamParserTest.java
+++ 
b/source-kafka/src/test/java/org/apache/kylin/source/kafka/TimedJsonStreamParserTest.java
@@ -17,32 +17,28 @@
  */
 package org.apache.kylin.source.kafka;
 
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 
-import com.fasterxml.jackson.databind.type.MapType;
-import com.fasterxml.jackson.databind.type.SimpleType;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.common.util.StreamingMessage;
-import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
-
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.util.List;
-import java.util.HashMap;
-import java.util.ArrayList;
-
-import static org.junit.Assert.assertEquals;
-
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.type.MapType;
+import com.fasterxml.jackson.databind.type.SimpleType;
 
 public class TimedJsonStreamParserTest extends LocalFileMetadataTestCase {
 
@@ -139,28 +135,12 @@ public class TimedJsonStreamParserTest extends 
LocalFileMetadataTestCase {
     }
 
     private static List<TblColRef> mockupTblColRefList() {
-        TableDesc t = mockupTableDesc("table_a");
+        TableDesc t = TableDesc.mockup("table_a");
         List<TblColRef> list = new ArrayList<>();
         for (int i = 0; i < userNeedColNames.length; i++) {
-            ColumnDesc c = mockupColumnDesc(t, i, userNeedColNames[i], 
"string");
-            list.add(c.getRef());
+            TblColRef c = TblColRef.mockup(t, i, userNeedColNames[i], 
"string");
+            list.add(c);
         }
         return list;
     }
-
-    private static TableDesc mockupTableDesc(String tableName) {
-        TableDesc mockup = new TableDesc();
-        mockup.setName(tableName);
-        return mockup;
-    }
-
-    private static ColumnDesc mockupColumnDesc(TableDesc table, int 
oneBasedColumnIndex, String name, String datatype) {
-        ColumnDesc desc = new ColumnDesc();
-        String id = "" + oneBasedColumnIndex;
-        desc.setId(id);
-        desc.setName(name);
-        desc.setDatatype(datatype);
-        desc.init(table);
-        return desc;
-    }
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/common/coprocessor/CoprocessorRowType.java
----------------------------------------------------------------------
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/common/coprocessor/CoprocessorRowType.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/common/coprocessor/CoprocessorRowType.java
index d47bf61..f1e26f5 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/common/coprocessor/CoprocessorRowType.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/common/coprocessor/CoprocessorRowType.java
@@ -36,9 +36,9 @@ import com.google.common.collect.Maps;
 /**
  * @author yangli9
  */
+@Deprecated // used by v1 HBase coprocessor
 public class CoprocessorRowType {
 
-
     //for observer
     public static CoprocessorRowType fromCuboid(CubeSegment seg, Cuboid 
cuboid) {
         List<TblColRef> colList = cuboid.getColumns();

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/FuzzyValueCombinationTest.java
----------------------------------------------------------------------
diff --git 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/FuzzyValueCombinationTest.java
 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/FuzzyValueCombinationTest.java
index e516bc2..14c14ba 100644
--- 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/FuzzyValueCombinationTest.java
+++ 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/FuzzyValueCombinationTest.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-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.storage.translate.FuzzyValueCombination;
@@ -67,8 +66,7 @@ public class FuzzyValueCombinationTest extends 
LocalFileMetadataTestCase {
     }
 
     private static TblColRef col(int i, TableDesc t) {
-        ColumnDesc col = ColumnDesc.mockup(t, i, "Col" + i, "string");
-        return col.getRef();
+        return TblColRef.mockup(t, i, "Col" + i, "string");
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/TimeConditionLiteralsReplacerTest.java
----------------------------------------------------------------------
diff --git 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/TimeConditionLiteralsReplacerTest.java
 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/TimeConditionLiteralsReplacerTest.java
index 29e83b7..63f8961 100644
--- 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/TimeConditionLiteralsReplacerTest.java
+++ 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/TimeConditionLiteralsReplacerTest.java
@@ -25,7 +25,6 @@ import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.TimeConditionLiteralsReplacer;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilterSerializer;
-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.storage.hbase.common.coprocessor.FilterBaseTest;
@@ -38,8 +37,7 @@ public class TimeConditionLiteralsReplacerTest extends 
FilterBaseTest {
     @Test
     public void basicTest() {
         TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        ColumnDesc c1 = ColumnDesc.mockup(t1, 2, "CAL_DT", "date");
-        TblColRef column = c1.getRef();
+        TblColRef column = TblColRef.mockup(t1, 2, "CAL_DT", "date");
 
         CompareTupleFilter compareFilter = new 
CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ);
         ColumnTupleFilter columnFilter = new ColumnTupleFilter(column);

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/coprocessor/FilterBaseTest.java
----------------------------------------------------------------------
diff --git 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/coprocessor/FilterBaseTest.java
 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/coprocessor/FilterBaseTest.java
index 1310478..d016e4f 100644
--- 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/coprocessor/FilterBaseTest.java
+++ 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/common/coprocessor/FilterBaseTest.java
@@ -38,7 +38,6 @@ import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.StringCodeSystem;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
-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.Tuple;
@@ -71,14 +70,12 @@ public class FilterBaseTest extends 
LocalFileMetadataTestCase {
         List<TblColRef> groups = new ArrayList<TblColRef>();
 
         TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        ColumnDesc c1 = ColumnDesc.mockup(t1, 2, "CAL_DT", "string");
-        TblColRef cf1 = c1.getRef();
-        groups.add(cf1);
+        TblColRef c1 = TblColRef.mockup(t1, 2, "CAL_DT", "string");
+        groups.add(c1);
 
         TableDesc t2 = TableDesc.mockup("DEFAULT.TEST_CATEGORY_GROUPINGS");
-        ColumnDesc c2 = ColumnDesc.mockup(t2, 14, "META_CATEG_NAME", "string");
-        TblColRef cf2 = c2.getRef();
-        groups.add(cf2);
+        TblColRef c2 = TblColRef.mockup(t2, 14, "META_CATEG_NAME", "string");
+        groups.add(c2);
 
         return groups;
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/cde08cdd/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
----------------------------------------------------------------------
diff --git 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
index 390930a..c25b690 100644
--- 
a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
+++ 
b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
@@ -36,11 +36,10 @@ import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValue.Type;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
 import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.gridtable.StorageSideBehavior;
 import org.apache.kylin.metadata.datatype.LongMutable;
-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.gridtable.StorageSideBehavior;
 import org.apache.kylin.storage.hbase.common.coprocessor.CoprocessorFilter;
 import org.apache.kylin.storage.hbase.common.coprocessor.CoprocessorProjector;
 import org.apache.kylin.storage.hbase.common.coprocessor.CoprocessorRowType;
@@ -207,7 +206,7 @@ public class AggregateRegionObserverTest {
     }
 
     private TblColRef newCol(int i, String name, TableDesc t) {
-        return ColumnDesc.mockup(t, i, name, null).getRef();
+        return TblColRef.mockup(t, i, name, null);
     }
 
     public static class MockupRegionScanner implements RegionScanner {

Reply via email to