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 676fdf7691e530052ef6f11d67a21335307e64ec
Author: ChenLiang <31469905+yab...@users.noreply.github.com>
AuthorDate: Mon Oct 31 21:14:21 2022 +0800

    KYLIN-5370 DDL operations ignore table name case
---
 .../main/java/org/apache/kylin/common/msg/CnMessage.java   |  2 +-
 .../java/org/apache/kylin/rest/service/SparkDDLTest.java   |  2 +-
 .../java/org/apache/kylin/spark/ddl/SourceTableCheck.java  | 14 ++++++++++----
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git 
a/src/core-common/src/main/java/org/apache/kylin/common/msg/CnMessage.java 
b/src/core-common/src/main/java/org/apache/kylin/common/msg/CnMessage.java
index 3306e85266..af50c20b53 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/msg/CnMessage.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/msg/CnMessage.java
@@ -1757,7 +1757,7 @@ public class CnMessage extends Message {
 
     @Override
     public String getDDLUnSupported() {
-        return "不支持的 DDL 语法,仅支持 `create view`, `drop view`, `alter view`, 
`show create view` 语法";
+        return "不支持的 DDL 语法,仅支持 `create view`, `drop view`, `alter view`, 
`show create table` 语法";
     }
 
     @Override
diff --git 
a/src/datasource-service/src/test/java/org/apache/kylin/rest/service/SparkDDLTest.java
 
b/src/datasource-service/src/test/java/org/apache/kylin/rest/service/SparkDDLTest.java
index df4af60863..fbdb21528f 100644
--- 
a/src/datasource-service/src/test/java/org/apache/kylin/rest/service/SparkDDLTest.java
+++ 
b/src/datasource-service/src/test/java/org/apache/kylin/rest/service/SparkDDLTest.java
@@ -45,7 +45,7 @@ public class SparkDDLTest extends NLocalFileMetadataTestCase {
   private final IUserGroupService userGroupService = 
Mockito.spy(NUserGroupService.class);
 
   private static final String CREATEVIEW_SQL1 =
-      "CREATE VIEW `ssb`.`ke_order_view` as select LO_ORDERKEY, C_NAME from 
SSB.P_LINEORDER t1 left join "
+      "CREATE VIEW `ssb`.`ke_order_view` as select LO_ORDERKEY, C_NAME from 
SSB.p_lineorder t1 left join "
           + "SSB. CUSTOMER t2 on t1. LO_CUSTKEY = t2. C_CUSTKEY";
   private static final String CREATEVIEW_SQL2 = "CREATE VIEW 
`ssb`.`order_view2` as select * from SSB.P_LINEORDER";
   private static final String CREATEVIEW_SQL3 = "CREATE VIEW 
`ssb`.`order_view2` as abc";
diff --git 
a/src/spark-project/spark-ddl-plugin/src/main/java/org/apache/kylin/spark/ddl/SourceTableCheck.java
 
b/src/spark-project/spark-ddl-plugin/src/main/java/org/apache/kylin/spark/ddl/SourceTableCheck.java
index c3c54623e5..beb157bddc 100644
--- 
a/src/spark-project/spark-ddl-plugin/src/main/java/org/apache/kylin/spark/ddl/SourceTableCheck.java
+++ 
b/src/spark-project/spark-ddl-plugin/src/main/java/org/apache/kylin/spark/ddl/SourceTableCheck.java
@@ -17,6 +17,9 @@
  */
 package org.apache.kylin.spark.ddl;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.msg.MsgPicker;
 import org.apache.kylin.metadata.model.ISourceAware;
@@ -62,12 +65,15 @@ public class SourceTableCheck implements DDLCheck {
     for (LogicalPlan plan : 
scala.collection.JavaConverters.seqAsJavaListConverter(relationLeaves).asJava())
 {
       if (plan instanceof UnresolvedRelation) {
         val tableName = ((UnresolvedRelation) plan).tableName();
-        TableDesc tableDesc = tableManager.getTableDesc(tableName);
-        if (tableDesc == null) {
+        List<TableDesc> loadTable = tableManager.listAllTables().stream()
+            .filter(table -> table.getTableAlias().equalsIgnoreCase(tableName))
+            .collect(Collectors.toList());
+        if (loadTable.isEmpty()) {
           throwException(MsgPicker.getMsg().getDDLTableNotLoad(tableName));
         }
-        if (ISourceAware.ID_HIVE != tableDesc.getSourceType()
-            && ISourceAware.ID_SPARK != tableDesc.getSourceType()) {
+        TableDesc table = loadTable.get(0);
+        if (ISourceAware.ID_HIVE != table.getSourceType()
+            && ISourceAware.ID_SPARK != table.getSourceType()) {
           throwException(MsgPicker.getMsg().getDDLTableNotSupport(tableName));
         }
       }

Reply via email to