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 f5a0e3ef098 Split MySQL, PostgreSQL, Oracle and OpenGauss binder into
separate modules (#35456)
f5a0e3ef098 is described below
commit f5a0e3ef0981328da9397652df5205627237faaa
Author: Liang Zhang <[email protected]>
AuthorDate: Sun May 18 18:00:01 2025 +0800
Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
(#35456)
* Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
- Create new modules for each database type in infra/binder/dialect
- Move database-specific projection identifier extractors to new modules
- Update dependencies in distribution modules to include new binder modules
- Modify parent pom structure to include new dialect modules
* Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
- Create new modules for each database type in infra/binder/dialect
- Move database-specific projection identifier extractors to new modules
- Update dependencies in distribution modules to include new binder modules
- Modify parent pom structure to include new dialect modules
* Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
- Create new modules for each database type in infra/binder/dialect
- Move database-specific projection identifier extractors to new modules
- Update dependencies in distribution modules to include new binder modules
- Modify parent pom structure to include new dialect modules
* Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
- Create new modules for each database type in infra/binder/dialect
- Move database-specific projection identifier extractors to new modules
- Update dependencies in distribution modules to include new binder modules
- Modify parent pom structure to include new dialect modules
* Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
- Create new modules for each database type in infra/binder/dialect
- Move database-specific projection identifier extractors to new modules
- Update dependencies in distribution modules to include new binder modules
- Modify parent pom structure to include new dialect modules
* Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
- Create new modules for each database type in infra/binder/dialect
- Move database-specific projection identifier extractors to new modules
- Update dependencies in distribution modules to include new binder modules
- Modify parent pom structure to include new dialect modules
* Split MySQL, PostgreSQL, Oracle and OpenGauss binder into separate modules
- Create new modules for each database type in infra/binder/dialect
- Move database-specific projection identifier extractors to new modules
- Update dependencies in distribution modules to include new binder modules
- Modify parent pom structure to include new dialect modules
---
distribution/jdbc/pom.xml | 58 ++++++++++++++++++++++
distribution/proxy-native/pom.xml | 55 ++++++++++++++++++++
distribution/proxy/pom.xml | 55 ++++++++++++++++++++
.../projection/impl/AggregationProjectionTest.java | 54 +++++---------------
infra/binder/{ => dialect/mysql}/pom.xml | 15 +++---
.../mysql}/MySQLProjectionIdentifierExtractor.java | 2 +-
....extractor.DialectProjectionIdentifierExtractor | 5 +-
infra/binder/{ => dialect/opengauss}/pom.xml | 15 +++---
.../OpenGaussProjectionIdentifierExtractor.java | 2 +-
....extractor.DialectProjectionIdentifierExtractor | 5 +-
...OpenGaussProjectionIdentifierExtractorTest.java | 2 +-
infra/binder/{ => dialect/oracle}/pom.xml | 15 +++---
.../OracleProjectionIdentifierExtractor.java | 2 +-
....extractor.DialectProjectionIdentifierExtractor | 5 +-
.../OracleProjectionIdentifierExtractorTest.java | 2 +-
infra/binder/{ => dialect}/pom.xml | 9 ++--
infra/binder/{ => dialect/postgresql}/pom.xml | 15 +++---
.../PostgreSQLProjectionIdentifierExtractor.java | 2 +-
....extractor.DialectProjectionIdentifierExtractor | 5 +-
...ostgreSQLProjectionIdentifierExtractorTest.java | 2 +-
infra/binder/pom.xml | 1 +
.../reflect-config.json | 8 +--
proxy/bootstrap/pom.xml | 25 ++++++++++
test/e2e/fixture/pom.xml | 25 ++++++++++
test/native/pom.xml | 35 +++++++++++--
25 files changed, 318 insertions(+), 101 deletions(-)
diff --git a/distribution/jdbc/pom.xml b/distribution/jdbc/pom.xml
index 47bd63d5c78..64352566177 100644
--- a/distribution/jdbc/pom.xml
+++ b/distribution/jdbc/pom.xml
@@ -116,30 +116,58 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-mysql</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-oracle</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-opengauss</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
@@ -171,6 +199,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</profile>
<profile>
@@ -182,6 +216,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</profile>
<profile>
@@ -193,6 +233,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</profile>
<profile>
@@ -215,6 +261,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</profile>
<profile>
@@ -287,6 +339,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</profile>
diff --git a/distribution/proxy-native/pom.xml
b/distribution/proxy-native/pom.xml
index 721609548ee..8b5321aedc8 100644
--- a/distribution/proxy-native/pom.xml
+++ b/distribution/proxy-native/pom.xml
@@ -245,6 +245,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-postgresql-protocol</artifactId>
@@ -270,6 +276,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
@@ -295,6 +307,13 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
@@ -308,6 +327,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-opengauss-protocol</artifactId>
@@ -373,6 +398,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-postgresql-protocol</artifactId>
@@ -407,6 +438,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
@@ -436,6 +473,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</profile>
<profile>
@@ -458,6 +501,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-opengauss-protocol</artifactId>
@@ -574,6 +623,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
diff --git a/distribution/proxy/pom.xml b/distribution/proxy/pom.xml
index 60e45811eeb..49c7b1e96a6 100644
--- a/distribution/proxy/pom.xml
+++ b/distribution/proxy/pom.xml
@@ -245,6 +245,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-postgresql-protocol</artifactId>
@@ -270,6 +276,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
@@ -295,6 +307,13 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
@@ -308,6 +327,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-opengauss-protocol</artifactId>
@@ -373,6 +398,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-postgresql-protocol</artifactId>
@@ -407,6 +438,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
@@ -436,6 +473,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</profile>
<profile>
@@ -458,6 +501,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-opengauss-protocol</artifactId>
@@ -574,6 +623,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/AggregationProjectionTest.java
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/AggregationProjectionTest.java
index 089b4a4eabe..52b70d05055 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/AggregationProjectionTest.java
+++
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/impl/AggregationProjectionTest.java
@@ -31,70 +31,40 @@ 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.Mockito.mock;
class AggregationProjectionTest {
+ private final DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
+
@Test
void assertGetColumnName() {
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"MySQL")).getColumnName(), is("COUNT( A.\"DIRECTION\" )"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "count(
a.\"direction\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"MySQL")).getColumnName(), is("count( a.\"direction\" )"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"PostgreSQL")).getColumnName(), is("count"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"openGauss")).getColumnName(), is("count"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
a.\"direction\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"Oracle")).getColumnName(), is("COUNT(A.\"DIRECTION\")"));
+ assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null, databaseType).getColumnName(),
+ is("COUNT( A.\"DIRECTION\" )"));
}
@Test
void assertGetColumnLabelWithAliasNoQuote() {
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), new IdentifierValue("DIRECTION_COUNT"),
- TypedSPILoader.getService(DatabaseType.class,
"MySQL")).getColumnLabel(), is("DIRECTION_COUNT"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), new IdentifierValue("DIRECTION_COUNT"),
- TypedSPILoader.getService(DatabaseType.class,
"PostgreSQL")).getColumnLabel(), is("direction_count"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), new IdentifierValue("DIRECTION_COUNT"),
- TypedSPILoader.getService(DatabaseType.class,
"openGauss")).getColumnLabel(), is("direction_count"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), new IdentifierValue("direction_count"),
- TypedSPILoader.getService(DatabaseType.class,
"Oracle")).getColumnLabel(), is("DIRECTION_COUNT"));
+ assertThat(new AggregationProjection(AggregationType.COUNT,
+ new AggregationProjectionSegment(0, 0, AggregationType.COUNT,
"COUNT( A.\"DIRECTION\" )"), new IdentifierValue("DIRECTION_COUNT"),
databaseType).getColumnLabel(),
+ is("DIRECTION_COUNT"));
}
@Test
void assertGetColumnLabelWithAliasAndQuote() {
assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"),
- new IdentifierValue("DIRECTION_COUNT",
QuoteCharacter.BACK_QUOTE),
- TypedSPILoader.getService(DatabaseType.class,
"MySQL")).getColumnLabel(), is("DIRECTION_COUNT"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"),
- new IdentifierValue("DIRECTION_COUNT", QuoteCharacter.QUOTE),
- TypedSPILoader.getService(DatabaseType.class,
"PostgreSQL")).getColumnLabel(), is("DIRECTION_COUNT"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"),
- new IdentifierValue("DIRECTION_COUNT", QuoteCharacter.QUOTE),
- TypedSPILoader.getService(DatabaseType.class,
"openGauss")).getColumnLabel(), is("DIRECTION_COUNT"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"),
- new IdentifierValue("direction_count", QuoteCharacter.QUOTE),
- TypedSPILoader.getService(DatabaseType.class,
"Oracle")).getColumnLabel(), is("direction_count"));
+ new IdentifierValue("DIRECTION_COUNT",
QuoteCharacter.BACK_QUOTE), databaseType).getColumnLabel(),
is("DIRECTION_COUNT"));
}
@Test
void assertGetColumnLabelWithoutAlias() {
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"MySQL")).getColumnLabel(), is("COUNT( A.\"DIRECTION\" )"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "count(
a.\"direction\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"MySQL")).getColumnLabel(), is("count( a.\"direction\" )"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"PostgreSQL")).getColumnLabel(), is("count"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"openGauss")).getColumnLabel(), is("count"));
- assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
a.\"direction\" )"), null,
- TypedSPILoader.getService(DatabaseType.class,
"Oracle")).getColumnLabel(), is("COUNT(A.\"DIRECTION\")"));
+ assertThat(new AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"), null, databaseType).getColumnLabel(),
+ is("COUNT( A.\"DIRECTION\" )"));
}
@Test
void assertGetAlias() {
- Projection projection = new
AggregationProjection(AggregationType.COUNT, new
AggregationProjectionSegment(0, 0, AggregationType.COUNT, "COUNT(
A.\"DIRECTION\" )"),
- new IdentifierValue("AVG_DERIVED_COUNT_0"),
mock(DatabaseType.class));
+ Projection projection = new
AggregationProjection(AggregationType.COUNT,
+ new AggregationProjectionSegment(0, 0, AggregationType.COUNT,
"COUNT( A.\"DIRECTION\" )"), new IdentifierValue("AVG_DERIVED_COUNT_0"),
databaseType);
Optional<IdentifierValue> actual = projection.getAlias();
assertTrue(actual.isPresent());
assertThat(actual.get().getValue(), is("AVG_DERIVED_COUNT_0"));
diff --git a/infra/binder/pom.xml b/infra/binder/dialect/mysql/pom.xml
similarity index 76%
copy from infra/binder/pom.xml
copy to infra/binder/dialect/mysql/pom.xml
index 3a6c065e250..e8f34c2e09d 100644
--- a/infra/binder/pom.xml
+++ b/infra/binder/dialect/mysql/pom.xml
@@ -20,14 +20,17 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-infra</artifactId>
+ <artifactId>shardingsphere-infra-binder-dialect</artifactId>
<version>5.5.3-SNAPSHOT</version>
</parent>
- <artifactId>shardingsphere-infra-binder</artifactId>
- <packaging>pom</packaging>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
<name>${project.artifactId}</name>
- <modules>
- <module>core</module>
- </modules>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
</project>
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/MySQLProjectionIdentifierExtractor.java
b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLProjectionIdentifierExtractor.java
similarity index 95%
rename from
infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/MySQLProjectionIdentifierExtractor.java
rename to
infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLProjectionIdentifierExtractor.java
index 6f7ffe4653a..0dbadb0f64c 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/MySQLProjectionIdentifierExtractor.java
+++
b/infra/binder/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/binder/mysql/MySQLProjectionIdentifierExtractor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect;
+package org.apache.shardingsphere.infra.binder.mysql;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
diff --git
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
b/infra/binder/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
similarity index 60%
copy from
infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
copy to
infra/binder/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
index d80e1633187..3cd99484db2 100644
---
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
+++
b/infra/binder/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
@@ -15,7 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.MySQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.PostgreSQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OpenGaussProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OracleProjectionIdentifierExtractor
+org.apache.shardingsphere.infra.binder.mysql.MySQLProjectionIdentifierExtractor
diff --git a/infra/binder/pom.xml b/infra/binder/dialect/opengauss/pom.xml
similarity index 76%
copy from infra/binder/pom.xml
copy to infra/binder/dialect/opengauss/pom.xml
index 3a6c065e250..037fe07cc45 100644
--- a/infra/binder/pom.xml
+++ b/infra/binder/dialect/opengauss/pom.xml
@@ -20,14 +20,17 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-infra</artifactId>
+ <artifactId>shardingsphere-infra-binder-dialect</artifactId>
<version>5.5.3-SNAPSHOT</version>
</parent>
- <artifactId>shardingsphere-infra-binder</artifactId>
- <packaging>pom</packaging>
+ <artifactId>shardingsphere-infra-binder-opengauss</artifactId>
<name>${project.artifactId}</name>
- <modules>
- <module>core</module>
- </modules>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
</project>
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OpenGaussProjectionIdentifierExtractor.java
b/infra/binder/dialect/opengauss/src/main/java/org/apache/shardingsphere/infra/binder/opengauss/OpenGaussProjectionIdentifierExtractor.java
similarity index 96%
rename from
infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OpenGaussProjectionIdentifierExtractor.java
rename to
infra/binder/dialect/opengauss/src/main/java/org/apache/shardingsphere/infra/binder/opengauss/OpenGaussProjectionIdentifierExtractor.java
index 9471b600a5c..58eab321343 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OpenGaussProjectionIdentifierExtractor.java
+++
b/infra/binder/dialect/opengauss/src/main/java/org/apache/shardingsphere/infra/binder/opengauss/OpenGaussProjectionIdentifierExtractor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect;
+package org.apache.shardingsphere.infra.binder.opengauss;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
diff --git
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
b/infra/binder/dialect/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
similarity index 60%
copy from
infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
copy to
infra/binder/dialect/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
index d80e1633187..4a14f21eaff 100644
---
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
+++
b/infra/binder/dialect/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
@@ -15,7 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.MySQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.PostgreSQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OpenGaussProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OracleProjectionIdentifierExtractor
+org.apache.shardingsphere.infra.binder.opengauss.OpenGaussProjectionIdentifierExtractor
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OpenGaussProjectionIdentifierExtractorTest.java
b/infra/binder/dialect/opengauss/src/test/java/org/apache/shardingsphere/infra/binder/opengauss/OpenGaussProjectionIdentifierExtractorTest.java
similarity index 96%
rename from
infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OpenGaussProjectionIdentifierExtractorTest.java
rename to
infra/binder/dialect/opengauss/src/test/java/org/apache/shardingsphere/infra/binder/opengauss/OpenGaussProjectionIdentifierExtractorTest.java
index 8afc81ef87d..199677f74e5 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OpenGaussProjectionIdentifierExtractorTest.java
+++
b/infra/binder/dialect/opengauss/src/test/java/org/apache/shardingsphere/infra/binder/opengauss/OpenGaussProjectionIdentifierExtractorTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect;
+package org.apache.shardingsphere.infra.binder.opengauss;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
diff --git a/infra/binder/pom.xml b/infra/binder/dialect/oracle/pom.xml
similarity index 76%
copy from infra/binder/pom.xml
copy to infra/binder/dialect/oracle/pom.xml
index 3a6c065e250..6f27dfcc513 100644
--- a/infra/binder/pom.xml
+++ b/infra/binder/dialect/oracle/pom.xml
@@ -20,14 +20,17 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-infra</artifactId>
+ <artifactId>shardingsphere-infra-binder-dialect</artifactId>
<version>5.5.3-SNAPSHOT</version>
</parent>
- <artifactId>shardingsphere-infra-binder</artifactId>
- <packaging>pom</packaging>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
<name>${project.artifactId}</name>
- <modules>
- <module>core</module>
- </modules>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
</project>
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OracleProjectionIdentifierExtractor.java
b/infra/binder/dialect/oracle/src/main/java/org/apache/shardingsphere/infra/binder/oracle/OracleProjectionIdentifierExtractor.java
similarity index 95%
rename from
infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OracleProjectionIdentifierExtractor.java
rename to
infra/binder/dialect/oracle/src/main/java/org/apache/shardingsphere/infra/binder/oracle/OracleProjectionIdentifierExtractor.java
index c519cc0da2a..46f33ac3a74 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OracleProjectionIdentifierExtractor.java
+++
b/infra/binder/dialect/oracle/src/main/java/org/apache/shardingsphere/infra/binder/oracle/OracleProjectionIdentifierExtractor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect;
+package org.apache.shardingsphere.infra.binder.oracle;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
diff --git
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
b/infra/binder/dialect/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
similarity index 60%
copy from
infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
copy to
infra/binder/dialect/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
index d80e1633187..fd2e5688f5b 100644
---
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
+++
b/infra/binder/dialect/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
@@ -15,7 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.MySQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.PostgreSQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OpenGaussProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OracleProjectionIdentifierExtractor
+org.apache.shardingsphere.infra.binder.oracle.OracleProjectionIdentifierExtractor
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OracleProjectionIdentifierExtractorTest.java
b/infra/binder/dialect/oracle/src/test/java/org/apache/shardingsphere/infra/binder/oracle/OracleProjectionIdentifierExtractorTest.java
similarity index 96%
rename from
infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OracleProjectionIdentifierExtractorTest.java
rename to
infra/binder/dialect/oracle/src/test/java/org/apache/shardingsphere/infra/binder/oracle/OracleProjectionIdentifierExtractorTest.java
index 17ed34e40e0..926d7b886c1 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/OracleProjectionIdentifierExtractorTest.java
+++
b/infra/binder/dialect/oracle/src/test/java/org/apache/shardingsphere/infra/binder/oracle/OracleProjectionIdentifierExtractorTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect;
+package org.apache.shardingsphere.infra.binder.oracle;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
diff --git a/infra/binder/pom.xml b/infra/binder/dialect/pom.xml
similarity index 83%
copy from infra/binder/pom.xml
copy to infra/binder/dialect/pom.xml
index 3a6c065e250..7b6086b9a5e 100644
--- a/infra/binder/pom.xml
+++ b/infra/binder/dialect/pom.xml
@@ -20,14 +20,17 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-infra</artifactId>
+ <artifactId>shardingsphere-infra-binder</artifactId>
<version>5.5.3-SNAPSHOT</version>
</parent>
- <artifactId>shardingsphere-infra-binder</artifactId>
+ <artifactId>shardingsphere-infra-binder-dialect</artifactId>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<modules>
- <module>core</module>
+ <module>postgresql</module>
+ <module>mysql</module>
+ <module>oracle</module>
+ <module>opengauss</module>
</modules>
</project>
diff --git a/infra/binder/pom.xml b/infra/binder/dialect/postgresql/pom.xml
similarity index 76%
copy from infra/binder/pom.xml
copy to infra/binder/dialect/postgresql/pom.xml
index 3a6c065e250..ac613ff76d8 100644
--- a/infra/binder/pom.xml
+++ b/infra/binder/dialect/postgresql/pom.xml
@@ -20,14 +20,17 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-infra</artifactId>
+ <artifactId>shardingsphere-infra-binder-dialect</artifactId>
<version>5.5.3-SNAPSHOT</version>
</parent>
- <artifactId>shardingsphere-infra-binder</artifactId>
- <packaging>pom</packaging>
+ <artifactId>shardingsphere-infra-binder-postgresql</artifactId>
<name>${project.artifactId}</name>
- <modules>
- <module>core</module>
- </modules>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
</project>
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/PostgreSQLProjectionIdentifierExtractor.java
b/infra/binder/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/binder/postgresql/PostgreSQLProjectionIdentifierExtractor.java
similarity index 96%
rename from
infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/PostgreSQLProjectionIdentifierExtractor.java
rename to
infra/binder/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/binder/postgresql/PostgreSQLProjectionIdentifierExtractor.java
index fa641d5cc74..66a1d840cf8 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/PostgreSQLProjectionIdentifierExtractor.java
+++
b/infra/binder/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/binder/postgresql/PostgreSQLProjectionIdentifierExtractor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect;
+package org.apache.shardingsphere.infra.binder.postgresql;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
diff --git
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
b/infra/binder/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
similarity index 60%
rename from
infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
rename to
infra/binder/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
index d80e1633187..945247c1593 100644
---
a/infra/binder/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
+++
b/infra/binder/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor
@@ -15,7 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.MySQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.PostgreSQLProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OpenGaussProjectionIdentifierExtractor
-org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OracleProjectionIdentifierExtractor
+org.apache.shardingsphere.infra.binder.postgresql.PostgreSQLProjectionIdentifierExtractor
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/PostgreSQLProjectionIdentifierExtractorTest.java
b/infra/binder/dialect/postgresql/src/test/java/org/apache/shardingsphere/infra/binder/postgresql/PostgreSQLProjectionIdentifierExtractorTest.java
similarity index 96%
rename from
infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/PostgreSQLProjectionIdentifierExtractorTest.java
rename to
infra/binder/dialect/postgresql/src/test/java/org/apache/shardingsphere/infra/binder/postgresql/PostgreSQLProjectionIdentifierExtractorTest.java
index 1bdfcd2b863..b43a216a355 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/select/projection/extractor/dialect/PostgreSQLProjectionIdentifierExtractorTest.java
+++
b/infra/binder/dialect/postgresql/src/test/java/org/apache/shardingsphere/infra/binder/postgresql/PostgreSQLProjectionIdentifierExtractorTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect;
+package org.apache.shardingsphere.infra.binder.postgresql;
import
org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
diff --git a/infra/binder/pom.xml b/infra/binder/pom.xml
index 3a6c065e250..1b724c65fd2 100644
--- a/infra/binder/pom.xml
+++ b/infra/binder/pom.xml
@@ -29,5 +29,6 @@
<modules>
<module>core</module>
+ <module>dialect</module>
</modules>
</project>
diff --git
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
index 15810edce7e..0b3874188e2 100644
---
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
+++
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
@@ -1403,19 +1403,19 @@
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.ProjectionIdentifierExtractEngine"},
-
"name":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.MySQLProjectionIdentifierExtractor"
+
"name":"org.apache.shardingsphere.infra.binder.mysql.MySQLProjectionIdentifierExtractor"
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.ProjectionIdentifierExtractEngine"},
-
"name":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OpenGaussProjectionIdentifierExtractor"
+
"name":"org.apache.shardingsphere.infra.binder.opengauss.OpenGaussProjectionIdentifierExtractor"
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.ProjectionIdentifierExtractEngine"},
-
"name":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.OracleProjectionIdentifierExtractor"
+
"name":"org.apache.shardingsphere.infra.binder.oracle.OracleProjectionIdentifierExtractor"
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.ProjectionIdentifierExtractEngine"},
-
"name":"org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.dialect.PostgreSQLProjectionIdentifierExtractor"
+
"name":"org.apache.shardingsphere.infra.binder.postgresql.PostgreSQLProjectionIdentifierExtractor"
},
{
"condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry"},
diff --git a/proxy/bootstrap/pom.xml b/proxy/bootstrap/pom.xml
index 7be75482659..1a4369a83b7 100644
--- a/proxy/bootstrap/pom.xml
+++ b/proxy/bootstrap/pom.xml
@@ -113,6 +113,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-postgresql-protocol</artifactId>
@@ -138,6 +144,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
@@ -163,6 +175,13 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
@@ -176,6 +195,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+
<artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-opengauss-protocol</artifactId>
diff --git a/test/e2e/fixture/pom.xml b/test/e2e/fixture/pom.xml
index 2b72a5b4b15..d2cf1f1d9f1 100644
--- a/test/e2e/fixture/pom.xml
+++ b/test/e2e/fixture/pom.xml
@@ -54,6 +54,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-postgresql-protocol</artifactId>
@@ -79,6 +85,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
@@ -104,6 +116,12 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-opengauss-protocol</artifactId>
@@ -129,6 +147,13 @@
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
diff --git a/test/native/pom.xml b/test/native/pom.xml
index 0fd05d80c09..a9fd7e0a3f8 100644
--- a/test/native/pom.xml
+++ b/test/native/pom.xml
@@ -46,6 +46,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-postgresql</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-postgresql-protocol</artifactId>
@@ -65,6 +71,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-binder-mysql</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-mysql-protocol</artifactId>
@@ -80,32 +92,45 @@
<dependency>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-opengauss</artifactId>
+ <artifactId>shardingsphere-parser-sql-oracle</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-opengauss-protocol</artifactId>
+ <artifactId>shardingsphere-infra-binder-oracle</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-proxy-frontend-opengauss</artifactId>
+ <artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-oracle</artifactId>
+ <artifactId>shardingsphere-parser-sql-opengauss</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-sqlserver</artifactId>
+ <artifactId>shardingsphere-infra-binder-opengauss</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-opengauss-protocol</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-proxy-frontend-opengauss</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>