You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/05/17 08:28:47 UTC
(shardingsphere) branch master updated: Adjust SQL parser statement dependencies as pluggable (#35449)
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 5686b90f574 Adjust SQL parser statement dependencies as pluggable (#35449)
5686b90f574 is described below
commit 5686b90f574e4eff2a4f683a7b889f43ca2b4911
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat May 17 16:28:41 2025 +0800
Adjust SQL parser statement dependencies as pluggable (#35449)
* Adjust SQL parser statement dependencies as pluggable
* Adjust SQL parser statement dependencies as pluggable
---
.../ddl/ShardingAlterViewSupportedCheckerTest.java | 7 ++-
.../merge/ShardingResultMergerEngineTest.java | 4 +-
.../type/ShardingRouteEngineFactoryTest.java | 6 +--
.../pagination/engine/PaginationContextEngine.java | 4 +-
.../tableless/TablelessRouteEngineFactoryTest.java | 4 +-
.../sql/SingleDropSchemaSupportedCheckerTest.java | 4 +-
.../sql/SingleDropTableSupportedCheckerTest.java | 4 +-
parser/sql/dialect/clickhouse/pom.xml | 5 +++
parser/sql/dialect/doris/pom.xml | 5 +++
parser/sql/dialect/firebird/pom.xml | 5 +++
parser/sql/dialect/hive/pom.xml | 16 +++++++
parser/sql/dialect/mysql/pom.xml | 5 +++
parser/sql/dialect/opengauss/pom.xml | 5 +++
parser/sql/dialect/oracle/pom.xml | 5 +++
parser/sql/dialect/postgresql/pom.xml | 5 +++
parser/sql/dialect/presto/pom.xml | 5 +++
parser/sql/dialect/sql92/pom.xml | 5 +++
parser/sql/dialect/sqlserver/pom.xml | 5 +++
parser/sql/engine/pom.xml | 50 ---------------------
.../proxy/backend/connector/ProxySQLExecutor.java | 4 +-
.../command/query/PostgreSQLCommand.java | 4 +-
.../command/query/PostgreSQLCommandTest.java | 6 +--
test/it/parser/pom.xml | 51 ++++++++++++++++++++++
23 files changed, 139 insertions(+), 75 deletions(-)
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java
index db2caeec618..3d24a798773 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterViewSupportedCheckerTest.java
@@ -30,7 +30,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterVi
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLAlterViewStatement;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussAlterViewStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -88,9 +87,9 @@ class ShardingAlterViewSupportedCheckerTest {
@Test
void assertPreValidateAlterRenamedView() {
- AlterViewStatement sqlStatement = new OpenGaussAlterViewStatement();
- sqlStatement.setView(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_view"))));
- sqlStatement.setRenameView(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_new"))));
+ AlterViewStatement sqlStatement = mock(AlterViewStatement.class);
+ when(sqlStatement.getView()).thenReturn(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_view"))));
+ when(sqlStatement.getRenameView()).thenReturn(Optional.of(new SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t_order_new")))));
AlterViewStatementContext sqlStatementContext = new AlterViewStatementContext(mock(ShardingSphereMetaData.class), Collections.emptyList(), sqlStatement, "foo_db");
assertDoesNotThrow(() -> new ShardingAlterViewSupportedChecker().check(rule, mock(), mock(), sqlStatementContext));
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java
index 39bc69ede23..89771c3ecde 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java
@@ -35,10 +35,10 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.Proj
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.dal.ShowStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.FetchStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussFetchStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dml.SQL92SelectStatement;
import org.junit.jupiter.api.Test;
@@ -95,7 +95,7 @@ class ShardingResultMergerEngineTest {
@Test
void assertNewInstanceWithDDLStatement() {
ConfigurationProperties props = new ConfigurationProperties(new Properties());
- UnknownSQLStatementContext sqlStatementContext = new UnknownSQLStatementContext(new OpenGaussFetchStatement());
+ UnknownSQLStatementContext sqlStatementContext = new UnknownSQLStatementContext(mock(FetchStatement.class));
assertThat(new ShardingResultMergerEngine().newInstance("foo_db", databaseType, null, props, sqlStatementContext), instanceOf(ShardingDDLResultMerger.class));
}
}
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
index eba4c281996..7b3e08e0012 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
@@ -46,10 +46,10 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCol
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.DCLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.GrantStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CursorStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DDLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCursorStatement;
import org.apache.shardingsphere.sql.parser.statement.sql92.dcl.SQL92GrantStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -251,7 +251,7 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForCursorStatementWithShardingTable() {
CursorStatementContext cursorStatementContext = mock(CursorStatementContext.class, RETURNS_DEEP_STUBS);
- OpenGaussCursorStatement cursorStatement = mock(OpenGaussCursorStatement.class);
+ CursorStatement cursorStatement = mock(CursorStatement.class);
when(cursorStatementContext.getSqlStatement()).thenReturn(cursorStatement);
Collection<SimpleTableSegment> tableSegments = createSimpleTableSegments();
Collection<String> tableNames = tableSegments.stream().map(each -> each.getTableName().getIdentifier().getValue()).collect(Collectors.toSet());
@@ -268,7 +268,7 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForCursorStatementWithSingleTable() {
CursorStatementContext cursorStatementContext = mock(CursorStatementContext.class, RETURNS_DEEP_STUBS);
- OpenGaussCursorStatement cursorStatement = mock(OpenGaussCursorStatement.class);
+ CursorStatement cursorStatement = mock(CursorStatement.class);
when(cursorStatementContext.getSqlStatement()).thenReturn(cursorStatement);
Collection<SimpleTableSegment> tableSegments = createSimpleTableSegments();
when(cursorStatementContext.getTablesContext().getSimpleTables()).thenReturn(tableSegments);
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java
index 88333efe14d..379a7aa8668 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/pagination/engine/PaginationContextEngine.java
@@ -29,8 +29,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SubqueryTableSegment;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.util.SQLUtils;
-import org.apache.shardingsphere.sql.parser.statement.oracle.OracleStatement;
-import org.apache.shardingsphere.sql.parser.statement.sqlserver.SQLServerStatement;
import java.util.Collection;
import java.util.Collections;
@@ -76,7 +74,7 @@ public final class PaginationContextEngine {
}
private boolean containsRowNumberPagination(final SelectStatement selectStatement) {
- return selectStatement instanceof OracleStatement || selectStatement instanceof SQLServerStatement;
+ return "Oracle".equals(selectStatement.getDatabaseType().getType()) || "SQLServer".equals(selectStatement.getDatabaseType().getType());
}
private Optional<TopProjectionSegment> findTopProjection(final SelectStatement selectStatement) {
diff --git a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
index 0c2af310844..5f5d02636f4 100644
--- a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
+++ b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
@@ -36,11 +36,11 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetReso
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowDatabasesStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CloseStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateSchemaStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropSchemaStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.TCLStatement;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCloseStatement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -132,7 +132,7 @@ class TablelessRouteEngineFactoryTest {
@Test
void assertNewInstanceForCloseAllStatement() {
CloseStatementContext closeStatementContext = mock(CloseStatementContext.class, RETURNS_DEEP_STUBS);
- OpenGaussCloseStatement closeStatement = mock(OpenGaussCloseStatement.class);
+ CloseStatement closeStatement = mock(CloseStatement.class);
when(closeStatement.isCloseAll()).thenReturn(true);
when(closeStatementContext.getTablesContext().getDatabaseName()).thenReturn(Optional.empty());
when(closeStatementContext.getSqlStatement()).thenReturn(closeStatement);
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropSchemaSupportedCheckerTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropSchemaSupportedCheckerTest.java
index 997a9704a87..86e070f79cc 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropSchemaSupportedCheckerTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropSchemaSupportedCheckerTest.java
@@ -27,8 +27,8 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
import org.apache.shardingsphere.single.checker.sql.schema.SingleDropSchemaSupportedChecker;
import org.apache.shardingsphere.single.exception.DropNotEmptySchemaException;
import org.apache.shardingsphere.single.rule.SingleRule;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropSchemaStatement;
import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropSchemaStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Answers;
@@ -74,7 +74,7 @@ class SingleDropSchemaSupportedCheckerTest {
}
private SQLStatementContext createSQLStatementContext(final String schemaName, final boolean containsCascade) {
- PostgreSQLDropSchemaStatement dropSchemaStatement = mock(PostgreSQLDropSchemaStatement.class, RETURNS_DEEP_STUBS);
+ DropSchemaStatement dropSchemaStatement = mock(DropSchemaStatement.class, RETURNS_DEEP_STUBS);
when(dropSchemaStatement.isContainsCascade()).thenReturn(containsCascade);
when(dropSchemaStatement.getSchemaNames()).thenReturn(Collections.singleton(new IdentifierValue(schemaName)));
return new UnknownSQLStatementContext(dropSchemaStatement);
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropTableSupportedCheckerTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropTableSupportedCheckerTest.java
index e4206b50d6b..19b50881c0b 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropTableSupportedCheckerTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/checker/sql/SingleDropTableSupportedCheckerTest.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import org.apache.shardingsphere.single.checker.sql.table.SingleDropTableSupportedChecker;
import org.apache.shardingsphere.single.rule.SingleRule;
-import org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Answers;
@@ -64,7 +64,7 @@ class SingleDropTableSupportedCheckerTest {
}
private DropTableStatementContext createSQLStatementContext(final boolean containsCascade) {
- PostgreSQLDropTableStatement dropSchemaStatement = mock(PostgreSQLDropTableStatement.class, RETURNS_DEEP_STUBS);
+ DropTableStatement dropSchemaStatement = mock(DropTableStatement.class, RETURNS_DEEP_STUBS);
when(dropSchemaStatement.isContainsCascade()).thenReturn(containsCascade);
when(dropSchemaStatement.getTables()).thenReturn(Collections.emptyList());
return new DropTableStatementContext(dropSchemaStatement);
diff --git a/parser/sql/dialect/clickhouse/pom.xml b/parser/sql/dialect/clickhouse/pom.xml
index 4a96f5e3635..85dedbcf72c 100644
--- a/parser/sql/dialect/clickhouse/pom.xml
+++ b/parser/sql/dialect/clickhouse/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-clickhouse</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-clickhouse</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/doris/pom.xml b/parser/sql/dialect/doris/pom.xml
index 3145fdeb228..1e367711bb4 100644
--- a/parser/sql/dialect/doris/pom.xml
+++ b/parser/sql/dialect/doris/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-doris</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-doris</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/firebird/pom.xml b/parser/sql/dialect/firebird/pom.xml
index 78ef988f85c..1f8d732b592 100644
--- a/parser/sql/dialect/firebird/pom.xml
+++ b/parser/sql/dialect/firebird/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-firebird</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-firebird</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/hive/pom.xml b/parser/sql/dialect/hive/pom.xml
index 826419520e0..b36f24ead54 100644
--- a/parser/sql/dialect/hive/pom.xml
+++ b/parser/sql/dialect/hive/pom.xml
@@ -31,6 +31,22 @@
</properties>
<dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-infra-database-hive</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-hive</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-mysql</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-test-util</artifactId>
diff --git a/parser/sql/dialect/mysql/pom.xml b/parser/sql/dialect/mysql/pom.xml
index 91fb6b80895..4bd15c785ce 100644
--- a/parser/sql/dialect/mysql/pom.xml
+++ b/parser/sql/dialect/mysql/pom.xml
@@ -36,6 +36,11 @@
<artifactId>shardingsphere-infra-database-mysql</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-mysql</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
diff --git a/parser/sql/dialect/opengauss/pom.xml b/parser/sql/dialect/opengauss/pom.xml
index 6612089e81d..9adfaf2fb83 100644
--- a/parser/sql/dialect/opengauss/pom.xml
+++ b/parser/sql/dialect/opengauss/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-opengauss</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-opengauss</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/oracle/pom.xml b/parser/sql/dialect/oracle/pom.xml
index edce1bfcb11..d9d8d8716c4 100644
--- a/parser/sql/dialect/oracle/pom.xml
+++ b/parser/sql/dialect/oracle/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-oracle</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-oracle</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/postgresql/pom.xml b/parser/sql/dialect/postgresql/pom.xml
index 3ec21f4dadf..8740cf40b24 100644
--- a/parser/sql/dialect/postgresql/pom.xml
+++ b/parser/sql/dialect/postgresql/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-postgresql</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-postgresql</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/presto/pom.xml b/parser/sql/dialect/presto/pom.xml
index f2039153e7b..5ab41fa8b6e 100644
--- a/parser/sql/dialect/presto/pom.xml
+++ b/parser/sql/dialect/presto/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-presto</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-presto</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/sql92/pom.xml b/parser/sql/dialect/sql92/pom.xml
index e5261464a4e..1edaeae7685 100644
--- a/parser/sql/dialect/sql92/pom.xml
+++ b/parser/sql/dialect/sql92/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-sql92</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-sql92</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/dialect/sqlserver/pom.xml b/parser/sql/dialect/sqlserver/pom.xml
index 5daa7eb8dc2..40584fbf933 100644
--- a/parser/sql/dialect/sqlserver/pom.xml
+++ b/parser/sql/dialect/sqlserver/pom.xml
@@ -36,5 +36,10 @@
<artifactId>shardingsphere-infra-database-sqlserver</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-sqlserver</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/parser/sql/engine/pom.xml b/parser/sql/engine/pom.xml
index 5ca52f9fa90..b220920eb01 100644
--- a/parser/sql/engine/pom.xml
+++ b/parser/sql/engine/pom.xml
@@ -32,61 +32,11 @@
<artifactId>shardingsphere-parser-sql-spi</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-clickhouse</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-doris</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-firebird</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-hive</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-mysql</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-opengauss</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-oracle</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-postgresql</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-presto</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-parser-sql-statement-sql92</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-parser-sql-statement-sqlserver</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.antlr</groupId>
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
index c5d5efef4e4..6ed7c0ed473 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
@@ -61,12 +61,12 @@ import org.apache.shardingsphere.proxy.backend.util.TransactionUtils;
import org.apache.shardingsphere.sql.parser.statement.core.enums.TransactionIsolationLevel;
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CloseStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CursorStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DDLStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.FetchStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.MoveStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.TruncateStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCursorStatement;
import org.apache.shardingsphere.sqlfederation.engine.SQLFederationEngine;
import org.apache.shardingsphere.transaction.api.TransactionType;
import org.apache.shardingsphere.transaction.spi.TransactionHook;
@@ -165,7 +165,7 @@ public final class ProxySQLExecutor {
}
private boolean isCursorStatement(final DDLStatement sqlStatement) {
- return sqlStatement instanceof OpenGaussCursorStatement || sqlStatement instanceof CloseStatement || sqlStatement instanceof MoveStatement || sqlStatement instanceof FetchStatement;
+ return sqlStatement instanceof CursorStatement || sqlStatement instanceof CloseStatement || sqlStatement instanceof MoveStatement || sqlStatement instanceof FetchStatement;
}
private String getTableName(final ExecutionContext executionContext) {
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java
index 8bbd911963f..e96b56962f2 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java
@@ -43,6 +43,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateS
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTablespaceStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateViewStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CursorStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DeclareStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropDatabaseStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropFunctionStatement;
@@ -68,7 +69,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.Rollbac
import org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.SavepointStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.SetTransactionStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.StartTransactionStatement;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCursorStatement;
import java.util.Arrays;
import java.util.Collection;
@@ -127,7 +127,7 @@ public enum PostgreSQLCommand {
RELEASE(ReleaseSavepointStatement.class),
SET(SetStatement.class, SetTransactionStatement.class),
RESET(ResetParameterStatement.class),
- DECLARE_CURSOR(OpenGaussCursorStatement.class, DeclareStatement.class),
+ DECLARE_CURSOR(CursorStatement.class, DeclareStatement.class),
MOVE(MoveStatement.class),
CLOSE_CURSOR(CloseStatement.class),
SUCCESS(DistSQLStatement.class);
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
index d3adc6c3cee..e508581864c 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
@@ -34,6 +34,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateF
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateIndexStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateViewStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CursorStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DeclareStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropDatabaseStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropFunctionStatement;
@@ -50,7 +51,6 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DoState
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
-import org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCursorStatement;
import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLResetParameterStatement;
import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLSetStatement;
import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLVacuumStatement;
@@ -75,8 +75,8 @@ import org.apache.shardingsphere.sql.parser.statement.postgresql.tcl.PostgreSQLS
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
class PostgreSQLCommandTest {
@@ -342,7 +342,7 @@ class PostgreSQLCommandTest {
@Test
void assertValueOfCursorStatement() {
- assertThat(PostgreSQLCommand.valueOf(OpenGaussCursorStatement.class).orElse(null), is(PostgreSQLCommand.DECLARE_CURSOR));
+ assertThat(PostgreSQLCommand.valueOf(CursorStatement.class).orElse(null), is(PostgreSQLCommand.DECLARE_CURSOR));
assertThat(PostgreSQLCommand.valueOf(DeclareStatement.class).orElse(null), is(PostgreSQLCommand.DECLARE_CURSOR));
assertThat(PostgreSQLCommand.DECLARE_CURSOR.getTag(), is("DECLARE CURSOR"));
}
diff --git a/test/it/parser/pom.xml b/test/it/parser/pom.xml
index ca68117a523..b7993dc8087 100644
--- a/test/it/parser/pom.xml
+++ b/test/it/parser/pom.xml
@@ -112,6 +112,57 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-postgresql</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-mysql</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-oracle</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-sqlserver</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-opengauss</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-firebird</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-hive</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-presto</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-clickhouse</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-statement-doris</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-test-util</artifactId>