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

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


The following commit(s) were added to refs/heads/master by this push:
     new eff0b784b28 Add more test cases on PostgreSQLMetaDataLoaderTest 
(#38140)
eff0b784b28 is described below

commit eff0b784b280cb2144fc34b3ebfee364a618f053
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 22 16:01:01 2026 +0800

    Add more test cases on PostgreSQLMetaDataLoaderTest (#38140)
---
 .../data/loader/PostgreSQLMetaDataLoaderTest.java  | 28 +++++++++++++++-------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git 
a/database/connector/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/connector/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
 
b/database/connector/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/connector/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
index a5a7688d488..71343ab99a9 100644
--- 
a/database/connector/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/connector/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
+++ 
b/database/connector/dialect/postgresql/src/test/java/org/apache/shardingsphere/database/connector/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
@@ -74,6 +74,8 @@ class PostgreSQLMetaDataLoaderTest {
     
     private static final String LOAD_ALL_ROLE_TABLE_GRANTS_SQL = "SELECT 
table_name FROM information_schema.role_table_grants";
     
+    private static final String VIEW_META_DATA_SQL = "SELECT table_schema, 
table_name FROM information_schema.views WHERE table_schema IN ('public') and 
table_name IN ('tbl')";
+    
     private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
     
     @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed")
@@ -123,6 +125,8 @@ class PostgreSQLMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(BASIC_CONSTRAINT_META_DATA_SQL).executeQuery()).thenReturn(constraintResultSet);
         ResultSet roleTableGrantsResultSet = mockRoleTableGrantsResultSet();
         
when(dataSource.getConnection().prepareStatement(startsWith(LOAD_ALL_ROLE_TABLE_GRANTS_SQL)).executeQuery()).thenReturn(roleTableGrantsResultSet);
+        ResultSet viewResultSet = mockViewMetaDataResultSet();
+        
when(dataSource.getConnection().prepareStatement(VIEW_META_DATA_SQL).executeQuery()).thenReturn(viewResultSet);
         DataTypeRegistry.load(dataSource, "PostgreSQL");
         assertTableMetaDataMap(getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), "foo_ds", dataSource, 
databaseType, "sharding_db")));
     }
@@ -152,13 +156,13 @@ class PostgreSQLMetaDataLoaderTest {
     
     private ResultSet mockTableMetaDataResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, true, false);
-        when(result.getString("table_name")).thenReturn("tbl");
+        when(result.next()).thenReturn(true, true, true, false);
+        when(result.getString("table_name")).thenReturn("ignored_tbl", "tbl", 
"tbl");
         when(result.getString("column_name")).thenReturn("id", "name");
-        when(result.getInt("ordinal_position")).thenReturn(1, 2);
+        when(result.getInt("ordinal_position")).thenReturn(1, 2, 3);
         when(result.getString("data_type")).thenReturn("integer", "character 
varying");
         when(result.getString("udt_name")).thenReturn("int4", "varchar");
-        
when(result.getString("column_default")).thenReturn("nextval('id_seq'::regclass)",
 "");
+        
when(result.getString("column_default")).thenReturn("nextval('id_seq'::regclass)",
 null);
         when(result.getString("table_schema")).thenReturn("public", "public");
         when(result.getString("is_nullable")).thenReturn("NO", "YES");
         return result;
@@ -183,13 +187,21 @@ class PostgreSQLMetaDataLoaderTest {
     }
     
     private ResultSet mockAdvanceIndexMetaDataResultSet() throws SQLException {
+        ResultSet result = mock(ResultSet.class);
+        when(result.next()).thenReturn(true, true, true, false);
+        when(result.getString("table_name")).thenReturn("tbl", "tbl", "tbl");
+        when(result.getString("column_name")).thenReturn("id", "id", "id");
+        when(result.getString("index_name")).thenReturn("missing_index", 
"not_matched", "id");
+        when(result.getString("index_schema")).thenReturn("ignored_schema", 
"public", "public");
+        when(result.getBoolean("is_unique")).thenReturn(false, true, true);
+        return result;
+    }
+    
+    private ResultSet mockViewMetaDataResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, false);
+        when(result.getString("table_schema")).thenReturn("public");
         when(result.getString("table_name")).thenReturn("tbl");
-        when(result.getString("column_name")).thenReturn("id");
-        when(result.getString("index_name")).thenReturn("id");
-        when(result.getString("index_schema")).thenReturn("public");
-        when(result.getBoolean("is_unique")).thenReturn(true);
         return result;
     }
     

Reply via email to