This is an automated email from the ASF dual-hosted git repository.

shaofengshi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/master by this push:
     new 98833e0  KYLIN-3546 Add column which belongs to root fact table in 
join relation but lost
98833e0 is described below

commit 98833e041e05667948038538d6a2551094d419fb
Author: hit-lacus <hit_la...@126.com>
AuthorDate: Mon Sep 24 15:34:30 2018 +0800

    KYLIN-3546 Add column which belongs to root fact table in join relation but 
lost
---
 .../apache/kylin/source/kafka/KafkaInputBase.java  | 24 +++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git 
a/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaInputBase.java 
b/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaInputBase.java
index a624f8f..cb2e14c 100644
--- 
a/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaInputBase.java
+++ 
b/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaInputBase.java
@@ -18,8 +18,11 @@
 
 package org.apache.kylin.source.kafka;
 
+import java.util.LinkedList;
 import java.util.List;
+import java.util.Set;
 
+import com.google.common.collect.Sets;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.engine.mr.JobBuilderSupport;
@@ -32,7 +35,10 @@ import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.IJoinedFlatTableDesc;
 import org.apache.kylin.metadata.model.ISegment;
+import org.apache.kylin.metadata.model.JoinDesc;
+import org.apache.kylin.metadata.model.JoinTableDesc;
 import org.apache.kylin.metadata.model.SegmentRange;
+import org.apache.kylin.metadata.model.TableRef;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.source.hive.CreateFlatHiveTableStep;
 import org.apache.kylin.source.hive.GarbageCollectionStep;
@@ -89,7 +95,23 @@ public class KafkaInputBase {
 
             @Override
             public List<TblColRef> getAllColumns() {
-                return flatDesc.getFactColumns();
+                final Set<TblColRef> factTableColumnSet = Sets.newHashSet();
+                TableRef rootFactTable = getDataModel().getRootFactTable();
+                for (TblColRef colRef : flatDesc.getAllColumns()) {
+                    if (colRef.getTableRef().equals(rootFactTable)) {
+                        factTableColumnSet.add(colRef);
+                    }
+                }
+                // Add column which belongs to root fact table in join 
relation but lost
+                for (JoinTableDesc joinTableDesc : 
getDataModel().getJoinTables()) {
+                    JoinDesc join = joinTableDesc.getJoin();
+                    for (TblColRef colRef : join.getForeignKeyColumns()) {
+                        if (colRef.getTableRef().equals(rootFactTable)) {
+                            factTableColumnSet.add(colRef);
+                        }
+                    }
+                }
+                return new LinkedList<>(factTableColumnSet);
             }
 
             @Override

Reply via email to