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 4742188bdee5c4300fb810b4cbdb2622123a6305
Author: Jiawei Li <1019037...@qq.com>
AuthorDate: Thu Jan 5 09:40:57 2023 +0800

    KYLIN-5445 minor fix isPrimaryKeyExists throw exception when using low 
version mysql driver
---
 .../kylin/common/persistence/metadata/jdbc/JdbcUtil.java   | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git 
a/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/jdbc/JdbcUtil.java
 
b/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/jdbc/JdbcUtil.java
index a4bc8e4221..0fa58ed773 100644
--- 
a/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/jdbc/JdbcUtil.java
+++ 
b/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/jdbc/JdbcUtil.java
@@ -125,12 +125,16 @@ public class JdbcUtil {
     private static boolean isPrimaryKeyExists(Connection conn, String... 
tables) throws SQLException {
         try {
             for (String table : tables) {
-                val resultSet = 
conn.getMetaData().getPrimaryKeys(conn.getCatalog(), conn.getSchema(), table);
-                if (resultSet.next()) {
-                    return true;
+                try {
+                    val resultSet = 
conn.getMetaData().getPrimaryKeys(conn.getCatalog(), conn.getSchema(), table);
+                    if (resultSet.next()) {
+                        return true;
+                    }
+                } catch (Exception e) {
+                    log.warn("get primary key from table {} failed", table, e);
                 }
             }
-            
+
             return false;
         } catch (Exception e) {
             logger.error("Fail to know if table {} primary key exists", 
tables, e);
@@ -157,7 +161,7 @@ public class JdbcUtil {
                     }
                 }
             }
-        } catch (Exception e) {
+        } catch (SQLException e) {
             logger.error("Fail to know if table {} index {} exists", tables, 
index, e);
         } finally {
             if (!conn.isClosed())

Reply via email to