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

panjuan 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 d5bf9baf8d9 Optimize the type return value of the 
ShardingSphereStatisticsCollector implementation class (#26774)
d5bf9baf8d9 is described below

commit d5bf9baf8d9df06be728170ffe04c239c192ef23
Author: jiangML <[email protected]>
AuthorDate: Wed Jul 5 18:10:58 2023 +0800

    Optimize the type return value of the ShardingSphereStatisticsCollector 
implementation class (#26774)
    
    * Optimize the implementation interface of ShardingSphereStatisticsCollector
    
    * fix test error
    
    * add oid for pg_roles table
---
 .../pgcatalog/OpenGaussPgClassTableCollector.java  | 22 +++++++++++-----------
 .../OpenGaussPgNamespaceTableCollector.java        | 22 +++++++++++-----------
 .../PostgreSQLPgClassTableCollector.java}          |  9 +++++----
 .../PostgreSQLPgNamespaceTableCollector.java}      |  9 +++++----
 ...ics.collector.ShardingSphereStatisticsCollector |  6 ++++--
 .../schema/opengauss/pg_catalog/pg_class.yaml      |  2 +-
 .../schema/opengauss/pg_catalog/pg_rules.yaml      |  7 +++++++
 .../schema/postgresql/pg_catalog/pg_class.yaml     |  2 +-
 .../schema/postgresql/pg_catalog/pg_roles.yaml     |  2 +-
 .../ShardingSphereStatisticsScheduleCollector.java |  6 +++++-
 .../ShardingSphereDataCollectorFixture.java        |  7 ++++---
 .../listener/ShardingSphereDataCollectorTest.java  | 10 ++++++----
 12 files changed, 61 insertions(+), 43 deletions(-)

diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/opengauss/pgcatalog/OpenGaussPgClassTableCollector.java
similarity index 68%
copy from 
kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
copy to 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/opengauss/pgcatalog/OpenGaussPgClassTableCollector.java
index 2d7bb4ebe84..822c61fda1d 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/opengauss/pgcatalog/OpenGaussPgClassTableCollector.java
@@ -15,34 +15,34 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.data.pipeline.core.listener;
+package 
org.apache.shardingsphere.infra.metadata.statistics.collector.opengauss.pgcatalog;
 
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector;
+import 
org.apache.shardingsphere.infra.database.type.dialect.OpenGaussDatabaseType;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
+import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
+import 
org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector;
+import 
org.apache.shardingsphere.infra.metadata.statistics.collector.postgresql.pgcatalog.PostgreSQLPgClassTableCollector;
 
 import java.sql.SQLException;
-import java.util.Arrays;
 import java.util.Map;
 import java.util.Optional;
 
 /**
- * ShardingSphere data collector fixture.
+ * Table pg_catalog.pg_class data collector for openGauss.
  */
-public final class ShardingSphereDataCollectorFixture implements 
ShardingSphereStatisticsCollector {
+public final class OpenGaussPgClassTableCollector implements 
ShardingSphereStatisticsCollector {
+    
+    private final PostgreSQLPgClassTableCollector delegated = new 
PostgreSQLPgClassTableCollector();
     
     @Override
     public Optional<ShardingSphereTableData> collect(final String 
databaseName, final ShardingSphereTable table,
                                                      final Map<String, 
ShardingSphereDatabase> shardingSphereDatabases) throws SQLException {
-        ShardingSphereTableData shardingSphereTableData = new 
ShardingSphereTableData("test_table");
-        shardingSphereTableData.getRows().add(new 
ShardingSphereRowData(Arrays.asList("1", "2")));
-        return Optional.of(shardingSphereTableData);
+        return delegated.collect(databaseName, table, shardingSphereDatabases);
     }
     
     @Override
     public String getType() {
-        return "test_table";
+        return String.join(".", new OpenGaussDatabaseType().getType(), 
"pg_catalog", "pg_class");
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/opengauss/pgcatalog/OpenGaussPgNamespaceTableCollector.java
similarity index 69%
copy from 
kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
copy to 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/opengauss/pgcatalog/OpenGaussPgNamespaceTableCollector.java
index 2d7bb4ebe84..27a95efb071 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/opengauss/pgcatalog/OpenGaussPgNamespaceTableCollector.java
@@ -15,34 +15,34 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.data.pipeline.core.listener;
+package 
org.apache.shardingsphere.infra.metadata.statistics.collector.opengauss.pgcatalog;
 
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector;
+import 
org.apache.shardingsphere.infra.database.type.dialect.OpenGaussDatabaseType;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
+import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
+import 
org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector;
+import 
org.apache.shardingsphere.infra.metadata.statistics.collector.postgresql.pgcatalog.PostgreSQLPgNamespaceTableCollector;
 
 import java.sql.SQLException;
-import java.util.Arrays;
 import java.util.Map;
 import java.util.Optional;
 
 /**
- * ShardingSphere data collector fixture.
+ * Table pg_catalog.pg_namespace data collector for openGauss.
  */
-public final class ShardingSphereDataCollectorFixture implements 
ShardingSphereStatisticsCollector {
+public final class OpenGaussPgNamespaceTableCollector implements 
ShardingSphereStatisticsCollector {
+    
+    private final PostgreSQLPgNamespaceTableCollector delegated = new 
PostgreSQLPgNamespaceTableCollector();
     
     @Override
     public Optional<ShardingSphereTableData> collect(final String 
databaseName, final ShardingSphereTable table,
                                                      final Map<String, 
ShardingSphereDatabase> shardingSphereDatabases) throws SQLException {
-        ShardingSphereTableData shardingSphereTableData = new 
ShardingSphereTableData("test_table");
-        shardingSphereTableData.getRows().add(new 
ShardingSphereRowData(Arrays.asList("1", "2")));
-        return Optional.of(shardingSphereTableData);
+        return delegated.collect(databaseName, table, shardingSphereDatabases);
     }
     
     @Override
     public String getType() {
-        return "test_table";
+        return String.join(".", new OpenGaussDatabaseType().getType(), 
"pg_catalog", "pg_namespace");
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/tables/PgClassTableCollector.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/postgresql/pgcatalog/PostgreSQLPgClassTableCollector.java
similarity index 92%
rename from 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/tables/PgClassTableCollector.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/postgresql/pgcatalog/PostgreSQLPgClassTableCollector.java
index 22f7b2fc416..7b7acdb34a6 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/tables/PgClassTableCollector.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/postgresql/pgcatalog/PostgreSQLPgClassTableCollector.java
@@ -15,8 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.statistics.collector.tables;
+package 
org.apache.shardingsphere.infra.metadata.statistics.collector.postgresql.pgcatalog;
 
+import 
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector;
@@ -37,9 +38,9 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
- * Table pg_class data collector.
+ * Table pg_catalog.pg_class data collector for PostgreSQL.
  */
-public final class PgClassTableCollector implements 
ShardingSphereStatisticsCollector {
+public final class PostgreSQLPgClassTableCollector implements 
ShardingSphereStatisticsCollector {
     
     private static final String PG_CLASS = "pg_class";
     
@@ -87,6 +88,6 @@ public final class PgClassTableCollector implements 
ShardingSphereStatisticsColl
     
     @Override
     public String getType() {
-        return PG_CLASS;
+        return String.join(".", new PostgreSQLDatabaseType().getType(), 
"pg_catalog", "pg_class");
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/tables/PgNamespaceTableCollector.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/postgresql/pgcatalog/PostgreSQLPgNamespaceTableCollector.java
similarity index 87%
rename from 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/tables/PgNamespaceTableCollector.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/postgresql/pgcatalog/PostgreSQLPgNamespaceTableCollector.java
index b6d16c2803c..76101b34fc6 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/tables/PgNamespaceTableCollector.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/postgresql/pgcatalog/PostgreSQLPgNamespaceTableCollector.java
@@ -15,8 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.statistics.collector.tables;
+package 
org.apache.shardingsphere.infra.metadata.statistics.collector.postgresql.pgcatalog;
 
+import 
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector;
@@ -32,9 +33,9 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
- * Table pg_namespace data collector.
+ * Table pg_catalog.pg_namespace data collector for PostgreSQL.
  */
-public final class PgNamespaceTableCollector implements 
ShardingSphereStatisticsCollector {
+public final class PostgreSQLPgNamespaceTableCollector implements 
ShardingSphereStatisticsCollector {
     
     private static final String PG_NAMESPACE = "pg_namespace";
     
@@ -54,6 +55,6 @@ public final class PgNamespaceTableCollector implements 
ShardingSphereStatistics
     
     @Override
     public String getType() {
-        return PG_NAMESPACE;
+        return String.join(".", new PostgreSQLDatabaseType().getType(), 
"pg_catalog", "pg_namespace");
     }
 }
diff --git 
a/infra/common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector
 
b/infra/common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector
index 8154ad584aa..fe646772f4e 100644
--- 
a/infra/common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector
+++ 
b/infra/common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector
@@ -15,5 +15,7 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.metadata.statistics.collector.tables.PgNamespaceTableCollector
-org.apache.shardingsphere.infra.metadata.statistics.collector.tables.PgClassTableCollector
+org.apache.shardingsphere.infra.metadata.statistics.collector.postgresql.pgcatalog.PostgreSQLPgNamespaceTableCollector
+org.apache.shardingsphere.infra.metadata.statistics.collector.postgresql.pgcatalog.PostgreSQLPgClassTableCollector
+org.apache.shardingsphere.infra.metadata.statistics.collector.opengauss.pgcatalog.OpenGaussPgClassTableCollector
+org.apache.shardingsphere.infra.metadata.statistics.collector.opengauss.pgcatalog.OpenGaussPgNamespaceTableCollector
diff --git 
a/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_class.yaml 
b/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_class.yaml
index e1d096c1673..cbee72c4bc3 100644
--- a/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_class.yaml
+++ b/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_class.yaml
@@ -22,7 +22,7 @@ columns:
     dataType: -5
     generated: false
     name: oid
-    primaryKey: false
+    primaryKey: true
     unsigned: false
     visible: true
   relname:
diff --git 
a/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_rules.yaml 
b/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_rules.yaml
index 2f755f48a3b..a6ef853fd83 100644
--- a/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_rules.yaml
+++ b/infra/common/src/main/resources/schema/opengauss/pg_catalog/pg_rules.yaml
@@ -17,6 +17,13 @@
 
 name: pg_rules
 columns:
+  oid:
+    caseSensitive: true
+    dataType: -5
+    generated: false
+    name: oid
+    primaryKey: true
+    visible: false
   schemaname:
     caseSensitive: true
     dataType: 12
diff --git 
a/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_class.yaml 
b/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_class.yaml
index a649ddc06d9..c955918efdf 100644
--- a/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_class.yaml
+++ b/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_class.yaml
@@ -22,7 +22,7 @@ columns:
     dataType: -5
     generated: false
     name: oid
-    primaryKey: false
+    primaryKey: true
     visible: true
   relname:
     caseSensitive: true
diff --git 
a/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_roles.yaml 
b/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_roles.yaml
index 04a60852300..b471fcc86d9 100644
--- a/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_roles.yaml
+++ b/infra/common/src/main/resources/schema/postgresql/pg_catalog/pg_roles.yaml
@@ -22,7 +22,7 @@ columns:
     dataType: -5
     generated: false
     name: oid
-    primaryKey: false
+    primaryKey: true
     visible: false
   rolname:
     caseSensitive: true
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereStatisticsScheduleCollector.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereStatisticsScheduleCollector.java
index 9a6b99c0344..5e82c10f60e 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereStatisticsScheduleCollector.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereStatisticsScheduleCollector.java
@@ -67,6 +67,8 @@ public final class ShardingSphereStatisticsScheduleCollector {
     @RequiredArgsConstructor
     protected static final class ShardingSphereDataCollectorRunnable 
implements Runnable {
         
+        private static final String SHARDING_SPHERE_SYSTEM_DATABASE_SCHEMA = 
"shardingsphere";
+        
         private final ContextManager contextManager;
         
         @Override
@@ -102,7 +104,9 @@ public final class 
ShardingSphereStatisticsScheduleCollector {
         
         private void collectForTable(final String databaseName, final String 
schemaName, final ShardingSphereTable table,
                                      final Map<String, ShardingSphereDatabase> 
databases, final ShardingSphereStatistics statistics) {
-            Optional<ShardingSphereStatisticsCollector> dataCollector = 
TypedSPILoader.findService(ShardingSphereStatisticsCollector.class, 
table.getName());
+            String collectorType = 
SHARDING_SPHERE_SYSTEM_DATABASE_SCHEMA.equalsIgnoreCase(schemaName) 
+                    ? table.getName() : String.join(".", 
databases.get(databaseName).getProtocolType().getType(), schemaName, 
table.getName());
+            Optional<ShardingSphereStatisticsCollector> dataCollector = 
TypedSPILoader.findService(ShardingSphereStatisticsCollector.class, 
collectorType);
             if (!dataCollector.isPresent()) {
                 return;
             }
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
index 2d7bb4ebe84..c44e8f79b02 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorFixture.java
@@ -17,11 +17,12 @@
 
 package org.apache.shardingsphere.data.pipeline.core.listener;
 
+import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.collector.ShardingSphereStatisticsCollector;
-import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 
 import java.sql.SQLException;
 import java.util.Arrays;
@@ -43,6 +44,6 @@ public final class ShardingSphereDataCollectorFixture 
implements ShardingSphereS
     
     @Override
     public String getType() {
-        return "test_table";
+        return String.join(".", new MySQLDatabaseType().getType(), 
"logic_schema", "test_table");
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorTest.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorTest.java
index 9147027b600..4a03aed74ac 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorTest.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/listener/ShardingSphereDataCollectorTest.java
@@ -19,15 +19,16 @@ package 
org.apache.shardingsphere.data.pipeline.core.listener;
 
 import 
org.apache.shardingsphere.data.pipeline.core.listener.ShardingSphereStatisticsScheduleCollector.ShardingSphereDataCollectorRunnable;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
+import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereDatabaseData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereSchemaData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
+import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereDatabaseData;
+import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereSchemaData;
+import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
+import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.junit.jupiter.api.Test;
 
@@ -71,6 +72,7 @@ class ShardingSphereDataCollectorTest {
         ShardingSphereMetaData result = mock(ShardingSphereMetaData.class);
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
         when(database.getName()).thenReturn("logic_db");
+        when(database.getProtocolType()).thenReturn(new MySQLDatabaseType());
         
when(result.getDatabases()).thenReturn(Collections.singletonMap("logic_db", 
database));
         when(result.getDatabase("logic_db")).thenReturn(database);
         when(result.containsDatabase("logic_db")).thenReturn(true);

Reply via email to