This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 a9f2aeb0222 Remove EncryptRule.findEncryptColumn (#26251)
a9f2aeb0222 is described below
commit a9f2aeb022211e1f818bdd96638d6cba809538d8
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jun 10 17:01:41 2023 +0800
Remove EncryptRule.findEncryptColumn (#26251)
---
.../encrypt/rewrite/condition/EncryptConditionEngine.java | 2 +-
.../token/generator/EncryptAlterTableTokenGenerator.java | 2 +-
.../token/generator/EncryptProjectionTokenGenerator.java | 6 +++---
.../org/apache/shardingsphere/encrypt/rule/EncryptRule.java | 11 -----------
.../rewrite/impl/EncryptAlterTableTokenGeneratorTest.java | 4 ++--
.../rewrite/impl/EncryptProjectionTokenGeneratorTest.java | 2 +-
.../org/apache/shardingsphere/sharding/rule/ShardingRule.java | 2 +-
7 files changed, 9 insertions(+), 20 deletions(-)
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
index 2c67868a7c5..08396319c02 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
@@ -118,7 +118,7 @@ public final class EncryptConditionEngine {
}
for (ColumnSegment each : ColumnExtractor.extract(expression)) {
String tableName =
expressionTableNames.getOrDefault(each.getExpression(), "");
- Optional<EncryptColumn> encryptColumn =
encryptRule.findEncryptColumn(tableName, each.getIdentifier().getValue());
+ Optional<EncryptColumn> encryptColumn =
encryptRule.findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptColumn(each.getIdentifier().getValue()));
Optional<EncryptCondition> encryptCondition =
encryptColumn.isPresent() ? createEncryptCondition(expression, tableName) :
Optional.empty();
encryptCondition.ifPresent(encryptConditions::add);
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
index 26bf43603f1..53bf8e3c428 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
@@ -136,7 +136,7 @@ public final class EncryptAlterTableTokenGenerator
implements CollectionSQLToken
}
private EncryptColumn getEncryptColumn(final String tableName, final
String columnName) {
- return encryptRule.findEncryptColumn(tableName,
columnName).orElseThrow(() -> new EncryptColumnNotFoundException(tableName,
columnName));
+ return encryptRule.findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptColumn(columnName)).orElseThrow(() -> new
EncryptColumnNotFoundException(tableName, columnName));
}
@SuppressWarnings("rawtypes")
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
index 915ba0aa714..a5e55d3e2cd 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
@@ -88,7 +88,7 @@ public final class EncryptProjectionTokenGenerator implements
CollectionSQLToken
ColumnProjectionSegment columnSegment =
(ColumnProjectionSegment) each;
ColumnProjection columnProjection =
buildColumnProjection(columnSegment);
String tableName =
columnTableNames.get(columnProjection.getExpression());
- if (isEncryptColumn(tableName, columnProjection.getName())) {
+ if (null != tableName &&
encryptRule.findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptColumn(columnProjection.getName())).isPresent()) {
result.add(generateSQLToken(tableName, columnSegment,
columnProjection, subqueryType));
}
}
@@ -103,7 +103,7 @@ public final class EncryptProjectionTokenGenerator
implements CollectionSQLToken
}
private boolean isEncryptColumn(final String tableName, final String
columnName) {
- return null != tableName && encryptRule.findEncryptColumn(tableName,
columnName).isPresent();
+ return null != tableName &&
encryptRule.findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptColumn(columnName)).isPresent();
}
private SubstitutableColumnNameToken generateSQLToken(final String
tableName, final ColumnProjectionSegment columnSegment,
@@ -119,7 +119,7 @@ public final class EncryptProjectionTokenGenerator
implements CollectionSQLToken
List<Projection> projections = new LinkedList<>();
for (Projection each : actualColumns) {
String tableName = columnTableNames.get(each.getExpression());
- if (!isEncryptColumn(tableName, each.getColumnLabel())) {
+ if (null == tableName ||
!encryptRule.findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptColumn(each.getColumnLabel())).isPresent()) {
projections.add(each.getAlias().map(optional -> (Projection)
new ColumnProjection(null, optional, null)).orElse(each));
} else if (each instanceof ColumnProjection) {
projections.addAll(generateProjections(tableName,
(ColumnProjection) each, subqueryType, true, segment));
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
index 7269393de1e..566c923d9ae 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
@@ -125,17 +125,6 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
return Optional.ofNullable(tables.get(tableName.toLowerCase()));
}
- /**
- * Find encrypt column.
- *
- * @param tableName table name
- * @param logicColumnName logic column name
- * @return encrypt column
- */
- public Optional<EncryptColumn> findEncryptColumn(final String tableName,
final String logicColumnName) {
- return findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptColumn(logicColumnName));
- }
-
/**
* Find standard encryptor.
*
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptAlterTableTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptAlterTableTokenGeneratorTest.java
index 9c366ef13bc..da7f629c485 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptAlterTableTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptAlterTableTokenGeneratorTest.java
@@ -66,12 +66,12 @@ class EncryptAlterTableTokenGeneratorTest {
when(result.findLikeQueryColumn("t_encrypt",
"certificate_number")).thenReturn(Optional.of("like_certificate_number"));
EncryptTable encryptTable = mock(EncryptTable.class);
when(encryptTable.getLogicColumns()).thenReturn(Collections.singleton("t_encrypt"));
+
when(encryptTable.findEncryptColumn("certificate_number")).thenReturn(Optional.of(mockEncryptColumn()));
+
when(encryptTable.findEncryptColumn("certificate_number_new")).thenReturn(Optional.of(mockNewEncryptColumn()));
StandardEncryptAlgorithm<?, ?> encryptAlgorithm =
mock(StandardEncryptAlgorithm.class);
when(result.findStandardEncryptor("t_encrypt",
"certificate_number")).thenReturn(Optional.of(encryptAlgorithm));
when(result.findStandardEncryptor("t_encrypt",
"certificate_number_new")).thenReturn(Optional.of(encryptAlgorithm));
when(result.findEncryptTable("t_encrypt")).thenReturn(Optional.of(encryptTable));
- when(result.findEncryptColumn("t_encrypt",
"certificate_number")).thenReturn(Optional.of(mockEncryptColumn()));
- when(result.findEncryptColumn("t_encrypt",
"certificate_number_new")).thenReturn(Optional.of(mockNewEncryptColumn()));
when(result.getCipherColumn("t_encrypt",
"certificate_number_new")).thenReturn("cipher_certificate_number_new");
return result;
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java
index eb53ff3f04b..1989dbc902d 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/impl/EncryptProjectionTokenGeneratorTest.java
@@ -72,7 +72,7 @@ class EncryptProjectionTokenGeneratorTest {
when(result.findEncryptTable("doctor1")).thenReturn(Optional.of(encryptTable2));
EncryptColumn column = new EncryptColumn("mobile", new
EncryptColumnItem("mobile", "standard_encryptor"));
column.setLikeQuery(new EncryptColumnItem("mobile", "like_encryptor"));
- when(result.findEncryptColumn("doctor",
"mobile")).thenReturn(Optional.of(column));
+
when(encryptTable1.findEncryptColumn("mobile")).thenReturn(Optional.of(column));
return result;
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index bc6f8c82ed2..eed78d2cc27 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -715,7 +715,7 @@ public final class ShardingRule implements DatabaseRule,
DataNodeContainedRule,
}
return shardingTableDataNodes.getOrDefault(tableName.toLowerCase(),
Collections.emptyList());
}
-
+
@Override
public Optional<String> findFirstActualTable(final String logicTable) {
return findTableRule(logicTable).map(optional ->
optional.getActualDataNodes().get(0).getTableName());