This is an automated email from the ASF dual-hosted git repository.
pfzhan pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin5 by this push:
new 5f3ef471b4 KYLIN-5982 Fix internal table error when single table model
exists (#2244)
5f3ef471b4 is described below
commit 5f3ef471b47768cf00e9ce31abb3bd8db640065d
Author: Guoliang Sun <[email protected]>
AuthorDate: Wed Jan 22 10:33:53 2025 +0800
KYLIN-5982 Fix internal table error when single table model exists (#2244)
Co-authored-by: Zhiting Guo <[email protected]>
---
.../main/java/org/apache/kylin/metadata/model/ColumnDesc.java | 4 ++++
.../org/apache/kylin/query/runtime/plan/TableScanPlan.scala | 11 +++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git
a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
index bd4bc6210c..4ee5f5b2b2 100644
---
a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
+++
b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
@@ -163,6 +163,10 @@ public class ColumnDesc implements Serializable {
return BACK_TICK + table.getName() + BACK_TICK + "." + BACK_TICK +
getName() + BACK_TICK;
}
+ public String getBackTickName() {
+ return BACK_TICK + getName() + BACK_TICK;
+ }
+
@JsonSetter("name")
public void setName(String name) {
this.name = name;
diff --git
a/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala
b/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala
index 0b8c030b23..ae5c7e0e72 100644
---
a/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala
+++
b/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala
@@ -515,8 +515,15 @@ object TableScanPlan extends LogEx {
val tableScan = rel.asInstanceOf[OlapTableScan]
val project = QueryContext.current().getProject
val tableIdentity = tableScan.getTableName
- val allColumns = tableScan.getFields.map(idx =>
tableScan.getColumnRowType.getColumnByIndex(idx).getName)
- val sql = f"select ${allColumns.mkString("`", "`, `", "`")} from
INTERNAL_CATALOG.$project.$tableIdentity"
+ val allColumns = tableScan.getOlapTable.getSourceColumns.asScala
+ .map(
+ column =>
+ if (column.isComputedColumn || column.getZeroBasedIndex < 0) {
+ "1"
+ } else {
+ column.getBackTickName
+ })
+ val sql = f"select ${allColumns.mkString(",")} from
INTERNAL_CATALOG.$project.$tableIdentity"
sparkSession.sql(sql).queryExecution.analyzed
}