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));
     }
 }

Reply via email to