You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2015/06/17 04:16:52 UTC

incubator-kylin git commit: KYLIN-831 Kylin report "Column 'ABC' not found in table 'TABLE' while executing SQL", when that column is FK but not define as a dimension

Repository: incubator-kylin
Updated Branches:
  refs/heads/0.7-staging a64cc1391 -> 95180eaa4


KYLIN-831 Kylin report "Column 'ABC' not found in table 'TABLE' while executing SQL", when that column is FK but not define as a dimension

Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/95180eaa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/95180eaa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/95180eaa

Branch: refs/heads/0.7-staging
Commit: 95180eaa4afe41b5e2fcf1f511351dae8bf9d1ce
Parents: a64cc13
Author: shaofengshi <sh...@apache.org>
Authored: Wed Jun 17 10:16:28 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Wed Jun 17 10:16:28 2015 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/cube/CubeDescUpgrader.java    | 12 +++++++++---
 .../main/java/org/apache/kylin/cube/model/CubeDesc.java |  3 +++
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/95180eaa/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java b/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
index 5fb99a0..9353cfc 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
@@ -205,14 +205,20 @@ public class CubeDescUpgrader {
         List<org.apache.kylin.cube.model.v1.DimensionDesc> oldDimensions = oldModel.getDimensions();
 
         List<LookupDesc> lookups = Lists.newArrayList();
+        List<String> lookupTables = Lists.newArrayList();
         for (org.apache.kylin.cube.model.v1.DimensionDesc dim : oldDimensions) {
             JoinDesc join = dim.getJoin();
             if (join != null && !StringUtils.isEmpty(join.getType()) && join.getForeignKey() != null && join.getForeignKey().length > 0) {
-                LookupDesc lookup = new LookupDesc();
-                lookup.setJoin(join);
                 String table = dim.getTable();
-                lookup.setTable(getMetadataManager().appendDBName(table));
+                table = getMetadataManager().appendDBName(table);
 
+                if (lookupTables.contains(table)) {
+                    continue;
+                }
+                LookupDesc lookup = new LookupDesc();
+                lookup.setJoin(join);
+                lookup.setTable(table);
+                lookupTables.add(table);
                 lookups.add(lookup);
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/95180eaa/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
index b03268f..cae9c01 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
@@ -511,6 +511,9 @@ public class CubeDesc extends RootPersistentEntity {
             if (join != null) {
                 TblColRef[] fk = join.getForeignKeyColumns();
                 TblColRef[] pk = join.getPrimaryKeyColumns();
+
+                allColumns.addAll(Arrays.asList(fk));
+                allColumns.addAll(Arrays.asList(pk));
                 for (int i = 0; i < fk.length; i++) {
                     int find = ArrayUtils.indexOf(hostCols, fk[i]);
                     if (find >= 0) {