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 00af3f27e7f Refactor constructor of DeleteStatement to empty
buildAttributes (#38322)
00af3f27e7f is described below
commit 00af3f27e7f6232ce6441926137a0b84c579d157
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Mar 3 23:38:34 2026 +0800
Refactor constructor of DeleteStatement to empty buildAttributes (#38322)
---
.../core/advice/SQLRouteCountAdviceTest.java | 2 +-
.../statement/dml/DeleteStatementBinder.java | 16 ++++----
.../type/dml/DeleteStatementContextTest.java | 4 +-
.../statement/dml/DeleteStatementBinderTest.java | 10 +++--
.../ast/converter/SQLNodeConverterEngineTest.java | 2 +-
.../type/DeleteStatementConverterTest.java | 46 +++++++++++-----------
.../type/ExplainStatementConverterTest.java | 4 +-
.../refresher/util/SchemaRefreshUtilsTest.java | 2 +-
.../type/ClickHouseDMLStatementVisitor.java | 10 ++---
.../visitor/statement/DorisStatementVisitor.java | 17 ++++----
.../type/FirebirdDMLStatementVisitor.java | 12 +++---
.../statement/type/HiveDMLStatementVisitor.java | 16 ++++----
.../visitor/statement/MySQLStatementVisitor.java | 21 +++++-----
.../statement/OpenGaussStatementVisitor.java | 10 ++---
.../statement/type/OracleDMLStatementVisitor.java | 15 +++----
.../statement/PostgreSQLStatementVisitor.java | 10 ++---
.../statement/type/PrestoDMLStatementVisitor.java | 17 ++++----
.../statement/type/SQL92DMLStatementVisitor.java | 10 ++---
.../statement/SQLServerStatementVisitor.java | 20 +++++-----
.../core/statement/type/dml/DeleteStatement.java | 32 +++++++++------
.../statement/core/util/MultiSQLSplitterTest.java | 6 +--
.../admin/FirebirdAdminExecutorCreatorTest.java | 2 +-
.../admin/MySQLAdminExecutorCreatorTest.java | 2 +-
.../admin/PostgreSQLAdminExecutorCreatorTest.java | 2 +-
24 files changed, 150 insertions(+), 138 deletions(-)
diff --git
a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java
b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java
index e3d059277e7..2379b826e0c 100644
---
a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java
+++
b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/advice/SQLRouteCountAdviceTest.java
@@ -73,7 +73,7 @@ class SQLRouteCountAdviceTest {
return Stream.of(
Arguments.of("INSERT", createQueryContext(new
InsertStatement(DATABASE_TYPE))),
Arguments.of("UPDATE", createQueryContext(new
UpdateStatement(DATABASE_TYPE))),
- Arguments.of("DELETE", createQueryContext(new
DeleteStatement(DATABASE_TYPE))),
+ Arguments.of("DELETE",
createQueryContext(DeleteStatement.builder().databaseType(DATABASE_TYPE).build())),
Arguments.of("SELECT", createQueryContext(new
SelectStatement(DATABASE_TYPE))));
}
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java
index fbd0257060c..9a18beb17e0 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinder.java
@@ -51,13 +51,15 @@ public final class DeleteStatementBinder implements
SQLStatementBinder<DeleteSta
}
private DeleteStatement copy(final DeleteStatement sqlStatement, final
WithSegment boundWith, final TableSegment boundTable, final WhereSegment
boundWhere, final OrderBySegment boundOrderBy) {
- DeleteStatement result = new
DeleteStatement(sqlStatement.getDatabaseType());
- result.setWith(boundWith);
- result.setTable(boundTable);
- result.setWhere(boundWhere);
- result.setOrderBy(boundOrderBy);
- sqlStatement.getLimit().ifPresent(result::setLimit);
- sqlStatement.getOutput().ifPresent(result::setOutput);
+ DeleteStatement result = DeleteStatement.builder()
+ .databaseType(sqlStatement.getDatabaseType())
+ .with(boundWith)
+ .table(boundTable)
+ .where(boundWhere)
+ .orderBy(boundOrderBy)
+ .limit(sqlStatement.getLimit().orElse(null))
+ .output(sqlStatement.getOutput().orElse(null))
+ .build();
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/DeleteStatementContextTest.java
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/DeleteStatementContextTest.java
index 6cbeba34a84..088fcf02704 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/DeleteStatementContextTest.java
+++
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/DeleteStatementContextTest.java
@@ -45,14 +45,12 @@ class DeleteStatementContextTest {
@Test
void assertNewInstance() {
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
WhereSegment whereSegment = mock(WhereSegment.class);
when(whereSegment.getExpr()).thenReturn(mock(ExpressionSegment.class));
- deleteStatement.setWhere(whereSegment);
JoinTableSegment tableSegment = new JoinTableSegment();
tableSegment.setLeft(new
SimpleTableSegment(createTableNameSegment("foo_tbl")));
tableSegment.setRight(new
SimpleTableSegment(createTableNameSegment("bar_tbl")));
- deleteStatement.setTable(tableSegment);
+ DeleteStatement deleteStatement =
DeleteStatement.builder().databaseType(databaseType).table(tableSegment).where(whereSegment).build();
DeleteStatementContext actual = new
DeleteStatementContext(deleteStatement);
assertThat(actual.getTablesContext().getTableNames(), is(new
HashSet<>(Arrays.asList("foo_tbl", "bar_tbl"))));
assertThat(actual.getWhereSegments(),
is(Collections.singletonList(whereSegment)));
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java
index 41fafc83ae7..7b8d1e56fef 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java
+++
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/DeleteStatementBinderTest.java
@@ -52,11 +52,13 @@ class DeleteStatementBinderTest {
@Test
void assertBind() {
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
SimpleTableSegment simpleTableSegment = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order")));
- deleteStatement.setTable(simpleTableSegment);
- deleteStatement.setWhere(new WhereSegment(0, 0, new
BinaryOperationExpression(0, 0, new ColumnSegment(0, 0, new
IdentifierValue("status")),
- new LiteralExpressionSegment(0, 0, 0), "=", "status = 1")));
+ DeleteStatement deleteStatement = DeleteStatement.builder()
+ .databaseType(databaseType)
+ .table(simpleTableSegment)
+ .where(new WhereSegment(0, 0, new BinaryOperationExpression(0,
0, new ColumnSegment(0, 0, new IdentifierValue("status")),
+ new LiteralExpressionSegment(0, 0, 0), "=", "status =
1")))
+ .build();
DeleteStatement actual = new
DeleteStatementBinder().bind(deleteStatement, new
SQLStatementBinderContext(createMetaData(), "foo_db", new HintValueContext(),
deleteStatement));
assertThat(actual, not(deleteStatement));
assertThat(actual.getTable(), not(deleteStatement.getTable()));
diff --git
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/SQLNodeConverterEngineTest.java
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/SQLNodeConverterEngineTest.java
index 80636ef6b46..502acdf0a76 100644
---
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/SQLNodeConverterEngineTest.java
+++
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/SQLNodeConverterEngineTest.java
@@ -63,7 +63,7 @@ class SQLNodeConverterEngineTest {
try (
MockedConstruction<DeleteStatementConverter> ignored =
mockConstruction(DeleteStatementConverter.class,
(mock, context) ->
when(mock.convert(any(DeleteStatement.class))).thenReturn(deleteSqlNode))) {
- assertThat(SQLNodeConverterEngine.convert(new
DeleteStatement(databaseType)), is(deleteSqlNode));
+
assertThat(SQLNodeConverterEngine.convert(DeleteStatement.builder().databaseType(databaseType).build()),
is(deleteSqlNode));
}
SqlNode updateSqlNode = mock(SqlNode.class);
try (
diff --git
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/DeleteStatementConverterTest.java
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/DeleteStatementConverterTest.java
index c53aa91f19c..2977d088776 100644
---
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/DeleteStatementConverterTest.java
+++
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/DeleteStatementConverterTest.java
@@ -74,8 +74,7 @@ class DeleteStatementConverterTest {
@Test
void assertConvertSingleTableWithoutOrderByAndLimit() {
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(createSimpleTableSegment("t_order"));
+ DeleteStatement deleteStatement =
DeleteStatement.builder().databaseType(databaseType).table(createSimpleTableSegment("t_order")).build();
SqlDelete actual = (SqlDelete) new
DeleteStatementConverter().convert(deleteStatement);
assertThat(((SqlIdentifier) actual.getTargetTable()).getSimple(),
is("t_order"));
assertNull(actual.getCondition());
@@ -84,10 +83,12 @@ class DeleteStatementConverterTest {
@Test
void assertConvertSingleTableWithAliasAndOrderBy() {
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(createSimpleTableSegmentWithAlias("t_order",
"do"));
- deleteStatement.setWhere(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)));
- deleteStatement.setOrderBy(createOrderBySegment());
+ DeleteStatement deleteStatement = DeleteStatement.builder()
+ .databaseType(databaseType)
+ .table(createSimpleTableSegmentWithAlias("t_order", "do"))
+ .where(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)))
+ .orderBy(createOrderBySegment())
+ .build();
SqlOrderBy actual = (SqlOrderBy) new
DeleteStatementConverter().convert(deleteStatement);
assertThat(actual.query, isA(SqlDelete.class));
SqlDelete sqlDelete = (SqlDelete) actual.query;
@@ -100,10 +101,8 @@ class DeleteStatementConverterTest {
@Test
void assertConvertSingleTableWithLimit() {
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(createSimpleTableSegment("t_order"));
LimitSegment limit = new LimitSegment(0, 0, new
NumberLiteralLimitValueSegment(0, 0, 1L), new
ParameterMarkerLimitValueSegment(0, 0, 0));
- deleteStatement.setLimit(limit);
+ DeleteStatement deleteStatement =
DeleteStatement.builder().databaseType(databaseType).table(createSimpleTableSegment("t_order")).limit(limit).build();
SqlOrderBy actual = (SqlOrderBy) new
DeleteStatementConverter().convert(deleteStatement);
assertThat(actual.offset, isA(SqlLiteral.class));
assertNotNull(actual.offset);
@@ -124,10 +123,12 @@ class DeleteStatementConverterTest {
actualDeleteTables.add(tableWithOwner);
actualDeleteTables.add(createSimpleTableSegment("DUAL"));
multiTableSegment.setActualDeleteTables(actualDeleteTables);
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(multiTableSegment);
- deleteStatement.setWhere(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)));
- deleteStatement.setWith(createWithSegment());
+ DeleteStatement deleteStatement = DeleteStatement.builder()
+ .databaseType(databaseType)
+ .table(multiTableSegment)
+ .where(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)))
+ .with(createWithSegment())
+ .build();
SqlWith actual = (SqlWith) new
DeleteStatementConverter().convert(deleteStatement);
SqlDelete sqlDelete = (SqlDelete) actual.body;
assertThat(((SqlIdentifier) sqlDelete.getTargetTable()).getSimple(),
is("left_table"));
@@ -144,8 +145,7 @@ class DeleteStatementConverterTest {
SimpleTableSegment relationTable =
createSimpleTableSegment("target_table");
multiTableSegment.setRelationTable(relationTable);
multiTableSegment.setActualDeleteTables(Collections.singletonList(createSimpleTableSegment("target_table")));
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(multiTableSegment);
+ DeleteStatement deleteStatement =
DeleteStatement.builder().databaseType(databaseType).table(multiTableSegment).build();
SqlDelete actual = (SqlDelete) new
DeleteStatementConverter().convert(deleteStatement);
assertThat(((SqlIdentifier) actual.getTargetTable()).getSimple(),
is("target_table"));
assertNotNull(actual.getAlias());
@@ -154,10 +154,12 @@ class DeleteStatementConverterTest {
@Test
void assertConvertSingleTableWithWithSegment() {
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(createSimpleTableSegment("t_order"));
- deleteStatement.setWhere(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)));
- deleteStatement.setWith(createWithSegment());
+ DeleteStatement deleteStatement = DeleteStatement.builder()
+ .databaseType(databaseType)
+ .table(createSimpleTableSegment("t_order"))
+ .where(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)))
+ .with(createWithSegment())
+ .build();
SqlWith actual = (SqlWith) new
DeleteStatementConverter().convert(deleteStatement);
SqlDelete sqlDelete = (SqlDelete) actual.body;
assertThat(((SqlIdentifier) sqlDelete.getTargetTable()).getSimple(),
is("t_order"));
@@ -173,16 +175,14 @@ class DeleteStatementConverterTest {
doAnswer((Answer<Void>) invocation ->
null).when(tables).forEach(any());
multiTableSegment.setActualDeleteTables(tables);
multiTableSegment.setRelationTable(createSimpleTableSegmentWithAlias("target_table",
"t"));
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(multiTableSegment);
+ DeleteStatement deleteStatement =
DeleteStatement.builder().databaseType(databaseType).table(multiTableSegment).build();
SqlDelete actual = (SqlDelete) new
DeleteStatementConverter().convert(deleteStatement);
assertNull(actual.getAlias());
}
@Test
void assertConvertSingleTableWithoutTargetTable() {
- DeleteStatement deleteStatement = new DeleteStatement(databaseType);
- deleteStatement.setTable(createSimpleTableSegment("DUAL"));
+ DeleteStatement deleteStatement =
DeleteStatement.builder().databaseType(databaseType).table(createSimpleTableSegment("DUAL")).build();
assertThrows(IllegalStateException.class, () -> new
DeleteStatementConverter().convert(deleteStatement));
}
diff --git
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/ExplainStatementConverterTest.java
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/ExplainStatementConverterTest.java
index 567e8cb0355..e0f19151907 100644
---
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/ExplainStatementConverterTest.java
+++
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/ExplainStatementConverterTest.java
@@ -94,9 +94,7 @@ class ExplainStatementConverterTest {
}
private DeleteStatement createDeleteStatement() {
- DeleteStatement result = new DeleteStatement(databaseType);
- result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t_delete"))));
- return result;
+ return DeleteStatement.builder().databaseType(databaseType).table(new
SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t_delete")))).build();
}
private UpdateStatement createUpdateStatement() {
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
index b1977d718b2..a115d4c6699 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
@@ -49,7 +49,7 @@ class SchemaRefreshUtilsTest {
when(tablesContext.getSchemaName()).thenReturn(Optional.empty());
SQLStatementContext sqlStatementContext =
mock(SQLStatementContext.class);
when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext);
- when(sqlStatementContext.getSqlStatement()).thenReturn(new
DeleteStatement(TypedSPILoader.getService(DatabaseType.class, "FIXTURE")));
+
when(sqlStatementContext.getSqlStatement()).thenReturn(DeleteStatement.builder().databaseType(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE")).build());
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
when(database.getName()).thenReturn("FOO_DB");
assertThat(SchemaRefreshUtils.getSchemaName(database,
sqlStatementContext), is("foo_db"));
diff --git
a/parser/sql/engine/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/engine/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
b/parser/sql/engine/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/engine/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
index 2581a8bcfd9..a3d742fc627 100644
---
a/parser/sql/engine/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/engine/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
+++
b/parser/sql/engine/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/engine/clickhouse/visitor/statement/type/ClickHouseDMLStatementVisitor.java
@@ -148,13 +148,13 @@ public final class ClickHouseDMLStatementVisitor extends
ClickHouseStatementVisi
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(getDatabaseType());
- result.setTable((SimpleTableSegment) visit(ctx.tableName()));
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(getDatabaseType()).table((SimpleTableSegment)
visit(ctx.tableName()));
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/DorisStatementVisitor.java
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/DorisStatementVisitor.java
index 32f85f1e9e3..f268d684109 100644
---
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/DorisStatementVisitor.java
+++
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/DorisStatementVisitor.java
@@ -1750,23 +1750,24 @@ public abstract class DorisStatementVisitor extends
DorisStatementBaseVisitor<AS
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(databaseType);
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(databaseType);
if (null != ctx.multipleTablesClause()) {
- result.setTable((TableSegment) visit(ctx.multipleTablesClause()));
+ result.table((TableSegment) visit(ctx.multipleTablesClause()));
} else {
- result.setTable((TableSegment) visit(ctx.singleTableClause()));
+ result.table((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.orderByClause()) {
- result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
+ result.orderBy((OrderBySegment) visit(ctx.orderByClause()));
}
if (null != ctx.limitClause()) {
- result.setLimit((LimitSegment) visit(ctx.limitClause()));
+ result.limit((LimitSegment) visit(ctx.limitClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDMLStatementVisitor.java
b/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDMLStatementVisitor.java
index b23cb2689de..c50881609be 100644
---
a/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDMLStatementVisitor.java
+++
b/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDMLStatementVisitor.java
@@ -216,16 +216,16 @@ public final class FirebirdDMLStatementVisitor extends
FirebirdStatementVisitor
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(getDatabaseType());
- result.setTable((TableSegment) visit(ctx.singleTableClause()));
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(getDatabaseType()).table((TableSegment)
visit(ctx.singleTableClause()));
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
if (null != ctx.returningClause()) {
- result.setReturning((ReturningSegment)
visit(ctx.returningClause()));
+ result.returning((ReturningSegment) visit(ctx.returningClause()));
}
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDMLStatementVisitor.java
b/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDMLStatementVisitor.java
index 1cb5ac65484..69aff4eaf43 100644
---
a/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDMLStatementVisitor.java
+++
b/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDMLStatementVisitor.java
@@ -1181,19 +1181,21 @@ public final class HiveDMLStatementVisitor extends
HiveStatementVisitor implemen
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(getDatabaseType());
- result.setTable(null == ctx.multipleTablesClause() ? (TableSegment)
visit(ctx.singleTableClause()) : (TableSegment)
visit(ctx.multipleTablesClause()));
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder()
+ .databaseType(getDatabaseType())
+ .table(null == ctx.multipleTablesClause() ? (TableSegment)
visit(ctx.singleTableClause()) : (TableSegment)
visit(ctx.multipleTablesClause()));
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.orderByClause()) {
- result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
+ result.orderBy((OrderBySegment) visit(ctx.orderByClause()));
}
if (null != ctx.limitClause()) {
- result.setLimit((LimitSegment) visit(ctx.limitClause()));
+ result.limit((LimitSegment) visit(ctx.limitClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/MySQLStatementVisitor.java
b/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/MySQLStatementVisitor.java
index 89b7f97bef9..125da708eae 100644
---
a/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/MySQLStatementVisitor.java
+++
b/parser/sql/engine/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/engine/mysql/visitor/statement/MySQLStatementVisitor.java
@@ -1758,29 +1758,30 @@ public abstract class MySQLStatementVisitor extends
MySQLStatementBaseVisitor<AS
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(databaseType);
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(databaseType);
if (null != ctx.multipleTablesClause()) {
- result.setTable((TableSegment) visit(ctx.multipleTablesClause()));
+ result.table((TableSegment) visit(ctx.multipleTablesClause()));
} else {
- result.setTable((TableSegment) visit(ctx.singleTableClause()));
+ result.table((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.orderByClause()) {
- result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
+ result.orderBy((OrderBySegment) visit(ctx.orderByClause()));
}
if (null != ctx.limitClause()) {
- result.setLimit((LimitSegment) visit(ctx.limitClause()));
+ result.limit((LimitSegment) visit(ctx.limitClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
if (null != ctx.returningClause()) {
- result.setReturning((ReturningSegment)
visit(ctx.returningClause()));
+ result.returning((ReturningSegment) visit(ctx.returningClause()));
}
if (null != ctx.withClause()) {
- result.setWith((WithSegment) visit(ctx.withClause()));
+ result.with((WithSegment) visit(ctx.withClause()));
}
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/OpenGaussStatementVisitor.java
b/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/OpenGaussStatementVisitor.java
index ea7b38f7885..418bcd1ccb4 100644
---
a/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/OpenGaussStatementVisitor.java
+++
b/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/OpenGaussStatementVisitor.java
@@ -917,14 +917,14 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementParser
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(databaseType);
SimpleTableSegment tableSegment = (SimpleTableSegment)
visit(ctx.relationExprOptAlias());
- result.setTable(tableSegment);
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(databaseType).table(tableSegment);
if (null != ctx.whereOrCurrentClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
+ result.where((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
b/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
index 0c232518f39..b47072662f9 100644
---
a/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
+++
b/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
@@ -409,17 +409,18 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(getDatabaseType());
- result.setTable((TableSegment) visit(ctx.deleteSpecification()));
+ TableSegment tableSegment = (TableSegment)
visit(ctx.deleteSpecification());
if (null != ctx.alias()) {
- result.getTable().setAlias((AliasSegment) visit(ctx.alias()));
+ tableSegment.setAlias((AliasSegment) visit(ctx.alias()));
}
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(getDatabaseType()).table(tableSegment);
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
- result.addParameterMarkers(ctx.getParent() instanceof ExecuteContext ?
getGlobalParameterMarkerSegments() : popAllStatementParameterMarkerSegments());
- result.getVariableNames().addAll(getVariableNames());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(ctx.getParent() instanceof
ExecuteContext ? getGlobalParameterMarkerSegments() :
popAllStatementParameterMarkerSegments());
+ deleteStatement.getVariableNames().addAll(getVariableNames());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
b/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
index c4cb6799556..58914e2b2b0 100644
---
a/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
+++
b/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
@@ -898,14 +898,14 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(databaseType);
SimpleTableSegment tableSegment = (SimpleTableSegment)
visit(ctx.relationExprOptAlias());
- result.setTable(tableSegment);
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(databaseType).table(tableSegment);
if (null != ctx.whereOrCurrentClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
+ result.where((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
b/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
index 50dfb9393e0..49048304f0b 100644
---
a/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
+++
b/parser/sql/engine/dialect/presto/src/main/java/org/apache/shardingsphere/sql/parser/engine/presto/visitor/statement/type/PrestoDMLStatementVisitor.java
@@ -952,23 +952,24 @@ public final class PrestoDMLStatementVisitor extends
PrestoStatementVisitor impl
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(getDatabaseType());
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(getDatabaseType());
if (null != ctx.multipleTablesClause()) {
- result.setTable((TableSegment) visit(ctx.multipleTablesClause()));
+ result.table((TableSegment) visit(ctx.multipleTablesClause()));
} else {
- result.setTable((TableSegment) visit(ctx.singleTableClause()));
+ result.table((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.orderByClause()) {
- result.setOrderBy((OrderBySegment) visit(ctx.orderByClause()));
+ result.orderBy((OrderBySegment) visit(ctx.orderByClause()));
}
if (null != ctx.limitClause()) {
- result.setLimit((LimitSegment) visit(ctx.limitClause()));
+ result.limit((LimitSegment) visit(ctx.limitClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
b/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
index be65a461d93..99ba848d177 100644
---
a/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
+++
b/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
@@ -191,13 +191,13 @@ public final class SQL92DMLStatementVisitor extends
SQL92StatementVisitor implem
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(getDatabaseType());
- result.setTable((TableSegment) visit(ctx.singleTableClause()));
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(getDatabaseType()).table((TableSegment)
visit(ctx.singleTableClause()));
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/SQLServerStatementVisitor.java
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/SQLServerStatementVisitor.java
index 531bb9b5c66..defc4533515 100644
---
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/SQLServerStatementVisitor.java
+++
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/SQLServerStatementVisitor.java
@@ -1734,26 +1734,24 @@ public abstract class SQLServerStatementVisitor extends
SQLServerStatementBaseVi
@Override
public ASTNode visitDelete(final DeleteContext ctx) {
- DeleteStatement result = new DeleteStatement(databaseType);
+ DeleteStatement.DeleteStatementBuilder result =
DeleteStatement.builder().databaseType(databaseType);
if (null != ctx.withClause()) {
- result.setWith((WithSegment) visit(ctx.withClause()));
+ result.with((WithSegment) visit(ctx.withClause()));
}
if (null != ctx.multipleTablesClause()) {
- result.setTable((TableSegment) visit(ctx.multipleTablesClause()));
+ result.table((TableSegment) visit(ctx.multipleTablesClause()));
} else {
- result.setTable((TableSegment) visit(ctx.singleTableClause()));
+ result.table((TableSegment) visit(ctx.singleTableClause()));
}
if (null != ctx.outputClause()) {
- result.setOutput((OutputSegment) visit(ctx.outputClause()));
+ result.output((OutputSegment) visit(ctx.outputClause()));
}
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
- }
- if (null != ctx.outputClause()) {
- result.setOutput((OutputSegment) visit(ctx.outputClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ DeleteStatement deleteStatement = result.build();
+ deleteStatement.addParameterMarkers(getParameterMarkerSegments());
+ return deleteStatement;
}
@Override
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/DeleteStatement.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/DeleteStatement.java
index 4ffd33e90a0..829b68de010 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/DeleteStatement.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/DeleteStatement.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml;
+import lombok.Builder;
import lombok.Getter;
-import lombok.Setter;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.ReturningSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.OrderBySegment;
@@ -36,27 +36,36 @@ import java.util.Optional;
* Delete statement.
*/
@Getter
-@Setter
public final class DeleteStatement extends DMLStatement {
- private TableSegment table;
+ private final TableSegment table;
- private WhereSegment where;
+ private final WhereSegment where;
- private OrderBySegment orderBy;
+ private final OrderBySegment orderBy;
- private LimitSegment limit;
+ private final LimitSegment limit;
- private WithSegment with;
+ private final WithSegment with;
- private ReturningSegment returning;
+ private final ReturningSegment returning;
- private OutputSegment output;
+ private final OutputSegment output;
- private SQLStatementAttributes attributes;
+ private final SQLStatementAttributes attributes;
- public DeleteStatement(final DatabaseType databaseType) {
+ @Builder
+ private DeleteStatement(final DatabaseType databaseType, final
TableSegment table, final WhereSegment where,
+ final OrderBySegment orderBy, final LimitSegment
limit, final WithSegment with, final ReturningSegment returning, final
OutputSegment output) {
super(databaseType);
+ this.table = table;
+ this.where = where;
+ this.orderBy = orderBy;
+ this.limit = limit;
+ this.with = with;
+ this.returning = returning;
+ this.output = output;
+ attributes = new SQLStatementAttributes(new
WithSQLStatementAttribute(with));
}
/**
@@ -115,6 +124,5 @@ public final class DeleteStatement extends DMLStatement {
@Override
public void buildAttributes() {
- attributes = new SQLStatementAttributes(new
WithSQLStatementAttribute(with));
}
}
diff --git
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/util/MultiSQLSplitterTest.java
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/util/MultiSQLSplitterTest.java
index feecfb853ba..76bbd131c2d 100644
---
a/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/util/MultiSQLSplitterTest.java
+++
b/parser/sql/statement/core/src/test/java/org/apache/shardingsphere/sql/parser/statement/core/util/MultiSQLSplitterTest.java
@@ -53,11 +53,11 @@ class MultiSQLSplitterTest {
Arrays.asList(" /*comment*/ INSERT INTO t_order
VALUES (1);", "/*remark*/ insert into t_order values (2)"), true),
Arguments.of("updateWithDashComment", new
UpdateStatement(DATABASE_TYPE),
Arrays.asList("-- comment before\r\nupdate t_order set
status='PAID' where id=1;", "-- \t\nupdate t_order set status='FAIL' where
id=2;"), true),
- Arguments.of("deleteWithHashComment", new
DeleteStatement(DATABASE_TYPE),
+ Arguments.of("deleteWithHashComment",
DeleteStatement.builder().databaseType(DATABASE_TYPE).build(),
Arrays.asList("# comment before\n delete from t_order
where id=1;", "#\t\n delete from t_order where id=2;"), true),
- Arguments.of("hashCommentWithCRLF", new
DeleteStatement(DATABASE_TYPE),
+ Arguments.of("hashCommentWithCRLF",
DeleteStatement.builder().databaseType(DATABASE_TYPE).build(),
Arrays.asList("# comment\r\ndelete from t_order where
id=1;", "# comment\r\ndelete from t_order where id=2;"), true),
- Arguments.of("hashCommentWithCROnly", new
DeleteStatement(DATABASE_TYPE),
+ Arguments.of("hashCommentWithCROnly",
DeleteStatement.builder().databaseType(DATABASE_TYPE).build(),
Arrays.asList("# comment\rdelete from t_order where
id=1;", "# comment\rdelete from t_order where id=2;"), true),
Arguments.of("updateTypeMismatch", new
UpdateStatement(DATABASE_TYPE), Arrays.asList("update t_order set status='PAID'
where id=1;", "select * from t_order"), false),
Arguments.of("unterminatedBlockComment", new
InsertStatement(DATABASE_TYPE), Arrays.asList("/* incomplete comment", "insert
into t_order values (1);"), false),
diff --git
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
index 269eeda08ac..4ce727e20ff 100644
---
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
+++
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
@@ -92,6 +92,6 @@ class FirebirdAdminExecutorCreatorTest {
}
private static SQLStatementContext createOtherStatementContext() {
- return new DeleteStatementContext(new DeleteStatement(DATABASE_TYPE));
+ return new
DeleteStatementContext(DeleteStatement.builder().databaseType(DATABASE_TYPE).build());
}
}
diff --git
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
index ab64e97e6db..8c1644f6935 100644
---
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
+++
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
@@ -418,7 +418,7 @@ class MySQLAdminExecutorCreatorTest {
@Test
void assertCreateWithDMLStatement() {
- DeleteStatement sqlStatement = new DeleteStatement(databaseType);
+ DeleteStatement sqlStatement =
DeleteStatement.builder().databaseType(databaseType).build();
sqlStatement.buildAttributes();
SQLStatementContext sqlStatementContext = new
CommonSQLStatementContext(sqlStatement);
Optional<DatabaseAdminExecutor> actual = new
MySQLAdminExecutorCreator().create(sqlStatementContext, "DELETE FROM t", "",
Collections.emptyList());
diff --git
a/proxy/backend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
b/proxy/backend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
index ef8538e7c53..8ea8a806d30 100644
---
a/proxy/backend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
+++
b/proxy/backend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLAdminExecutorCreatorTest.java
@@ -146,7 +146,7 @@ class PostgreSQLAdminExecutorCreatorTest {
@Test
void assertCreateWithDMLStatement() {
- DeleteStatementContext sqlStatementContext = new
DeleteStatementContext(new DeleteStatement(databaseType));
+ DeleteStatementContext sqlStatementContext = new
DeleteStatementContext(DeleteStatement.builder().databaseType(databaseType).build());
assertThat(new
PostgreSQLAdminExecutorCreator().create(sqlStatementContext, "DELETE FROM t
WHERE id = 1", "", Collections.emptyList()), is(Optional.empty()));
}
}