chengh1 commented on a change in pull request #11750:
URL: https://github.com/apache/shardingsphere/pull/11750#discussion_r686558751



##########
File path: 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java
##########
@@ -92,10 +92,20 @@ private boolean isAllSameTables(final Collection<String> 
tableNames) {
     }
     
     @Override
-    public void postValidate(final ShardingRule shardingRule, final 
SQLStatementContext<InsertStatement> sqlStatementContext, 
+    public void postValidate(final ShardingRule shardingRule, final 
SQLStatementContext<InsertStatement> sqlStatementContext,
                              final RouteContext routeContext, final 
ShardingSphereSchema schema) {
         if (needCheckDatabaseInstance) {
             Preconditions.checkState(routeContext.isSingleRouting(), "Sharding 
value must same with subquery.");
         }
+        if (routeContext.isSingleRouting()) {
+            return;
+        }
+        String tableName = 
sqlStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue();
+        if (shardingRule.isBroadcastTable(tableName)) {
+            return;
+        }
+        if (routeContext.getOriginalDataNodes().stream().anyMatch(dataNodes -> 
dataNodes.size() > 1)) {
+            throw new ShardingSphereException("Insert clause not support 
routing to multiple dataNodes when is not broadcastTable.");

Review comment:
       @strongduanmu  I have modified the exception message and variable names.




-- 
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.

To unsubscribe, e-mail: [email protected]

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


Reply via email to