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

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

commit 38280f3b4d9ecfc10dd7adc3ad96ec50218c7767
Author: DorrisRuixuanZhang <dorriszh...@hotmail.com>
AuthorDate: Sun May 28 18:21:37 2023 +0800

    KYLIN-5698 fix creating tableindex cannot get column type
---
 .../kylin/rest/response/NDataModelResponse.java    | 33 +++++++++++++---------
 .../rest/response/NDataModelResponseTest.java      |  1 +
 2 files changed, 21 insertions(+), 13 deletions(-)

diff --git 
a/src/modeling-service/src/main/java/org/apache/kylin/rest/response/NDataModelResponse.java
 
b/src/modeling-service/src/main/java/org/apache/kylin/rest/response/NDataModelResponse.java
index c0eedd88af..66e8b488c8 100644
--- 
a/src/modeling-service/src/main/java/org/apache/kylin/rest/response/NDataModelResponse.java
+++ 
b/src/modeling-service/src/main/java/org/apache/kylin/rest/response/NDataModelResponse.java
@@ -30,6 +30,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.builder.HashCodeExclude;
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.guava30.shaded.common.collect.Lists;
 import org.apache.kylin.metadata.acl.NDataModelAclParams;
 import org.apache.kylin.metadata.cube.model.IndexPlan;
 import org.apache.kylin.metadata.cube.model.NDataflowManager;
@@ -55,7 +56,6 @@ import com.fasterxml.jackson.annotation.JsonGetter;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonUnwrapped;
-import org.apache.kylin.guava30.shaded.common.collect.Lists;
 
 import io.kyligence.kap.secondstorage.response.SecondStorageNode;
 import lombok.Data;
@@ -419,18 +419,8 @@ public class NDataModelResponse extends NDataModel {
         for (NamedColumn namedColumn : getAllSelectedColumns()) {
             SimplifiedNamedColumn simplifiedNamedColumn = new 
SimplifiedNamedColumn(namedColumn);
             TblColRef colRef = 
findColumnByAlias(simplifiedNamedColumn.getAliasDotColumn());
-            if (simplifiedNamedColumn.getStatus() == DIMENSION && colRef != 
null && tableMetadata != null) {
-                if (excludedChecker.isExcludedCol(colRef)
-                        && 
!colRef.getTableRef().getTableIdentity().equals(getLazyModel().getRootFactTableName()))
 {
-                    simplifiedNamedColumn.setExcluded(true);
-                }
-                TableExtDesc tableExt = 
tableMetadata.getTableExtIfExists(colRef.getTableRef().getTableDesc());
-                TableExtDesc.ColumnStats columnStats = 
Objects.isNull(tableExt) ? null
-                        : tableExt.getColumnStatsByName(colRef.getName());
-                if (columnStats != null) {
-                    
simplifiedNamedColumn.setCardinality(columnStats.getCardinality());
-                }
-
+            if (colRef != null) {
+                innerProcessSimplifiedNamedColumn(tableMetadata, 
excludedChecker, simplifiedNamedColumn, colRef);
             }
             selectedColumns.add(simplifiedNamedColumn);
         }
@@ -438,6 +428,23 @@ public class NDataModelResponse extends NDataModel {
         return selectedColumns;
     }
 
+    private void innerProcessSimplifiedNamedColumn(NTableMetadataManager 
tableMetadata,
+            ColExcludedChecker excludedChecker, SimplifiedNamedColumn 
simplifiedNamedColumn, TblColRef colRef) {
+        
simplifiedNamedColumn.setType(colRef.getColumnDesc().getType().toString());
+        if (simplifiedNamedColumn.getStatus() == DIMENSION && tableMetadata != 
null) {
+            if (excludedChecker.isExcludedCol(colRef)
+                    && 
!colRef.getTableRef().getTableIdentity().equals(getLazyModel().getRootFactTableName()))
 {
+                simplifiedNamedColumn.setExcluded(true);
+            }
+            TableExtDesc tableExt = 
tableMetadata.getTableExtIfExists(colRef.getTableRef().getTableDesc());
+            TableExtDesc.ColumnStats columnStats = Objects.isNull(tableExt) ? 
null
+                    : tableExt.getColumnStatsByName(colRef.getName());
+            if (columnStats != null) {
+                
simplifiedNamedColumn.setCardinality(columnStats.getCardinality());
+            }
+        }
+    }
+
     public void computedInfo(long inconsistentCount, ModelStatusToDisplayEnum 
status, boolean isScd2,
             NDataModel modelDesc, boolean onlyNormalDim) {
         if (!onlyNormalDim) {
diff --git 
a/src/modeling-service/src/test/java/org/apache/kylin/rest/response/NDataModelResponseTest.java
 
b/src/modeling-service/src/test/java/org/apache/kylin/rest/response/NDataModelResponseTest.java
index 8ee1f9422f..42b0e2b807 100644
--- 
a/src/modeling-service/src/test/java/org/apache/kylin/rest/response/NDataModelResponseTest.java
+++ 
b/src/modeling-service/src/test/java/org/apache/kylin/rest/response/NDataModelResponseTest.java
@@ -70,6 +70,7 @@ class NDataModelResponseTest {
         modelResponse.setProject(PROJECT);
         List<NDataModelResponse.SimplifiedNamedColumn> selectedColumns = 
modelResponse.getSelectedColumns();
         Assertions.assertEquals(1, selectedColumns.size());
+        Assertions.assertEquals("decimal(19,4)", 
selectedColumns.get(0).getType());
         List<NDataModelResponse.SimplifiedNamedColumn> namedColumns = 
modelResponse.getNamedColumns();
         Assertions.assertEquals(1, namedColumns.size());
     }

Reply via email to