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 8852ad93e2e Refactor constructor of TruncateStatement, UpdateStatement
to empty buildAttributes (#38356)
8852ad93e2e is described below
commit 8852ad93e2e20b3a17cb8459205f2b2f58ceb4c5
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Mar 5 22:36:37 2026 +0800
Refactor constructor of TruncateStatement, UpdateStatement to empty
buildAttributes (#38356)
* Refactor constructor of TruncateStatement to empty buildAttributes
* Refactor constructor of UpdateStatement to empty buildAttributes
* Refactor constructor of UpdateStatement to empty buildAttributes
---
.../core/advice/SQLRouteCountAdviceTest.java | 2 +-
.../fixture/EncryptGeneratorFixtureBuilder.java | 10 +++--
...ShardingMultipleTablesSupportedCheckerTest.java | 14 +++----
.../dml/ShardingUpdateRouteContextCheckerTest.java | 9 ++--
.../statement/ddl/TruncateStatementBinder.java | 2 +-
.../statement/dml/UpdateStatementBinder.java | 18 ++++----
.../type/dml/UpdateStatementContextTest.java | 11 ++---
.../statement/SQLStatementCopyUtilsTest.java | 4 +-
.../statement/dml/UpdateStatementBinderTest.java | 10 +++--
.../executor/sql/process/ProcessEngineTest.java | 9 ++--
.../ast/converter/SQLNodeConverterEngineTest.java | 2 +-
.../type/ExplainStatementConverterTest.java | 11 ++---
.../type/MergeStatementConverterTest.java | 23 +++++++----
.../type/UpdateStatementConverterTest.java | 24 +++++------
.../FederationMetaDataRefreshEngineTest.java | 4 +-
.../PushDownMetaDataRefreshEngineTest.java | 8 ++--
.../type/ClickHouseDMLStatementVisitor.java | 14 ++++---
.../visitor/statement/DorisStatementVisitor.java | 18 ++++----
.../statement/type/DorisDDLStatementVisitor.java | 12 +++---
.../type/FirebirdDMLStatementVisitor.java | 16 ++++----
.../statement/type/HiveDDLStatementVisitor.java | 2 +-
.../statement/type/HiveDMLStatementVisitor.java | 21 +++++-----
.../visitor/statement/MySQLStatementVisitor.java | 20 +++++----
.../statement/type/MySQLDDLStatementVisitor.java | 2 +-
.../statement/OpenGaussStatementVisitor.java | 16 ++++----
.../type/OpenGaussDDLStatementVisitor.java | 2 +-
.../statement/type/OracleDDLStatementVisitor.java | 2 +-
.../statement/type/OracleDMLStatementVisitor.java | 33 ++++++++-------
.../statement/PostgreSQLStatementVisitor.java | 16 ++++----
.../type/PostgreSQLDDLStatementVisitor.java | 2 +-
.../statement/type/PrestoDMLStatementVisitor.java | 18 ++++----
.../statement/type/SQL92DMLStatementVisitor.java | 14 ++++---
.../statement/SQLServerStatementVisitor.java | 27 ++++++------
.../type/SQLServerDDLStatementVisitor.java | 2 +-
.../core/statement/type/ddl/TruncateStatement.java | 10 ++---
.../core/statement/type/dml/UpdateStatement.java | 48 ++++++++++++++--------
.../statement/core/util/MultiSQLSplitterTest.java | 13 +++---
.../backend/connector/ProxySQLExecutorTest.java | 2 +-
.../handler/ProxySQLComQueryParserTest.java | 4 +-
...irebirdExecuteStatementCommandExecutorTest.java | 14 +++----
.../execute/MySQLComStmtExecuteExecutorTest.java | 9 ++--
.../PostgreSQLBatchedStatementsExecutorTest.java | 8 ++--
42 files changed, 277 insertions(+), 229 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 24780cd6163..4adb90218aa 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
@@ -72,7 +72,7 @@ class SQLRouteCountAdviceTest {
private static Stream<Arguments> routeContexts() {
return Stream.of(
Arguments.of("INSERT",
createQueryContext(InsertStatement.builder().databaseType(DATABASE_TYPE).build())),
- Arguments.of("UPDATE", createQueryContext(new
UpdateStatement(DATABASE_TYPE))),
+ Arguments.of("UPDATE",
createQueryContext(UpdateStatement.builder().databaseType(DATABASE_TYPE).build())),
Arguments.of("DELETE",
createQueryContext(DeleteStatement.builder().databaseType(DATABASE_TYPE).build())),
Arguments.of("SELECT",
createQueryContext(SelectStatement.builder().databaseType(DATABASE_TYPE).build())));
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java
index e7113bfae9d..c059c844ff3 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/fixture/EncryptGeneratorFixtureBuilder.java
@@ -164,10 +164,12 @@ public final class EncryptGeneratorFixtureBuilder {
* @return created update statement context
*/
public static UpdateStatementContext createUpdateStatementContext() {
- UpdateStatement updateStatement = new UpdateStatement(DATABASE_TYPE);
- updateStatement.setTable(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_user"))));
- updateStatement.setWhere(createWhereSegment());
- updateStatement.setSetAssignment(createSetAssignmentSegment());
+ UpdateStatement updateStatement = UpdateStatement.builder()
+ .databaseType(DATABASE_TYPE)
+ .table(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t_user"))))
+ .where(createWhereSegment())
+ .setAssignment(createSetAssignmentSegment())
+ .build();
return new UpdateStatementContext(updateStatement);
}
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingMultipleTablesSupportedCheckerTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingMultipleTablesSupportedCheckerTest.java
index 7cca56789c9..31a04f3e0f1 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingMultipleTablesSupportedCheckerTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingMultipleTablesSupportedCheckerTest.java
@@ -29,6 +29,7 @@ import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simp
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.JoinTableSegment;
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.segment.generic.table.TableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.UpdateStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
import org.junit.jupiter.api.Test;
@@ -56,8 +57,7 @@ class ShardingMultipleTablesSupportedCheckerTest {
@Test
void assertCheckWhenUpdateSingleTable() {
- UpdateStatement updateStatement = createUpdateStatement();
- updateStatement.setTable(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("user"))));
+ UpdateStatement updateStatement = createUpdateStatement(new
SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("user"))));
UpdateStatementContext sqlStatementContext = new
UpdateStatementContext(updateStatement);
Collection<String> tableNames =
sqlStatementContext.getTablesContext().getTableNames();
when(rule.isAllShardingTables(tableNames)).thenReturn(true);
@@ -67,24 +67,20 @@ class ShardingMultipleTablesSupportedCheckerTest {
@Test
void assertCheckWhenUpdateMultipleTables() {
- UpdateStatement updateStatement = createUpdateStatement();
JoinTableSegment joinTableSegment = new JoinTableSegment();
joinTableSegment.setLeft(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("user"))));
joinTableSegment.setRight(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("order"))));
- updateStatement.setTable(joinTableSegment);
+ UpdateStatement updateStatement =
createUpdateStatement(joinTableSegment);
UpdateStatementContext sqlStatementContext = new
UpdateStatementContext(updateStatement);
Collection<String> tableNames =
sqlStatementContext.getTablesContext().getTableNames();
when(rule.containsShardingTable(tableNames)).thenReturn(true);
assertThrows(DMLWithMultipleShardingTablesException.class, () -> new
ShardingMultipleTablesSupportedChecker().check(rule, mock(), mock(),
sqlStatementContext));
}
- private UpdateStatement createUpdateStatement() {
- UpdateStatement result = new UpdateStatement(databaseType);
- result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("user"))));
+ private UpdateStatement createUpdateStatement(final TableSegment
tableSegment) {
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("id")));
ColumnAssignmentSegment assignment = new ColumnAssignmentSegment(0, 0,
columns, new LiteralExpressionSegment(0, 0, 1));
- result.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singleton(assignment)));
- return result;
+ return
UpdateStatement.builder().databaseType(databaseType).table(tableSegment).setAssignment(new
SetAssignmentSegment(0, 0, Collections.singleton(assignment))).build();
}
}
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java
index 25536827d1c..ad032789351 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingUpdateRouteContextCheckerTest.java
@@ -125,12 +125,13 @@ class ShardingUpdateRouteContextCheckerTest {
}
private UpdateStatement createUpdateStatement() {
- UpdateStatement result = new UpdateStatement(databaseType);
- result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("user"))));
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("id")));
ColumnAssignmentSegment assignment = new ColumnAssignmentSegment(0, 0,
columns, new LiteralExpressionSegment(0, 0, 1));
- result.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singleton(assignment)));
- return result;
+ return UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("user"))))
+ .setAssignment(new SetAssignmentSegment(0, 0,
Collections.singleton(assignment)))
+ .build();
}
}
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/TruncateStatementBinder.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/TruncateStatementBinder.java
index a8594385919..d9aefb08618 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/TruncateStatementBinder.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/ddl/TruncateStatementBinder.java
@@ -41,7 +41,7 @@ public final class TruncateStatementBinder implements
SQLStatementBinder<Truncat
}
private TruncateStatement copy(final TruncateStatement sqlStatement, final
Collection<SimpleTableSegment> boundTables) {
- TruncateStatement result = new
TruncateStatement(sqlStatement.getDatabaseType(), boundTables);
+ TruncateStatement result = new
TruncateStatement(sqlStatement.getDatabaseType(), boundTables,
sqlStatement.getPartitions());
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java
index edbdbf437aa..9a0707ed622 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinder.java
@@ -57,14 +57,16 @@ public final class UpdateStatementBinder implements
SQLStatementBinder<UpdateSta
private UpdateStatement copy(final UpdateStatement sqlStatement, final
WithSegment boundWith, final TableSegment boundTable, final TableSegment
boundFrom,
final SetAssignmentSegment
boundSetAssignment, final WhereSegment boundWhere, final OrderBySegment
boundOrderBy) {
- UpdateStatement result = new
UpdateStatement(sqlStatement.getDatabaseType());
- result.setWith(boundWith);
- result.setTable(boundTable);
- result.setFrom(boundFrom);
- result.setSetAssignment(boundSetAssignment);
- result.setWhere(boundWhere);
- result.setOrderBy(boundOrderBy);
- sqlStatement.getLimit().ifPresent(result::setLimit);
+ UpdateStatement result = UpdateStatement.builder()
+ .databaseType(sqlStatement.getDatabaseType())
+ .with(boundWith)
+ .table(boundTable)
+ .from(boundFrom)
+ .setAssignment(boundSetAssignment)
+ .where(boundWhere)
+ .orderBy(boundOrderBy)
+ .limit(sqlStatement.getLimit().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/UpdateStatementContextTest.java
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/UpdateStatementContextTest.java
index 5137cf7bf3b..d66337b2340 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/UpdateStatementContextTest.java
+++
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/UpdateStatementContextTest.java
@@ -81,10 +81,11 @@ class UpdateStatementContextTest {
JoinTableSegment joinTableSegment = new JoinTableSegment();
joinTableSegment.setLeft(table1);
joinTableSegment.setRight(table2);
- UpdateStatement result = new UpdateStatement(databaseType);
- result.setWhere(whereSegment);
- result.setTable(joinTableSegment);
- result.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.emptyList()));
- return result;
+ return UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(joinTableSegment)
+ .where(whereSegment)
+ .setAssignment(new SetAssignmentSegment(0, 0,
Collections.emptyList()))
+ .build();
}
}
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementCopyUtilsTest.java
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementCopyUtilsTest.java
index 15870dffa47..64e3cc2efd5 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementCopyUtilsTest.java
+++
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/SQLStatementCopyUtilsTest.java
@@ -45,8 +45,8 @@ class SQLStatementCopyUtilsTest {
@BeforeEach
void setUp() {
- originalStatement = new UpdateStatement(databaseType);
- targetStatement = new UpdateStatement(databaseType);
+ originalStatement =
UpdateStatement.builder().databaseType(databaseType).build();
+ targetStatement =
UpdateStatement.builder().databaseType(databaseType).build();
}
@Test
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java
index ebba01b7b91..cff82f633f8 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java
+++
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dml/UpdateStatementBinderTest.java
@@ -52,11 +52,13 @@ class UpdateStatementBinderTest {
@Test
void assertBind() {
- UpdateStatement updateStatement = new UpdateStatement(databaseType);
SimpleTableSegment simpleTableSegment = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_order")));
- updateStatement.setTable(simpleTableSegment);
- updateStatement.setWhere(new WhereSegment(0, 0, new
BinaryOperationExpression(0, 0, new ColumnSegment(0, 0, new
IdentifierValue("status")),
- new LiteralExpressionSegment(0, 0, 0), "=", "status = 1")));
+ UpdateStatement updateStatement = UpdateStatement.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();
UpdateStatement actual = new
UpdateStatementBinder().bind(updateStatement, new
SQLStatementBinderContext(createMetaData(), "foo_db", new HintValueContext(),
updateStatement));
assertThat(actual, not(updateStatement));
assertThat(actual.getTable(), not(updateStatement.getTable()));
diff --git
a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java
b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java
index 88cda73da22..acf6874326a 100644
---
a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java
+++
b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ProcessEngineTest.java
@@ -82,12 +82,13 @@ class ProcessEngineTest {
}
private UpdateStatement getSQLStatement() {
- UpdateStatement result = new UpdateStatement(databaseType);
TableNameSegment tableNameSegment = new TableNameSegment(0, 0, new
IdentifierValue("foo_tbl"));
tableNameSegment.setTableBoundInfo(new TableSegmentBoundInfo(new
IdentifierValue("foo_db"), new IdentifierValue("foo_schema")));
- result.setTable(new SimpleTableSegment(tableNameSegment));
- result.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.emptyList()));
- return result;
+ return UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(new SimpleTableSegment(tableNameSegment))
+ .setAssignment(new SetAssignmentSegment(0, 0,
Collections.emptyList()))
+ .build();
}
@Test
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 0842bd797de..cc3c1a616b1 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
@@ -69,7 +69,7 @@ class SQLNodeConverterEngineTest {
try (
MockedConstruction<UpdateStatementConverter> ignored =
mockConstruction(UpdateStatementConverter.class,
(mock, context) ->
when(mock.convert(any(UpdateStatement.class))).thenReturn(updateSqlNode))) {
- assertThat(SQLNodeConverterEngine.convert(new
UpdateStatement(databaseType)), is(updateSqlNode));
+
assertThat(SQLNodeConverterEngine.convert(UpdateStatement.builder().databaseType(databaseType).build()),
is(updateSqlNode));
}
SqlNode insertSqlNode = mock(SqlNode.class);
try (
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 33004ad17d7..472a8b53e35 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
@@ -99,11 +99,12 @@ class ExplainStatementConverterTest {
}
private UpdateStatement createUpdateStatement() {
- UpdateStatement result = new UpdateStatement(databaseType);
- result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t_update"))));
- result.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singleton(new ColumnAssignmentSegment(0, 0,
- Collections.singletonList(new ColumnSegment(0, 0, new
IdentifierValue("col"))), new ParameterMarkerExpressionSegment(0, 0, 0)))));
- return result;
+ return UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t_update"))))
+ .setAssignment(new SetAssignmentSegment(0, 0,
Collections.singleton(new ColumnAssignmentSegment(0, 0,
+ Collections.singletonList(new ColumnSegment(0, 0, new
IdentifierValue("col"))), new ParameterMarkerExpressionSegment(0, 0, 0)))))
+ .build();
}
private InsertStatement createInsertStatement() {
diff --git
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/MergeStatementConverterTest.java
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/MergeStatementConverterTest.java
index c47a956e2ff..a197f3de414 100644
---
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/MergeStatementConverterTest.java
+++
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/MergeStatementConverterTest.java
@@ -66,8 +66,7 @@ class MergeStatementConverterTest {
@Test
void assertConvertUpdateWithEmptyTable() {
- UpdateStatement updateStatement = createUpdateStatement();
- updateStatement.setTable(createSimpleTableSegment("DUAL"));
+ UpdateStatement updateStatement =
createUpdateStatement(createSimpleTableSegment("DUAL"), false);
MergeStatement mergeStatement =
createMergeStatement(createSimpleTableSegment("target_table"),
createSimpleTableSegment("source_table"), updateStatement);
SqlMerge actual = (SqlMerge) new
MergeStatementConverter().convert(mergeStatement);
assertNotNull(actual.getUpdateCall());
@@ -84,14 +83,20 @@ class MergeStatementConverterTest {
}
private UpdateStatement createUpdateStatement() {
- UpdateStatement result = new UpdateStatement(databaseType);
- SimpleTableSegment table = createSimpleTableSegment("t_update");
- table.setAlias(new AliasSegment(0, 0, new IdentifierValue("u")));
- result.setTable(table);
+ return createUpdateStatement(createSimpleTableSegment("t_update"),
true);
+ }
+
+ private UpdateStatement createUpdateStatement(final SimpleTableSegment
table, final boolean withAlias) {
+ if (withAlias) {
+ table.setAlias(new AliasSegment(0, 0, new IdentifierValue("u")));
+ }
SetAssignmentSegment setAssignment = createSetAssignmentSegment();
- result.setSetAssignment(setAssignment);
- result.setWhere(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)));
- return result;
+ return UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(table)
+ .setAssignment(setAssignment)
+ .where(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)))
+ .build();
}
private SetAssignmentSegment createSetAssignmentSegment() {
diff --git
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
index 65494688118..94f28523819 100644
---
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
+++
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/statement/type/UpdateStatementConverterTest.java
@@ -55,9 +55,8 @@ class UpdateStatementConverterTest {
@Test
void assertConvertWithLimitAndAlias() {
- UpdateStatement updateStatement = createUpdateStatement(true);
LimitSegment limit = new LimitSegment(0, 0, new
NumberLiteralLimitValueSegment(0, 0, 1L), new
ParameterMarkerLimitValueSegment(0, 0, 0));
- updateStatement.setLimit(limit);
+ UpdateStatement updateStatement = createUpdateStatement(true, null,
limit);
SqlOrderBy actual = (SqlOrderBy) new
UpdateStatementConverter().convert(updateStatement);
assertThat(actual.offset, isA(SqlNode.class));
assertThat(actual.fetch, isA(SqlDynamicParam.class));
@@ -67,8 +66,7 @@ class UpdateStatementConverterTest {
@Test
void assertConvertWithoutLimitButWithOrderBy() {
- UpdateStatement updateStatement = createUpdateStatement(false);
- updateStatement.setOrderBy(createOrderBySegment());
+ UpdateStatement updateStatement = createUpdateStatement(false,
createOrderBySegment(), null);
SqlOrderBy actual = (SqlOrderBy) new
UpdateStatementConverter().convert(updateStatement);
assertNull(actual.offset);
SqlUpdate sqlUpdate = (SqlUpdate) actual.query;
@@ -77,25 +75,27 @@ class UpdateStatementConverterTest {
@Test
void assertConvertWithLimitWithoutOffsetAndRowCount() {
- UpdateStatement updateStatement = createUpdateStatement(true);
LimitSegment limit = new LimitSegment(0, 0, null, null);
- updateStatement.setLimit(limit);
+ UpdateStatement updateStatement = createUpdateStatement(true, null,
limit);
SqlOrderBy actual = (SqlOrderBy) new
UpdateStatementConverter().convert(updateStatement);
assertNull(actual.offset);
assertNull(actual.fetch);
}
- private UpdateStatement createUpdateStatement(final boolean withAlias) {
- UpdateStatement result = new UpdateStatement(databaseType);
+ private UpdateStatement createUpdateStatement(final boolean withAlias,
final OrderBySegment orderBy, final LimitSegment limit) {
SimpleTableSegment tableSegment = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t_update")));
if (withAlias) {
tableSegment.setAlias(new AliasSegment(0, 0, new
IdentifierValue("u")));
}
- result.setTable(tableSegment);
SetAssignmentSegment setAssignment = createSetAssignmentSegment();
- result.setSetAssignment(setAssignment);
- result.setWhere(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)));
- return result;
+ return UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(tableSegment)
+ .setAssignment(setAssignment)
+ .where(new WhereSegment(0, 0, new
ParameterMarkerExpressionSegment(0, 0, 0)))
+ .orderBy(orderBy)
+ .limit(limit)
+ .build();
}
private SetAssignmentSegment createSetAssignmentSegment() {
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefreshEngineTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefreshEngineTest.java
index 93ee8265839..ee66f530367 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefreshEngineTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/federation/FederationMetaDataRefreshEngineTest.java
@@ -60,7 +60,7 @@ class FederationMetaDataRefreshEngineTest {
@Test
void assertIsNeedRefreshWhenStatementNotSupported() {
- when(sqlStatementContext.getSqlStatement()).thenReturn(new
UpdateStatement(databaseType));
+
when(sqlStatementContext.getSqlStatement()).thenReturn(UpdateStatement.builder().databaseType(databaseType).build());
assertFalse(new
FederationMetaDataRefreshEngine(sqlStatementContext).isNeedRefresh());
}
@@ -106,7 +106,7 @@ class FederationMetaDataRefreshEngineTest {
@Test
void assertRefreshWhenRefresherNotFound() {
- when(sqlStatementContext.getSqlStatement()).thenReturn(new
UpdateStatement(databaseType));
+
when(sqlStatementContext.getSqlStatement()).thenReturn(UpdateStatement.builder().databaseType(databaseType).build());
FederationMetaDataRefreshEngine engine = new
FederationMetaDataRefreshEngine(sqlStatementContext);
engine.refresh(metaDataManagerPersistService, database);
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/PushDownMetaDataRefreshEngineTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/PushDownMetaDataRefreshEngineTest.java
index ac50b879d0a..9eabdedb6bd 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/PushDownMetaDataRefreshEngineTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/PushDownMetaDataRefreshEngineTest.java
@@ -63,7 +63,7 @@ class PushDownMetaDataRefreshEngineTest {
@Test
void assertIsNeedRefreshWhenRefresherAbsent() {
- SQLStatement sqlStatement = new UpdateStatement(databaseType);
+ SQLStatement sqlStatement =
UpdateStatement.builder().databaseType(databaseType).build();
when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
when(TypedSPILoader.findService(PushDownMetaDataRefresher.class,
sqlStatement.getClass())).thenReturn(Optional.empty());
when(TypedSPILoader.findService(PushDownMetaDataRefresher.class,
sqlStatement.getClass().getSuperclass())).thenReturn(Optional.empty());
@@ -73,7 +73,7 @@ class PushDownMetaDataRefreshEngineTest {
@SuppressWarnings("unchecked")
@Test
void assertIsNeedRefreshWhenRefresherFound() {
- SQLStatement sqlStatement = new UpdateStatement(databaseType);
+ SQLStatement sqlStatement =
UpdateStatement.builder().databaseType(databaseType).build();
when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
PushDownMetaDataRefresher<SQLStatement> refresher =
mock(PushDownMetaDataRefresher.class);
when(TypedSPILoader.findService(PushDownMetaDataRefresher.class,
sqlStatement.getClass())).thenReturn(Optional.of(refresher));
@@ -84,7 +84,7 @@ class PushDownMetaDataRefreshEngineTest {
@Test
void assertRefreshUsesStorageUnitTypeAndLogicDataSource() throws
SQLException {
when(SchemaRefreshUtils.getSchemaName(database,
sqlStatementContext)).thenReturn("foo_schema");
- SQLStatement sqlStatement = new UpdateStatement(databaseType);
+ SQLStatement sqlStatement =
UpdateStatement.builder().databaseType(databaseType).build();
when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
StorageUnit storageUnit = mock(StorageUnit.class);
DatabaseType storageType = mock(DatabaseType.class);
@@ -104,7 +104,7 @@ class PushDownMetaDataRefreshEngineTest {
@Test
void assertRefreshUsesStatementDatabaseTypeWhenRouteUnitsAbsent() throws
SQLException {
when(SchemaRefreshUtils.getSchemaName(database,
sqlStatementContext)).thenReturn("foo_schema");
- SQLStatement sqlStatement = new UpdateStatement(databaseType);
+ SQLStatement sqlStatement =
UpdateStatement.builder().databaseType(databaseType).build();
when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
ConfigurationProperties props = new ConfigurationProperties(new
Properties());
PushDownMetaDataRefresher<SQLStatement> refresher =
mock(PushDownMetaDataRefresher.class);
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 a1a3fcb1bbb..b65e827992c 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
@@ -122,14 +122,16 @@ public final class ClickHouseDMLStatementVisitor extends
ClickHouseStatementVisi
@Override
public ASTNode visitUpdate(final ClickHouseStatementParser.UpdateContext
ctx) {
- UpdateStatement result = new UpdateStatement(getDatabaseType());
- result.setTable((TableSegment) visit(ctx.tableReferences()));
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(getDatabaseType())
+ .table((TableSegment) visit(ctx.tableReferences()))
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@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 83ee1609c2f..b54dd4c54bb 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
@@ -1697,21 +1697,23 @@ public abstract class DorisStatementVisitor extends
DorisStatementBaseVisitor<AS
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(databaseType);
TableSegment tableSegment = (TableSegment)
visit(ctx.tableReferences());
- result.setTable(tableSegment);
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(tableSegment)
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
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;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@Override
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 3104f77e05d..2dbdec82b90 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
@@ -1176,13 +1176,11 @@ public final class DorisDDLStatementVisitor extends
DorisStatementVisitor implem
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- TruncateStatement result = new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())));
- if (null != ctx.partitionNames()) {
- for (IdentifierContext each : ctx.partitionNames().identifier()) {
- result.getPartitions().add(new
PartitionSegment(each.getStart().getStartIndex(),
each.getStop().getStopIndex(), (IdentifierValue) visit(each)));
- }
- }
- return result;
+ Collection<PartitionSegment> partitions = null == ctx.partitionNames()
+ ? Collections.emptyList()
+ : ctx.partitionNames().identifier().stream()
+ .map(each -> new
PartitionSegment(each.getStart().getStartIndex(),
each.getStop().getStopIndex(), (IdentifierValue)
visit(each))).collect(Collectors.toList());
+ return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())), partitions);
}
@SuppressWarnings({"unchecked", "rawtypes"})
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 452a2615417..c4dc34b82c9 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
@@ -175,17 +175,19 @@ public final class FirebirdDMLStatementVisitor extends
FirebirdStatementVisitor
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(getDatabaseType());
- result.setTable((TableSegment) visit(ctx.tableReferences()));
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(getDatabaseType())
+ .table((TableSegment) visit(ctx.tableReferences()))
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
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;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@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 7384d27ef6f..286c9459e00 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
@@ -169,7 +169,7 @@ public final class HiveDDLStatementVisitor extends
HiveStatementVisitor implemen
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableNameWithDb())));
+ return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableNameWithDb())),
Collections.emptyList());
}
@SuppressWarnings("unchecked")
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 e0ac5e8934d..8fcbb9d7b62 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
@@ -1120,21 +1120,23 @@ public final class HiveDMLStatementVisitor extends
HiveStatementVisitor implemen
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(getDatabaseType());
TableSegment tableSegment = (TableSegment)
visit(ctx.tableReferences());
- result.setTable(tableSegment);
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(getDatabaseType())
+ .table(tableSegment)
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
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;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@Override
@@ -1221,8 +1223,7 @@ public final class HiveDMLStatementVisitor extends
HiveStatementVisitor implemen
int stop = each.getStop().getStopIndex();
MergeWhenAndThenSegment seg = new MergeWhenAndThenSegment(start,
stop, getOriginalText(each));
if (null != each.UPDATE()) {
- UpdateStatement upd = new UpdateStatement(getDatabaseType());
- upd.setSetAssignment((SetAssignmentSegment)
visit(each.setAssignmentsClause()));
+ UpdateStatement upd =
UpdateStatement.builder().databaseType(getDatabaseType()).setAssignment((SetAssignmentSegment)
visit(each.setAssignmentsClause())).build();
seg.setUpdate(upd);
}
if (null != each.INSERT()) {
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 38ea3b8bf78..93eaac94955 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
@@ -1704,24 +1704,26 @@ public abstract class MySQLStatementVisitor extends
MySQLStatementBaseVisitor<AS
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(databaseType);
TableSegment tableSegment = (TableSegment)
visit(ctx.tableReferences());
- result.setTable(tableSegment);
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(tableSegment)
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
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()));
}
if (null != ctx.withClause()) {
- result.setWith((WithSegment) visit(ctx.withClause()));
+ result.with((WithSegment) visit(ctx.withClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@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 4407187478f..ac53a195284 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
@@ -695,7 +695,7 @@ public final class MySQLDDLStatementVisitor extends
MySQLStatementVisitor implem
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())));
+ return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())),
Collections.emptyList());
}
@SuppressWarnings({"unchecked", "rawtypes"})
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 79a38ae193b..cf91797c34e 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
@@ -904,18 +904,20 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementParser
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(databaseType);
SimpleTableSegment tableSegment = (SimpleTableSegment)
visit(ctx.relationExprOptAlias());
- result.setTable(tableSegment);
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setClauseList()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(tableSegment)
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setClauseList()));
if (null != ctx.whereOrCurrentClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
+ result.where((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
if (null != ctx.fromClause()) {
- result.setFrom((TableSegment) visit(ctx.fromClause()));
+ result.from((TableSegment) visit(ctx.fromClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@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 c5dc5a8d8fd..9dcf24cef00 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
@@ -527,7 +527,7 @@ public final class OpenGaussDDLStatementVisitor extends
OpenGaussStatementVisito
@SuppressWarnings("unchecked")
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- return new TruncateStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue());
+ return new TruncateStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue(), Collections.emptyList());
}
@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 db51851f2b2..fe3f0aeae55 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
@@ -824,7 +824,7 @@ public final class OracleDDLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())));
+ return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())),
Collections.emptyList());
}
@SuppressWarnings({"rawtypes", "unchecked"})
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 c1177ccdc5b..deb91819968 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
@@ -208,18 +208,21 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(getDatabaseType());
- result.setTable((TableSegment) visit(ctx.updateSpecification()));
+ TableSegment tableSegment = (TableSegment)
visit(ctx.updateSpecification());
if (null != ctx.alias()) {
- result.getTable().setAlias((AliasSegment) visit(ctx.alias()));
+ tableSegment.setAlias((AliasSegment) visit(ctx.alias()));
}
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.updateSetClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(getDatabaseType())
+ .table(tableSegment)
+ .setAssignment((SetAssignmentSegment)
visit(ctx.updateSetClause()));
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;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(ctx.getParent() instanceof
ExecuteContext ? getGlobalParameterMarkerSegments() :
popAllStatementParameterMarkerSegments());
+ updateStatement.getVariableNames().addAll(getVariableNames());
+ return updateStatement;
}
@Override
@@ -1478,16 +1481,18 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitMergeUpdateClause(final MergeUpdateClauseContext ctx) {
- UpdateStatement result = new UpdateStatement(getDatabaseType());
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.mergeSetAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(getDatabaseType())
+ .setAssignment((SetAssignmentSegment)
visit(ctx.mergeSetAssignmentsClause()));
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.deleteWhereClause()) {
- result.setDeleteWhere((WhereSegment)
visit(ctx.deleteWhereClause()));
+ result.deleteWhere((WhereSegment) visit(ctx.deleteWhereClause()));
}
- result.addParameterMarkers(popAllStatementParameterMarkerSegments());
- return result;
+ UpdateStatement updateStatement = result.build();
+
updateStatement.addParameterMarkers(popAllStatementParameterMarkerSegments());
+ return updateStatement;
}
@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 1a8cbf6d8c2..43c8abb70d5 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
@@ -882,18 +882,20 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(databaseType);
SimpleTableSegment tableSegment = (SimpleTableSegment)
visit(ctx.relationExprOptAlias());
- result.setTable(tableSegment);
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setClauseList()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(tableSegment)
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setClauseList()));
if (null != ctx.whereOrCurrentClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
+ result.where((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
if (null != ctx.fromClause()) {
- result.setFrom((TableSegment) visit(ctx.fromClause()));
+ result.from((TableSegment) visit(ctx.fromClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@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 3e34dfee0db..4484fbc4fd5 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
@@ -644,7 +644,7 @@ public final class PostgreSQLDDLStatementVisitor extends
PostgreSQLStatementVisi
@SuppressWarnings("unchecked")
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- return new TruncateStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue());
+ return new TruncateStatement(getDatabaseType(),
((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue(), Collections.emptyList());
}
@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 474ac96d525..c9d2e1c61dc 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
@@ -885,21 +885,23 @@ public final class PrestoDMLStatementVisitor extends
PrestoStatementVisitor impl
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(getDatabaseType());
TableSegment tableSegment = (TableSegment)
visit(ctx.tableReferences());
- result.setTable(tableSegment);
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(getDatabaseType())
+ .table(tableSegment)
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
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;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@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 3807b70c035..49c233b5bb2 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
@@ -146,14 +146,16 @@ public final class SQL92DMLStatementVisitor extends
SQL92StatementVisitor implem
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(getDatabaseType());
- result.setTable((TableSegment) visit(ctx.tableReferences()));
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder()
+ .databaseType(getDatabaseType())
+ .table((TableSegment) visit(ctx.tableReferences()))
+ .setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@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 b6bdbf1d9d6..71a6abebf47 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
@@ -1698,29 +1698,30 @@ public abstract class SQLServerStatementVisitor extends
SQLServerStatementBaseVi
@Override
public ASTNode visitUpdate(final UpdateContext ctx) {
- UpdateStatement result = new UpdateStatement(databaseType);
+ UpdateStatement.UpdateStatementBuilder result =
UpdateStatement.builder().databaseType(databaseType);
if (null != ctx.withClause()) {
- result.setWith((WithSegment) visit(ctx.withClause()));
+ result.with((WithSegment) visit(ctx.withClause()));
}
- result.setTable((TableSegment) visit(ctx.tableReferences()));
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
+ result.table((TableSegment) visit(ctx.tableReferences()));
+ result.setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
if (null != ctx.fromClause()) {
- result.setFrom((TableSegment) visit(ctx.fromClause()));
+ result.from((TableSegment) visit(ctx.fromClause()));
}
if (null != ctx.withTableHint()) {
- result.setWithTableHint((WithTableHintSegment)
visit(ctx.withTableHint()));
+ result.withTableHint((WithTableHintSegment)
visit(ctx.withTableHint()));
}
if (null != ctx.whereClause()) {
- result.setWhere((WhereSegment) visit(ctx.whereClause()));
+ result.where((WhereSegment) visit(ctx.whereClause()));
}
if (null != ctx.optionHint()) {
- result.setOptionHint((OptionHintSegment) visit(ctx.optionHint()));
+ result.optionHint((OptionHintSegment) visit(ctx.optionHint()));
}
if (null != ctx.outputClause()) {
- result.setOutput((OutputSegment) visit(ctx.outputClause()));
+ result.output((OutputSegment) visit(ctx.outputClause()));
}
- result.addParameterMarkers(getParameterMarkerSegments());
- return result;
+ UpdateStatement updateStatement = result.build();
+ updateStatement.addParameterMarkers(getParameterMarkerSegments());
+ return updateStatement;
}
@Override
@@ -2300,8 +2301,6 @@ public abstract class SQLServerStatementVisitor extends
SQLServerStatementBaseVi
@Override
public ASTNode visitMergeUpdateClause(final MergeUpdateClauseContext ctx) {
- UpdateStatement result = new UpdateStatement(databaseType);
- result.setSetAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause()));
- return result;
+ return
UpdateStatement.builder().databaseType(databaseType).setAssignment((SetAssignmentSegment)
visit(ctx.setAssignmentsClause())).build();
}
}
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 48dc0350a38..c1df322b240 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
@@ -324,7 +324,7 @@ public final class SQLServerDDLStatementVisitor extends
SQLServerStatementVisito
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())));
+ return new TruncateStatement(getDatabaseType(),
Collections.singleton((SimpleTableSegment) visit(ctx.tableName())),
Collections.emptyList());
}
@SuppressWarnings({"rawtypes", "unchecked"})
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/TruncateStatement.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/TruncateStatement.java
index ac508a340d7..3a59266150d 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/TruncateStatement.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/TruncateStatement.java
@@ -25,7 +25,6 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.S
import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.TableSQLStatementAttribute;
import java.util.Collection;
-import java.util.LinkedList;
/**
* Truncate table statement.
@@ -35,17 +34,18 @@ public final class TruncateStatement extends DDLStatement {
private final Collection<SimpleTableSegment> tables;
- private final Collection<PartitionSegment> partitions = new LinkedList<>();
+ private final Collection<PartitionSegment> partitions;
- private SQLStatementAttributes attributes;
+ private final SQLStatementAttributes attributes;
- public TruncateStatement(final DatabaseType databaseType, final
Collection<SimpleTableSegment> tables) {
+ public TruncateStatement(final DatabaseType databaseType, final
Collection<SimpleTableSegment> tables, final Collection<PartitionSegment>
partitions) {
super(databaseType);
this.tables = tables;
+ this.partitions = partitions;
+ attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(tables));
}
@Override
public void buildAttributes() {
- attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(tables));
}
}
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/UpdateStatement.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/UpdateStatement.java
index b34d417e1aa..ead3f84c79a 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/UpdateStatement.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dml/UpdateStatement.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.assignment.SetAssignmentSegment;
@@ -39,37 +39,52 @@ import java.util.Optional;
* Update statement.
*/
@Getter
-@Setter
public final class UpdateStatement extends DMLStatement {
- private TableSegment table;
+ private final TableSegment table;
- private SetAssignmentSegment setAssignment;
+ private final SetAssignmentSegment setAssignment;
- private WhereSegment where;
+ private final WhereSegment where;
- private OrderBySegment orderBy;
+ private final OrderBySegment orderBy;
- private LimitSegment limit;
+ private final LimitSegment limit;
- private TableSegment from;
+ private final TableSegment from;
- private WhereSegment deleteWhere;
+ private final WhereSegment deleteWhere;
- private WithSegment with;
+ private final WithSegment with;
- private ReturningSegment returning;
+ private final ReturningSegment returning;
- private WithTableHintSegment withTableHint;
+ private final WithTableHintSegment withTableHint;
- private OptionHintSegment optionHint;
+ private final OptionHintSegment optionHint;
- private OutputSegment output;
+ private final OutputSegment output;
- private SQLStatementAttributes attributes;
+ private final SQLStatementAttributes attributes;
- public UpdateStatement(final DatabaseType databaseType) {
+ @Builder
+ private UpdateStatement(final DatabaseType databaseType, final
TableSegment table, final SetAssignmentSegment setAssignment, final
WhereSegment where,
+ final OrderBySegment orderBy, final LimitSegment
limit, final TableSegment from, final WhereSegment deleteWhere, final
WithSegment with,
+ final ReturningSegment returning, final
WithTableHintSegment withTableHint, final OptionHintSegment optionHint, final
OutputSegment output) {
super(databaseType);
+ this.table = table;
+ this.setAssignment = setAssignment;
+ this.where = where;
+ this.orderBy = orderBy;
+ this.limit = limit;
+ this.from = from;
+ this.deleteWhere = deleteWhere;
+ this.with = with;
+ this.returning = returning;
+ this.withTableHint = withTableHint;
+ this.optionHint = optionHint;
+ this.output = output;
+ attributes = new SQLStatementAttributes(new
WithSQLStatementAttribute(with));
}
/**
@@ -173,6 +188,5 @@ public final class UpdateStatement 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 99231982e54..cc9ba15f2ec 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
@@ -47,11 +47,11 @@ class MultiSQLSplitterTest {
private static Stream<Arguments> provideHasSameTypeArguments() {
return Stream.of(
- Arguments.of("nonDmlSample", new
UpdateStatement(DATABASE_TYPE), Arrays.asList("select * from t_order;", "select
* from t_order_item;"), false),
- Arguments.of("singleStatementFalse", new
UpdateStatement(DATABASE_TYPE), Collections.singletonList("update t_order set
status='OK' where id=1"), false),
+ Arguments.of("nonDmlSample",
UpdateStatement.builder().databaseType(DATABASE_TYPE).build(),
Arrays.asList("select * from t_order;", "select * from t_order_item;"), false),
+ Arguments.of("singleStatementFalse",
UpdateStatement.builder().databaseType(DATABASE_TYPE).build(),
Collections.singletonList("update t_order set status='OK' where id=1"), false),
Arguments.of("insertWithBlockComment",
InsertStatement.builder().databaseType(DATABASE_TYPE).build(),
Arrays.asList(" /*comment*/ INSERT INTO t_order
VALUES (1);", "/*remark*/ insert into t_order values (2)"), true),
- Arguments.of("updateWithDashComment", new
UpdateStatement(DATABASE_TYPE),
+ Arguments.of("updateWithDashComment",
UpdateStatement.builder().databaseType(DATABASE_TYPE).build(),
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",
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),
@@ -59,11 +59,12 @@ class MultiSQLSplitterTest {
Arrays.asList("# comment\r\ndelete from t_order where
id=1;", "# comment\r\ndelete from t_order where id=2;"), true),
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("updateTypeMismatch",
UpdateStatement.builder().databaseType(DATABASE_TYPE).build(),
+ Arrays.asList("update t_order set status='PAID' where
id=1;", "select * from t_order"), false),
Arguments.of("unterminatedBlockComment",
InsertStatement.builder().databaseType(DATABASE_TYPE).build(),
Arrays.asList("/* incomplete comment", "insert into t_order values (1);"),
false),
- Arguments.of("dashCommentOnlySegment", new
UpdateStatement(DATABASE_TYPE), Arrays.asList("--", "update t_order set
status='DONE' where id=1;"), false),
- Arguments.of("whitespaceOnlySegment", new
UpdateStatement(DATABASE_TYPE), Arrays.asList(" \t ", "update t_order set
status='DONE' where id=1;"), false));
+ Arguments.of("dashCommentOnlySegment",
UpdateStatement.builder().databaseType(DATABASE_TYPE).build(),
Arrays.asList("--", "update t_order set status='DONE' where id=1;"), false),
+ Arguments.of("whitespaceOnlySegment",
UpdateStatement.builder().databaseType(DATABASE_TYPE).build(), Arrays.asList("
\t ", "update t_order set status='DONE' where id=1;"), false));
}
@ParameterizedTest(name = "{0}")
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
index 8f0411f3101..fda908a4efa 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
@@ -416,7 +416,7 @@ class ProxySQLExecutorTest {
}
private TruncateStatement createTruncateStatement(final DatabaseType
databaseType) {
- return new TruncateStatement(databaseType, Collections.singleton(new
SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t_order")))));
+ return new TruncateStatement(databaseType, Collections.singleton(new
SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t_order")))), Collections.emptyList());
}
private InsertStatement createInsertStatement(final DatabaseType
databaseType) {
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxySQLComQueryParserTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxySQLComQueryParserTest.java
index 6090f5d43a4..3fc7d2ed0e3 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxySQLComQueryParserTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxySQLComQueryParserTest.java
@@ -69,7 +69,7 @@ class ProxySQLComQueryParserTest {
void assertParseWithMissingDatabaseUseDefaultType() {
when(connectionSession.getUsedDatabaseName()).thenReturn("missing_db");
SQLParserEngine parserEngine = mock(SQLParserEngine.class);
- SQLStatement expected = new UpdateStatement(databaseType);
+ SQLStatement expected =
UpdateStatement.builder().databaseType(databaseType).build();
SQLParserRule parserRule = mockParserRule(parserEngine);
mockProxyContext(parserRule, false, null);
when(parserEngine.parse(anyString(), eq(false))).thenReturn(expected);
@@ -81,7 +81,7 @@ class ProxySQLComQueryParserTest {
DatabaseType protocolType =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
when(connectionSession.getUsedDatabaseName()).thenReturn("logic_db");
SQLParserEngine parserEngine = mock(SQLParserEngine.class);
- SQLStatement expected = new UpdateStatement(protocolType);
+ SQLStatement expected =
UpdateStatement.builder().databaseType(protocolType).build();
SQLParserRule parserRule = mockParserRule(parserEngine);
mockProxyContext(parserRule, true, protocolType);
when(parserEngine.parse(anyString(), eq(false))).thenReturn(expected);
diff --git
a/proxy/frontend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/statement/execute/FirebirdExecuteStatementCommandExecutorTest.java
b/proxy/frontend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/statement/execute/FirebirdExecuteStatementCommandExecutorTest.java
index d5b58fbbe13..d12ce19863e 100644
---
a/proxy/frontend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/statement/execute/FirebirdExecuteStatementCommandExecutorTest.java
+++
b/proxy/frontend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/frontend/firebird/command/query/statement/execute/FirebirdExecuteStatementCommandExecutorTest.java
@@ -126,7 +126,7 @@ class FirebirdExecuteStatementCommandExecutorTest {
new ResourceMetaData(Collections.emptyMap()), new
RuleMetaData(Collections.emptyList()), new ConfigurationProperties(new
Properties())));
when(selectContext.getSqlStatement()).thenReturn(SelectStatement.builder().databaseType(DATABASE_TYPE).build());
registry.addPreparedStatement(1, new
FirebirdServerPreparedStatement("SELECT * FROM tbl", selectContext, new
HintValueContext()));
- when(updateContext.getSqlStatement()).thenReturn(new
UpdateStatement(DATABASE_TYPE));
+
when(updateContext.getSqlStatement()).thenReturn(UpdateStatement.builder().databaseType(DATABASE_TYPE).build());
registry.addPreparedStatement(2, new
FirebirdServerPreparedStatement("UPDATE tbl SET col=1", updateContext, new
HintValueContext()));
}
@@ -164,7 +164,7 @@ class FirebirdExecuteStatementCommandExecutorTest {
when(packet.getParameterTypes()).thenReturn(Collections.emptyList());
when(packet.getParameterValues()).thenReturn(Collections.emptyList());
executor = new FirebirdExecuteStatementCommandExecutor(packet,
connectionSession);
- when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(new UpdateStatement(DATABASE_TYPE)));
+ when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(UpdateStatement.builder().databaseType(DATABASE_TYPE).build()));
when(ProxyBackendHandlerFactory.newInstance(eq(DATABASE_TYPE),
any(QueryContext.class), eq(connectionSession),
eq(true))).thenReturn(proxyBackendHandler);
Collection<DatabasePacket> actual = executor.execute();
assertThat(executor.getResponseType(), is(ResponseType.UPDATE));
@@ -182,7 +182,7 @@ class FirebirdExecuteStatementCommandExecutorTest {
when(packet.getParameterTypes()).thenReturn(Collections.singletonList(FirebirdBinaryColumnType.BLOB));
when(packet.getParameterValues()).thenReturn(new
ArrayList<>(Collections.singletonList(blobId)));
executor = new FirebirdExecuteStatementCommandExecutor(packet,
connectionSession);
- when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(new UpdateStatement(DATABASE_TYPE)));
+ when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(UpdateStatement.builder().databaseType(DATABASE_TYPE).build()));
ArgumentCaptor<QueryContext> queryContextCaptor =
ArgumentCaptor.forClass(QueryContext.class);
when(ProxyBackendHandlerFactory.newInstance(eq(DATABASE_TYPE),
queryContextCaptor.capture(), eq(connectionSession),
eq(true))).thenReturn(proxyBackendHandler);
executor.execute();
@@ -198,7 +198,7 @@ class FirebirdExecuteStatementCommandExecutorTest {
when(packet.getParameterValues()).thenReturn(new
ArrayList<>(Collections.singletonList(9)));
executor = new FirebirdExecuteStatementCommandExecutor(packet,
connectionSession);
ArgumentCaptor<QueryContext> queryContextCaptor =
ArgumentCaptor.forClass(QueryContext.class);
- when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(new UpdateStatement(DATABASE_TYPE)));
+ when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(UpdateStatement.builder().databaseType(DATABASE_TYPE).build()));
when(ProxyBackendHandlerFactory.newInstance(eq(DATABASE_TYPE),
queryContextCaptor.capture(), eq(connectionSession),
eq(true))).thenReturn(proxyBackendHandler);
executor.execute();
List<Object> actualParams =
queryContextCaptor.getValue().getParameters();
@@ -213,7 +213,7 @@ class FirebirdExecuteStatementCommandExecutorTest {
when(packet.getParameterValues()).thenReturn(new
ArrayList<>(Collections.singletonList("text")));
executor = new FirebirdExecuteStatementCommandExecutor(packet,
connectionSession);
ArgumentCaptor<QueryContext> queryContextCaptor =
ArgumentCaptor.forClass(QueryContext.class);
- when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(new UpdateStatement(DATABASE_TYPE)));
+ when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(UpdateStatement.builder().databaseType(DATABASE_TYPE).build()));
when(ProxyBackendHandlerFactory.newInstance(eq(DATABASE_TYPE),
queryContextCaptor.capture(), eq(connectionSession),
eq(true))).thenReturn(proxyBackendHandler);
executor.execute();
List<Object> actualParams =
queryContextCaptor.getValue().getParameters();
@@ -228,7 +228,7 @@ class FirebirdExecuteStatementCommandExecutorTest {
when(packet.getParameterValues()).thenReturn(new
ArrayList<>(Collections.singletonList(0L)));
executor = new FirebirdExecuteStatementCommandExecutor(packet,
connectionSession);
ArgumentCaptor<QueryContext> queryContextCaptor =
ArgumentCaptor.forClass(QueryContext.class);
- when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(new UpdateStatement(DATABASE_TYPE)));
+ when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(UpdateStatement.builder().databaseType(DATABASE_TYPE).build()));
when(ProxyBackendHandlerFactory.newInstance(eq(DATABASE_TYPE),
queryContextCaptor.capture(), eq(connectionSession),
eq(true))).thenReturn(proxyBackendHandler);
executor.execute();
List<Object> actualParams =
queryContextCaptor.getValue().getParameters();
@@ -250,7 +250,7 @@ class FirebirdExecuteStatementCommandExecutorTest {
when(packet.getParameterValues()).thenReturn(params);
executor = new FirebirdExecuteStatementCommandExecutor(packet,
connectionSession);
ArgumentCaptor<QueryContext> queryContextCaptor =
ArgumentCaptor.forClass(QueryContext.class);
- when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(new UpdateStatement(DATABASE_TYPE)));
+ when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(UpdateStatement.builder().databaseType(DATABASE_TYPE).build()));
when(ProxyBackendHandlerFactory.newInstance(eq(DATABASE_TYPE),
queryContextCaptor.capture(), eq(connectionSession),
eq(true))).thenReturn(proxyBackendHandler);
executor.execute();
List<Object> actualParams =
queryContextCaptor.getValue().getParameters();
diff --git
a/proxy/frontend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
b/proxy/frontend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
index 8547659c6ec..fe480ababc3 100644
---
a/proxy/frontend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
+++
b/proxy/frontend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
@@ -147,11 +147,12 @@ class MySQLComStmtExecuteExecutorTest {
}
private UpdateStatement prepareUpdateStatement() {
- UpdateStatement result = new UpdateStatement(databaseType);
ColumnSegment columnSegment = new ColumnSegment(0, 0, new
IdentifierValue("col"));
ColumnAssignmentSegment columnAssignmentSegment = new
ColumnAssignmentSegment(0, 0, Collections.singletonList(columnSegment), new
ParameterMarkerExpressionSegment(0, 0, 0));
- result.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singletonList(columnAssignmentSegment)));
- return result;
+ return UpdateStatement.builder()
+ .databaseType(databaseType)
+ .setAssignment(new SetAssignmentSegment(0, 0,
Collections.singletonList(columnAssignmentSegment)))
+ .build();
}
@Test
@@ -184,7 +185,7 @@ class MySQLComStmtExecuteExecutorTest {
when(packet.getStatementId()).thenReturn(2);
when(packet.getNewParametersBoundFlag()).thenReturn(MySQLNewParametersBoundFlag.PARAMETER_TYPE_EXIST);
MySQLComStmtExecuteExecutor executor = new
MySQLComStmtExecuteExecutor(packet, connectionSession);
- when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(new UpdateStatement(databaseType)));
+ when(proxyBackendHandler.execute()).thenReturn(new
UpdateResponseHeader(UpdateStatement.builder().databaseType(databaseType).build()));
when(ProxyBackendHandlerFactory.newInstance(eq(databaseType),
any(QueryContext.class), eq(connectionSession),
anyBoolean())).thenReturn(proxyBackendHandler);
Iterator<DatabasePacket> actual = executor.execute().iterator();
assertThat(executor.getResponseType(), is(ResponseType.UPDATE));
diff --git
a/proxy/frontend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
b/proxy/frontend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
index 0458d38c1e3..e2f39628ae7 100644
---
a/proxy/frontend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
+++
b/proxy/frontend/dialect/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
@@ -201,9 +201,11 @@ class PostgreSQLBatchedStatementsExecutorTest {
}
private UpdateStatementContext mockUpdateStatementContext() {
- UpdateStatement updateStatement = new UpdateStatement(databaseType);
- updateStatement.setTable(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("t"))));
- updateStatement.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.emptyList()));
+ UpdateStatement updateStatement = UpdateStatement.builder()
+ .databaseType(databaseType)
+ .table(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("t"))))
+ .setAssignment(new SetAssignmentSegment(0, 0,
Collections.emptyList()))
+ .build();
return new UpdateStatementContext(updateStatement);
}