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

Reply via email to