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 f6a584d0414 Make the generic type more precise for SQLTokenGenerator 
(#36148)
f6a584d0414 is described below

commit f6a584d04142910c7086d810f17a9c27e35d79b1
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Sat Aug 2 16:12:40 2025 +0800

    Make the generic type more precise for SQLTokenGenerator (#36148)
    
    * Make the generic type more precise for SQLTokenGenerator
    
    * Make the generic type more precise for SQLTokenGenerator
    
    * Make the generic type more precise for SQLTokenGenerator
---
 .../predicate/EncryptInsertPredicateColumnTokenGenerator.java       | 6 +++---
 .../predicate/EncryptInsertPredicateValueTokenGenerator.java        | 6 +++---
 .../generator/impl/ShardingAggregationDistinctTokenGenerator.java   | 6 +++---
 .../token/generator/impl/ShardingFetchDirectionTokenGenerator.java  | 5 +++--
 4 files changed, 12 insertions(+), 11 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateColumnTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateColumnTokenGenerator.java
index 28d0c52500f..afe94c3b962 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateColumnTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateColumnTokenGenerator.java
@@ -34,7 +34,7 @@ import java.util.Collection;
 @HighFrequencyInvocation
 @RequiredArgsConstructor
 @Setter
-public final class EncryptInsertPredicateColumnTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext> {
+public final class EncryptInsertPredicateColumnTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext> {
     
     private final EncryptRule rule;
     
@@ -45,8 +45,8 @@ public final class EncryptInsertPredicateColumnTokenGenerator 
implements Collect
     }
     
     @Override
-    public Collection<SQLToken> generateSQLTokens(final SQLStatementContext 
sqlStatementContext) {
+    public Collection<SQLToken> generateSQLTokens(final InsertStatementContext 
sqlStatementContext) {
         EncryptPredicateColumnTokenGenerator generator = new 
EncryptPredicateColumnTokenGenerator(rule);
-        return generator.generateSQLTokens(((InsertStatementContext) 
sqlStatementContext).getInsertSelectContext().getSelectStatementContext());
+        return 
generator.generateSQLTokens(sqlStatementContext.getInsertSelectContext().getSelectStatementContext());
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
index 6c0b71ac795..3dd89dc34ac 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptInsertPredicateValueTokenGenerator.java
@@ -39,7 +39,7 @@ import java.util.List;
 @HighFrequencyInvocation
 @RequiredArgsConstructor
 @Setter
-public final class EncryptInsertPredicateValueTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ParametersAware, 
EncryptConditionsAware {
+public final class EncryptInsertPredicateValueTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, ParametersAware, 
EncryptConditionsAware {
     
     private final EncryptRule rule;
     
@@ -56,10 +56,10 @@ public final class 
EncryptInsertPredicateValueTokenGenerator implements Collecti
     }
     
     @Override
-    public Collection<SQLToken> generateSQLTokens(final SQLStatementContext 
sqlStatementContext) {
+    public Collection<SQLToken> generateSQLTokens(final InsertStatementContext 
sqlStatementContext) {
         EncryptPredicateValueTokenGenerator generator = new 
EncryptPredicateValueTokenGenerator(rule, database);
         generator.setParameters(parameters);
         generator.setEncryptConditions(encryptConditions);
-        return generator.generateSQLTokens(((InsertStatementContext) 
sqlStatementContext).getInsertSelectContext().getSelectStatementContext());
+        return 
generator.generateSQLTokens(sqlStatementContext.getInsertSelectContext().getSelectStatementContext());
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingAggregationDistinctTokenGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingAggregationDistinctTokenGenerator.java
index 7a54b8a25ff..25c776e7ebf 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingAggregationDistinctTokenGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingAggregationDistinctTokenGenerator.java
@@ -35,7 +35,7 @@ import java.util.LinkedList;
  * Sharding aggregation distinct token generator.
  */
 @HighFrequencyInvocation
-public final class ShardingAggregationDistinctTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, IgnoreForSingleRoute {
+public final class ShardingAggregationDistinctTokenGenerator implements 
CollectionSQLTokenGenerator<SelectStatementContext>, IgnoreForSingleRoute {
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
@@ -43,9 +43,9 @@ public final class ShardingAggregationDistinctTokenGenerator 
implements Collecti
     }
     
     @Override
-    public Collection<SQLToken> generateSQLTokens(final SQLStatementContext 
sqlStatementContext) {
+    public Collection<SQLToken> generateSQLTokens(final SelectStatementContext 
sqlStatementContext) {
         Collection<SQLToken> result = new LinkedList<>();
-        for (AggregationDistinctProjection each : ((SelectStatementContext) 
sqlStatementContext).getProjectionsContext().getAggregationDistinctProjections())
 {
+        for (AggregationDistinctProjection each : 
sqlStatementContext.getProjectionsContext().getAggregationDistinctProjections())
 {
             result.add(generateSQLToken(each));
         }
         return result;
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingFetchDirectionTokenGenerator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingFetchDirectionTokenGenerator.java
index d392b677fc6..e8d7eb4ccf3 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingFetchDirectionTokenGenerator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ShardingFetchDirectionTokenGenerator.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.sharding.rewrite.token.generator.impl;
 import lombok.Setter;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.type.ddl.CursorHeldSQLStatementContext;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.OptionalSQLTokenGenerator;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.aware.ConnectionContextAware;
 import org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
@@ -35,7 +36,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.Fe
  */
 @HighFrequencyInvocation
 @Setter
-public final class ShardingFetchDirectionTokenGenerator implements 
OptionalSQLTokenGenerator<SQLStatementContext>, ConnectionContextAware {
+public final class ShardingFetchDirectionTokenGenerator implements 
OptionalSQLTokenGenerator<CursorHeldSQLStatementContext>, 
ConnectionContextAware {
     
     private ConnectionContext connectionContext;
     
@@ -45,7 +46,7 @@ public final class ShardingFetchDirectionTokenGenerator 
implements OptionalSQLTo
     }
     
     @Override
-    public SQLToken generateSQLToken(final SQLStatementContext 
sqlStatementContext) {
+    public SQLToken generateSQLToken(final CursorHeldSQLStatementContext 
sqlStatementContext) {
         FetchStatement fetchStatement = (FetchStatement) 
sqlStatementContext.getSqlStatement();
         CursorNameSegment cursorName = fetchStatement.getCursorName();
         int startIndex = 
fetchStatement.getDirection().map(DirectionSegment::getStartIndex).orElseGet("FETCH"::length);

Reply via email to