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 d95f01ef652 Refactor TruncateStatement (#35833)
d95f01ef652 is described below
commit d95f01ef6525930fa28d296194ac823e2f031d76
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jun 29 00:01:38 2025 +0800
Refactor TruncateStatement (#35833)
---
.../infra/binder/engine/statement/ddl/TruncateStatementBinder.java | 3 +--
.../doris/visitor/statement/type/DorisDDLStatementVisitor.java | 4 +---
.../mysql/visitor/statement/type/MySQLDDLStatementVisitor.java | 4 +---
.../visitor/statement/type/OpenGaussDDLStatementVisitor.java | 4 +---
.../oracle/visitor/statement/type/OracleDDLStatementVisitor.java | 5 ++---
.../visitor/statement/type/PostgreSQLDDLStatementVisitor.java | 4 +---
.../visitor/statement/type/SQLServerDDLStatementVisitor.java | 6 +++---
.../parser/statement/core/statement/type/ddl/TruncateStatement.java | 5 +++--
8 files changed, 13 insertions(+), 22 deletions(-)
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 824ff5cfc4e..e35cc9e0850 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,8 +41,7 @@ public final class TruncateStatementBinder implements
SQLStatementBinder<Truncat
}
private TruncateStatement copy(final TruncateStatement sqlStatement, final
Collection<SimpleTableSegment> boundTables) {
- TruncateStatement result = new TruncateStatement();
- result.getTables().addAll(boundTables);
+ TruncateStatement result = new TruncateStatement(boundTables);
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git
a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDDLStatementVisitor.java
b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDDLStatementVisitor.java
index 2d616d0ff22..695492757df 100644
---
a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDDLStatementVisitor.java
+++
b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDDLStatementVisitor.java
@@ -669,9 +669,7 @@ public final class DorisDDLStatementVisitor extends
DorisStatementVisitor implem
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- TruncateStatement result = new TruncateStatement();
- result.getTables().add((SimpleTableSegment) visit(ctx.tableName()));
- return result;
+ return new
TruncateStatement(Collections.singleton((SimpleTableSegment)
visit(ctx.tableName())));
}
@SuppressWarnings({"unchecked", "rawtypes"})
diff --git
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
index 0975d1f2a4b..f0e3ba1657e 100644
---
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
+++
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
@@ -675,9 +675,7 @@ public final class MySQLDDLStatementVisitor extends
MySQLStatementVisitor implem
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- TruncateStatement result = new TruncateStatement();
- result.getTables().add((SimpleTableSegment) visit(ctx.tableName()));
- return result;
+ return new
TruncateStatement(Collections.singleton((SimpleTableSegment)
visit(ctx.tableName())));
}
@SuppressWarnings({"unchecked", "rawtypes"})
diff --git
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
index 44bc87e9ef1..311ef548af0 100644
---
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
+++
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
@@ -522,9 +522,7 @@ public final class OpenGaussDDLStatementVisitor extends
OpenGaussStatementVisito
@SuppressWarnings("unchecked")
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- TruncateStatement result = new TruncateStatement();
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue());
- return result;
+ return new TruncateStatement(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue());
}
@SuppressWarnings("unchecked")
diff --git
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
index 6d49d035201..a7c856e63ed 100644
---
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
+++
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDDLStatementVisitor.java
@@ -819,11 +819,10 @@ public final class OracleDDLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- TruncateStatement result = new TruncateStatement();
- result.getTables().add((SimpleTableSegment) visit(ctx.tableName()));
- return result;
+ return new
TruncateStatement(Collections.singleton((SimpleTableSegment)
visit(ctx.tableName())));
}
+ @SuppressWarnings({"rawtypes", "unchecked"})
@Override
public ASTNode visitCreateIndex(final CreateIndexContext ctx) {
CreateIndexStatement result = new CreateIndexStatement();
diff --git
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
index f8490232d21..3d2e7008335 100644
---
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
+++
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
@@ -637,9 +637,7 @@ public final class PostgreSQLDDLStatementVisitor extends
PostgreSQLStatementVisi
@SuppressWarnings("unchecked")
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- TruncateStatement result = new TruncateStatement();
- result.getTables().addAll(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue());
- return result;
+ return new TruncateStatement(((CollectionValue<SimpleTableSegment>)
visit(ctx.tableNamesClause())).getValue());
}
@Override
diff --git
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
index a40032c2686..7757d0d9aa6 100644
---
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
+++
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/type/SQLServerDDLStatementVisitor.java
@@ -134,6 +134,7 @@ public final class SQLServerDDLStatementVisitor extends
SQLServerStatementVisito
return null == ctx.createTableClause() ?
visit(ctx.createTableAsSelectClause()) : visit(ctx.createTableClause());
}
+ @SuppressWarnings("unchecked")
@Override
public ASTNode visitCreateTableClause(final CreateTableClauseContext ctx) {
CreateTableStatement result = new CreateTableStatement();
@@ -317,11 +318,10 @@ public final class SQLServerDDLStatementVisitor extends
SQLServerStatementVisito
@Override
public ASTNode visitTruncateTable(final TruncateTableContext ctx) {
- TruncateStatement result = new TruncateStatement();
- result.getTables().add((SimpleTableSegment) visit(ctx.tableName()));
- return result;
+ return new
TruncateStatement(Collections.singleton((SimpleTableSegment)
visit(ctx.tableName())));
}
+ @SuppressWarnings({"rawtypes", "unchecked"})
@Override
public ASTNode visitCreateIndex(final CreateIndexContext ctx) {
CreateIndexStatement result = new CreateIndexStatement();
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 c665a0b7d46..16f01e551a5 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
@@ -18,20 +18,21 @@
package org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.SQLStatementAttributes;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.TableSQLStatementAttribute;
import java.util.Collection;
-import java.util.LinkedList;
/**
* Truncate table statement.
*/
+@RequiredArgsConstructor
@Getter
public final class TruncateStatement extends DDLStatement {
- private final Collection<SimpleTableSegment> tables = new LinkedList<>();
+ private final Collection<SimpleTableSegment> tables;
@Override
public SQLStatementAttributes getAttributes() {