You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/02/21 07:06:24 UTC
[shardingsphere] branch master updated: Move concrete QueryHeaderBuilder to db backend modules (#24272)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 ee9a4b10ef8 Move concrete QueryHeaderBuilder to db backend modules (#24272)
ee9a4b10ef8 is described below
commit ee9a4b10ef824625b19792a177fd8712932585b4
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Feb 21 15:06:17 2023 +0800
Move concrete QueryHeaderBuilder to db backend modules (#24272)
* Move concrete StatementMemoryStrictlyFetchSizeSetter to db backend modules
* Move concrete QueryHeaderBuilder to db backend modules
* Move concrete QueryHeaderBuilder to db backend modules
---
.../connector/jdbc/DatabaseConnectorTest.java | 41 ++++++++++++----------
.../jdbc/fixture/QueryHeaderBuilderFixture.java} | 7 ++--
.../DatabaseAdminQueryBackendHandlerTest.java | 27 ++++++++++----
.../header/query}/MySQLQueryHeaderBuilder.java | 2 +-
...ackend.response.header.query.QueryHeaderBuilder | 4 +--
.../header/query}/MySQLQueryHeaderBuilderTest.java | 2 +-
.../header/query}/OpenGaussQueryHeaderBuilder.java | 3 +-
...ackend.response.header.query.QueryHeaderBuilder | 4 +--
.../query}/OpenGaussQueryHeaderBuilderTest.java | 3 +-
.../query}/PostgreSQLQueryHeaderBuilder.java | 2 +-
...ackend.response.header.query.QueryHeaderBuilder | 4 +--
.../query}/PostgreSQLQueryHeaderBuilderTest.java | 2 +-
12 files changed, 55 insertions(+), 46 deletions(-)
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/DatabaseConnectorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/DatabaseConnectorTest.java
index 9b179c64781..a14cea449f3 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/DatabaseConnectorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/DatabaseConnectorTest.java
@@ -48,12 +48,12 @@ import org.apache.shardingsphere.proxy.backend.connector.BackendConnection;
import org.apache.shardingsphere.proxy.backend.connector.DatabaseConnector;
import org.apache.shardingsphere.proxy.backend.connector.DatabaseConnectorFactory;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.executor.callback.ProxyJDBCExecutorCallback;
+import org.apache.shardingsphere.proxy.backend.connector.jdbc.fixture.QueryHeaderBuilderFixture;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.JDBCBackendStatement;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilderEngine;
-import org.apache.shardingsphere.proxy.backend.response.header.query.impl.MySQLQueryHeaderBuilder;
import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sqlfederation.api.config.SQLFederationRuleConfiguration;
@@ -148,7 +148,7 @@ public final class DatabaseConnectorTest extends ProxyContextRestorer {
when(resultSet.next()).thenReturn(true, false);
when(resultSet.getObject(1)).thenReturn(Integer.MAX_VALUE);
typedSPILoader.when(() -> TypedSPILoader.getService(SQLFederationExecutor.class, "NONE")).thenReturn(federationExecutor);
- typedSPILoader.when(() -> TypedSPILoader.getService(QueryHeaderBuilder.class, "H2")).thenReturn(new MySQLQueryHeaderBuilder());
+ typedSPILoader.when(() -> TypedSPILoader.getService(QueryHeaderBuilder.class, "H2")).thenReturn(new QueryHeaderBuilderFixture());
systemSchemaUtil.when(() -> SystemSchemaUtil.containsSystemSchema(any(DatabaseType.class), any(), any(ShardingSphereDatabase.class))).thenReturn(true);
engine.execute();
}
@@ -172,24 +172,27 @@ public final class DatabaseConnectorTest extends ProxyContextRestorer {
Field queryHeadersField = DatabaseConnector.class.getDeclaredField("queryHeaders");
ShardingSphereDatabase database = createDatabaseMetaData();
MemberAccessor accessor = Plugins.getMemberAccessor();
- accessor.set(queryHeadersField, engine, Collections.singletonList(
- new QueryHeaderBuilderEngine(new MySQLDatabaseType()).build(createQueryResultMetaData(), database, 1)));
- Field mergedResultField = DatabaseConnector.class.getDeclaredField("mergedResult");
- accessor.set(mergedResultField, engine, new MemoryMergedResult<ShardingSphereRule>(null, null, null, Collections.emptyList()) {
-
- @Override
- protected List<MemoryQueryResultRow> init(final ShardingSphereRule rule, final ShardingSphereSchema schema,
- final SQLStatementContext<?> sqlStatementContext, final List<QueryResult> queryResults) {
- return Collections.singletonList(mock(MemoryQueryResultRow.class));
+ try (MockedStatic<TypedSPILoader> typedSPILoader = mockStatic(TypedSPILoader.class)) {
+ typedSPILoader.when(() -> TypedSPILoader.getService(QueryHeaderBuilder.class, "MySQL")).thenReturn(new QueryHeaderBuilderFixture());
+ accessor.set(queryHeadersField, engine, Collections.singletonList(
+ new QueryHeaderBuilderEngine(new MySQLDatabaseType()).build(createQueryResultMetaData(), database, 1)));
+ Field mergedResultField = DatabaseConnector.class.getDeclaredField("mergedResult");
+ accessor.set(mergedResultField, engine, new MemoryMergedResult<ShardingSphereRule>(null, null, null, Collections.emptyList()) {
+
+ @Override
+ protected List<MemoryQueryResultRow> init(final ShardingSphereRule rule, final ShardingSphereSchema schema,
+ final SQLStatementContext<?> sqlStatementContext, final List<QueryResult> queryResults) {
+ return Collections.singletonList(mock(MemoryQueryResultRow.class));
+ }
+ });
+ Exception ex = null;
+ try {
+ engine.getRowData();
+ } catch (final SQLException | IndexOutOfBoundsException e) {
+ ex = e;
+ } finally {
+ assertFalse(ex instanceof IndexOutOfBoundsException);
}
- });
- Exception ex = null;
- try {
- engine.getRowData();
- } catch (final SQLException | IndexOutOfBoundsException e) {
- ex = e;
- } finally {
- assertFalse(ex instanceof IndexOutOfBoundsException);
}
}
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/fixture/QueryHeaderBuilderFixture.java
similarity index 95%
copy from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java
copy to proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/fixture/QueryHeaderBuilderFixture.java
index 981f8139324..0ca15e7a72b 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/fixture/QueryHeaderBuilderFixture.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.response.header.query.impl;
+package org.apache.shardingsphere.proxy.backend.connector.jdbc.fixture;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -28,10 +28,7 @@ import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader
import java.sql.SQLException;
import java.util.Optional;
-/**
- * Query header builder for MySQL.
- */
-public final class MySQLQueryHeaderBuilder implements QueryHeaderBuilder {
+public final class QueryHeaderBuilderFixture implements QueryHeaderBuilder {
@Override
public QueryHeader build(final QueryResultMetaData queryResultMetaData,
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
index 9b431a19b9a..fb603597aab 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/DatabaseAdminQueryBackendHandlerTest.java
@@ -26,16 +26,19 @@ import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryRes
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminQueryExecutor;
+import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.MockedStatic;
import java.sql.SQLException;
import java.util.Collections;
@@ -49,6 +52,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
public final class DatabaseAdminQueryBackendHandlerTest extends ProxyContextRestorer {
@@ -82,20 +86,29 @@ public final class DatabaseAdminQueryBackendHandlerTest extends ProxyContextRest
@Test
public void assertExecute() throws SQLException {
- assertThat(((QueryResponseHeader) handler.execute()).getQueryHeaders().size(), is(1));
+ try (MockedStatic<TypedSPILoader> typedSPILoader = mockStatic(TypedSPILoader.class)) {
+ typedSPILoader.when(() -> TypedSPILoader.getService(QueryHeaderBuilder.class, "MySQL")).thenReturn(mock(QueryHeaderBuilder.class));
+ assertThat(((QueryResponseHeader) handler.execute()).getQueryHeaders().size(), is(1));
+ }
}
@Test
public void assertNext() throws SQLException {
- handler.execute();
- assertTrue(handler.next());
- assertFalse(handler.next());
+ try (MockedStatic<TypedSPILoader> typedSPILoader = mockStatic(TypedSPILoader.class)) {
+ typedSPILoader.when(() -> TypedSPILoader.getService(QueryHeaderBuilder.class, "MySQL")).thenReturn(mock(QueryHeaderBuilder.class));
+ handler.execute();
+ assertTrue(handler.next());
+ assertFalse(handler.next());
+ }
}
@Test
public void assertGetRowData() throws SQLException {
- handler.execute();
- assertTrue(handler.next());
- assertThat(handler.getRowData().getData().size(), is(1));
+ try (MockedStatic<TypedSPILoader> typedSPILoader = mockStatic(TypedSPILoader.class)) {
+ typedSPILoader.when(() -> TypedSPILoader.getService(QueryHeaderBuilder.class, "MySQL")).thenReturn(mock(QueryHeaderBuilder.class));
+ handler.execute();
+ assertTrue(handler.next());
+ assertThat(handler.getRowData().getData().size(), is(1));
+ }
}
}
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/response/header/query/MySQLQueryHeaderBuilder.java
similarity index 98%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java
rename to proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/response/header/query/MySQLQueryHeaderBuilder.java
index 981f8139324..1bd72432721 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/response/header/query/MySQLQueryHeaderBuilder.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.response.header.query.impl;
+package org.apache.shardingsphere.proxy.backend.mysql.response.header.query;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
diff --git a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder b/proxy/backend/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
similarity index 73%
copy from proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
copy to proxy/backend/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
index 25596f901fd..dfcb99351ca 100644
--- a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
+++ b/proxy/backend/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
@@ -15,6 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.PostgreSQLQueryHeaderBuilder
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.MySQLQueryHeaderBuilder
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.OpenGaussQueryHeaderBuilder
+org.apache.shardingsphere.proxy.backend.mysql.response.header.query.MySQLQueryHeaderBuilder
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/response/header/query/MySQLQueryHeaderBuilderTest.java
similarity index 98%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java
rename to proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/response/header/query/MySQLQueryHeaderBuilderTest.java
index 94b6204932a..375883e367e 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/response/header/query/MySQLQueryHeaderBuilderTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.response.header.query.impl;
+package org.apache.shardingsphere.proxy.backend.mysql.response.header.query;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/OpenGaussQueryHeaderBuilder.java b/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/response/header/query/OpenGaussQueryHeaderBuilder.java
similarity index 90%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/OpenGaussQueryHeaderBuilder.java
rename to proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/response/header/query/OpenGaussQueryHeaderBuilder.java
index 17a9cbac26a..3b775679581 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/OpenGaussQueryHeaderBuilder.java
+++ b/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/response/header/query/OpenGaussQueryHeaderBuilder.java
@@ -15,12 +15,13 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.response.header.query.impl;
+package org.apache.shardingsphere.proxy.backend.opengauss.response.header.query;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder;
+import org.apache.shardingsphere.proxy.backend.postgresql.response.header.query.PostgreSQLQueryHeaderBuilder;
import java.sql.SQLException;
diff --git a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder b/proxy/backend/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
similarity index 73%
copy from proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
copy to proxy/backend/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
index 25596f901fd..906830a6212 100644
--- a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
+++ b/proxy/backend/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
@@ -15,6 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.PostgreSQLQueryHeaderBuilder
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.MySQLQueryHeaderBuilder
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.OpenGaussQueryHeaderBuilder
+org.apache.shardingsphere.proxy.backend.opengauss.response.header.query.OpenGaussQueryHeaderBuilder
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/OpenGaussQueryHeaderBuilderTest.java b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/response/header/query/OpenGaussQueryHeaderBuilderTest.java
similarity index 92%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/OpenGaussQueryHeaderBuilderTest.java
rename to proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/response/header/query/OpenGaussQueryHeaderBuilderTest.java
index d760384d2a3..28200667c52 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/OpenGaussQueryHeaderBuilderTest.java
+++ b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/response/header/query/OpenGaussQueryHeaderBuilderTest.java
@@ -15,10 +15,11 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.response.header.query.impl;
+package org.apache.shardingsphere.proxy.backend.opengauss.response.header.query;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
+import org.apache.shardingsphere.proxy.backend.postgresql.response.header.query.PostgreSQLQueryHeaderBuilder;
import org.junit.Test;
import java.sql.SQLException;
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/PostgreSQLQueryHeaderBuilder.java b/proxy/backend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/backend/postgresql/response/header/query/PostgreSQLQueryHeaderBuilder.java
similarity index 96%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/PostgreSQLQueryHeaderBuilder.java
rename to proxy/backend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/backend/postgresql/response/header/query/PostgreSQLQueryHeaderBuilder.java
index f007701f085..260d49545b1 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/PostgreSQLQueryHeaderBuilder.java
+++ b/proxy/backend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/backend/postgresql/response/header/query/PostgreSQLQueryHeaderBuilder.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.response.header.query.impl;
+package org.apache.shardingsphere.proxy.backend.postgresql.response.header.query;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
diff --git a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder b/proxy/backend/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
similarity index 73%
rename from proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
rename to proxy/backend/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
index 25596f901fd..5ecc7fd6b02 100644
--- a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
+++ b/proxy/backend/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder
@@ -15,6 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.PostgreSQLQueryHeaderBuilder
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.MySQLQueryHeaderBuilder
-org.apache.shardingsphere.proxy.backend.response.header.query.impl.OpenGaussQueryHeaderBuilder
+org.apache.shardingsphere.proxy.backend.postgresql.response.header.query.PostgreSQLQueryHeaderBuilder
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/PostgreSQLQueryHeaderBuilderTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/response/header/query/PostgreSQLQueryHeaderBuilderTest.java
similarity index 96%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/PostgreSQLQueryHeaderBuilderTest.java
rename to proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/response/header/query/PostgreSQLQueryHeaderBuilderTest.java
index 5daf7d1f4c6..47110dcca5d 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/PostgreSQLQueryHeaderBuilderTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/response/header/query/PostgreSQLQueryHeaderBuilderTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.response.header.query.impl;
+package org.apache.shardingsphere.proxy.backend.postgresql.response.header.query;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;