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) {