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