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 e0eb41ac33f Rename JoinConditionsEncryptorComparator (#32274) e0eb41ac33f is described below commit e0eb41ac33fba87d1ef4455c217dc8bf946b7662 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Fri Jul 26 01:17:16 2024 +0800 Rename JoinConditionsEncryptorComparator (#32274) * Rename JoinConditionsEncryptorComparator * Rename JoinConditionsEncryptorComparator --- ...va => InsertSelectColumnsEncryptorComparator.java} | 19 ++++++++++--------- ...er.java => JoinConditionsEncryptorComparator.java} | 6 +++--- .../EncryptPredicateColumnTokenGenerator.java | 4 ++-- .../insert/EncryptInsertCipherNameTokenGenerator.java | 4 ++-- .../EncryptInsertDefaultColumnsTokenGenerator.java | 4 ++-- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/InsertSelectColumnsSameEncryptorUsageChecker.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/InsertSelectColumnsEncryptorComparator.java similarity index 75% rename from features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/InsertSelectColumnsSameEncryptorUsageChecker.java rename to features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/InsertSelectColumnsEncryptorComparator.java index 9cec77b5667..cad76f2942d 100644 --- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/InsertSelectColumnsSameEncryptorUsageChecker.java +++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/InsertSelectColumnsEncryptorComparator.java @@ -31,13 +31,13 @@ import java.util.Collection; import java.util.Iterator; /** - * Insert select columns same encryptor usage checker. + * Insert select columns encryptor comparator. */ @NoArgsConstructor(access = AccessLevel.PRIVATE) -public final class InsertSelectColumnsSameEncryptorUsageChecker { +public final class InsertSelectColumnsEncryptorComparator { /** - * Judge whether all insert select columns use same encryptor or not. + * Compare whether same encryptor. * * @param insertColumns insert columns * @param projections projections @@ -48,13 +48,14 @@ public final class InsertSelectColumnsSameEncryptorUsageChecker { Iterator<ColumnSegment> insertColumnsIterator = insertColumns.iterator(); Iterator<Projection> projectionIterator = projections.iterator(); while (insertColumnsIterator.hasNext()) { - ColumnSegment columnSegment = insertColumnsIterator.next(); - EncryptAlgorithm columnEncryptor = encryptRule.findQueryEncryptor( - columnSegment.getColumnBoundInfo().getOriginalTable().getValue(), columnSegment.getColumnBoundInfo().getOriginalColumn().getValue()).orElse(null); + ColumnSegment insertColumnSegment = insertColumnsIterator.next(); + EncryptAlgorithm insertColumnEncryptor = encryptRule.findQueryEncryptor( + insertColumnSegment.getColumnBoundInfo().getOriginalTable().getValue(), insertColumnSegment.getColumnBoundInfo().getOriginalColumn().getValue()).orElse(null); Projection projection = projectionIterator.next(); - ColumnSegmentBoundInfo columnBoundInfo = getColumnSegmentBoundInfo(projection); - EncryptAlgorithm projectionEncryptor = encryptRule.findQueryEncryptor(columnBoundInfo.getOriginalTable().getValue(), columnBoundInfo.getOriginalColumn().getValue()).orElse(null); - if (!EncryptorComparator.isSame(columnEncryptor, projectionEncryptor)) { + ColumnSegmentBoundInfo projectionColumnBoundInfo = getColumnSegmentBoundInfo(projection); + EncryptAlgorithm projectionEncryptor = + encryptRule.findQueryEncryptor(projectionColumnBoundInfo.getOriginalTable().getValue(), projectionColumnBoundInfo.getOriginalColumn().getValue()).orElse(null); + if (!EncryptorComparator.isSame(insertColumnEncryptor, projectionEncryptor)) { return false; } } diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/JoinConditionsSameEncryptorUsageChecker.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/JoinConditionsEncryptorComparator.java similarity index 93% rename from features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/JoinConditionsSameEncryptorUsageChecker.java rename to features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/JoinConditionsEncryptorComparator.java index e506a4d6970..58dec2588d6 100644 --- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/JoinConditionsSameEncryptorUsageChecker.java +++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/comparator/JoinConditionsEncryptorComparator.java @@ -28,13 +28,13 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.bound import java.util.Collection; /** - * Join conditions same encryptor usage checker. + * Join conditions encryptor comparator. */ @NoArgsConstructor(access = AccessLevel.PRIVATE) -public final class JoinConditionsSameEncryptorUsageChecker { +public final class JoinConditionsEncryptorComparator { /** - * Judge whether all join conditions use same encryptor or not. + * Compare whether same encryptor. * * @param joinConditions join conditions * @param encryptRule encrypt rule diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java index 69e2e744614..ca56e7c65d9 100644 --- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java +++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java @@ -21,7 +21,7 @@ import lombok.Setter; import org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException; import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseTypeAware; import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware; -import org.apache.shardingsphere.encrypt.rewrite.token.comparator.JoinConditionsSameEncryptorUsageChecker; +import org.apache.shardingsphere.encrypt.rewrite.token.comparator.JoinConditionsEncryptorComparator; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn; import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem; @@ -84,7 +84,7 @@ public final class EncryptPredicateColumnTokenGenerator implements CollectionSQL whereSegments = ((WhereAvailable) sqlStatementContext).getWhereSegments(); joinConditions = ((WhereAvailable) sqlStatementContext).getJoinConditions(); } - ShardingSpherePreconditions.checkState(JoinConditionsSameEncryptorUsageChecker.isSame(joinConditions, encryptRule), + ShardingSpherePreconditions.checkState(JoinConditionsEncryptorComparator.isSame(joinConditions, encryptRule), () -> new UnsupportedSQLOperationException("Can not use different encryptor in join condition")); String defaultSchema = new DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(databaseName); ShardingSphereSchema schema = ((TableAvailable) sqlStatementContext).getTablesContext().getSchemaName().map(schemas::get).orElseGet(() -> schemas.get(defaultSchema)); diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java index fb3fc973aed..5028d8205db 100644 --- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java +++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert; import com.google.common.base.Preconditions; import lombok.Setter; import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware; -import org.apache.shardingsphere.encrypt.rewrite.token.comparator.InsertSelectColumnsSameEncryptorUsageChecker; +import org.apache.shardingsphere.encrypt.rewrite.token.comparator.InsertSelectColumnsEncryptorComparator; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.encrypt.rule.table.EncryptTable; import org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection; @@ -65,7 +65,7 @@ public final class EncryptInsertCipherNameTokenGenerator implements CollectionSQ if (null != insertStatementContext.getInsertSelectContext()) { Collection<Projection> projections = insertStatementContext.getInsertSelectContext().getSelectStatementContext().getProjectionsContext().getExpandProjections(); ShardingSpherePreconditions.checkState(insertColumns.size() == projections.size(), () -> new UnsupportedSQLOperationException("Column count doesn't match value count.")); - ShardingSpherePreconditions.checkState(InsertSelectColumnsSameEncryptorUsageChecker.isSame(insertColumns, projections, encryptRule), + ShardingSpherePreconditions.checkState(InsertSelectColumnsEncryptorComparator.isSame(insertColumns, projections, encryptRule), () -> new UnsupportedSQLOperationException("Can not use different encryptor in insert select columns")); } EncryptTable encryptTable = encryptRule.getEncryptTable(insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue()); diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java index 2f6cdf1c711..28964573e1e 100644 --- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java +++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java @@ -20,7 +20,7 @@ package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert; import com.google.common.base.Preconditions; import lombok.Setter; import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware; -import org.apache.shardingsphere.encrypt.rewrite.token.comparator.InsertSelectColumnsSameEncryptorUsageChecker; +import org.apache.shardingsphere.encrypt.rewrite.token.comparator.InsertSelectColumnsEncryptorComparator; import org.apache.shardingsphere.encrypt.rule.EncryptRule; import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn; import org.apache.shardingsphere.encrypt.rule.table.EncryptTable; @@ -90,7 +90,7 @@ public final class EncryptInsertDefaultColumnsTokenGenerator implements Optional Collection<ColumnSegment> derivedInsertColumns = insertStatementContext.getSqlStatement().getDerivedInsertColumns(); Collection<Projection> projections = insertStatementContext.getInsertSelectContext().getSelectStatementContext().getProjectionsContext().getExpandProjections(); ShardingSpherePreconditions.checkState(derivedInsertColumns.size() == projections.size(), () -> new UnsupportedSQLOperationException("Column count doesn't match value count.")); - ShardingSpherePreconditions.checkState(InsertSelectColumnsSameEncryptorUsageChecker.isSame(derivedInsertColumns, projections, encryptRule), + ShardingSpherePreconditions.checkState(InsertSelectColumnsEncryptorComparator.isSame(derivedInsertColumns, projections, encryptRule), () -> new UnsupportedSQLOperationException("Can not use different encryptor in insert select columns")); } return new UseDefaultInsertColumnsToken(