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 <[email protected]>
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(