You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/10/13 02:31:58 UTC

(shardingsphere) branch master updated: Improve "alter transmission rule": verify STREAM_CHANNEL TYPE NAME (#36864)

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

zhonghongsheng 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 5ef1bfbbb4d Improve "alter transmission rule": verify STREAM_CHANNEL TYPE NAME (#36864)
5ef1bfbbb4d is described below

commit 5ef1bfbbb4de5cfe53a03a6258302031f9b622c9
Author: Hongsheng Zhong <zh...@apache.org>
AuthorDate: Mon Oct 13 10:31:52 2025 +0800

    Improve "alter transmission rule": verify STREAM_CHANNEL TYPE NAME (#36864)
---
 .../transmission/update/AlterTransmissionRuleExecutor.java       | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/update/AlterTransmissionRuleExecutor.java b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/update/AlterTransmissionRuleExecutor.java
index 86c7447788a..8913b9e7f0f 100644
--- a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/update/AlterTransmissionRuleExecutor.java
+++ b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/distsql/handler/transmission/update/AlterTransmissionRuleExecutor.java
@@ -17,7 +17,9 @@
 
 package org.apache.shardingsphere.data.pipeline.distsql.handler.transmission.update;
 
+import org.apache.shardingsphere.data.pipeline.core.channel.PipelineChannelCreator;
 import org.apache.shardingsphere.data.pipeline.core.context.PipelineContextKey;
+import org.apache.shardingsphere.data.pipeline.core.exception.param.PipelineInvalidParameterException;
 import org.apache.shardingsphere.data.pipeline.core.job.progress.config.PipelineProcessConfiguration;
 import org.apache.shardingsphere.data.pipeline.core.job.progress.config.PipelineReadConfiguration;
 import org.apache.shardingsphere.data.pipeline.core.job.progress.config.PipelineWriteConfiguration;
@@ -42,8 +44,13 @@ public final class AlterTransmissionRuleExecutor implements DistSQLUpdateExecuto
     
     @Override
     public void executeUpdate(final AlterTransmissionRuleStatement sqlStatement, final ContextManager contextManager) {
+        PipelineProcessConfiguration processConfig = convertToProcessConfiguration(sqlStatement.getProcessConfigSegment());
+        AlgorithmConfiguration streamChannel = processConfig.getStreamChannel();
+        if (null != streamChannel && !TypedSPILoader.findService(PipelineChannelCreator.class, streamChannel.getType()).isPresent()) {
+            throw new PipelineInvalidParameterException("Unknown stream channel type `" + streamChannel.getType() + "`.");
+        }
         String jobType = TypedSPILoader.getService(PipelineJobType.class, sqlStatement.getJobTypeName()).getType();
-        processConfigPersistService.persist(new PipelineContextKey(InstanceType.PROXY), jobType, convertToProcessConfiguration(sqlStatement.getProcessConfigSegment()));
+        processConfigPersistService.persist(new PipelineContextKey(InstanceType.PROXY), jobType, processConfig);
     }
     
     private PipelineProcessConfiguration convertToProcessConfiguration(final TransmissionRuleSegment segment) {