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()); }