This is an automated email from the ASF dual-hosted git repository.

jianglongtao 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 bbef38e4a16 Fix NPE of ALTER DEFAULT SHARDING TABLE STRATEGY (#25456)
bbef38e4a16 is described below

commit bbef38e4a16ce9ff9e857f71dfb70272561e06e9
Author: yx9o <[email protected]>
AuthorDate: Fri May 5 10:10:22 2023 +0800

    Fix NPE of ALTER DEFAULT SHARDING TABLE STRATEGY (#25456)
---
 .../parser/core/ShardingDistSQLStatementVisitor.java      | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git 
a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
 
b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
index 62058bd0ea6..87cfbc8dccc 100644
--- 
a/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
+++ 
b/features/sharding/distsql/parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
@@ -168,8 +168,7 @@ public final class ShardingDistSQLStatementVisitor extends 
ShardingDistSQLStatem
     
     @Override
     public ASTNode visitDropShardingTableRule(final 
DropShardingTableRuleContext ctx) {
-        return new DropShardingTableRuleStatement(null != ctx.ifExists(),
-                ctx.tableName().stream().map(each -> (TableNameSegment) 
visit(each)).collect(Collectors.toList()));
+        return new DropShardingTableRuleStatement(null != ctx.ifExists(), 
ctx.tableName().stream().map(each -> (TableNameSegment) 
visit(each)).collect(Collectors.toList()));
     }
     
     @Override
@@ -180,15 +179,15 @@ public final class ShardingDistSQLStatementVisitor 
extends ShardingDistSQLStatem
     @Override
     public ASTNode visitCreateDefaultShardingStrategy(final 
CreateDefaultShardingStrategyContext ctx) {
         ShardingStrategyContext shardingStrategyContext = 
ctx.shardingStrategy();
-        String strategyType = 
getIdentifierValue(shardingStrategyContext.strategyType());
         String defaultType = new 
IdentifierValue(ctx.type.getText()).getValue();
+        String strategyType = 
getIdentifierValue(shardingStrategyContext.strategyType());
         if ("none".equalsIgnoreCase(strategyType)) {
             return new CreateDefaultShardingStrategyStatement(null != 
ctx.ifNotExists(), defaultType, "none", null, null);
         }
-        AlgorithmSegment algorithmSegment = null != 
shardingStrategyContext.shardingAlgorithm().algorithmDefinition()
-                ? (AlgorithmSegment) 
visitAlgorithmDefinition(shardingStrategyContext.shardingAlgorithm().algorithmDefinition())
-                : null;
-        String shardingColumn = null != 
ctx.shardingStrategy().shardingColumnDefinition() ? 
buildShardingColumn(ctx.shardingStrategy().shardingColumnDefinition()) : null;
+        AlgorithmSegment algorithmSegment = null == 
shardingStrategyContext.shardingAlgorithm().algorithmDefinition()
+                ? null
+                : (AlgorithmSegment) 
visitAlgorithmDefinition(shardingStrategyContext.shardingAlgorithm().algorithmDefinition());
+        String shardingColumn = null == 
ctx.shardingStrategy().shardingColumnDefinition() ? null : 
buildShardingColumn(ctx.shardingStrategy().shardingColumnDefinition());
         return new CreateDefaultShardingStrategyStatement(null != 
ctx.ifNotExists(), defaultType, strategyType, shardingColumn, algorithmSegment);
     }
     
@@ -199,10 +198,10 @@ public final class ShardingDistSQLStatementVisitor 
extends ShardingDistSQLStatem
         if ("none".equalsIgnoreCase(strategyType)) {
             return new AlterDefaultShardingStrategyStatement(defaultType, 
"none", null, null);
         }
-        String shardingColumn = 
buildShardingColumn(ctx.shardingStrategy().shardingColumnDefinition());
         AlgorithmSegment algorithmSegment = null == 
ctx.shardingStrategy().shardingAlgorithm().algorithmDefinition()
                 ? null
                 : (AlgorithmSegment) 
visitAlgorithmDefinition(ctx.shardingStrategy().shardingAlgorithm().algorithmDefinition());
+        String shardingColumn = null == 
ctx.shardingStrategy().shardingColumnDefinition() ? null : 
buildShardingColumn(ctx.shardingStrategy().shardingColumnDefinition());
         return new AlterDefaultShardingStrategyStatement(defaultType, 
strategyType, shardingColumn, algorithmSegment);
     }
     

Reply via email to