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 dd0f9819c45 Refactor constructor of SQLServerDenyUserStatement to
empty buildAttributes (#38348)
dd0f9819c45 is described below
commit dd0f9819c45aa4c5fc8aa2d6de710233d6aeefbb
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Mar 4 23:48:16 2026 +0800
Refactor constructor of SQLServerDenyUserStatement to empty buildAttributes
(#38348)
---
.../engine/statement/dcl/RevokeStatementBinder.java | 4 ++--
.../bind/type/SQLServerDenyUserStatementBinder.java | 4 +---
.../statement/type/SQLServerDCLStatementVisitor.java | 17 ++++++++++++-----
.../sqlserver/dcl/user/SQLServerDenyUserStatement.java | 15 +++++++--------
4 files changed, 22 insertions(+), 18 deletions(-)
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/RevokeStatementBinder.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/RevokeStatementBinder.java
index 36879008622..9324399272f 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/RevokeStatementBinder.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/RevokeStatementBinder.java
@@ -28,8 +28,8 @@ import
org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementCopyU
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.RevokeStatement;
-import java.util.ArrayList;
import java.util.Collection;
+import java.util.LinkedList;
/**
* Revoke statement binder.
@@ -39,7 +39,7 @@ public final class RevokeStatementBinder implements
SQLStatementBinder<RevokeSta
@Override
public RevokeStatement bind(final RevokeStatement sqlStatement, final
SQLStatementBinderContext binderContext) {
Multimap<CaseInsensitiveString, TableSegmentBinderContext>
tableBinderContexts = LinkedHashMultimap.create();
- Collection<SimpleTableSegment> boundTables = new ArrayList<>();
+ Collection<SimpleTableSegment> boundTables = new LinkedList<>();
for (SimpleTableSegment each : sqlStatement.getTables()) {
boundTables.add(SimpleTableSegmentBinder.bind(each, binderContext,
tableBinderContexts));
}
diff --git
a/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/bind/type/SQLServerDenyUserStatementBinder.java
b/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/bind/type/SQLServerDenyUserStatementBinder.java
index caece3c65c2..52e7e8b10b6 100644
---
a/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/bind/type/SQLServerDenyUserStatementBinder.java
+++
b/infra/binder/dialect/sqlserver/src/main/java/org/apache/shardingsphere/infra/binder/sqlserver/bind/type/SQLServerDenyUserStatementBinder.java
@@ -49,9 +49,7 @@ public final class SQLServerDenyUserStatementBinder
implements SQLStatementBinde
}
private SQLServerDenyUserStatement copy(final SQLServerDenyUserStatement
sqlStatement, final SimpleTableSegment boundTable, final
Collection<ColumnSegment> boundColumns) {
- SQLServerDenyUserStatement result = new
SQLServerDenyUserStatement(sqlStatement.getDatabaseType());
- result.setTable(boundTable);
- sqlStatement.getColumns().addAll(boundColumns);
+ SQLServerDenyUserStatement result = new
SQLServerDenyUserStatement(sqlStatement.getDatabaseType(), boundTable,
boundColumns);
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
index 8c131a2261b..0debea44d52 100644
---
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
+++
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
@@ -191,19 +191,26 @@ public final class SQLServerDCLStatementVisitor extends
SQLServerStatementVisito
@SuppressWarnings("unchecked")
@Override
public ASTNode visitDeny(final DenyContext ctx) {
- SQLServerDenyUserStatement result = new
SQLServerDenyUserStatement(getDatabaseType());
+ SimpleTableSegment table = null;
+ Collection<ColumnSegment> columns = new LinkedList<>();
if (null != ctx.denyClassPrivilegesClause()) {
- findTableSegment(ctx.denyClassPrivilegesClause().onClassClause(),
ctx.denyClassPrivilegesClause().classPrivileges()).ifPresent(result::setTable);
+ Optional<SimpleTableSegment> tableSegment =
findTableSegment(ctx.denyClassPrivilegesClause().onClassClause(),
ctx.denyClassPrivilegesClause().classPrivileges());
+ if (tableSegment.isPresent()) {
+ table = tableSegment.get();
+ }
if (null !=
ctx.denyClassPrivilegesClause().classPrivileges().columnNames()) {
for (ColumnNamesContext each :
ctx.denyClassPrivilegesClause().classPrivileges().columnNames()) {
-
result.getColumns().addAll(((CollectionValue<ColumnSegment>)
visit(each)).getValue());
+ columns.addAll(((CollectionValue<ColumnSegment>)
visit(each)).getValue());
}
}
}
if (null != ctx.denyClassTypePrivilegesClause()) {
-
findTableSegment(ctx.denyClassTypePrivilegesClause().onClassTypeClause()).ifPresent(result::setTable);
+ Optional<SimpleTableSegment> tableSegment =
findTableSegment(ctx.denyClassTypePrivilegesClause().onClassTypeClause());
+ if (tableSegment.isPresent()) {
+ table = tableSegment.get();
+ }
}
- return result;
+ return new SQLServerDenyUserStatement(getDatabaseType(), table,
columns);
}
private Optional<SimpleTableSegment> findTableSegment(final
OnClassClauseContext onClassClauseCtx, final ClassPrivilegesContext
classPrivilegesCtx) {
diff --git
a/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/user/SQLServerDenyUserStatement.java
b/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/user/SQLServerDenyUserStatement.java
index b2214e0f1a8..229c6983517 100644
---
a/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/user/SQLServerDenyUserStatement.java
+++
b/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/user/SQLServerDenyUserStatement.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.user;
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.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
@@ -27,27 +26,27 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.t
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.DCLStatement;
import java.util.Collection;
-import java.util.LinkedList;
/**
* Deny user statement for SQLServer.
*/
@Getter
-@Setter
public final class SQLServerDenyUserStatement extends DCLStatement {
- private SimpleTableSegment table;
+ private final SimpleTableSegment table;
- private final Collection<ColumnSegment> columns = new LinkedList<>();
+ private final Collection<ColumnSegment> columns;
- private SQLStatementAttributes attributes;
+ private final SQLStatementAttributes attributes;
- public SQLServerDenyUserStatement(final DatabaseType databaseType) {
+ public SQLServerDenyUserStatement(final DatabaseType databaseType, final
SimpleTableSegment table, final Collection<ColumnSegment> columns) {
super(databaseType);
+ this.table = table;
+ this.columns = columns;
+ attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(table));
}
@Override
public void buildAttributes() {
- attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(table));
}
}