This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 34e3b64f94 Fix table exists check in the jdbc storage plugin (#11392)
34e3b64f94 is described below

commit 34e3b64f947d8496b34f97767e8bce7394f4ef04
Author: Liu Haoyang <liuhaoyang1...@hotmail.com>
AuthorDate: Tue Oct 10 17:26:34 2023 +0800

    Fix table exists check in the jdbc storage plugin (#11392)
---
 docs/en/changes/changes.md                                          | 1 +
 .../oap/server/library/client/jdbc/hikaricp/JDBCClient.java         | 6 +++---
 .../server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java | 2 +-
 .../storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java      | 6 +++---
 4 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 91aa998563..6d116f7651 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -18,6 +18,7 @@
 * Update BanyanDB Java Client to 0.5.0.
 * Fix getInstances query in the BanyanDB Metadata DAO.
 * BanyanDBStorageClient: Add `keepAliveProperty` API.
+* Fix table exists check in the JDBC Storage Plugin.
 
 #### UI
 
diff --git 
a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCClient.java
 
b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCClient.java
index 49539fb626..65c83b9ac8 100644
--- 
a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCClient.java
+++ 
b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCClient.java
@@ -152,7 +152,7 @@ public class JDBCClient implements Client, HealthCheckable {
     public boolean indexExists(final String table,
                                final String index) throws SQLException {
         try (final var connection = getConnection();
-             final var resultSet = connection.getMetaData().getIndexInfo(null, 
null, table, false, false)) {
+             final var resultSet = 
connection.getMetaData().getIndexInfo(connection.getCatalog(), null, table, 
false, false)) {
             while (resultSet.next()) {
                 if (resultSet.getString("INDEX_NAME").equalsIgnoreCase(index)) 
{
                     return true;
@@ -164,14 +164,14 @@ public class JDBCClient implements Client, 
HealthCheckable {
 
     public boolean tableExists(final String table) throws SQLException {
         try (final var conn = getConnection();
-             final var result = conn.getMetaData().getTables(null, null, 
table, null)) {
+             final var result = 
conn.getMetaData().getTables(conn.getCatalog(), null, table, null)) {
             return result.next();
         }
     }
 
     public Set<String> getTableColumns(final String table) throws SQLException 
{
         try (final var conn = getConnection();
-             final var result = conn.getMetaData().getColumns(null, null, 
table, null)) {
+             final var result = 
conn.getMetaData().getColumns(conn.getCatalog(), null, table, null)) {
             final var columns = new HashSet<String>();
             while (result.next()) {
                 columns.add(result.getString("COLUMN_NAME").toLowerCase());
diff --git 
a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java
 
b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java
index 91c25ab76e..e91c474057 100644
--- 
a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java
+++ 
b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAO.java
@@ -78,7 +78,7 @@ public class JDBCHistoryDeleteDAO implements 
IHistoryDeleteDAO {
         final var tableName = TableHelper.getTableName(model);
 
         try (final var conn = jdbcClient.getConnection();
-             final var result = conn.getMetaData().getTables(null, null, 
tableName + "%", new String[]{"TABLE"})) {
+             final var result = 
conn.getMetaData().getTables(conn.getCatalog(), null, tableName + "%", new 
String[]{"TABLE"})) {
             while (result.next()) {
                 tablesToDrop.add(result.getString("TABLE_NAME"));
             }
diff --git 
a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java
 
b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java
index 9783096b48..7e93d08c27 100644
--- 
a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java
+++ 
b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCHistoryDeleteDAOIT.java
@@ -122,7 +122,7 @@ class JDBCHistoryDeleteDAOIT {
         var jdbcHistoryDeleteDAO = new JDBCHistoryDeleteDAO(jdbcClient, 
tableHelper, tableInstaller, clock);
         jdbcHistoryDeleteDAO.deleteHistory(model, "time_bucket", 3);
         try (final var conn = jdbcClient.getConnection();
-             final var rs = conn.getMetaData().getTables(null, null, 
"service_traffic_20230317", null)) {
+             final var rs = conn.getMetaData().getTables(conn.getCatalog(), 
null, "service_traffic_20230317", null)) {
             assertThat(rs.next()).isTrue();
         }
 
@@ -131,12 +131,12 @@ class JDBCHistoryDeleteDAOIT {
         jdbcHistoryDeleteDAO = new JDBCHistoryDeleteDAO(jdbcClient, 
tableHelper, tableInstaller, clock);
         jdbcHistoryDeleteDAO.deleteHistory(model, "time_bucket", 3);
         try (final var conn = jdbcClient.getConnection();
-             final var rs = conn.getMetaData().getTables(null, null, 
"service_traffic_20230317", null)) {
+             final var rs = conn.getMetaData().getTables(conn.getCatalog(), 
null, "service_traffic_20230317", null)) {
             assertThat(rs.next()).isFalse();
         }
         // ... and should create the new table
         try (final var conn = jdbcClient.getConnection();
-             final var rs = conn.getMetaData().getTables(null, null, 
"service_traffic_20230322", null)) {
+             final var rs = conn.getMetaData().getTables(conn.getCatalog(), 
null, "service_traffic_20230322", null)) {
             assertThat(rs.next()).isTrue();
         }
     }

Reply via email to