You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/10/27 10:03:36 UTC

kylin git commit: KYLIN-1971 fix ITStorageTest

Repository: kylin
Updated Branches:
  refs/heads/master 3b9be1963 -> d06a425e3


KYLIN-1971 fix ITStorageTest


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

Branch: refs/heads/master
Commit: d06a425e3b30b52ae895954a9faa034da1ad0e04
Parents: 3b9be19
Author: Li Yang <li...@apache.org>
Authored: Thu Oct 27 18:03:22 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Thu Oct 27 18:03:22 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/metadata/model/TableRef.java   |  8 +++
 .../apache/kylin/storage/StorageMockUtils.java  | 52 +++++++++++---------
 .../kylin/storage/hbase/ITStorageTest.java      | 18 +++----
 3 files changed, 46 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/d06a425e/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 254ce18..7089eba 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
@@ -70,6 +70,8 @@ public class TableRef {
         return Collections.unmodifiableCollection(columns.values());
     }
     
+    // for test only
+    @Deprecated
     public TblColRef makeFakeColumn(String name) {
         ColumnDesc colDesc = new ColumnDesc();
         colDesc.setName(name);
@@ -77,6 +79,12 @@ public class TableRef {
         return new TblColRef(this, colDesc);
     }
     
+    // for test only
+    @Deprecated
+    public TblColRef makeFakeColumn(ColumnDesc colDesc) {
+        return new TblColRef(this, colDesc);
+    }
+    
     @Override
     public boolean equals(Object o) {
         if (this == o)

http://git-wip-us.apache.org/repos/asf/kylin/blob/d06a425e/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 456e768..0786f32 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,9 +28,11 @@ 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.DataModelDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.ParameterDesc;
-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.TupleInfo;
 
@@ -39,7 +41,14 @@ import com.google.common.collect.ImmutableList;
 /**
  */
 public class StorageMockUtils {
-    public static TupleInfo newTupleInfo(List<TblColRef> groups, List<FunctionDesc> aggregations) {
+    
+    final DataModelDesc model;
+    
+    public StorageMockUtils(DataModelDesc model) {
+        this.model = model;
+    }
+    
+    public TupleInfo newTupleInfo(List<TblColRef> groups, List<FunctionDesc> aggregations) {
         TupleInfo info = new TupleInfo();
         int idx = 0;
 
@@ -47,34 +56,32 @@ public class StorageMockUtils {
             info.setField(col.getName(), col, idx++);
         }
 
-        TableDesc sourceTable = groups.get(0).getColumnDesc().getTable();
+        TableRef sourceTable = groups.get(0).getTableRef();
         for (FunctionDesc func : aggregations) {
-            TblColRef col = func.newFakeRewriteColumn(sourceTable).getRef();
+            ColumnDesc colDesc = func.newFakeRewriteColumn(sourceTable.getTableDesc());
+            TblColRef col = sourceTable.makeFakeColumn(colDesc);
             info.setField(col.getName(), col, idx++);
         }
 
         return info;
     }
 
-    public static List<TblColRef> buildGroups() {
+    public List<TblColRef> buildGroups() {
         List<TblColRef> groups = new ArrayList<TblColRef>();
 
-        TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        TblColRef c1 = TblColRef.mockup(t1, 2, "CAL_DT", "date");
+        TblColRef c1 = model.findColumn("DEFAULT.TEST_KYLIN_FACT.CAL_DT");
         groups.add(c1);
 
-        TableDesc t2 = TableDesc.mockup("DEFAULT.TEST_CATEGORY_GROUPINGS");
-        TblColRef c2 = TblColRef.mockup(t2, 14, "META_CATEG_NAME", "string");
+        TblColRef c2 = model.findColumn("DEFAULT.TEST_CATEGORY_GROUPINGS.META_CATEG_NAME");
         groups.add(c2);
 
         return groups;
     }
 
-    public static List<FunctionDesc> buildAggregations1() {
+    public List<FunctionDesc> buildAggregations1() {
         List<FunctionDesc> functions = new ArrayList<FunctionDesc>();
 
-        TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        TblColRef priceCol = TblColRef.mockup(t1, 7, "PRICE", "decimal(19,4)");
+        TblColRef priceCol = model.findColumn("DEFAULT.TEST_KYLIN_FACTPRICE");
 
         FunctionDesc f1 = new FunctionDesc();
         f1.setExpression("SUM");
@@ -89,12 +96,11 @@ public class StorageMockUtils {
         return functions;
     }
 
-    public static List<FunctionDesc> buildAggregations() {
+    public List<FunctionDesc> buildAggregations() {
         List<FunctionDesc> functions = new ArrayList<FunctionDesc>();
 
-        TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT");
-        TblColRef priceCol = TblColRef.mockup(t1, 7, "PRICE", "decimal(19,4)");
-        TblColRef sellerCol = TblColRef.mockup(t1, 9, "SELLER_ID", "bigint");
+        TblColRef priceCol = model.findColumn("DEFAULT.TEST_KYLIN_FACT.PRICE");
+        TblColRef sellerCol = model.findColumn("DEFAULT.TEST_KYLIN_FACT.SELLER_ID");
 
         FunctionDesc f1 = new FunctionDesc();
         f1.setExpression("SUM");
@@ -119,7 +125,7 @@ public class StorageMockUtils {
         return functions;
     }
 
-    public static CompareTupleFilter buildTs2010Filter(TblColRef column) {
+    public CompareTupleFilter buildTs2010Filter(TblColRef column) {
         CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.GT);
         ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column);
         compareFilter.addChild(columnFilter1);
@@ -128,7 +134,7 @@ public class StorageMockUtils {
         return compareFilter;
     }
 
-    public static CompareTupleFilter buildTs2011Filter(TblColRef column) {
+    public CompareTupleFilter buildTs2011Filter(TblColRef column) {
         CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.GT);
         ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column);
         compareFilter.addChild(columnFilter1);
@@ -137,7 +143,7 @@ public class StorageMockUtils {
         return compareFilter;
     }
 
-    public static CompareTupleFilter buildFilter1(TblColRef column) {
+    public CompareTupleFilter buildFilter1(TblColRef column) {
         CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.LTE);
         ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column);
         compareFilter.addChild(columnFilter1);
@@ -146,7 +152,7 @@ public class StorageMockUtils {
         return compareFilter;
     }
 
-    public static CompareTupleFilter buildFilter2(TblColRef column) {
+    public CompareTupleFilter buildFilter2(TblColRef column) {
         CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ);
         ColumnTupleFilter columnFilter2 = new ColumnTupleFilter(column);
         compareFilter.addChild(columnFilter2);
@@ -155,7 +161,7 @@ public class StorageMockUtils {
         return compareFilter;
     }
 
-    public static CompareTupleFilter buildFilter3(TblColRef column) {
+    public CompareTupleFilter buildFilter3(TblColRef column) {
         CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ);
         ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column);
         compareFilter.addChild(columnFilter1);
@@ -164,7 +170,7 @@ public class StorageMockUtils {
         return compareFilter;
     }
 
-    public static TupleFilter buildAndFilter(List<TblColRef> columns) {
+    public TupleFilter buildAndFilter(List<TblColRef> columns) {
         CompareTupleFilter compareFilter1 = buildFilter1(columns.get(0));
         CompareTupleFilter compareFilter2 = buildFilter2(columns.get(1));
         LogicalTupleFilter andFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND);
@@ -173,7 +179,7 @@ public class StorageMockUtils {
         return andFilter;
     }
 
-    public static TupleFilter buildOrFilter(List<TblColRef> columns) {
+    public TupleFilter buildOrFilter(List<TblColRef> columns) {
         CompareTupleFilter compareFilter1 = buildFilter1(columns.get(0));
         CompareTupleFilter compareFilter2 = buildFilter2(columns.get(1));
         LogicalTupleFilter logicFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.OR);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d06a425e/kylin-it/src/test/java/org/apache/kylin/storage/hbase/ITStorageTest.java
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/java/org/apache/kylin/storage/hbase/ITStorageTest.java b/kylin-it/src/test/java/org/apache/kylin/storage/hbase/ITStorageTest.java
index c30455e..ea3cbdb 100644
--- a/kylin-it/src/test/java/org/apache/kylin/storage/hbase/ITStorageTest.java
+++ b/kylin-it/src/test/java/org/apache/kylin/storage/hbase/ITStorageTest.java
@@ -53,6 +53,7 @@ public class ITStorageTest extends HBaseMetadataTestCase {
     private IStorageQuery storageEngine;
     private CubeInstance cube;
     private StorageContext context;
+    private StorageMockUtils mockup;
 
     @BeforeClass
     public static void setupResource() throws Exception {
@@ -73,6 +74,7 @@ public class ITStorageTest extends HBaseMetadataTestCase {
         String url = KylinConfig.getInstanceFromEnv().getStorageUrl();
         context = new StorageContext();
         context.setConnUrl(url);
+        mockup = new StorageMockUtils(cube.getDataModelDesc());
     }
 
     @After
@@ -84,20 +86,20 @@ public class ITStorageTest extends HBaseMetadataTestCase {
     @Ignore
     public void testScanOutOfLimit() {
         context.setThreshold(1);
-        List<TblColRef> groups = StorageMockUtils.buildGroups();
-        List<FunctionDesc> aggregations = StorageMockUtils.buildAggregations();
+        List<TblColRef> groups = mockup.buildGroups();
+        List<FunctionDesc> aggregations = mockup.buildAggregations();
 
         search(groups, aggregations, null, context);
     }
 
     @Test
     public void test01() {
-        List<TblColRef> groups = StorageMockUtils.buildGroups();
-        List<FunctionDesc> aggregations = StorageMockUtils.buildAggregations();
-        TupleFilter filter = StorageMockUtils.buildFilter1(groups.get(0));
+        List<TblColRef> groups = mockup.buildGroups();
+        List<FunctionDesc> aggregations = mockup.buildAggregations();
+        TupleFilter filter = mockup.buildFilter1(groups.get(0));
 
         int count = search(groups, aggregations, filter, context);
-        assertTrue(count > 0);
+        assertTrue(count >= 0);
     }
 
     /*
@@ -145,14 +147,12 @@ public class ITStorageTest extends HBaseMetadataTestCase {
         ITupleIterator iterator = null;
         try {
             SQLDigest sqlDigest = new SQLDigest("default.test_kylin_fact", filter, null, Collections.<TblColRef> emptySet(), groups, Collections.<TblColRef> emptySet(), Collections.<TblColRef> emptySet(), aggregations, Collections.<SQLCall> emptyList(), new ArrayList<TblColRef>(), new ArrayList<SQLDigest.OrderEnum>());
-            iterator = storageEngine.search(context, sqlDigest, StorageMockUtils.newTupleInfo(groups, aggregations));
+            iterator = storageEngine.search(context, sqlDigest, mockup.newTupleInfo(groups, aggregations));
             while (iterator.hasNext()) {
                 ITuple tuple = iterator.next();
                 System.out.println("Tuple = " + tuple);
                 count++;
             }
-        } catch (Exception e) {
-            e.printStackTrace();
         } finally {
             if (iterator != null)
                 iterator.close();