This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new b8a4deff4 [core] remove duplicated schema names in list schema in JDBC
catalog (#4440)
b8a4deff4 is described below
commit b8a4deff4010f058b97fa3ce89724b83a68997ae
Author: FANNG <[email protected]>
AuthorDate: Sat Nov 9 21:32:36 2024 +0800
[core] remove duplicated schema names in list schema in JDBC catalog (#4440)
---
.../src/main/java/org/apache/paimon/jdbc/JdbcCatalog.java | 3 ++-
.../java/org/apache/paimon/catalog/CatalogTestBase.java | 14 ++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/paimon-core/src/main/java/org/apache/paimon/jdbc/JdbcCatalog.java
b/paimon-core/src/main/java/org/apache/paimon/jdbc/JdbcCatalog.java
index c80f8e3a5..778bc591f 100644
--- a/paimon-core/src/main/java/org/apache/paimon/jdbc/JdbcCatalog.java
+++ b/paimon-core/src/main/java/org/apache/paimon/jdbc/JdbcCatalog.java
@@ -52,6 +52,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.stream.Collectors;
import static org.apache.paimon.jdbc.JdbcCatalogLock.acquireTimeout;
import static org.apache.paimon.jdbc.JdbcCatalogLock.checkMaxSleep;
@@ -156,7 +157,7 @@ public class JdbcCatalog extends AbstractCatalog {
row -> row.getString(JdbcUtils.DATABASE_NAME),
JdbcUtils.LIST_ALL_PROPERTY_DATABASES_SQL,
catalogKey));
- return databases;
+ return databases.stream().distinct().collect(Collectors.toList());
}
@Override
diff --git
a/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java
b/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java
index 643e1372b..24eefbcb6 100644
--- a/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java
+++ b/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java
@@ -37,6 +37,7 @@ import
org.apache.paimon.shade.guava30.com.google.common.collect.Lists;
import org.apache.paimon.shade.guava30.com.google.common.collect.Maps;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -46,6 +47,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import static
org.apache.paimon.testutils.assertj.PaimonAssertions.anyCauseMatches;
import static org.assertj.core.api.Assertions.assertThat;
@@ -111,6 +113,18 @@ public abstract class CatalogTestBase {
assertThat(databases).contains("db1", "db2", "db3");
}
+ @Test
+ public void testDuplicatedDatabaseAfterCreatingTable() throws Exception {
+ catalog.createDatabase("test_db", false);
+ Identifier identifier = Identifier.create("test_db", "new_table");
+ Schema schema = Schema.newBuilder().column("pk1",
DataTypes.INT()).build();
+ catalog.createTable(identifier, schema, false);
+
+ List<String> databases = catalog.listDatabases();
+ List<String> distinctDatabases =
databases.stream().distinct().collect(Collectors.toList());
+ Assertions.assertEquals(distinctDatabases.size(), databases.size());
+ }
+
@Test
public void testCreateDatabase() throws Exception {
// Create database creates a new database when it does not exist