From fc94a6718baa6557381de34983696995784af402 Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Sat, 12 Oct 2024 14:11:54 +0800 Subject: [PATCH] [improvement][headless] Fix the issue of retrieving empty table information in H2 (#1789) --- .../headless/core/adaptor/db/BaseDbAdaptor.java | 9 +++++++-- .../headless/core/adaptor/db/H2Adaptor.java | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java index fd229db45..a0cba187e 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/BaseDbAdaptor.java @@ -45,8 +45,8 @@ public abstract class BaseDbAdaptor implements DbAdaptor { List tablesAndViews = new ArrayList<>(); DatabaseMetaData metaData = getDatabaseMetaData(connectionInfo); - try (ResultSet resultSet = - metaData.getTables(schemaName, schemaName, null, new String[] {"TABLE", "VIEW"})) { + try { + ResultSet resultSet = getResultSet(schemaName, metaData); while (resultSet.next()) { String name = resultSet.getString("TABLE_NAME"); tablesAndViews.add(name); @@ -57,6 +57,11 @@ public abstract class BaseDbAdaptor implements DbAdaptor { return tablesAndViews; } + protected ResultSet getResultSet(String schemaName, DatabaseMetaData metaData) + throws SQLException { + return metaData.getTables(schemaName, schemaName, null, new String[] {"TABLE", "VIEW"}); + } + public List getColumns(ConnectInfo connectInfo, String schemaName, String tableName) throws SQLException { List dbColumns = Lists.newArrayList(); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java index 96775f759..e10969fef 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/H2Adaptor.java @@ -2,7 +2,13 @@ package com.tencent.supersonic.headless.core.adaptor.db; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum; +import lombok.extern.slf4j.Slf4j; +import java.sql.DatabaseMetaData; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Slf4j public class H2Adaptor extends BaseDbAdaptor { @Override @@ -30,6 +36,11 @@ public class H2Adaptor extends BaseDbAdaptor { return column; } + protected ResultSet getResultSet(String schemaName, DatabaseMetaData metaData) + throws SQLException { + return metaData.getTables(schemaName, null, null, new String[] {"TABLE", "VIEW"}); + } + @Override public String functionNameCorrector(String sql) { return sql;