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 2017/06/05 05:23:29 UTC
[41/67] [abbrv] kylin git commit: KYLIN-2646 bug fix
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 <ma...@apache.org>
Authored: Fri May 26 16:51:42 2017 +0800
Committer: Roger Shi <ro...@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) {