KYLIN-1971 fix CI
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1c278f36 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1c278f36 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1c278f36 Branch: refs/heads/master Commit: 1c278f36899b589ba145268262d64bf65a471194 Parents: cde08cd Author: Yang Li <liy...@apache.org> Authored: Sun Oct 23 07:29:08 2016 +0800 Committer: Yang Li <liy...@apache.org> Committed: Sun Oct 23 07:29:08 2016 +0800 ---------------------------------------------------------------------- .../kylin/cube/CubeCapabilityChecker.java | 5 +- .../kylin/metadata/model/DataModelDesc.java | 13 + .../sample_cube/data/DEFAULT.KYLIN_SALES.csv | 5290 +++++++++--------- .../localmeta/data/data_gen_config.json | 24 + .../source/hive/ITHiveTableReaderTest.java | 2 +- 5 files changed, 2684 insertions(+), 2650 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/1c278f36/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 24f15e0..c8460f0 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 @@ -66,10 +66,7 @@ public class CubeCapabilityChecker { Collection<FunctionDesc> unmatchedAggregations = unmatchedAggregations(aggrFunctions, cube); // try custom measure types - // in RAW query, unmatchedDimensions and unmatchedAggregations will null, so can't chose RAW cube well! - // if (!unmatchedDimensions.isEmpty() || !unmatchedAggregations.isEmpty()) { tryCustomMeasureTypes(unmatchedDimensions, unmatchedAggregations, digest, cube, result); - // } // try dimension-as-measure if (!unmatchedAggregations.isEmpty()) { @@ -78,7 +75,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)) { - Set<TblColRef> dimCols = Sets.newHashSet(cube.getDataModelDesc().getFactTableRef().getColumns()); + Set<TblColRef> dimCols = Sets.newHashSet(cube.getDataModelDesc().findFirstTable(digest.factTable).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/1c278f36/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 0d37bb8..f23e1be 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 @@ -247,6 +247,7 @@ public class DataModelDesc extends RootPersistentEntity { return result; } + // find by unique name, that must uniquely identifies a table in the model public TableRef findTable(String table) { TableRef result = tableNameMap.get(table); if (result == null) { @@ -254,6 +255,18 @@ public class DataModelDesc extends RootPersistentEntity { } return result; } + + // find by table identity, that may match multiple tables in the model + public TableRef findFirstTable(String tableIdentity) { + if (factTableRef.getTableIdentity().equals(tableIdentity)) + return factTableRef; + + for (TableRef lookup : lookupTableRefs) { + if (lookup.getTableIdentity().equals(tableIdentity)) + return lookup; + } + throw new IllegalArgumentException("Table not found by " + tableIdentity); + } public void init(KylinConfig config, Map<String, TableDesc> tables) { this.config = config;