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 07b187e9e41 Refactor OpenGauss admin executor creation to use factory 
pattern for system function and table query executors (#36891)
07b187e9e41 is described below

commit 07b187e9e41f7a0ef000fe7aa23bc38af0dd381f
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Oct 17 21:24:57 2025 +0800

    Refactor OpenGauss admin executor creation to use factory pattern for 
system function and table query executors (#36891)
    
    * Refactor OpenGauss admin executor creation to use factory pattern for 
system function and table query executors
    
    * Refactor OpenGauss admin executor creation to use factory pattern for 
system function and table query executors
---
 .../admin/OpenGaussAdminExecutorCreator.java       | 19 +++++++++------
 ...enGaussSystemFunctionQueryExecutorFactory.java} | 21 ++++++++---------
 .../OpenGaussSystemTableQueryExecutorFactory.java} | 27 ++++++++--------------
 .../admin/OpenGaussAdminExecutorCreatorTest.java   |  4 +---
 .../OpenGaussAdminExecutorFactoryTest.java         |  5 ++--
 ...ussSystemFunctionQueryExecutorFactoryTest.java} | 25 ++++++++++----------
 ...nGaussSystemTableQueryExecutorFactoryTest.java} | 21 ++++++++---------
 7 files changed, 56 insertions(+), 66 deletions(-)

diff --git 
a/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
 
b/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
index 5f58f37796a..886ff2a23ae 100644
--- 
a/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
+++ 
b/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
@@ -18,9 +18,12 @@
 package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutorCreator;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussShowVariableExecutor;
+import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.factory.OpenGaussSystemFunctionQueryExecutorFactory;
+import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.factory.OpenGaussSystemTableQueryExecutorFactory;
 import 
org.apache.shardingsphere.proxy.backend.postgresql.handler.admin.PostgreSQLAdminExecutorCreator;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.ShowStatement;
 
@@ -36,13 +39,15 @@ public final class OpenGaussAdminExecutorCreator implements 
DatabaseAdminExecuto
     
     @Override
     public Optional<DatabaseAdminExecutor> create(final SQLStatementContext 
sqlStatementContext, final String sql, final String databaseName, final 
List<Object> parameters) {
-        OpenGaussSystemTableQueryExecutorCreator 
systemTableQueryExecutorCreator = new 
OpenGaussSystemTableQueryExecutorCreator(sqlStatementContext, sql, parameters);
-        if (systemTableQueryExecutorCreator.accept()) {
-            return systemTableQueryExecutorCreator.create();
-        }
-        OpenGaussSystemFunctionQueryExecutorCreator 
functionQueryExecutorCreator = new 
OpenGaussSystemFunctionQueryExecutorCreator(sqlStatementContext);
-        if (functionQueryExecutorCreator.accept()) {
-            return functionQueryExecutorCreator.create();
+        if (sqlStatementContext instanceof SelectStatementContext) {
+            OpenGaussSystemTableQueryExecutorFactory 
systemTableQueryExecutorCreator = new 
OpenGaussSystemTableQueryExecutorFactory((SelectStatementContext) 
sqlStatementContext, sql, parameters);
+            if (systemTableQueryExecutorCreator.accept()) {
+                return systemTableQueryExecutorCreator.newInstance();
+            }
+            OpenGaussSystemFunctionQueryExecutorFactory 
functionQueryExecutorCreator = new 
OpenGaussSystemFunctionQueryExecutorFactory((SelectStatementContext) 
sqlStatementContext);
+            if (functionQueryExecutorCreator.accept()) {
+                return functionQueryExecutorCreator.newInstance();
+            }
         }
         if (sqlStatementContext.getSqlStatement() instanceof ShowStatement) {
             return Optional.of(new 
OpenGaussShowVariableExecutor((ShowStatement) 
sqlStatementContext.getSqlStatement()));
diff --git 
a/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemFunctionQueryExecutorCreator.java
 
b/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemFunctionQueryExecutorFactory.java
similarity index 85%
rename from 
proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemFunctionQueryExecutorCreator.java
rename to 
proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemFunctionQueryExecutorFactory.java
index e532e5b5392..8b68b4a974a 100644
--- 
a/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemFunctionQueryExecutorCreator.java
+++ 
b/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemFunctionQueryExecutorFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
+package 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.factory;
 
 import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussSelectPasswordDeadlineExecutor;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussSelectPasswordNotifyTimeExecutor;
@@ -31,12 +31,12 @@ import java.util.Collection;
 import java.util.Optional;
 
 /**
- * OpenGauss system function query executor creator.
+ * System function query executor factory for openGauss.
  */
 @RequiredArgsConstructor
-public final class OpenGaussSystemFunctionQueryExecutorCreator {
+public final class OpenGaussSystemFunctionQueryExecutorFactory {
     
-    private final SQLStatementContext sqlStatementContext;
+    private final SelectStatementContext sqlStatementContext;
     
     private String functionName;
     
@@ -46,10 +46,7 @@ public final class 
OpenGaussSystemFunctionQueryExecutorCreator {
      * @return true or false
      */
     public boolean accept() {
-        if (!(sqlStatementContext.getSqlStatement() instanceof 
SelectStatement)) {
-            return false;
-        }
-        SelectStatement selectStatement = (SelectStatement) 
sqlStatementContext.getSqlStatement();
+        SelectStatement selectStatement = 
sqlStatementContext.getSqlStatement();
         Collection<ProjectionSegment> projections = 
selectStatement.getProjections().getProjections();
         if (1 == projections.size() && projections.iterator().next() 
instanceof ExpressionProjectionSegment) {
             functionName = ((ExpressionProjectionSegment) 
projections.iterator().next()).getText();
@@ -61,11 +58,11 @@ public final class 
OpenGaussSystemFunctionQueryExecutorCreator {
     }
     
     /**
-     * Create.
+     * Create new instance of system function query executor.
      *
-     * @return database admin executor
+     * @return created instance
      */
-    public Optional<DatabaseAdminExecutor> create() {
+    public Optional<DatabaseAdminExecutor> newInstance() {
         if (OpenGaussSelectVersionExecutor.accept(functionName)) {
             return Optional.of(new OpenGaussSelectVersionExecutor());
         }
diff --git 
a/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemTableQueryExecutorCreator.java
 
b/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemTableQueryExecutorFactory.java
similarity index 87%
rename from 
proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemTableQueryExecutorCreator.java
rename to 
proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemTableQueryExecutorFactory.java
index 09f257545a7..d1cd16ac6ad 100644
--- 
a/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemTableQueryExecutorCreator.java
+++ 
b/proxy/backend/dialect/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemTableQueryExecutorFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
+package 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.factory;
 
 import com.cedarsoftware.util.CaseInsensitiveMap;
 import com.cedarsoftware.util.CaseInsensitiveSet;
@@ -25,7 +25,6 @@ import 
org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
 import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
-import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager;
 import 
org.apache.shardingsphere.infra.metadata.statistics.collector.DialectDatabaseStatisticsCollector;
@@ -37,8 +36,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.SelectStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 
 import java.util.Collection;
@@ -49,10 +46,10 @@ import java.util.Map.Entry;
 import java.util.Optional;
 
 /**
- * OpenGauss system table query executor creator.
+ * System table query executor factory for openGauss.
  */
 @RequiredArgsConstructor
-public final class OpenGaussSystemTableQueryExecutorCreator {
+public final class OpenGaussSystemTableQueryExecutorFactory {
     
     private static final Map<String, Collection<String>> SCHEMA_TABLES = new 
CaseInsensitiveMap<>();
     
@@ -60,7 +57,7 @@ public final class OpenGaussSystemTableQueryExecutorCreator {
         SCHEMA_TABLES.put("shardingsphere", new 
CaseInsensitiveSet<>(Collections.singletonList("cluster_information")));
     }
     
-    private final SQLStatementContext sqlStatementContext;
+    private final SelectStatementContext sqlStatementContext;
     
     private final String sql;
     
@@ -69,12 +66,12 @@ public final class OpenGaussSystemTableQueryExecutorCreator 
{
     private Map<String, Collection<String>> selectedSchemaTables = new 
CaseInsensitiveMap<>();
     
     /**
-     * Create.
+     * Create new instance of system table query executor.
      *
-     * @return database admin executor
+     * @return created instance
      */
-    public Optional<DatabaseAdminExecutor> create() {
-        if (isSelectSystemTable(selectedSchemaTables) && 
isSelectDatCompatibility((SelectStatementContext) sqlStatementContext)) {
+    public Optional<DatabaseAdminExecutor> newInstance() {
+        if (isSelectSystemTable(selectedSchemaTables) && 
isSelectDatCompatibility(sqlStatementContext)) {
             return Optional.of(new OpenGaussSelectDatCompatibilityExecutor());
         }
         if (isSelectedStatisticsSystemTable(selectedSchemaTables) || 
isSelectedShardingSphereSystemTable(selectedSchemaTables)) {
@@ -107,12 +104,8 @@ public final class 
OpenGaussSystemTableQueryExecutorCreator {
      * @return true or false
      */
     public boolean accept() {
-        SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
-        if (!(sqlStatement instanceof SelectStatement)) {
-            return false;
-        }
-        selectedSchemaTables = 
getSelectedSchemaTables((SelectStatementContext) sqlStatementContext);
-        return isSelectedStatisticsSystemTable(selectedSchemaTables) || 
isSelectedShardingSphereSystemTable(selectedSchemaTables) || 
isSelectSystemTable(selectedSchemaTables);
+        selectedSchemaTables = getSelectedSchemaTables(sqlStatementContext);
+        return isSelectSystemTable(selectedSchemaTables);
     }
     
     private Map<String, Collection<String>> getSelectedSchemaTables(final 
SelectStatementContext selectStatementContext) {
diff --git 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreatorTest.java
 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreatorTest.java
index 4a027fb2999..070c9ef09d0 100644
--- 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreatorTest.java
+++ 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreatorTest.java
@@ -24,8 +24,8 @@ import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContex
 import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.infra.metadata.statistics.collector.DialectDatabaseStatisticsCollector;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseMetaDataExecutor;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
+import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseMetaDataExecutor;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussSelectDatCompatibilityExecutor;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussSelectPasswordDeadlineExecutor;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussSelectPasswordNotifyTimeExecutor;
@@ -59,7 +59,6 @@ class OpenGaussAdminExecutorCreatorTest {
     
     @Test
     void assertCreateExecutorForSelectDatCompatibilityFromPgDatabase() {
-        initDialectDatabaseStatisticsCollector(false);
         String sql = "SELECT datcompatibility FROM pg_database WHERE 
datname='sharding_db'";
         String databaseName = "postgres";
         SelectStatementContext selectStatementContext = 
mockSelectStatementContext("pg_catalog", "pg_database", "datcompatibility");
@@ -116,7 +115,6 @@ class OpenGaussAdminExecutorCreatorTest {
     }
     
     private void assertCreateExecutorForFunction(final String sql, final 
String expression, final Class<?> type) {
-        initDialectDatabaseStatisticsCollector(false);
         SelectStatementContext selectStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
         
when(selectStatementContext.getSqlStatement().getProjections().getProjections())
                 .thenReturn(Collections.singletonList(new 
ExpressionProjectionSegment(-1, -1, expression)));
diff --git 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorFactoryTest.java
 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussAdminExecutorFactoryTest.java
similarity index 97%
rename from 
proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorFactoryTest.java
rename to 
proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussAdminExecutorFactoryTest.java
index fe1d697f53f..8031dc7c37a 100644
--- 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorFactoryTest.java
+++ 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussAdminExecutorFactoryTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
+package 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.factory;
 
 import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
@@ -25,6 +25,7 @@ import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectS
 import 
org.apache.shardingsphere.infra.metadata.statistics.collector.DialectDatabaseStatisticsCollector;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
+import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.OpenGaussAdminExecutorCreator;
 import 
org.apache.shardingsphere.proxy.backend.postgresql.handler.admin.PostgreSQLAdminExecutorCreator;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.ShowStatement;
 import org.apache.shardingsphere.test.infra.framework.mock.AutoMockExtension;
@@ -41,7 +42,6 @@ import java.util.Optional;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.anyMap;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -73,7 +73,6 @@ class OpenGaussAdminExecutorFactoryTest {
     @Test
     void assertNewInstanceWithOtherSQL() {
         DialectDatabaseStatisticsCollector statisticsCollector = 
mock(DialectDatabaseStatisticsCollector.class);
-        
when(statisticsCollector.isStatisticsTables(anyMap())).thenReturn(false);
         
when(DatabaseTypedSPILoader.findService(DialectDatabaseStatisticsCollector.class,
 TypedSPILoader.getService(DatabaseType.class, 
"openGauss"))).thenReturn(Optional.of(statisticsCollector));
         SelectStatementContext sqlStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
         
when(sqlStatementContext.getTablesContext().getTableNames()).thenReturn(Collections.emptyList());
diff --git 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemFunctionQueryExecutorCreatorTest.java
 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemFunctionQueryExecutorFactoryTest.java
similarity index 76%
rename from 
proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemFunctionQueryExecutorCreatorTest.java
rename to 
proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemFunctionQueryExecutorFactoryTest.java
index dbe33914e23..c3e2190ae56 100644
--- 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemFunctionQueryExecutorCreatorTest.java
+++ 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemFunctionQueryExecutorFactoryTest.java
@@ -15,9 +15,8 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
+package 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.factory;
 
-import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussSelectPasswordDeadlineExecutor;
@@ -37,39 +36,39 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class OpenGaussSystemFunctionQueryExecutorCreatorTest {
+class OpenGaussSystemFunctionQueryExecutorFactoryTest {
     
     @Test
     void assertVersion() {
-        SQLStatementContext sqlStatementContext = 
mockSQLStatementContext("VERSION()");
-        OpenGaussSystemFunctionQueryExecutorCreator creator = new 
OpenGaussSystemFunctionQueryExecutorCreator(sqlStatementContext);
+        SelectStatementContext sqlStatementContext = 
mockSQLStatementContext("VERSION()");
+        OpenGaussSystemFunctionQueryExecutorFactory creator = new 
OpenGaussSystemFunctionQueryExecutorFactory(sqlStatementContext);
         assertTrue(creator.accept());
-        Optional<DatabaseAdminExecutor> actual = creator.create();
+        Optional<DatabaseAdminExecutor> actual = creator.newInstance();
         assertTrue(actual.isPresent());
         assertThat(actual.get(), isA(OpenGaussSelectVersionExecutor.class));
     }
     
     @Test
     void assertGsPasswordDeadline() {
-        SQLStatementContext sqlStatementContext = 
mockSQLStatementContext("gs_password_deadline()");
-        OpenGaussSystemFunctionQueryExecutorCreator creator = new 
OpenGaussSystemFunctionQueryExecutorCreator(sqlStatementContext);
+        SelectStatementContext sqlStatementContext = 
mockSQLStatementContext("gs_password_deadline()");
+        OpenGaussSystemFunctionQueryExecutorFactory creator = new 
OpenGaussSystemFunctionQueryExecutorFactory(sqlStatementContext);
         assertTrue(creator.accept());
-        Optional<DatabaseAdminExecutor> actual = creator.create();
+        Optional<DatabaseAdminExecutor> actual = creator.newInstance();
         assertTrue(actual.isPresent());
         assertThat(actual.get(), 
isA(OpenGaussSelectPasswordDeadlineExecutor.class));
     }
     
     @Test
     void assertGsPasswordNotifyTime() {
-        SQLStatementContext sqlStatementContext = 
mockSQLStatementContext("gs_password_notifytime()");
-        OpenGaussSystemFunctionQueryExecutorCreator creator = new 
OpenGaussSystemFunctionQueryExecutorCreator(sqlStatementContext);
+        SelectStatementContext sqlStatementContext = 
mockSQLStatementContext("gs_password_notifytime()");
+        OpenGaussSystemFunctionQueryExecutorFactory creator = new 
OpenGaussSystemFunctionQueryExecutorFactory(sqlStatementContext);
         assertTrue(creator.accept());
-        Optional<DatabaseAdminExecutor> actual = creator.create();
+        Optional<DatabaseAdminExecutor> actual = creator.newInstance();
         assertTrue(actual.isPresent());
         assertThat(actual.get(), 
isA(OpenGaussSelectPasswordNotifyTimeExecutor.class));
     }
     
-    private SQLStatementContext mockSQLStatementContext(final String 
functionName) {
+    private SelectStatementContext mockSQLStatementContext(final String 
functionName) {
         ExpressionProjectionSegment expressionProjection = 
mock(ExpressionProjectionSegment.class, RETURNS_DEEP_STUBS);
         when(expressionProjection.getText()).thenReturn(functionName);
         ProjectionsSegment projections = mock(ProjectionsSegment.class, 
RETURNS_DEEP_STUBS);
diff --git 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemTableQueryExecutorCreatorTest.java
 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemTableQueryExecutorFactoryTest.java
similarity index 83%
rename from 
proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemTableQueryExecutorCreatorTest.java
rename to 
proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemTableQueryExecutorFactoryTest.java
index 6377a2f87fc..395fae7a159 100644
--- 
a/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemTableQueryExecutorCreatorTest.java
+++ 
b/proxy/backend/dialect/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/factory/OpenGaussSystemTableQueryExecutorFactoryTest.java
@@ -15,14 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
+package 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.factory;
 
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
 import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
-import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
-import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseMetaDataExecutor;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
+import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseMetaDataExecutor;
 import 
org.apache.shardingsphere.proxy.backend.opengauss.handler.admin.executor.OpenGaussSelectDatCompatibilityExecutor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.ColumnSegmentBoundInfo;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound.TableSegmentBoundInfo;
@@ -41,15 +40,15 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class OpenGaussSystemTableQueryExecutorCreatorTest {
+class OpenGaussSystemTableQueryExecutorFactoryTest {
     
     @Test
     void assertSelectDatCompatibilityFromPgDatabase() {
         String sql = "SELECT datcompatibility FROM pg_database WHERE 
datname='sharding_db'";
-        SQLStatementContext sqlStatementContext = 
mockSelectStatementContext("pg_catalog", "pg_database", "datcompatibility");
-        OpenGaussSystemTableQueryExecutorCreator creator = new 
OpenGaussSystemTableQueryExecutorCreator(sqlStatementContext, sql, 
Collections.emptyList());
+        SelectStatementContext sqlStatementContext = 
mockSelectStatementContext("pg_catalog", "pg_database", "datcompatibility");
+        OpenGaussSystemTableQueryExecutorFactory creator = new 
OpenGaussSystemTableQueryExecutorFactory(sqlStatementContext, sql, 
Collections.emptyList());
         assertTrue(creator.accept());
-        Optional<DatabaseAdminExecutor> actual = creator.create();
+        Optional<DatabaseAdminExecutor> actual = creator.newInstance();
         assertTrue(actual.isPresent());
         assertThat(actual.get(), 
isA(OpenGaussSelectDatCompatibilityExecutor.class));
     }
@@ -57,15 +56,15 @@ class OpenGaussSystemTableQueryExecutorCreatorTest {
     @Test
     void assertSelectFromNotCollectedTable() {
         String sql = "SELECT name FROM pg_type'";
-        SQLStatementContext sqlStatementContext = 
mockSelectStatementContext("pg_catalog", "pg_type", "name");
-        OpenGaussSystemTableQueryExecutorCreator creator = new 
OpenGaussSystemTableQueryExecutorCreator(sqlStatementContext, sql, 
Collections.emptyList());
+        SelectStatementContext sqlStatementContext = 
mockSelectStatementContext("pg_catalog", "pg_type", "name");
+        OpenGaussSystemTableQueryExecutorFactory creator = new 
OpenGaussSystemTableQueryExecutorFactory(sqlStatementContext, sql, 
Collections.emptyList());
         assertTrue(creator.accept());
-        Optional<DatabaseAdminExecutor> actual = creator.create();
+        Optional<DatabaseAdminExecutor> actual = creator.newInstance();
         assertTrue(actual.isPresent());
         assertThat(actual.get(), isA(DatabaseMetaDataExecutor.class));
     }
     
-    private SQLStatementContext mockSelectStatementContext(final String 
schemaName, final String tableName, final String columnName) {
+    private SelectStatementContext mockSelectStatementContext(final String 
schemaName, final String tableName, final String columnName) {
         TableSegmentBoundInfo tableSegmentBoundInfo = 
mock(TableSegmentBoundInfo.class, RETURNS_DEEP_STUBS);
         
when(tableSegmentBoundInfo.getOriginalSchema().getValue()).thenReturn(schemaName);
         TableNameSegment tableNameSegment = mock(TableNameSegment.class, 
RETURNS_DEEP_STUBS);

Reply via email to