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 74d83acd259 Remove useless impl of PostgreSQLStatement (#35603)
74d83acd259 is described below

commit 74d83acd2592c51a297350634527ccaa6ba9a49b
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jun 6 16:39:45 2025 +0800

    Remove useless impl of PostgreSQLStatement (#35603)
---
 .../ShardingAlterIndexSupportedCheckerTest.java    | 12 +--
 .../ShardingCreateIndexSupportedCheckerTest.java   | 14 ++--
 .../ddl/ShardingDropIndexSupportedCheckerTest.java |  8 +-
 ...ShardingCreateTableRouteContextCheckerTest.java |  8 +-
 .../ShardingDropIndexRouteContextCheckerTest.java  |  6 +-
 .../ShardingDropTableRouteContextCheckerTest.java  |  7 +-
 .../reflect-config.json                            | 95 +++-------------------
 .../statement/PostgreSQLStatementVisitor.java      | 36 ++++----
 .../type/PostgreSQLDDLStatementVisitor.java        | 71 ++++++++--------
 .../statement/postgresql/PostgreSQLStatement.java  | 26 ------
 .../dcl/PostgreSQLReassignOwnedStatement.java      |  3 +-
 .../ddl/PostgreSQLAlterIndexStatement.java         | 39 ---------
 .../ddl/PostgreSQLAlterSchemaStatement.java        | 41 ----------
 .../ddl/PostgreSQLAlterViewStatement.java          | 41 ----------
 .../ddl/PostgreSQLCreateIndexStatement.java        | 44 ----------
 .../ddl/PostgreSQLCreateSchemaStatement.java       | 41 ----------
 .../ddl/PostgreSQLCreateTableStatement.java        | 35 --------
 .../ddl/PostgreSQLDropIndexStatement.java          | 33 --------
 .../ddl/PostgreSQLDropSchemaStatement.java         | 33 --------
 .../ddl/PostgreSQLDropTableStatement.java          | 37 ---------
 .../ddl/PostgreSQLDropViewStatement.java           | 33 --------
 .../postgresql/dml/PostgreSQLInsertStatement.java  | 55 -------------
 .../postgresql/dml/PostgreSQLSelectStatement.java  | 63 --------------
 .../postgresql/dml/PostgreSQLUpdateStatement.java  | 39 ---------
 .../admin/PostgreSQLAdminExecutorCreatorTest.java  |  7 +-
 .../command/query/PostgreSQLCommandTest.java       |  8 --
 .../command/query/extended/PortalTest.java         | 10 +--
 .../PostgreSQLBatchedStatementsExecutorTest.java   |  4 +-
 .../parse/PostgreSQLComParseExecutorTest.java      |  4 +-
 29 files changed, 104 insertions(+), 749 deletions(-)

diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java
index 3f3edef5c3d..5c546cd9f54 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingAlterIndexSupportedCheckerTest.java
@@ -18,16 +18,16 @@
 package org.apache.shardingsphere.sharding.checker.sql.ddl;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.ddl.AlterIndexStatementContext;
+import 
org.apache.shardingsphere.infra.exception.kernel.metadata.DuplicateIndexException;
+import 
org.apache.shardingsphere.infra.exception.kernel.metadata.IndexNotFoundException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import 
org.apache.shardingsphere.infra.exception.kernel.metadata.DuplicateIndexException;
-import 
org.apache.shardingsphere.infra.exception.kernel.metadata.IndexNotFoundException;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterIndexStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterIndexStatement;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
@@ -52,7 +52,7 @@ class ShardingAlterIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWhenIndexExistRenameIndexNotExistForPostgreSQL() {
-        PostgreSQLAlterIndexStatement sqlStatement = new 
PostgreSQLAlterIndexStatement();
+        AlterIndexStatement sqlStatement = new AlterIndexStatement();
         sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 
0, new IdentifierValue("t_order_index"))));
         sqlStatement.setRenameIndex(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new"))));
         ShardingSphereTable table = mock(ShardingSphereTable.class);
@@ -65,7 +65,7 @@ class ShardingAlterIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWhenIndexNotExistRenameIndexNotExistForPostgreSQL() {
-        PostgreSQLAlterIndexStatement sqlStatement = new 
PostgreSQLAlterIndexStatement();
+        AlterIndexStatement sqlStatement = new AlterIndexStatement();
         sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 
0, new IdentifierValue("t_order_index"))));
         sqlStatement.setRenameIndex(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new"))));
         ShardingSphereTable table = mock(ShardingSphereTable.class);
@@ -75,7 +75,7 @@ class ShardingAlterIndexSupportedCheckerTest {
     
     @Test
     void assertCheckAlterIndexWhenIndexExistRenameIndexExistForPostgreSQL() {
-        PostgreSQLAlterIndexStatement sqlStatement = new 
PostgreSQLAlterIndexStatement();
+        AlterIndexStatement sqlStatement = new AlterIndexStatement();
         sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 
0, new IdentifierValue("t_order_index"))));
         sqlStatement.setRenameIndex(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new"))));
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateIndexSupportedCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateIndexSupportedCheckerTest.java
index 8a401d64930..ef700f4a694 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateIndexSupportedCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateIndexSupportedCheckerTest.java
@@ -28,8 +28,8 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.Ind
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
 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.ddl.CreateIndexStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateIndexStatement;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
@@ -52,7 +52,7 @@ class ShardingCreateIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWhenTableExistIndexNotExistForPostgreSQL() {
-        PostgreSQLCreateIndexStatement sqlStatement = new 
PostgreSQLCreateIndexStatement();
+        CreateIndexStatement sqlStatement = new CreateIndexStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 
0, new IdentifierValue("t_order_index"))));
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
@@ -62,7 +62,7 @@ class ShardingCreateIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWhenTableNotExistIndexNotExistForPostgreSQL() {
-        PostgreSQLCreateIndexStatement sqlStatement = new 
PostgreSQLCreateIndexStatement();
+        CreateIndexStatement sqlStatement = new CreateIndexStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 
0, new IdentifierValue("t_order_index"))));
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
@@ -72,7 +72,7 @@ class ShardingCreateIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWhenTableExistIndexExistForPostgreSQL() {
-        PostgreSQLCreateIndexStatement sqlStatement = new 
PostgreSQLCreateIndexStatement();
+        CreateIndexStatement sqlStatement = new CreateIndexStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         sqlStatement.setIndex(new IndexSegment(0, 0, new IndexNameSegment(0, 
0, new IdentifierValue("t_order_index"))));
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
@@ -83,7 +83,7 @@ class ShardingCreateIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWithoutIndexNameWhenTableExistIndexNotExistForPostgreSQL() 
{
-        PostgreSQLCreateIndexStatement sqlStatement = new 
PostgreSQLCreateIndexStatement();
+        CreateIndexStatement sqlStatement = new CreateIndexStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         sqlStatement.getColumns().add(new ColumnSegment(0, 0, new 
IdentifierValue("content")));
         sqlStatement.setGeneratedIndexStartIndex(10);
@@ -94,7 +94,7 @@ class ShardingCreateIndexSupportedCheckerTest {
     
     @Test
     void 
assertCheckWithoutIndexNameWhenTableNotExistIndexNotExistForPostgreSQL() {
-        PostgreSQLCreateIndexStatement sqlStatement = new 
PostgreSQLCreateIndexStatement();
+        CreateIndexStatement sqlStatement = new CreateIndexStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         sqlStatement.getColumns().add(new ColumnSegment(0, 0, new 
IdentifierValue("content")));
         sqlStatement.setGeneratedIndexStartIndex(10);
@@ -105,7 +105,7 @@ class ShardingCreateIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWithoutIndexNameWhenTableExistIndexExistForPostgreSQL() {
-        PostgreSQLCreateIndexStatement sqlStatement = new 
PostgreSQLCreateIndexStatement();
+        CreateIndexStatement sqlStatement = new CreateIndexStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         sqlStatement.getColumns().add(new ColumnSegment(0, 0, new 
IdentifierValue("content")));
         sqlStatement.setGeneratedIndexStartIndex(10);
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java
index 819f5e43f6d..22b030d4ca4 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropIndexSupportedCheckerTest.java
@@ -18,15 +18,15 @@
 package org.apache.shardingsphere.sharding.checker.sql.ddl;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.ddl.DropIndexStatementContext;
+import 
org.apache.shardingsphere.infra.exception.kernel.metadata.IndexNotFoundException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import 
org.apache.shardingsphere.infra.exception.kernel.metadata.IndexNotFoundException;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropIndexStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropIndexStatement;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
@@ -51,7 +51,7 @@ class ShardingDropIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWhenIndexExistForPostgreSQL() {
-        PostgreSQLDropIndexStatement sqlStatement = new 
PostgreSQLDropIndexStatement(false);
+        DropIndexStatement sqlStatement = new DropIndexStatement();
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index"))));
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new"))));
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
@@ -64,7 +64,7 @@ class ShardingDropIndexSupportedCheckerTest {
     
     @Test
     void assertCheckWhenIndexNotExistForPostgreSQL() {
-        PostgreSQLDropIndexStatement sqlStatement = new 
PostgreSQLDropIndexStatement(false);
+        DropIndexStatement sqlStatement = new DropIndexStatement();
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index"))));
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new"))));
         ShardingSphereTable table = mock(ShardingSphereTable.class);
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingCreateTableRouteContextCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingCreateTableRouteContextCheckerTest.java
index e444e8baca7..253158ad58c 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingCreateTableRouteContextCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingCreateTableRouteContextCheckerTest.java
@@ -29,8 +29,8 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sharding.rule.ShardingTable;
 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.ddl.CreateTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
@@ -64,7 +64,7 @@ class ShardingCreateTableRouteContextCheckerTest {
     
     @Test
     void assertCheckWithSameRouteResultShardingTableForPostgreSQL() {
-        PostgreSQLCreateTableStatement sqlStatement = new 
PostgreSQLCreateTableStatement();
+        CreateTableStatement sqlStatement = new CreateTableStatement();
         sqlStatement.setIfNotExists(false);
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         when(shardingRule.isShardingTable("t_order")).thenReturn(true);
@@ -79,7 +79,7 @@ class ShardingCreateTableRouteContextCheckerTest {
     
     @Test
     void assertCheckWithDifferentRouteResultShardingTableForPostgreSQL() {
-        PostgreSQLCreateTableStatement sqlStatement = new 
PostgreSQLCreateTableStatement();
+        CreateTableStatement sqlStatement = new CreateTableStatement();
         sqlStatement.setIfNotExists(false);
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_order"))));
         when(shardingRule.isShardingTable("t_order")).thenReturn(true);
@@ -94,7 +94,7 @@ class ShardingCreateTableRouteContextCheckerTest {
     
     @Test
     void assertCheckWithSameRouteResultBroadcastTableForPostgreSQL() {
-        PostgreSQLCreateTableStatement sqlStatement = new 
PostgreSQLCreateTableStatement();
+        CreateTableStatement sqlStatement = new CreateTableStatement();
         sqlStatement.setIfNotExists(false);
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(0, 
0, new IdentifierValue("t_config"))));
         when(queryContext.getSqlStatementContext()).thenReturn(new 
CreateTableStatementContext(mock(), sqlStatement));
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropIndexRouteContextCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropIndexRouteContextCheckerTest.java
index 7d6fd4cae60..84a7e2a25f9 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropIndexRouteContextCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropIndexRouteContextCheckerTest.java
@@ -32,8 +32,8 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sharding.rule.ShardingTable;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropIndexStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropIndexStatement;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
@@ -69,7 +69,7 @@ class ShardingDropIndexRouteContextCheckerTest {
     
     @Test
     void assertCheckWithSameRouteResultShardingTableIndexForPostgreSQL() {
-        PostgreSQLDropIndexStatement sqlStatement = new 
PostgreSQLDropIndexStatement(false);
+        DropIndexStatement sqlStatement = new DropIndexStatement();
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index"))));
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new"))));
         ShardingSphereTable table = mock(ShardingSphereTable.class);
@@ -89,7 +89,7 @@ class ShardingDropIndexRouteContextCheckerTest {
     
     @Test
     void assertCheckWithDifferentRouteResultShardingTableIndexForPostgreSQL() {
-        PostgreSQLDropIndexStatement sqlStatement = new 
PostgreSQLDropIndexStatement(false);
+        DropIndexStatement sqlStatement = new DropIndexStatement();
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index"))));
         sqlStatement.getIndexes().add(new IndexSegment(0, 0, new 
IndexNameSegment(0, 0, new IdentifierValue("t_order_index_new"))));
         ShardingSphereTable table = mock(ShardingSphereTable.class);
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java
index 73ff8eb7bf8..041cc5797d3 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/ddl/ShardingDropTableRouteContextCheckerTest.java
@@ -33,7 +33,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -119,7 +118,7 @@ class ShardingDropTableRouteContextCheckerTest {
     
     @Test
     void assertCheckWithSameRouteResultShardingTableForPostgreSQL() {
-        PostgreSQLDropTableStatement sqlStatement = new 
PostgreSQLDropTableStatement();
+        DropTableStatement sqlStatement = new DropTableStatement();
         sqlStatement.getTables().add(new SimpleTableSegment(new 
TableNameSegment(0, 0, new IdentifierValue("t_order"))));
         when(shardingRule.isShardingTable("t_order")).thenReturn(true);
         when(shardingRule.getShardingTable("t_order")).thenReturn(new 
ShardingTable(Arrays.asList("ds_0", "ds_1"), "t_order"));
@@ -134,7 +133,7 @@ class ShardingDropTableRouteContextCheckerTest {
     
     @Test
     void assertCheckWithDifferentRouteResultShardingTableForPostgreSQL() {
-        PostgreSQLDropTableStatement sqlStatement = new 
PostgreSQLDropTableStatement();
+        DropTableStatement sqlStatement = new DropTableStatement();
         sqlStatement.getTables().add(new SimpleTableSegment(new 
TableNameSegment(0, 0, new IdentifierValue("t_order"))));
         when(shardingRule.isShardingTable("t_order")).thenReturn(true);
         when(shardingRule.getShardingTable("t_order")).thenReturn(new 
ShardingTable(Arrays.asList("ds_0", "ds_1"), "t_order"));
@@ -148,7 +147,7 @@ class ShardingDropTableRouteContextCheckerTest {
     
     @Test
     void assertCheckWithSameRouteResultBroadcastTableForPostgreSQL() {
-        PostgreSQLDropTableStatement sqlStatement = new 
PostgreSQLDropTableStatement();
+        DropTableStatement sqlStatement = new DropTableStatement();
         sqlStatement.getTables().add(new SimpleTableSegment(new 
TableNameSegment(0, 0, new IdentifierValue("t_config"))));
         when(shardingRule.getShardingTable("t_config")).thenReturn(new 
ShardingTable(Arrays.asList("ds_0", "ds_1"), "t_config"));
         Collection<RouteUnit> routeUnits = new LinkedList<>();
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 a171fb724fa..bdd4e675437 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
@@ -3791,44 +3791,24 @@
   
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdInsertStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.hive.dml.HiveInsertStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropTableStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropTableStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLDeleteStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
@@ -3836,89 +3816,34 @@
   
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussDropTableStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.opengauss.dml.OpenGaussInsertStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.opengauss.dml.OpenGaussSelectStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse.PostgreSQLComParseExecutor"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse.PostgreSQLComParseExecutor"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse.PostgreSQLComParseExecutor"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse.PostgreSQLComParseExecutor"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.presto.ddl.PrestoDropTableStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.presto.dml.PrestoInsertStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerDropTableStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerInsertStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  
"name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement",
+  
"name":"org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
diff --git 
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
 
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
index e52a2700595..e7b79f3f67c 100644
--- 
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
+++ 
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
@@ -189,6 +189,9 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.ExecuteStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
+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.core.util.SQLUtils;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.collection.CollectionValue;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
@@ -200,9 +203,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.value.literal.impl.Nu
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.literal.impl.OtherLiteralValue;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.literal.impl.StringLiteralValue;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.parametermarker.ParameterMarkerValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLUpdateStatement;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -422,7 +422,7 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     
     private ExpressionSegment createSubqueryExpressionSegment(final 
CExprContext ctx) {
         SubquerySegment subquerySegment = new 
SubquerySegment(ctx.selectWithParens().getStart().getStartIndex(),
-                ctx.selectWithParens().getStop().getStopIndex(), 
(PostgreSQLSelectStatement) visit(ctx.selectWithParens()), 
getOriginalText(ctx.selectWithParens()));
+                ctx.selectWithParens().getStop().getStopIndex(), 
(SelectStatement) visit(ctx.selectWithParens()), 
getOriginalText(ctx.selectWithParens()));
         if (null != ctx.EXISTS()) {
             subquerySegment.getSelect().setSubqueryType(SubqueryType.EXISTS);
             return new ExistsSubqueryExpression(ctx.start.getStartIndex(), 
ctx.stop.getStopIndex(), subquerySegment);
@@ -537,7 +537,7 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     @SuppressWarnings("unchecked")
     private ExpressionSegment createInExpressionSegment(final InExprContext 
ctx) {
         if (null != ctx.selectWithParens()) {
-            PostgreSQLSelectStatement select = (PostgreSQLSelectStatement) 
visit(ctx.selectWithParens());
+            SelectStatement select = (SelectStatement) 
visit(ctx.selectWithParens());
             SubquerySegment subquerySegment = new 
SubquerySegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), select, 
getOriginalText(ctx.selectWithParens()));
             return new SubqueryExpressionSegment(subquerySegment);
         }
@@ -694,7 +694,7 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     public ASTNode visitInsert(final InsertContext ctx) {
         // TODO :FIXME, since there is no segment for insertValuesClause, 
InsertStatement is created by sub rule.
         // TODO :deal with insert select
-        PostgreSQLInsertStatement result = (PostgreSQLInsertStatement) 
visit(ctx.insertRest());
+        InsertStatement result = (InsertStatement) visit(ctx.insertRest());
         result.setTable((SimpleTableSegment) visit(ctx.insertTarget()));
         if (null != ctx.optOnConflict()) {
             result.setOnDuplicateKeyColumns((OnDuplicateKeyColumnsSegment) 
visit(ctx.optOnConflict()));
@@ -758,10 +758,10 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     
     @Override
     public ASTNode visitInsertRest(final InsertRestContext ctx) {
-        PostgreSQLInsertStatement result = new PostgreSQLInsertStatement();
+        InsertStatement result = new InsertStatement();
         ValuesClauseContext valuesClause = 
ctx.select().selectNoParens().selectClauseN().simpleSelect().valuesClause();
         if (null == valuesClause) {
-            PostgreSQLSelectStatement selectStatement = 
(PostgreSQLSelectStatement) visit(ctx.select());
+            SelectStatement selectStatement = (SelectStatement) 
visit(ctx.select());
             result.setInsertSelect(new 
SubquerySegment(ctx.select().start.getStartIndex(), 
ctx.select().stop.getStopIndex(), selectStatement, 
getOriginalText(ctx.select())));
         } else {
             
result.getValues().addAll(createInsertValuesSegments(valuesClause));
@@ -858,7 +858,7 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     
     @Override
     public ASTNode visitUpdate(final UpdateContext ctx) {
-        PostgreSQLUpdateStatement result = new PostgreSQLUpdateStatement();
+        UpdateStatement result = new UpdateStatement();
         SimpleTableSegment tableSegment = (SimpleTableSegment) 
visit(ctx.relationExprOptAlias());
         result.setTable(tableSegment);
         result.setSetAssignment((SetAssignmentSegment) 
visit(ctx.setClauseList()));
@@ -898,14 +898,14 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     @Override
     public ASTNode visitSelect(final SelectContext ctx) {
         // TODO :Unsupported for withClause.
-        PostgreSQLSelectStatement result = (PostgreSQLSelectStatement) 
visit(ctx.selectNoParens());
+        SelectStatement result = (SelectStatement) visit(ctx.selectNoParens());
         result.addParameterMarkerSegments(getParameterMarkerSegments());
         return result;
     }
     
     @Override
     public ASTNode visitSelectNoParens(final SelectNoParensContext ctx) {
-        PostgreSQLSelectStatement result = (PostgreSQLSelectStatement) 
visit(ctx.selectClauseN());
+        SelectStatement result = (SelectStatement) visit(ctx.selectClauseN());
         if (null != ctx.sortClause()) {
             OrderBySegment orderBySegment = (OrderBySegment) 
visit(ctx.sortClause());
             result.setOrderBy(orderBySegment);
@@ -937,7 +937,7 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     @Override
     public ASTNode visitCommonTableExpr(final CommonTableExprContext ctx) {
         return new 
CommonTableExpressionSegment(ctx.getStart().getStartIndex(), 
ctx.getStop().getStopIndex(), (AliasSegment) visit(ctx.alias()),
-                new SubquerySegment(ctx.getStart().getStartIndex(), 
ctx.getStop().getStopIndex(), (PostgreSQLSelectStatement) 
visit(ctx.preparableStmt().select()),
+                new SubquerySegment(ctx.getStart().getStartIndex(), 
ctx.getStop().getStopIndex(), (SelectStatement) 
visit(ctx.preparableStmt().select()),
                         getOriginalText(ctx.preparableStmt().select())));
     }
     
@@ -965,19 +965,19 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
             return visit(ctx.simpleSelect());
         }
         if (null != ctx.selectClauseN() && !ctx.selectClauseN().isEmpty()) {
-            PostgreSQLSelectStatement result = new PostgreSQLSelectStatement();
-            PostgreSQLSelectStatement left = (PostgreSQLSelectStatement) 
visit(ctx.selectClauseN(0));
+            SelectStatement result = new SelectStatement();
+            SelectStatement left = (SelectStatement) 
visit(ctx.selectClauseN(0));
             result.setProjections(left.getProjections());
             left.getFrom().ifPresent(result::setFrom);
             CombineSegment combineSegment = new 
CombineSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(),
-                    createSubquerySegment(ctx.selectClauseN(0), left), 
getCombineType(ctx), createSubquerySegment(ctx.selectClauseN(1), 
(PostgreSQLSelectStatement) visit(ctx.selectClauseN(1))));
+                    createSubquerySegment(ctx.selectClauseN(0), left), 
getCombineType(ctx), createSubquerySegment(ctx.selectClauseN(1), 
(SelectStatement) visit(ctx.selectClauseN(1))));
             result.setCombine(combineSegment);
             return result;
         }
         return visit(ctx.selectWithParens());
     }
     
-    private SubquerySegment createSubquerySegment(final SelectClauseNContext 
ctx, final PostgreSQLSelectStatement selectStatement) {
+    private SubquerySegment createSubquerySegment(final SelectClauseNContext 
ctx, final SelectStatement selectStatement) {
         return new SubquerySegment(ctx.start.getStartIndex(), 
ctx.stop.getStopIndex(), selectStatement, getOriginalText(ctx));
     }
     
@@ -994,7 +994,7 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     
     @Override
     public ASTNode visitSimpleSelect(final SimpleSelectContext ctx) {
-        PostgreSQLSelectStatement result = new PostgreSQLSelectStatement();
+        SelectStatement result = new SelectStatement();
         if (null == ctx.targetList()) {
             result.setProjections(new ProjectionsSegment(-1, -1));
         } else {
@@ -1200,7 +1200,7 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
     }
     
     private SubqueryTableSegment getSubqueryTableSegment(final 
TableReferenceContext ctx) {
-        PostgreSQLSelectStatement select = (PostgreSQLSelectStatement) 
visit(ctx.selectWithParens());
+        SelectStatement select = (SelectStatement) 
visit(ctx.selectWithParens());
         SubquerySegment subquery = new 
SubquerySegment(ctx.selectWithParens().start.getStartIndex(), 
ctx.selectWithParens().stop.getStopIndex(), select, 
getOriginalText(ctx.selectWithParens()));
         AliasSegment alias = null == ctx.aliasClause() ? null : (AliasSegment) 
visit(ctx.aliasClause());
         SubqueryTableSegment result = new 
SubqueryTableSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), 
subquery);
diff --git 
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
 
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
index a794538ebe1..c2c42268a18 100644
--- 
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
+++ 
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
@@ -205,22 +205,20 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.NameS
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.OwnerSegment;
 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.postgresql.ddl.PostgreSQLAlterAggregateStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterDefaultPrivilegesStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterDomainStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterForeignDataWrapperStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterFunctionStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterLanguageStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterIndexStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterMaterializedViewStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterOperatorStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterProcedureStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterRoutineStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSequenceStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterServerStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTablespaceStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTriggerStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTypeStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterViewStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CloseStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.ClusterStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CommentStatement;
@@ -228,37 +226,34 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateC
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateDatabaseStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateDomainStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateFunctionStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateLanguageStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateIndexStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateMaterializedViewStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateOperatorStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreatePolicyStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateProcedureStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateRuleStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateSchemaStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateSequenceStatement;
+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.postgresql.ddl.PostgreSQLCreateTextSearchStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTypeStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateViewStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DeallocateStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DeclareStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropAccessMethodStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropDatabaseStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropFunctionStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropGroupStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropIndexStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropMaterializedViewStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropOperatorStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropProcedureStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropRoutineStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropSchemaStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropSequenceStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropServerStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropSubscriptionStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTablespaceStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTextSearchStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTriggerStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.FetchStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.ListenStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.MoveStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLNotifyStmtStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.OpenStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.PrepareStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RefreshMatViewStmtStatement;
@@ -273,20 +268,22 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateS
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.collection.CollectionValue;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.literal.impl.NumberLiteralValue;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterAggregateStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterCollationStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterConversionStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterDefaultPrivilegesStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterExtensionStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterForeignDataWrapperStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterForeignTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterGroupStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterIndexStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterLanguageStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterPolicyStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterPublicationStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterRoutineStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterRuleStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterSchemaStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterStatisticsStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterSubscriptionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterTextSearchStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLAlterViewStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateAccessMethodStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateAggregateStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateCastStatement;
@@ -295,11 +292,13 @@ import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLC
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateExtensionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateForeignDataWrapperStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateForeignTableStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateIndexStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateLanguageStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreatePolicyStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreatePublicationStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateSchemaStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateRuleStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTextSearchStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDiscardStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropAccessMethodStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropAggregateStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropCastStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropCollationStatement;
@@ -309,19 +308,20 @@ import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLD
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropExtensionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropForeignDataWrapperStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropForeignTableStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropIndexStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropGroupStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropLanguageStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropOperatorClassStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropOperatorFamilyStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropOwnedStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropPolicyStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropPublicationStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropRoutineStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropRuleStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropSchemaStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropStatisticsStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropSubscriptionStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTextSearchStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTypeStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropViewStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLNotifyStmtStatement;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -339,7 +339,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     @SuppressWarnings("unchecked")
     @Override
     public ASTNode visitCreateTable(final CreateTableContext ctx) {
-        PostgreSQLCreateTableStatement result = new 
PostgreSQLCreateTableStatement();
+        CreateTableStatement result = new CreateTableStatement();
         result.setTable((SimpleTableSegment) visit(ctx.tableName()));
         result.setIfNotExists(null != ctx.ifNotExists());
         if (null != ctx.createDefinitionClause()) {
@@ -627,7 +627,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     @Override
     public ASTNode visitDropTable(final DropTableContext ctx) {
         boolean containsCascade = null != ctx.dropTableOpt() && null != 
ctx.dropTableOpt().CASCADE();
-        PostgreSQLDropTableStatement result = new 
PostgreSQLDropTableStatement();
+        DropTableStatement result = new DropTableStatement();
         result.setIfExists(null != ctx.ifExists());
         result.setContainsCascade(containsCascade);
         result.getTables().addAll(((CollectionValue<SimpleTableSegment>) 
visit(ctx.tableNames())).getValue());
@@ -670,7 +670,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     @SuppressWarnings("unchecked")
     @Override
     public ASTNode visitCreateIndex(final CreateIndexContext ctx) {
-        PostgreSQLCreateIndexStatement result = new 
PostgreSQLCreateIndexStatement();
+        CreateIndexStatement result = new CreateIndexStatement();
         result.setIfNotExists(null != ctx.ifNotExists());
         result.setTable((SimpleTableSegment) visit(ctx.tableName()));
         result.getColumns().addAll(((CollectionValue<ColumnSegment>) 
visit(ctx.indexParams())).getValue());
@@ -721,7 +721,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     
     @Override
     public ASTNode visitAlterIndex(final AlterIndexContext ctx) {
-        PostgreSQLAlterIndexStatement result = new 
PostgreSQLAlterIndexStatement();
+        AlterIndexStatement result = new AlterIndexStatement();
         result.setIndex(createIndexSegment((SimpleTableSegment) 
visit(ctx.qualifiedName())));
         if (null != 
ctx.alterIndexDefinitionClause().renameIndexSpecification()) {
             result.setRenameIndex((IndexSegment) 
visit(ctx.alterIndexDefinitionClause().renameIndexSpecification().indexName()));
@@ -739,7 +739,8 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     @SuppressWarnings("unchecked")
     @Override
     public ASTNode visitDropIndex(final DropIndexContext ctx) {
-        PostgreSQLDropIndexStatement result = new 
PostgreSQLDropIndexStatement(null != ctx.ifExists());
+        DropIndexStatement result = new DropIndexStatement();
+        result.setIfExists(null != ctx.ifExists());
         
result.getIndexes().addAll(createIndexSegments(((CollectionValue<SimpleTableSegment>)
 visit(ctx.qualifiedNameList())).getValue()));
         return result;
     }
@@ -810,7 +811,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     @SuppressWarnings("unchecked")
     @Override
     public ASTNode visitDropView(final DropViewContext ctx) {
-        PostgreSQLDropViewStatement result = new PostgreSQLDropViewStatement();
+        DropViewStatement result = new DropViewStatement();
         result.setIfExists(null != ctx.ifExists());
         result.getViews().addAll(((CollectionValue<SimpleTableSegment>) 
visit(ctx.qualifiedNameList())).getValue());
         return result;
@@ -828,7 +829,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     
     @Override
     public ASTNode visitAlterView(final AlterViewContext ctx) {
-        PostgreSQLAlterViewStatement result = new 
PostgreSQLAlterViewStatement();
+        AlterViewStatement result = new AlterViewStatement();
         result.setView((SimpleTableSegment) visit(ctx.qualifiedName()));
         if (ctx.alterViewClauses() instanceof AlterRenameViewContext) {
             NameContext nameContext = ((AlterRenameViewContext) 
ctx.alterViewClauses()).name();
@@ -954,7 +955,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     
     @Override
     public ASTNode visitCreateSchema(final CreateSchemaContext ctx) {
-        PostgreSQLCreateSchemaStatement result = new 
PostgreSQLCreateSchemaStatement();
+        CreateSchemaStatement result = new CreateSchemaStatement();
         if (null != ctx.createSchemaClauses().colId()) {
             result.setSchemaName(new 
IdentifierValue(ctx.createSchemaClauses().colId().getText()));
         }
@@ -966,7 +967,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     
     @Override
     public ASTNode visitAlterSchema(final AlterSchemaContext ctx) {
-        PostgreSQLAlterSchemaStatement result = new 
PostgreSQLAlterSchemaStatement();
+        AlterSchemaStatement result = new AlterSchemaStatement();
         result.setSchemaName((IdentifierValue) visit(ctx.name().get(0)));
         if (ctx.name().size() > 1) {
             result.setRenameSchema((IdentifierValue) visit(ctx.name().get(1)));
@@ -977,7 +978,7 @@ public final class PostgreSQLDDLStatementVisitor extends 
PostgreSQLStatementVisi
     @SuppressWarnings("unchecked")
     @Override
     public ASTNode visitDropSchema(final DropSchemaContext ctx) {
-        PostgreSQLDropSchemaStatement result = new 
PostgreSQLDropSchemaStatement();
+        DropSchemaStatement result = new DropSchemaStatement();
         result.getSchemaNames().addAll(((CollectionValue<IdentifierValue>) 
visit(ctx.nameList())).getValue());
         result.setContainsCascade(null != ctx.dropBehavior() && null != 
ctx.dropBehavior().CASCADE());
         return result;
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/PostgreSQLStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/PostgreSQLStatement.java
deleted file mode 100644
index f0585f37d0d..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/PostgreSQLStatement.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql;
-
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
-
-/**
- * PostgreSQL statement.
- */
-public interface PostgreSQLStatement extends SQLStatement {
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dcl/PostgreSQLReassignOwnedStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dcl/PostgreSQLReassignOwnedStatement.java
index fc2c30bcef9..716dc4903be 100644
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dcl/PostgreSQLReassignOwnedStatement.java
+++ 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dcl/PostgreSQLReassignOwnedStatement.java
@@ -19,10 +19,9 @@ package 
org.apache.shardingsphere.sql.parser.statement.postgresql.dcl;
 
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.AbstractSQLStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dcl.DCLStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
 
 /**
  * PostgreSQL reassign owned statement.
  */
-public final class PostgreSQLReassignOwnedStatement extends 
AbstractSQLStatement implements PostgreSQLStatement, DCLStatement {
+public final class PostgreSQLReassignOwnedStatement extends 
AbstractSQLStatement implements DCLStatement {
 }
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterIndexStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterIndexStatement.java
deleted file mode 100644
index ebbaa074e3c..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterIndexStatement.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterIndexStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL alter index statement.
- */
-@Setter
-public final class PostgreSQLAlterIndexStatement extends AlterIndexStatement 
implements PostgreSQLStatement {
-    
-    private IndexSegment renameIndex;
-    
-    @Override
-    public Optional<IndexSegment> getRenameIndex() {
-        return Optional.ofNullable(renameIndex);
-    }
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterSchemaStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterSchemaStatement.java
deleted file mode 100644
index c19b827a71b..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterSchemaStatement.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL alter schema statement.
- */
-@Getter
-@Setter
-public final class PostgreSQLAlterSchemaStatement extends AlterSchemaStatement 
implements PostgreSQLStatement {
-    
-    private IdentifierValue renameSchema;
-    
-    @Override
-    public Optional<IdentifierValue> getRenameSchema() {
-        return Optional.ofNullable(renameSchema);
-    }
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterViewStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterViewStatement.java
deleted file mode 100644
index 721d97c68a8..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLAlterViewStatement.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterViewStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL alter view statement.
- */
-@Getter
-@Setter
-public final class PostgreSQLAlterViewStatement extends AlterViewStatement 
implements PostgreSQLStatement {
-    
-    private SimpleTableSegment renameView;
-    
-    @Override
-    public Optional<SimpleTableSegment> getRenameView() {
-        return Optional.ofNullable(renameView);
-    }
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateIndexStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateIndexStatement.java
deleted file mode 100644
index 4a5403a5128..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateIndexStatement.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateIndexStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL create index statement.
- */
-@RequiredArgsConstructor
-@Getter
-@Setter
-public final class PostgreSQLCreateIndexStatement extends CreateIndexStatement 
implements PostgreSQLStatement {
-    
-    private boolean ifNotExists;
-    
-    private Integer generatedIndexStartIndex;
-    
-    @Override
-    public Optional<Integer> getGeneratedIndexStartIndex() {
-        return Optional.ofNullable(generatedIndexStartIndex);
-    }
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateSchemaStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateSchemaStatement.java
deleted file mode 100644
index db24ac0d7e4..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateSchemaStatement.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateSchemaStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL create schema statement.
- */
-@Getter
-@Setter
-public final class PostgreSQLCreateSchemaStatement extends 
CreateSchemaStatement implements PostgreSQLStatement {
-    
-    private IdentifierValue username;
-    
-    @Override
-    public Optional<IdentifierValue> getUsername() {
-        return Optional.ofNullable(username);
-    }
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateTableStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateTableStatement.java
deleted file mode 100644
index 821aefa2831..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLCreateTableStatement.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTableStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-/**
- * PostgreSQL create table statement.
- */
-@RequiredArgsConstructor
-@Getter
-@Setter
-public final class PostgreSQLCreateTableStatement extends CreateTableStatement 
implements PostgreSQLStatement {
-    
-    private boolean ifNotExists;
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropIndexStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropIndexStatement.java
deleted file mode 100644
index b757e8808ea..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropIndexStatement.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropIndexStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-/**
- * PostgreSQL drop index statement.
- */
-@RequiredArgsConstructor
-@Getter
-public final class PostgreSQLDropIndexStatement extends DropIndexStatement 
implements PostgreSQLStatement {
-    
-    private final boolean ifExists;
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropSchemaStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropSchemaStatement.java
deleted file mode 100644
index 520a7a4534f..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropSchemaStatement.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropSchemaStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-/**
- * PostgreSQL drop schema statement.
- */
-@Getter
-@Setter
-public final class PostgreSQLDropSchemaStatement extends DropSchemaStatement 
implements PostgreSQLStatement {
-    
-    private boolean containsCascade;
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropTableStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropTableStatement.java
deleted file mode 100644
index 983761915bd..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropTableStatement.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-/**
- * PostgreSQL drop table statement.
- */
-@RequiredArgsConstructor
-@Getter
-@Setter
-public final class PostgreSQLDropTableStatement extends DropTableStatement 
implements PostgreSQLStatement {
-    
-    private boolean ifExists;
-    
-    private boolean containsCascade;
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropViewStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropViewStatement.java
deleted file mode 100644
index e07ec8832d9..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/ddl/PostgreSQLDropViewStatement.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.ddl;
-
-import lombok.Getter;
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-/**
- * PostgreSQL drop view statement.
- */
-@Getter
-@Setter
-public final class PostgreSQLDropViewStatement extends DropViewStatement 
implements PostgreSQLStatement {
-    
-    private boolean ifExists;
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLInsertStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLInsertStatement.java
deleted file mode 100644
index 5f8aa9585d9..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLInsertStatement.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.dml;
-
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.ReturningSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.OnDuplicateKeyColumnsSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WithSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL insert statement.
- */
-@Setter
-public final class PostgreSQLInsertStatement extends InsertStatement 
implements PostgreSQLStatement {
-    
-    private WithSegment withSegment;
-    
-    private OnDuplicateKeyColumnsSegment onDuplicateKeyColumns;
-    
-    private ReturningSegment returningSegment;
-    
-    @Override
-    public Optional<WithSegment> getWithSegment() {
-        return Optional.ofNullable(withSegment);
-    }
-    
-    @Override
-    public Optional<OnDuplicateKeyColumnsSegment> getOnDuplicateKeyColumns() {
-        return Optional.ofNullable(onDuplicateKeyColumns);
-    }
-    
-    @Override
-    public Optional<ReturningSegment> getReturningSegment() {
-        return Optional.ofNullable(returningSegment);
-    }
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLSelectStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLSelectStatement.java
deleted file mode 100644
index 255552b1fc1..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLSelectStatement.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.dml;
-
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.pagination.limit.LimitSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.LockSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WindowSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL select statement.
- */
-@Setter
-public final class PostgreSQLSelectStatement extends SelectStatement 
implements PostgreSQLStatement {
-    
-    private LimitSegment limit;
-    
-    private LockSegment lock;
-    
-    private WindowSegment window;
-    
-    private TableSegment intoSegment;
-    
-    @Override
-    public Optional<LimitSegment> getLimit() {
-        return Optional.ofNullable(limit);
-    }
-    
-    @Override
-    public Optional<LockSegment> getLock() {
-        return Optional.ofNullable(lock);
-    }
-    
-    @Override
-    public Optional<WindowSegment> getWindow() {
-        return Optional.ofNullable(window);
-    }
-    
-    @Override
-    public Optional<TableSegment> getIntoSegment() {
-        return Optional.ofNullable(intoSegment);
-    }
-}
diff --git 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLUpdateStatement.java
 
b/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLUpdateStatement.java
deleted file mode 100644
index 6aab51d5b01..00000000000
--- 
a/parser/sql/statement/type/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/statement/postgresql/dml/PostgreSQLUpdateStatement.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.statement.postgresql.dml;
-
-import lombok.Setter;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.PostgreSQLStatement;
-
-import java.util.Optional;
-
-/**
- * PostgreSQL update statement.
- */
-@Setter
-public final class PostgreSQLUpdateStatement extends UpdateStatement 
implements PostgreSQLStatement {
-    
-    private TableSegment from;
-    
-    @Override
-    public Optional<TableSegment> getFrom() {
-        return Optional.ofNullable(from);
-    }
-}
diff --git 
a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
 
b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
index 7037c4872ba..813930854d3 100644
--- 
a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
+++ 
b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
@@ -34,9 +34,8 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ResetPa
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
+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.postgresql.dml.PostgreSQLInsertStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
@@ -87,7 +86,7 @@ class PostgreSQLAdminExecutorCreatorTest {
     
     @Test
     void assertCreateWithOtherSQLStatementContextOnly() {
-        assertThat(new PostgreSQLAdminExecutorCreator().create(new 
UnknownSQLStatementContext(databaseType, new PostgreSQLInsertStatement())), 
is(Optional.empty()));
+        assertThat(new PostgreSQLAdminExecutorCreator().create(new 
UnknownSQLStatementContext(databaseType, new InsertStatement())), 
is(Optional.empty()));
     }
     
     @Test
@@ -142,7 +141,7 @@ class PostgreSQLAdminExecutorCreatorTest {
     @Test
     void assertCreateWithSelectNonPgCatalog() {
         SelectStatementContext selectStatementContext = 
mock(SelectStatementContext.class);
-        when(selectStatementContext.getSqlStatement()).thenReturn(new 
PostgreSQLSelectStatement());
+        when(selectStatementContext.getSqlStatement()).thenReturn(new 
SelectStatement());
         assertThat(new 
PostgreSQLAdminExecutorCreator().create(selectStatementContext, "select 1", "", 
Collections.emptyList()), is(Optional.empty()));
     }
     
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 92384c5a5e0..a6eadf99750 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
@@ -65,10 +65,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.Release
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.RollbackStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.SavepointStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.tcl.StartTransactionStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLUpdateStatement;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -91,14 +87,12 @@ class PostgreSQLCommandTest {
     @Test
     void assertValueOfInsertStatement() {
         
assertThat(PostgreSQLCommand.valueOf(InsertStatement.class).orElse(null), 
is(PostgreSQLCommand.INSERT));
-        
assertThat(PostgreSQLCommand.valueOf(PostgreSQLInsertStatement.class).orElse(null),
 is(PostgreSQLCommand.INSERT));
         assertThat(PostgreSQLCommand.INSERT.getTag(), is("INSERT"));
     }
     
     @Test
     void assertValueOfUpdateStatement() {
         
assertThat(PostgreSQLCommand.valueOf(UpdateStatement.class).orElse(null), 
is(PostgreSQLCommand.UPDATE));
-        
assertThat(PostgreSQLCommand.valueOf(PostgreSQLUpdateStatement.class).orElse(null),
 is(PostgreSQLCommand.UPDATE));
         assertThat(PostgreSQLCommand.UPDATE.getTag(), is("UPDATE"));
     }
     
@@ -221,7 +215,6 @@ class PostgreSQLCommandTest {
     @Test
     void assertValueOfCreateTableStatement() {
         
assertThat(PostgreSQLCommand.valueOf(CreateTableStatement.class).orElse(null), 
is(PostgreSQLCommand.CREATE_TABLE));
-        
assertThat(PostgreSQLCommand.valueOf(PostgreSQLCreateTableStatement.class).orElse(null),
 is(PostgreSQLCommand.CREATE_TABLE));
         assertThat(PostgreSQLCommand.CREATE_TABLE.getTag(), is("CREATE 
TABLE"));
     }
     
@@ -270,7 +263,6 @@ class PostgreSQLCommandTest {
     @Test
     void assertValueOfDropTableStatement() {
         
assertThat(PostgreSQLCommand.valueOf(DropTableStatement.class).orElse(null), 
is(PostgreSQLCommand.DROP_TABLE));
-        
assertThat(PostgreSQLCommand.valueOf(PostgreSQLDropTableStatement.class).orElse(null),
 is(PostgreSQLCommand.DROP_TABLE));
         assertThat(PostgreSQLCommand.DROP_TABLE.getTag(), is("DROP TABLE"));
     }
     
diff --git 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PortalTest.java
 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PortalTest.java
index e98fa2c1d85..96b7c2b90bf 100644
--- 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PortalTest.java
+++ 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PortalTest.java
@@ -55,8 +55,8 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dal.VariableS
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.EmptyStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement;
+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.test.mock.AutoMockExtension;
 import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.BeforeEach;
@@ -160,7 +160,7 @@ class PortalTest {
         when(proxyBackendHandler.getRowData()).thenReturn(new 
QueryResponseRow(Collections.singletonList(new QueryResponseCell(Types.INTEGER, 
0))),
                 new QueryResponseRow(Collections.singletonList(new 
QueryResponseCell(Types.INTEGER, 1))));
         SelectStatementContext sqlStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
-        when(sqlStatementContext.getSqlStatement()).thenReturn(new 
PostgreSQLSelectStatement());
+        when(sqlStatementContext.getSqlStatement()).thenReturn(new 
SelectStatement());
         
when(sqlStatementContext.getTablesContext().getDatabaseName()).thenReturn(Optional.empty());
         PostgreSQLServerPreparedStatement preparedStatement =
                 new PostgreSQLServerPreparedStatement("", sqlStatementContext, 
new HintValueContext(), Collections.emptyList(), Collections.emptyList());
@@ -195,7 +195,7 @@ class PortalTest {
                 new QueryResponseRow(Collections.singletonList(new 
QueryResponseCell(Types.INTEGER, 0))),
                 new QueryResponseRow(Collections.singletonList(new 
QueryResponseCell(Types.INTEGER, 1))));
         SelectStatementContext selectStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
-        when(selectStatementContext.getSqlStatement()).thenReturn(new 
PostgreSQLSelectStatement());
+        when(selectStatementContext.getSqlStatement()).thenReturn(new 
SelectStatement());
         
when(selectStatementContext.getTablesContext().getDatabaseName()).thenReturn(Optional.empty());
         PostgreSQLServerPreparedStatement preparedStatement = new 
PostgreSQLServerPreparedStatement("", selectStatementContext, new 
HintValueContext(), Collections.emptyList(),
                 Collections.emptyList());
@@ -216,7 +216,7 @@ class PortalTest {
         
when(proxyBackendHandler.execute()).thenReturn(mock(UpdateResponseHeader.class));
         when(proxyBackendHandler.next()).thenReturn(false);
         InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
-        when(insertStatementContext.getSqlStatement()).thenReturn(new 
PostgreSQLInsertStatement());
+        when(insertStatementContext.getSqlStatement()).thenReturn(new 
InsertStatement());
         
when(insertStatementContext.getTablesContext().getDatabaseName()).thenReturn(Optional.empty());
         PostgreSQLServerPreparedStatement preparedStatement = new 
PostgreSQLServerPreparedStatement("", insertStatementContext, new 
HintValueContext(), Collections.emptyList(),
                 Collections.emptyList());
diff --git 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
index 6f0b2d3024f..d5126f02436 100644
--- 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
+++ 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
@@ -40,8 +40,8 @@ import 
org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 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.dml.InsertStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
 import org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule;
 import 
org.apache.shardingsphere.sqltranslator.rule.builder.DefaultSQLTranslatorRuleConfigurationBuilder;
 import org.apache.shardingsphere.test.mock.AutoMockExtension;
@@ -118,7 +118,7 @@ class PostgreSQLBatchedStatementsExecutorTest {
     }
     
     private InsertStatementContext mockInsertStatementContext() {
-        PostgreSQLInsertStatement insertStatement = 
mock(PostgreSQLInsertStatement.class, RETURNS_DEEP_STUBS);
+        InsertStatement insertStatement = mock(InsertStatement.class, 
RETURNS_DEEP_STUBS);
         when(insertStatement.getTable()).thenReturn(Optional.of(new 
SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("t")))));
         when(insertStatement.getValues()).thenReturn(Collections.emptyList());
         
when(insertStatement.getCommentSegments()).thenReturn(Collections.emptyList());
diff --git 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
index 7c2f0e5f331..f1c1c4252ab 100644
--- 
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
+++ 
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
@@ -42,7 +42,7 @@ import 
org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import 
org.apache.shardingsphere.proxy.backend.session.ServerPreparedStatementRegistry;
 import 
org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.PostgreSQLServerPreparedStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dal.EmptyStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
 import org.apache.shardingsphere.test.mock.AutoMockExtension;
 import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.BeforeEach;
@@ -126,7 +126,7 @@ class PostgreSQLComParseExecutorTest {
         assertThat(actualPackets.iterator().next(), 
is(PostgreSQLParseCompletePacket.getInstance()));
         PostgreSQLServerPreparedStatement actualPreparedStatement = 
connectionSession.getServerPreparedStatementRegistry().getPreparedStatement(statementId);
         assertThat(actualPreparedStatement.getSqlStatementContext(), 
instanceOf(InsertStatementContext.class));
-        
assertThat(actualPreparedStatement.getSqlStatementContext().getSqlStatement(), 
instanceOf(PostgreSQLInsertStatement.class));
+        
assertThat(actualPreparedStatement.getSqlStatementContext().getSqlStatement(), 
instanceOf(InsertStatement.class));
         assertThat(actualPreparedStatement.getSql(), is(expectedSQL));
         assertThat(actualPreparedStatement.getParameterTypes(), 
is(Arrays.asList(PostgreSQLColumnType.INT4, PostgreSQLColumnType.UNSPECIFIED)));
     }

Reply via email to