KYLIN-2646 bug fix
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ce97f814 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ce97f814 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ce97f814 Branch: refs/heads/master Commit: ce97f814f7bfa003011e5176ab891a11558ad009 Parents: 6ce9983 Author: Hongbin Ma <mahong...@apache.org> Authored: Fri May 26 16:51:42 2017 +0800 Committer: Roger Shi <rogershijich...@gmail.com> Committed: Sat May 27 21:11:03 2017 +0800 ---------------------------------------------------------------------- .../kylin/metadata/project/ProjectManager.java | 23 +++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/ce97f814/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java index ff2d3e6..a172db8 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java @@ -20,7 +20,6 @@ package org.apache.kylin.metadata.project; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; @@ -48,6 +47,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; public class ProjectManager { private static final Logger logger = LoggerFactory.getLogger(ProjectManager.class); @@ -416,17 +416,28 @@ public class ProjectManager { } public List<ColumnDesc> listExposedColumns(String project, TableDesc tableDesc) { - return config.isAdhocEnabled() ? // - Arrays.asList(tableDesc.getColumns()) : // - Lists.newArrayList(l2Cache.listExposedColumns(norm(project), tableDesc.getIdentity())); + Set<ColumnDesc> exposedColumns = l2Cache.listExposedColumns(norm(project), tableDesc.getIdentity()); + + if (config.isAdhocEnabled()) { + // take care of computed columns + Set<ColumnDesc> dedup = Sets.newHashSet(tableDesc.getColumns()); + dedup.addAll(exposedColumns); + return Lists.newArrayList(dedup); + } else { + return Lists.newArrayList(exposedColumns); + } } public boolean isExposedTable(String project, String table) { - return config.isAdhocEnabled() ? l2Cache.isDefinedTable(norm(project), table) : l2Cache.isExposedTable(norm(project), table); + return config.isAdhocEnabled() ? // + l2Cache.isDefinedTable(norm(project), table) : // + l2Cache.isExposedTable(norm(project), table); } public boolean isExposedColumn(String project, String table, String col) { - return config.isAdhocEnabled() ? l2Cache.isDefinedColumn(norm(project), table, col) : l2Cache.isExposedColumn(norm(project), table, col); + return config.isAdhocEnabled() ? // + l2Cache.isDefinedColumn(norm(project), table, col) || l2Cache.isExposedColumn(norm(project), table, col) : // + l2Cache.isExposedColumn(norm(project), table, col); } public Set<IRealization> listAllRealizations(String project) {