You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/06/23 06:07:09 UTC
[shardingsphere] branch master updated: Refactor for minor changes (#26506)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 f22805df669 Refactor for minor changes (#26506)
f22805df669 is described below
commit f22805df669753b724b6432d32d9fc115feb82b8
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Jun 23 14:07:01 2023 +0800
Refactor for minor changes (#26506)
---
.../generator/EncryptAssignmentTokenGenerator.java | 27 +++++++++++-----------
.../EncryptIndexColumnTokenGenerator.java | 14 ++++-------
.../generator/EncryptProjectionTokenGenerator.java | 4 ++--
.../EncryptCreateTableTokenGeneratorTest.java | 9 ++------
4 files changed, 21 insertions(+), 33 deletions(-)
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
index cb2f408644a..ebdd52eee48 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
@@ -94,7 +94,7 @@ public final class EncryptAssignmentTokenGenerator implements CollectionSQLToken
return Optional.of(generateParameterSQLToken(encryptTable, assignmentSegment));
}
if (assignmentSegment.getValue() instanceof LiteralExpressionSegment) {
- return Optional.of(generateLiteralSQLToken(schemaName, encryptTable, encryptColumn, assignmentSegment));
+ return Optional.of(generateLiteralSQLToken(schemaName, encryptTable.getTable(), encryptColumn, assignmentSegment));
}
return Optional.empty();
}
@@ -109,38 +109,37 @@ public final class EncryptAssignmentTokenGenerator implements CollectionSQLToken
return result;
}
- private EncryptAssignmentToken generateLiteralSQLToken(final String schemaName, final EncryptTable encryptTable, final EncryptColumn encryptColumn, final AssignmentSegment assignmentSegment) {
+ private EncryptAssignmentToken generateLiteralSQLToken(final String schemaName, final String tableName, final EncryptColumn encryptColumn, final AssignmentSegment assignmentSegment) {
EncryptLiteralAssignmentToken result = new EncryptLiteralAssignmentToken(assignmentSegment.getColumns().get(0).getStartIndex(), assignmentSegment.getStopIndex());
- addCipherAssignment(schemaName, encryptTable, encryptColumn, assignmentSegment, result);
- addAssistedQueryAssignment(schemaName, encryptTable, encryptColumn, assignmentSegment, result);
- addLikeAssignment(schemaName, encryptTable, encryptColumn, assignmentSegment, result);
+ addCipherAssignment(schemaName, tableName, encryptColumn, assignmentSegment, result);
+ addAssistedQueryAssignment(schemaName, tableName, encryptColumn, assignmentSegment, result);
+ addLikeAssignment(schemaName, tableName, encryptColumn, assignmentSegment, result);
return result;
}
- private void addCipherAssignment(final String schemaName, final EncryptTable encryptTable,
+ private void addCipherAssignment(final String schemaName, final String tableName,
final EncryptColumn encryptColumn, final AssignmentSegment assignmentSegment, final EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment) assignmentSegment.getValue()).getLiterals();
- Object cipherValue = encryptColumn.getCipher().encrypt(databaseName, schemaName, encryptTable.getTable(), assignmentSegment.getColumns().get(0).getIdentifier().getValue(),
- Collections.singletonList(originalValue)).iterator().next();
- token.addAssignment(encryptTable.getEncryptColumn(assignmentSegment.getColumns().get(0).getIdentifier().getValue()).getCipher().getName(), cipherValue);
+ Object cipherValue = encryptColumn.getCipher().encrypt(databaseName, schemaName, tableName, encryptColumn.getName(), Collections.singletonList(originalValue)).iterator().next();
+ token.addAssignment(encryptColumn.getCipher().getName(), cipherValue);
}
- private void addAssistedQueryAssignment(final String schemaName, final EncryptTable encryptTable, final EncryptColumn encryptColumn,
+ private void addAssistedQueryAssignment(final String schemaName, final String tableName, final EncryptColumn encryptColumn,
final AssignmentSegment assignmentSegment, final EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment) assignmentSegment.getValue()).getLiterals();
if (encryptColumn.getAssistedQuery().isPresent()) {
- Object assistedQueryValue = encryptColumn.getAssistedQuery().get().encrypt(databaseName, schemaName,
- encryptTable.getTable(), assignmentSegment.getColumns().get(0).getIdentifier().getValue(), Collections.singletonList(originalValue)).iterator().next();
+ Object assistedQueryValue = encryptColumn.getAssistedQuery().get().encrypt(
+ databaseName, schemaName, tableName, encryptColumn.getName(), Collections.singletonList(originalValue)).iterator().next();
token.addAssignment(encryptColumn.getAssistedQuery().get().getName(), assistedQueryValue);
}
}
- private void addLikeAssignment(final String schemaName, final EncryptTable encryptTable, final EncryptColumn encryptColumn,
+ private void addLikeAssignment(final String schemaName, final String tableName, final EncryptColumn encryptColumn,
final AssignmentSegment assignmentSegment, final EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment) assignmentSegment.getValue()).getLiterals();
if (encryptColumn.getLikeQuery().isPresent()) {
Object assistedQueryValue = encryptColumn.getLikeQuery().get().encrypt(databaseName, schemaName,
- encryptTable.getTable(), assignmentSegment.getColumns().get(0).getIdentifier().getValue(), Collections.singletonList(originalValue)).iterator().next();
+ tableName, assignmentSegment.getColumns().get(0).getIdentifier().getValue(), Collections.singletonList(originalValue)).iterator().next();
token.addAssignment(encryptColumn.getLikeQuery().get().getName(), assistedQueryValue);
}
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
index dae1b62adb9..63682a4d934 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
@@ -74,18 +74,12 @@ public final class EncryptIndexColumnTokenGenerator implements CollectionSQLToke
int startIndex = columnSegment.getStartIndex();
int stopIndex = columnSegment.getStopIndex();
EncryptColumn encryptColumn = encryptTable.getEncryptColumn(columnSegment.getIdentifier().getValue());
- return encryptColumn.getAssistedQuery().map(optional -> getAssistedQueryColumnToken(startIndex, stopIndex, optional.getName(), quoteCharacter))
- .orElseGet(() -> getCipherColumnToken(encryptColumn, startIndex, stopIndex, quoteCharacter));
+ String queryColumnName = encryptColumn.getAssistedQuery().isPresent() ? encryptColumn.getAssistedQuery().get().getName() : encryptColumn.getCipher().getName();
+ return getQueryColumnToken(startIndex, stopIndex, queryColumnName, quoteCharacter);
}
- private Optional<SQLToken> getAssistedQueryColumnToken(final int startIndex, final int stopIndex, final String columnName, final QuoteCharacter quoteCharacter) {
- Collection<Projection> columnProjections = getColumnProjections(columnName, quoteCharacter);
- return Optional.of(new SubstitutableColumnNameToken(startIndex, stopIndex, columnProjections, quoteCharacter));
- }
-
- private Optional<SQLToken> getCipherColumnToken(final EncryptColumn encryptColumn, final int startIndex, final int stopIndex, final QuoteCharacter quoteCharacter) {
- String cipherColumn = encryptColumn.getCipher().getName();
- Collection<Projection> columnProjections = getColumnProjections(cipherColumn, quoteCharacter);
+ private Optional<SQLToken> getQueryColumnToken(final int startIndex, final int stopIndex, final String queryColumnName, final QuoteCharacter quoteCharacter) {
+ Collection<Projection> columnProjections = getColumnProjections(queryColumnName, quoteCharacter);
return Optional.of(new SubstitutableColumnNameToken(startIndex, stopIndex, columnProjections, quoteCharacter));
}
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 f8e98de83f7..e0f12b6d497 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
@@ -202,9 +202,9 @@ public final class EncryptProjectionTokenGenerator implements CollectionSQLToken
}
private ColumnProjection generateCommonProjection(final EncryptColumn encryptColumn, final ColumnProjection column, final ShorthandProjectionSegment segment) {
- String encryptColumnName = encryptColumn.getCipher().getName();
+ String queryColumnName = encryptColumn.getCipher().getName();
IdentifierValue owner = (null == segment || !segment.getOwner().isPresent()) ? column.getOwnerIdentifier() : segment.getOwner().get().getIdentifier();
- return new ColumnProjection(owner, new IdentifierValue(encryptColumnName, column.getNameIdentifier().getQuoteCharacter()), column.getAlias().isPresent()
+ return new ColumnProjection(owner, new IdentifierValue(queryColumnName, column.getNameIdentifier().getQuoteCharacter()), column.getAlias().isPresent()
? column.getAliasIdentifier()
: column.getNameIdentifier());
}
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
index 4eebd699206..f059b9d3cf3 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
@@ -41,7 +41,6 @@ import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
-import java.util.Optional;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
@@ -68,13 +67,9 @@ class EncryptCreateTableTokenGeneratorTest {
private EncryptTable mockEncryptTable() {
EncryptTable result = mock(EncryptTable.class, RETURNS_DEEP_STUBS);
- EncryptColumn column = mockEncryptColumn();
+ EncryptColumn encryptColumn = mockEncryptColumn();
when(result.isEncryptColumn("certificate_number")).thenReturn(true);
- when(result.getEncryptColumn("certificate_number").getCipher().getName()).thenReturn(column.getCipher().getName());
- when(result.getEncryptColumn("certificate_number").getAssistedQuery())
- .thenReturn(Optional.of(new AssistedQueryColumnItem(column.getAssistedQuery().map(AssistedQueryColumnItem::getName).orElse(null), mock(AssistedEncryptAlgorithm.class))));
- when(result.getEncryptColumn("certificate_number").getLikeQuery())
- .thenReturn(Optional.of(new LikeQueryColumnItem(column.getLikeQuery().map(LikeQueryColumnItem::getName).orElse(null), mock(LikeEncryptAlgorithm.class))));
+ when(result.getEncryptColumn("certificate_number")).thenReturn(encryptColumn);
return result;
}