strongduanmu commented on a change in pull request #8160:
URL: https://github.com/apache/shardingsphere/pull/8160#discussion_r524882318



##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
##########
@@ -108,10 +108,6 @@ multipleTablesClause
     : tableAliasRefList FROM tableReferences | FROM tableAliasRefList USING 
tableReferences
     ;
 
-multipleTableNames

Review comment:
       Why delete `multipleTableNames ` rule? Useless?

##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
##########
@@ -544,7 +545,17 @@ public ASTNode visitQueryExpressionParens(final 
QueryExpressionParensContext ctx
 
     @Override
     public ASTNode visitLockClauseList(final LockClauseListContext ctx) {
-        return new LockSegment(ctx.getStart().getStartIndex(), 
ctx.getStop().getStopIndex());
+        LockSegment lockSegment = new 
LockSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex());

Review comment:
       Please use the `result` for the return variable name.
   

##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/predicate/LockSegment.java
##########
@@ -32,4 +36,7 @@
     private final int startIndex;
 
     private final int stopIndex;
+
+    @Setter
+    private List<SimpleTableSegment> forTables;

Review comment:
       Maybe it is better to initialize the collection in advance? Like this:
   
   ```java
   private final List< SimpleTableSegment > tables = new LinkedList<>();
   ```
   What do you think? 😀

##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
##########
@@ -544,7 +545,17 @@ public ASTNode visitQueryExpressionParens(final 
QueryExpressionParensContext ctx
 
     @Override
     public ASTNode visitLockClauseList(final LockClauseListContext ctx) {
-        return new LockSegment(ctx.getStart().getStartIndex(), 
ctx.getStop().getStopIndex());
+        LockSegment lockSegment = new 
LockSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex());
+        List<SimpleTableSegment> forTables = new LinkedList<>();
+        for (MySQLStatementParser.LockClauseContext each : ctx.lockClause()) {
+            if (null != each.tableLockingList()) {
+                
forTables.addAll(generateTablesFromTableAliasRefList(each.tableLockingList().tableAliasRefList()));

Review comment:
       The intermediate variable `forTables` is a bit redundant, how about 
this? 
   
   ```java
   
lockSegment.getForTables.addAll(generateTablesFromTableAliasRefList(each.tableLockingList().tableAliasRefList()));
   ```
   




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to