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 e4a6e67895b Remove unreachable identifier null check and cover missing 
rate limiter path (#37426)
e4a6e67895b is described below

commit e4a6e67895be1e002b424899dd5d5633cee302f9
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Dec 18 20:40:12 2025 +0800

    Remove unreachable identifier null check and cover missing rate limiter 
path (#37426)
---
 .../cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java  | 11 +++--------
 .../type/pipeline/AlterTransmissionRuleStatementAssert.java  | 12 ++++++++----
 test/it/parser/src/main/resources/case/ral/cdc.xml           | 11 +++++++++++
 test/it/parser/src/main/resources/sql/supported/ral/cdc.xml  |  1 +
 4 files changed, 23 insertions(+), 12 deletions(-)

diff --git 
a/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
 
b/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
index 48c03095a25..82df8dfd991 100644
--- 
a/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
+++ 
b/kernel/data-pipeline/scenario/cdc/distsql/parser/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/distsql/parser/core/CDCDistSQLStatementVisitor.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.data.pipeline.cdc.distsql.parser.core;
 
-import org.antlr.v4.runtime.tree.ParseTree;
 import 
org.apache.shardingsphere.data.pipeline.cdc.distsql.statement.queryable.ShowStreamingListStatement;
 import 
org.apache.shardingsphere.data.pipeline.cdc.distsql.statement.queryable.ShowStreamingRuleStatement;
 import 
org.apache.shardingsphere.data.pipeline.cdc.distsql.statement.queryable.ShowStreamingStatusStatement;
@@ -62,16 +61,12 @@ public final class CDCDistSQLStatementVisitor extends 
CDCDistSQLStatementBaseVis
     
     @Override
     public ASTNode visitShowStreamingStatus(final ShowStreamingStatusContext 
ctx) {
-        return new 
ShowStreamingStatusStatement(getIdentifierValue(ctx.jobId()));
+        return new ShowStreamingStatusStatement(new 
IdentifierValue(ctx.jobId().getText()).getValue());
     }
     
     @Override
     public ASTNode visitDropStreaming(final DropStreamingContext ctx) {
-        return new DropStreamingStatement(getIdentifierValue(ctx.jobId()));
-    }
-    
-    private String getIdentifierValue(final ParseTree ctx) {
-        return null == ctx ? null : new 
IdentifierValue(ctx.getText()).getValue();
+        return new DropStreamingStatement(new 
IdentifierValue(ctx.jobId().getText()).getValue());
     }
     
     @Override
@@ -137,7 +132,7 @@ public final class CDCDistSQLStatementVisitor extends 
CDCDistSQLStatementBaseVis
     
     @Override
     public ASTNode visitAlgorithmDefinition(final AlgorithmDefinitionContext 
ctx) {
-        return new 
AlgorithmSegment(getIdentifierValue(ctx.algorithmTypeName()), 
buildProperties(ctx.propertiesDefinition()));
+        return new AlgorithmSegment(new 
IdentifierValue(ctx.algorithmTypeName().getText()).getValue(), 
buildProperties(ctx.propertiesDefinition()));
     }
     
     private Properties buildProperties(final PropertiesDefinitionContext ctx) {
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/type/pipeline/AlterTransmissionRuleStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/type/pipeline/AlterTransmissionRuleStatementAssert.java
index eddcbdc34b3..296d6126ab3 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/type/pipeline/AlterTransmissionRuleStatementAssert.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ral/type/pipeline/AlterTransmissionRuleStatementAssert.java
@@ -65,7 +65,7 @@ public final class AlterTransmissionRuleStatementAssert {
         assertThat(actual.getWorkerThread(), is(expected.getWorkerThread()));
         assertThat(actual.getBatchSize(), is(expected.getBatchSize()));
         assertThat(actual.getShardingSize(), is(expected.getShardingSize()));
-        assertThat(actual.getRateLimiter().getName(), 
is(expected.getRateLimiter().getName()));
+        assertAlgorithm(assertContext, actual.getRateLimiter(), 
expected.getRateLimiter(), "rate limiter");
     }
     
     private static void assertWrite(final SQLCaseAssertContext assertContext, 
final ReadOrWriteSegment actual, final ExpectedWrite expected) {
@@ -75,14 +75,18 @@ public final class AlterTransmissionRuleStatementAssert {
         }
         assertThat(actual.getWorkerThread(), is(expected.getWorkerThread()));
         assertThat(actual.getBatchSize(), is(expected.getBatchSize()));
-        assertThat(actual.getRateLimiter().getName(), 
is(expected.getRateLimiter().getName()));
+        assertAlgorithm(assertContext, actual.getRateLimiter(), 
expected.getRateLimiter(), "rate limiter");
     }
     
     private static void assertTypeStrategy(final SQLCaseAssertContext 
assertContext, final AlgorithmSegment actual, final ExpectedAlgorithm expected) 
{
+        assertAlgorithm(assertContext, actual, expected, "strategy");
+    }
+    
+    private static void assertAlgorithm(final SQLCaseAssertContext 
assertContext, final AlgorithmSegment actual, final ExpectedAlgorithm expected, 
final String subject) {
         if (null == expected) {
-            assertNull(actual, assertContext.getText("Actual strategy should 
not exist."));
+            assertNull(actual, assertContext.getText(String.format("Actual %s 
should not exist.", subject)));
         } else {
-            assertNotNull(actual, assertContext.getText("Actual strategy 
should exist."));
+            assertNotNull(actual, assertContext.getText(String.format("Actual 
%s should exist.", subject)));
             assertThat(assertContext.getText("Type assertion error"), 
actual.getName(), is(expected.getName()));
         }
     }
diff --git a/test/it/parser/src/main/resources/case/ral/cdc.xml 
b/test/it/parser/src/main/resources/case/ral/cdc.xml
index 2e15c116567..d25a731a892 100644
--- a/test/it/parser/src/main/resources/case/ral/cdc.xml
+++ b/test/it/parser/src/main/resources/case/ral/cdc.xml
@@ -54,6 +54,17 @@
         </rule>
     </alter-streaming-rule>
 
+    <alter-streaming-rule 
sql-case-id="alter-streaming-rule-read-without-rate-limiter">
+        <job-type-name>STREAMING</job-type-name>
+        <rule>
+            <read>
+                <worker-thread>20</worker-thread>
+                <batch-size>1000</batch-size>
+                <sharding-size>10000000</sharding-size>
+            </read>
+        </rule>
+    </alter-streaming-rule>
+
     <alter-streaming-rule sql-case-id="alter-streaming-rule-write-lite">
         <job-type-name>STREAMING</job-type-name>
         <rule>
diff --git a/test/it/parser/src/main/resources/sql/supported/ral/cdc.xml 
b/test/it/parser/src/main/resources/sql/supported/ral/cdc.xml
index b055bbf9be6..102004cf8ea 100644
--- a/test/it/parser/src/main/resources/sql/supported/ral/cdc.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ral/cdc.xml
@@ -20,6 +20,7 @@
     <sql-case id="show-streaming-rule" value="SHOW STREAMING RULE;" 
db-types="ShardingSphere"/>
     <sql-case id="alter-streaming-rule" value="ALTER STREAMING RULE 
(READ(WORKER_THREAD=20,BATCH_SIZE=1000,SHARDING_SIZE=10000000,RATE_LIMITER 
(TYPE(NAME='QPS',PROPERTIES('qps'='500')))),WRITE(WORKER_THREAD=20,BATCH_SIZE=2000,RATE_LIMITER
 (TYPE(NAME='TPS',PROPERTIES('tps'='2000')))),STREAM_CHANNEL 
(TYPE(NAME='MEMORY',PROPERTIES('block-queue-size'='100'))));" 
db-types="ShardingSphere" />
     <sql-case id="alter-streaming-rule-read-lite" value="ALTER STREAMING RULE 
(READ(RATE_LIMITER (TYPE(NAME='QPS'))));" db-types="ShardingSphere" />
+    <sql-case id="alter-streaming-rule-read-without-rate-limiter" value="ALTER 
STREAMING RULE 
(READ(WORKER_THREAD=20,BATCH_SIZE=1000,SHARDING_SIZE=10000000));" 
db-types="ShardingSphere" />
     <sql-case id="alter-streaming-rule-write-lite" value="ALTER STREAMING RULE 
(WRITE(RATE_LIMITER (TYPE(NAME='TPS'))));" db-types="ShardingSphere" />
     <sql-case id="show-streaming-list" value="SHOW STREAMING LIST;" 
db-types="ShardingSphere"/>
     <sql-case id="show-streaming-status" value="SHOW STREAMING STATUS 123;" 
db-types="ShardingSphere"/>

Reply via email to