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/KYLIN-1971 Commit: d06a425e3b30b52ae895954a9faa034da1ad0e04 Parents: 3b9be19 Author: Li Yang <liy...@apache.org> Authored: Thu Oct 27 18:03:22 2016 +0800 Committer: Li Yang <liy...@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();