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 73d0af8ddf2 Refactor constructor of DropTableStatement to empty
buildAttributes (#38329)
73d0af8ddf2 is described below
commit 73d0af8ddf2c3c5fa0ea4f775e049b026b4fe145
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Mar 4 12:20:15 2026 +0800
Refactor constructor of DropTableStatement to empty buildAttributes (#38329)
* Refactor constructor of DropTableStatement to empty buildAttributes
* Refactor constructor of DropTableStatement to empty buildAttributes
---
.../ddl/ShardingDropTableSupportedCheckerTest.java | 7 ++--
.../ShardingDropTableRouteContextCheckerTest.java | 41 +++++++---------------
.../statement/ddl/DropTableStatementBinder.java | 5 +--
.../DropTablePushDownMetaDataRefresherTest.java | 6 ++--
.../statement/type/DorisDDLStatementVisitor.java | 5 +--
.../type/FirebirdDDLStatementVisitor.java | 4 +--
.../statement/type/HiveDDLStatementVisitor.java | 5 +--
.../statement/type/MySQLDDLStatementVisitor.java | 5 +--
.../type/OpenGaussDDLStatementVisitor.java | 6 +---
.../statement/type/OracleDDLStatementVisitor.java | 4 +--
.../type/PostgreSQLDDLStatementVisitor.java | 6 +---
.../statement/type/PrestoDDLStatementVisitor.java | 5 +--
.../statement/type/SQL92DDLStatementVisitor.java | 4 +--
.../type/SQLServerDDLStatementVisitor.java | 5 +--
.../type/ddl/table/DropTableStatement.java | 18 +++++-----
15 files changed, 39 insertions(+), 87 deletions(-)
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java
index 272067a466a..bbbb2e9cd44 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingDropTableSupportedCheckerTest.java
@@ -38,6 +38,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
@@ -67,10 +68,8 @@ class ShardingDropTableSupportedCheckerTest {
@Test
void assertCheck() {
- DropTableStatement sqlStatement = new DropTableStatement(databaseType);
- SimpleTableSegment table = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order_item")));
- sqlStatement.getTables().add(table);
- sqlStatement.buildAttributes();
+ DropTableStatement sqlStatement = new DropTableStatement(
+ databaseType, Collections.singleton(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order_item")))), false, false);
SQLStatementContext sqlStatementContext = new
CommonSQLStatementContext(sqlStatement);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
ShardingSphereSchema schema = mock(ShardingSphereSchema.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 04aecbdd31b..0f7963ebab1 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
@@ -19,7 +19,6 @@ package
org.apache.shardingsphere.sharding.route.engine.checker.ddl;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.binder.context.statement.type.CommonSQLStatementContext;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.datanode.DataNode;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.route.context.RouteContext;
@@ -83,10 +82,6 @@ class ShardingDropTableRouteContextCheckerTest {
@Test
void assertCheckWhenDropTableInUsed() {
- DropTableStatement sqlStatement = new DropTableStatement(databaseType);
- SimpleTableSegment table = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order_item")));
- sqlStatement.getTables().add(table);
- sqlStatement.buildAttributes();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("db_schema");
when(database.getSchema("db_schema").containsTable("t_order_item")).thenReturn(true);
@@ -99,8 +94,9 @@ class ShardingDropTableRouteContextCheckerTest {
routeUnits.add(routeUnit);
RouteContext routeContext = mock(RouteContext.class);
when(routeContext.getRouteUnits()).thenReturn(routeUnits);
- when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(sqlStatement));
- assertThrows(InUsedTablesException.class, () -> new
ShardingDropTableRouteContextChecker().check(shardingRule, queryContext,
database, mock(ConfigurationProperties.class), routeContext));
+ when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(new DropTableStatement(
+ databaseType, Collections.singleton(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order_item")))), false, false)));
+ assertThrows(InUsedTablesException.class, () -> new
ShardingDropTableRouteContextChecker().check(shardingRule, queryContext,
database, mock(), routeContext));
}
private ShardingTable createShardingTable(final String tableName) {
@@ -124,50 +120,39 @@ class ShardingDropTableRouteContextCheckerTest {
@Test
void assertCheckWithSameRouteResultShardingTableForPostgreSQL() {
- DropTableStatement sqlStatement = new DropTableStatement(databaseType);
- SimpleTableSegment table = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order")));
- sqlStatement.getTables().add(table);
- sqlStatement.buildAttributes();
when(shardingRule.isShardingTable("t_order")).thenReturn(true);
when(shardingRule.getShardingTable("t_order")).thenReturn(new
ShardingTable(Arrays.asList("ds_0", "ds_1"), "t_order"));
Collection<RouteUnit> routeUnits = new LinkedList<>();
routeUnits.add(new RouteUnit(new RouteMapper("ds_0", "ds_0"),
Collections.singleton(new RouteMapper("t_order", "t_order_0"))));
routeUnits.add(new RouteUnit(new RouteMapper("ds_1", "ds_1"),
Collections.singleton(new RouteMapper("t_order", "t_order_0"))));
when(routeContext.getRouteUnits()).thenReturn(routeUnits);
- when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(sqlStatement));
- assertDoesNotThrow(() -> new
ShardingDropTableRouteContextChecker().check(shardingRule, queryContext,
mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS),
- mock(ConfigurationProperties.class), routeContext));
+ when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(new DropTableStatement(
+ databaseType, Collections.singleton(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order")))), false, false)));
+ assertDoesNotThrow(() -> new
ShardingDropTableRouteContextChecker().check(shardingRule, queryContext,
mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS), mock(), routeContext));
}
@Test
void assertCheckWithDifferentRouteResultShardingTableForPostgreSQL() {
- DropTableStatement sqlStatement = new DropTableStatement(databaseType);
- SimpleTableSegment table = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order")));
- sqlStatement.getTables().add(table);
- sqlStatement.buildAttributes();
when(shardingRule.isShardingTable("t_order")).thenReturn(true);
when(shardingRule.getShardingTable("t_order")).thenReturn(new
ShardingTable(Arrays.asList("ds_0", "ds_1"), "t_order"));
Collection<RouteUnit> routeUnits = new LinkedList<>();
routeUnits.add(new RouteUnit(new RouteMapper("ds_0", "ds_0"),
Collections.singleton(new RouteMapper("t_order", "t_order_0"))));
when(routeContext.getRouteUnits()).thenReturn(routeUnits);
- when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(sqlStatement));
- assertThrows(ShardingDDLRouteException.class, () -> new
ShardingDropTableRouteContextChecker().check(shardingRule, queryContext,
mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS),
- mock(ConfigurationProperties.class), routeContext));
+ when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(new DropTableStatement(
+ databaseType, Collections.singleton(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order")))), false, false)));
+ assertThrows(ShardingDDLRouteException.class, () -> new
ShardingDropTableRouteContextChecker().check(
+ shardingRule, queryContext, mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS), mock(), routeContext));
}
@Test
void assertCheckWithSameRouteResultBroadcastTableForPostgreSQL() {
- DropTableStatement sqlStatement = new DropTableStatement(databaseType);
- SimpleTableSegment table = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_config")));
- sqlStatement.getTables().add(table);
- sqlStatement.buildAttributes();
when(shardingRule.getShardingTable("t_config")).thenReturn(new
ShardingTable(Arrays.asList("ds_0", "ds_1"), "t_config"));
Collection<RouteUnit> routeUnits = new LinkedList<>();
routeUnits.add(new RouteUnit(new RouteMapper("ds_0", "ds_0"),
Collections.singleton(new RouteMapper("t_config", "t_config"))));
routeUnits.add(new RouteUnit(new RouteMapper("ds_1", "ds_1"),
Collections.singleton(new RouteMapper("t_config", "t_config"))));
when(routeContext.getRouteUnits()).thenReturn(routeUnits);
- when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(sqlStatement));
- assertDoesNotThrow(() -> new
ShardingDropTableRouteContextChecker().check(shardingRule, queryContext,
mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS),
- mock(ConfigurationProperties.class), routeContext));
+ when(queryContext.getSqlStatementContext()).thenReturn(new
CommonSQLStatementContext(new DropTableStatement(
+ databaseType, Collections.singleton(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_config")))), false, false)));
+ assertDoesNotThrow(() -> new
ShardingDropTableRouteContextChecker().check(shardingRule, queryContext,
mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS), mock(), routeContext));
}
}
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java
index 896292c988d..cc4a8e8bac0 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/DropTableStatementBinder.java
@@ -41,10 +41,7 @@ public final class DropTableStatementBinder implements
SQLStatementBinder<DropTa
}
private DropTableStatement copy(final DropTableStatement sqlStatement,
final Collection<SimpleTableSegment> boundTables) {
- DropTableStatement result = new
DropTableStatement(sqlStatement.getDatabaseType());
- result.getTables().addAll(boundTables);
- result.setIfExists(sqlStatement.isIfExists());
- result.setContainsCascade(sqlStatement.isContainsCascade());
+ DropTableStatement result = new
DropTableStatement(sqlStatement.getDatabaseType(), boundTables,
sqlStatement.isIfExists(), sqlStatement.isContainsCascade());
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/DropTablePushDownMetaDataRefresherTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/DropTablePushDownMetaDataRefresherTest.java
index 1bdde689764..398fad4eb5d 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/DropTablePushDownMetaDataRefresherTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/DropTablePushDownMetaDataRefresherTest.java
@@ -54,9 +54,9 @@ class DropTablePushDownMetaDataRefresherTest {
void assertRefresh() {
ShardingSphereDatabase database = new ShardingSphereDatabase(
"foo_db", databaseType, new
ResourceMetaData(Collections.emptyMap()), new
RuleMetaData(Collections.emptyList()), Collections.emptyList());
- DropTableStatement sqlStatement = new DropTableStatement(databaseType);
- sqlStatement.getTables().add(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("foo_tbl"))));
- sqlStatement.getTables().add(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("bar_tbl"))));
+ DropTableStatement sqlStatement = new DropTableStatement(databaseType,
Arrays.asList(
+ new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("foo_tbl"))), new SimpleTableSegment(new TableNameSegment(0, 0,
new IdentifierValue("bar_tbl")))),
+ false, false);
refresher.refresh(metaDataManagerPersistService, database, "logic_ds",
"foo_schema", databaseType, sqlStatement, new ConfigurationProperties(new
Properties()));
verify(metaDataManagerPersistService).dropTables(database,
"foo_schema", Arrays.asList("foo_tbl", "bar_tbl"));
}
diff --git
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
index 41977a1ba95..ef6cdcfe003 100644
---
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
@@ -1139,10 +1139,7 @@ public final class DorisDDLStatementVisitor extends
DorisStatementVisitor implem
@SuppressWarnings("unchecked")
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.setIfExists(null != ctx.ifExists());
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableList())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableList())).getValue(), null
!= ctx.ifExists(), false);
}
@Override
diff --git
a/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDDLStatementVisitor.java
b/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDDLStatementVisitor.java
index 921e6a657e9..d4eae29bbc8 100644
---
a/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDDLStatementVisitor.java
@@ -259,9 +259,7 @@ public final class FirebirdDDLStatementVisitor extends
FirebirdStatementVisitor
@SuppressWarnings("unchecked")
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNames())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableNames())).getValue(),
false, false);
}
@Override
diff --git
a/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java
b/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java
index ae126411475..345fd02a144 100644
---
a/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java
@@ -164,10 +164,7 @@ public final class HiveDDLStatementVisitor extends
HiveStatementVisitor implemen
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.setIfExists(null != ctx.ifExists());
- result.getTables().add((SimpleTableSegment)
visit(ctx.tableNameWithDb()));
- return result;
+ return new DropTableStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableNameWithDb())), null
!= ctx.ifExists(), false);
}
@Override
diff --git
a/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
b/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
index afe2540ed31..621c9e141dd 100644
---
a/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
@@ -693,10 +693,7 @@ public final class MySQLDDLStatementVisitor extends
MySQLStatementVisitor implem
@SuppressWarnings("unchecked")
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.setIfExists(null != ctx.ifExists());
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableList())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableList())).getValue(), null
!= ctx.ifExists(), false);
}
@Override
diff --git
a/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
b/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
index 0602de03b5e..2a8f4e52149 100644
---
a/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
@@ -521,11 +521,7 @@ public final class OpenGaussDDLStatementVisitor extends
OpenGaussStatementVisito
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
boolean containsCascade = null != ctx.dropTableOpt() && null !=
ctx.dropTableOpt().CASCADE();
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.setIfExists(null != ctx.ifExists());
- result.setContainsCascade(containsCascade);
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNames())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableNames())).getValue(),
null != ctx.ifExists(), containsCascade);
}
@SuppressWarnings("unchecked")
diff --git
a/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
b/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
index e2f5ff35340..5b04a22ecce 100644
---
a/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
@@ -735,9 +735,7 @@ public final class OracleDDLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.getTables().add((SimpleTableSegment) visit(ctx.tableName()));
- return result;
+ return new DropTableStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())), false,
false);
}
@Override
diff --git
a/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
b/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
index 353e92f1397..53abb5a0014 100644
---
a/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
@@ -638,11 +638,7 @@ public final class PostgreSQLDDLStatementVisitor extends
PostgreSQLStatementVisi
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
boolean containsCascade = null != ctx.dropTableOpt() && null !=
ctx.dropTableOpt().CASCADE();
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.setIfExists(null != ctx.ifExists());
- result.setContainsCascade(containsCascade);
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNames())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableNames())).getValue(),
null != ctx.ifExists(), containsCascade);
}
@SuppressWarnings("unchecked")
diff --git
a/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDDLStatementVisitor.java
b/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDDLStatementVisitor.java
index 19907b519f8..6594d674b45 100644
---
a/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDDLStatementVisitor.java
@@ -134,10 +134,7 @@ public final class PrestoDDLStatementVisitor extends
PrestoStatementVisitor impl
@SuppressWarnings("unchecked")
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.setIfExists(null != ctx.ifExists());
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableList())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableList())).getValue(), null
!= ctx.ifExists(), false);
}
@Override
diff --git
a/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java
b/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java
index 9e4a1ef7868..9d07a378705 100644
---
a/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DDLStatementVisitor.java
@@ -228,8 +228,6 @@ public final class SQL92DDLStatementVisitor extends
SQL92StatementVisitor implem
@SuppressWarnings("unchecked")
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNames())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableNames())).getValue(),
false, false);
}
}
diff --git
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
index 26f48476634..fe4b73c8a8a 100644
---
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
+++
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
@@ -319,10 +319,7 @@ public final class SQLServerDDLStatementVisitor extends
SQLServerStatementVisito
@SuppressWarnings("unchecked")
@Override
public ASTNode visitDropTable(final DropTableContext ctx) {
- DropTableStatement result = new DropTableStatement(getDatabaseType());
- result.setContainsCascade(null != ctx.ifExists());
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNames())).getValue());
- return result;
+ return new DropTableStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>) visit(ctx.tableNames())).getValue(),
null != ctx.ifExists(), false);
}
@Override
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/DropTableStatement.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/DropTableStatement.java
index b07d790f050..e578d9dea81 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/DropTableStatement.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/DropTableStatement.java
@@ -18,7 +18,6 @@
package
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.table;
import lombok.Getter;
-import lombok.Setter;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.SQLStatementAttributes;
@@ -26,29 +25,30 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.t
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.DDLStatement;
import java.util.Collection;
-import java.util.LinkedList;
/**
* Drop table statement.
*/
@Getter
-@Setter
public final class DropTableStatement extends DDLStatement {
- private final Collection<SimpleTableSegment> tables = new LinkedList<>();
+ private final Collection<SimpleTableSegment> tables;
- private boolean ifExists;
+ private final boolean ifExists;
- private boolean containsCascade;
+ private final boolean containsCascade;
- private SQLStatementAttributes attributes;
+ private final SQLStatementAttributes attributes;
- public DropTableStatement(final DatabaseType databaseType) {
+ public DropTableStatement(final DatabaseType databaseType, final
Collection<SimpleTableSegment> tables, final boolean ifExists, final boolean
containsCascade) {
super(databaseType);
+ this.tables = tables;
+ this.ifExists = ifExists;
+ this.containsCascade = containsCascade;
+ attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(tables));
}
@Override
public void buildAttributes() {
- attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(tables));
}
}