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(); } }