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);