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 <[email protected]>
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();
}
}