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
   }
 

Reply via email to