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 b52f2163fda Remove EncryptTable.findAssistedQueryColumn() and 
findLikeQueryColumn() (#26505)
b52f2163fda is described below

commit b52f2163fda175712698fc0ceaf17543b8e53155
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jun 23 10:52:01 2023 +0800

    Remove EncryptTable.findAssistedQueryColumn() and findLikeQueryColumn() 
(#26505)
    
    * Remove EncryptTable.getCipherColumn()
    
    * Remove EncryptTable.findAssistedQueryColumn() and findLikeQueryColumn()
---
 .../generator/EncryptAlterTableTokenGenerator.java | 52 +++++++++++-----------
 .../generator/EncryptAssignmentTokenGenerator.java |  7 +--
 .../EncryptCreateTableTokenGenerator.java          | 32 ++++++-------
 ...ptForUseDefaultInsertColumnsTokenGenerator.java | 24 +++++-----
 .../EncryptIndexColumnTokenGenerator.java          | 11 ++---
 .../EncryptOrderByItemTokenGenerator.java          | 19 ++++----
 .../EncryptPredicateColumnTokenGenerator.java      | 16 +++----
 .../generator/EncryptProjectionTokenGenerator.java | 46 ++++++++++---------
 .../EncryptInsertDerivedColumnsTokenGenerator.java | 11 ++++-
 .../EncryptInsertOnUpdateTokenGenerator.java       | 27 ++++++-----
 .../insert/EncryptInsertValuesTokenGenerator.java  |  4 +-
 .../shardingsphere/encrypt/rule/EncryptTable.java  | 30 -------------
 .../EncryptAlterTableTokenGeneratorTest.java       |  6 ++-
 .../EncryptCreateTableTokenGeneratorTest.java      |  7 ++-
 .../EncryptOrderByItemTokenGeneratorTest.java      |  4 ++
 .../EncryptProjectionTokenGeneratorTest.java       |  4 ++
 ...ryptInsertDerivedColumnsTokenGeneratorTest.java |  7 ++-
 .../encrypt/rule/EncryptTableTest.java             | 25 -----------
 18 files changed, 153 insertions(+), 179 deletions(-)

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 b0631a0476b..1e9687cea32 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
@@ -94,23 +94,23 @@ public final class EncryptAlterTableTokenGenerator 
implements CollectionSQLToken
         for (ColumnDefinitionSegment each : 
addColumnDefinitionSegment.getColumnDefinitions()) {
             String columnName = 
each.getColumnName().getIdentifier().getValue();
             if (encryptTable.isEncryptColumn(columnName)) {
-                result.addAll(getAddColumnTokens(encryptTable, columnName, 
addColumnDefinitionSegment, each));
+                
result.addAll(getAddColumnTokens(encryptTable.getEncryptColumn(columnName), 
addColumnDefinitionSegment, each));
             }
         }
         getAddColumnPositionToken(encryptTable, 
addColumnDefinitionSegment).ifPresent(result::add);
         return result;
     }
     
-    private Collection<SQLToken> getAddColumnTokens(final EncryptTable 
encryptTable, final String columnName,
+    private Collection<SQLToken> getAddColumnTokens(final EncryptColumn 
encryptColumn,
                                                     final 
AddColumnDefinitionSegment addColumnDefinitionSegment, final 
ColumnDefinitionSegment columnDefinitionSegment) {
         Collection<SQLToken> result = new LinkedList<>();
         result.add(new RemoveToken(columnDefinitionSegment.getStartIndex(), 
columnDefinitionSegment.getColumnName().getStopIndex()));
         result.add(new 
EncryptAlterTableToken(columnDefinitionSegment.getColumnName().getStopIndex() + 
1, columnDefinitionSegment.getColumnName().getStopIndex(),
-                
encryptTable.getEncryptColumn(columnName).getCipher().getName(), null));
-        encryptTable.findAssistedQueryColumn(columnName).map(optional -> new 
EncryptAlterTableToken(
-                addColumnDefinitionSegment.getStopIndex() + 1, 
columnDefinitionSegment.getColumnName().getStopIndex(), optional, ", ADD 
COLUMN")).ifPresent(result::add);
-        encryptTable.findLikeQueryColumn(columnName).map(optional -> new 
EncryptAlterTableToken(
-                addColumnDefinitionSegment.getStopIndex() + 1, 
columnDefinitionSegment.getColumnName().getStopIndex(), optional, ", ADD 
COLUMN")).ifPresent(result::add);
+                encryptColumn.getCipher().getName(), null));
+        encryptColumn.getAssistedQuery().map(optional -> new 
EncryptAlterTableToken(
+                addColumnDefinitionSegment.getStopIndex() + 1, 
columnDefinitionSegment.getColumnName().getStopIndex(), optional.getName(), ", 
ADD COLUMN")).ifPresent(result::add);
+        encryptColumn.getLikeQuery().map(optional -> new 
EncryptAlterTableToken(
+                addColumnDefinitionSegment.getStopIndex() + 1, 
columnDefinitionSegment.getColumnName().getStopIndex(), optional.getName(), ", 
ADD COLUMN")).ifPresent(result::add);
         return result;
     }
     
@@ -130,23 +130,23 @@ public final class EncryptAlterTableTokenGenerator 
implements CollectionSQLToken
         for (ModifyColumnDefinitionSegment each : columnDefinitionSegments) {
             String columnName = 
each.getColumnDefinition().getColumnName().getIdentifier().getValue();
             if (encryptTable.isEncryptColumn(columnName)) {
-                result.addAll(getModifyColumnTokens(encryptTable, columnName, 
each));
+                
result.addAll(getModifyColumnTokens(encryptTable.getEncryptColumn(columnName), 
each));
             }
             each.getColumnPosition().flatMap(optional -> 
getColumnPositionToken(encryptTable, optional)).ifPresent(result::add);
         }
         return result;
     }
     
-    private Collection<SQLToken> getModifyColumnTokens(final EncryptTable 
encryptTable, final String columnName, final ModifyColumnDefinitionSegment 
modifyColumnDefinitionSegment) {
+    private Collection<SQLToken> getModifyColumnTokens(final EncryptColumn 
encryptColumn, final ModifyColumnDefinitionSegment 
modifyColumnDefinitionSegment) {
         Collection<SQLToken> result = new LinkedList<>();
         ColumnDefinitionSegment columnDefinitionSegment = 
modifyColumnDefinitionSegment.getColumnDefinition();
         result.add(new 
RemoveToken(columnDefinitionSegment.getColumnName().getStartIndex(), 
columnDefinitionSegment.getColumnName().getStopIndex()));
         result.add(new 
EncryptAlterTableToken(columnDefinitionSegment.getColumnName().getStopIndex() + 
1, columnDefinitionSegment.getColumnName().getStopIndex(),
-                
encryptTable.getEncryptColumn(columnName).getCipher().getName(), null));
-        encryptTable.findAssistedQueryColumn(columnName).map(optional -> new 
EncryptAlterTableToken(modifyColumnDefinitionSegment.getStopIndex() + 1,
-                columnDefinitionSegment.getColumnName().getStopIndex(), 
optional, ", MODIFY COLUMN")).ifPresent(result::add);
-        encryptTable.findLikeQueryColumn(columnName).map(optional -> new 
EncryptAlterTableToken(modifyColumnDefinitionSegment.getStopIndex() + 1,
-                columnDefinitionSegment.getColumnName().getStopIndex(), 
optional, ", MODIFY COLUMN")).ifPresent(result::add);
+                encryptColumn.getCipher().getName(), null));
+        encryptColumn.getAssistedQuery().map(optional -> new 
EncryptAlterTableToken(modifyColumnDefinitionSegment.getStopIndex() + 1,
+                columnDefinitionSegment.getColumnName().getStopIndex(), 
optional.getName(), ", MODIFY COLUMN")).ifPresent(result::add);
+        encryptColumn.getLikeQuery().map(optional -> new 
EncryptAlterTableToken(modifyColumnDefinitionSegment.getStopIndex() + 1,
+                columnDefinitionSegment.getColumnName().getStopIndex(), 
optional.getName(), ", MODIFY COLUMN")).ifPresent(result::add);
         return result;
     }
     
@@ -210,15 +210,15 @@ public final class EncryptAlterTableTokenGenerator 
implements CollectionSQLToken
         result.add(new 
RemoveToken(segment.getColumnDefinition().getColumnName().getStartIndex(), 
segment.getColumnDefinition().getColumnName().getStopIndex()));
         result.add(new 
EncryptAlterTableToken(segment.getColumnDefinition().getColumnName().getStopIndex()
 + 1, segment.getColumnDefinition().getColumnName().getStopIndex(),
                 
encryptTable.getEncryptColumn(segment.getColumnDefinition().getColumnName().getIdentifier().getValue()).getCipher().getName(),
 null));
-        String previousColumnName = 
segment.getPreviousColumn().getIdentifier().getValue();
+        EncryptColumn previousEncryptColumn = 
encryptTable.getEncryptColumn(segment.getPreviousColumn().getIdentifier().getValue());
         EncryptColumn encryptColumn = 
encryptTable.getEncryptColumn(segment.getColumnDefinition().getColumnName().getIdentifier().getValue());
-        encryptTable.findAssistedQueryColumn(previousColumnName)
+        previousEncryptColumn.getAssistedQuery()
                 .map(optional -> new 
EncryptAlterTableToken(segment.getStopIndex() + 1, 
segment.getColumnDefinition().getColumnName().getStopIndex(),
-                        
encryptColumn.getAssistedQuery().map(AssistedQueryColumnItem::getName).orElse(""),
 ", CHANGE COLUMN " + optional))
+                        
encryptColumn.getAssistedQuery().map(AssistedQueryColumnItem::getName).orElse(""),
 ", CHANGE COLUMN " + optional.getName()))
                 .ifPresent(result::add);
-        encryptTable.findLikeQueryColumn(previousColumnName)
+        previousEncryptColumn.getLikeQuery()
                 .map(optional -> new 
EncryptAlterTableToken(segment.getStopIndex() + 1, 
segment.getColumnDefinition().getColumnName().getStopIndex(),
-                        
encryptColumn.getLikeQuery().map(LikeQueryColumnItem::getName).orElse(""), ", 
CHANGE COLUMN " + optional))
+                        
encryptColumn.getLikeQuery().map(LikeQueryColumnItem::getName).orElse(""), ", 
CHANGE COLUMN " + optional.getName()))
                 .ifPresent(result::add);
         return result;
     }
@@ -244,21 +244,21 @@ public final class EncryptAlterTableTokenGenerator 
implements CollectionSQLToken
         for (ColumnSegment each : dropColumnDefinitionSegment.getColumns()) {
             String columnName = each.getQualifiedName();
             if (encryptTable.isEncryptColumn(columnName)) {
-                result.addAll(getDropColumnTokens(encryptTable, columnName, 
each, dropColumnDefinitionSegment));
+                
result.addAll(getDropColumnTokens(encryptTable.getEncryptColumn(columnName), 
each, dropColumnDefinitionSegment));
             }
         }
         return result;
     }
     
-    private Collection<SQLToken> getDropColumnTokens(final EncryptTable 
encryptTable, final String columnName,
+    private Collection<SQLToken> getDropColumnTokens(final EncryptColumn 
encryptColumn,
                                                      final ColumnSegment 
columnSegment, final DropColumnDefinitionSegment dropColumnDefinitionSegment) {
         Collection<SQLToken> result = new LinkedList<>();
         result.add(new RemoveToken(columnSegment.getStartIndex(), 
columnSegment.getStopIndex()));
-        result.add(new EncryptAlterTableToken(columnSegment.getStopIndex() + 
1, columnSegment.getStopIndex(), 
encryptTable.getEncryptColumn(columnName).getCipher().getName(), null));
-        encryptTable.findAssistedQueryColumn(columnName).map(optional -> new 
EncryptAlterTableToken(dropColumnDefinitionSegment.getStopIndex() + 1,
-                dropColumnDefinitionSegment.getStopIndex(), optional, ", DROP 
COLUMN")).ifPresent(result::add);
-        encryptTable.findLikeQueryColumn(columnName).map(optional -> new 
EncryptAlterTableToken(dropColumnDefinitionSegment.getStopIndex() + 1,
-                dropColumnDefinitionSegment.getStopIndex(), optional, ", DROP 
COLUMN")).ifPresent(result::add);
+        result.add(new EncryptAlterTableToken(columnSegment.getStopIndex() + 
1, columnSegment.getStopIndex(), encryptColumn.getCipher().getName(), null));
+        encryptColumn.getAssistedQuery().map(optional -> new 
EncryptAlterTableToken(dropColumnDefinitionSegment.getStopIndex() + 1,
+                dropColumnDefinitionSegment.getStopIndex(), 
optional.getName(), ", DROP COLUMN")).ifPresent(result::add);
+        encryptColumn.getLikeQuery().map(optional -> new 
EncryptAlterTableToken(dropColumnDefinitionSegment.getStopIndex() + 1,
+                dropColumnDefinitionSegment.getStopIndex(), 
optional.getName(), ", DROP COLUMN")).ifPresent(result::add);
         return result;
     }
     
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 211fa41585f..cb2f408644a 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
@@ -102,9 +102,10 @@ public final class EncryptAssignmentTokenGenerator 
implements CollectionSQLToken
     private EncryptAssignmentToken generateParameterSQLToken(final 
EncryptTable encryptTable, final AssignmentSegment assignmentSegment) {
         EncryptParameterAssignmentToken result = new 
EncryptParameterAssignmentToken(assignmentSegment.getColumns().get(0).getStartIndex(),
 assignmentSegment.getStopIndex());
         String columnName = 
assignmentSegment.getColumns().get(0).getIdentifier().getValue();
-        
result.addColumnName(encryptTable.getEncryptColumn(columnName).getCipher().getName());
-        
encryptTable.findAssistedQueryColumn(columnName).ifPresent(result::addColumnName);
-        
encryptTable.findLikeQueryColumn(columnName).ifPresent(result::addColumnName);
+        EncryptColumn encryptColumn = 
encryptTable.getEncryptColumn(columnName);
+        result.addColumnName(encryptColumn.getCipher().getName());
+        encryptColumn.getAssistedQuery().ifPresent(optional -> 
result.addColumnName(optional.getName()));
+        encryptColumn.getLikeQuery().ifPresent(optional -> 
result.addColumnName(optional.getName()));
         return result;
     }
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java
index 841541f55c3..ea68f1e3973 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGenerator.java
@@ -21,6 +21,7 @@ import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
@@ -62,41 +63,36 @@ public final class EncryptCreateTableTokenGenerator 
implements CollectionSQLToke
             ColumnDefinitionSegment each = columns.get(index);
             String columnName = 
each.getColumnName().getIdentifier().getValue();
             if (encryptTable.isEncryptColumn(columnName)) {
-                result.addAll(getColumnTokens(encryptTable, columnName, each, 
columns, index));
+                
result.addAll(getColumnTokens(encryptTable.getEncryptColumn(columnName), each, 
columns, index));
             }
         }
         return result;
     }
     
-    private Collection<SQLToken> getColumnTokens(final EncryptTable 
encryptTable, final String columnName, final ColumnDefinitionSegment column,
-                                                 final 
List<ColumnDefinitionSegment> columns, final int index) {
+    private Collection<SQLToken> getColumnTokens(final EncryptColumn 
encryptColumn, final ColumnDefinitionSegment column, final 
List<ColumnDefinitionSegment> columns, final int index) {
         boolean lastColumn = columns.size() - 1 == index;
         int columnStopIndex = lastColumn ? column.getStopIndex() : 
columns.get(index + 1).getStartIndex() - 1;
         Collection<SQLToken> result = new LinkedList<>();
         result.add(new RemoveToken(column.getStartIndex(), columnStopIndex));
-        result.add(getCipherColumnToken(encryptTable, columnName, column, 
columnStopIndex));
-        getAssistedQueryColumnToken(encryptTable, columnName, column, 
columnStopIndex, lastColumn).ifPresent(result::add);
-        getLikeQueryColumnToken(encryptTable, columnName, column, 
columnStopIndex, lastColumn).ifPresent(result::add);
+        result.add(getCipherColumnToken(encryptColumn, column, 
columnStopIndex));
+        getAssistedQueryColumnToken(encryptColumn, column, columnStopIndex, 
lastColumn).ifPresent(result::add);
+        getLikeQueryColumnToken(encryptColumn, column, columnStopIndex, 
lastColumn).ifPresent(result::add);
         return result;
     }
     
-    private SQLToken getCipherColumnToken(final EncryptTable encryptTable, 
final String columnName, final ColumnDefinitionSegment column, final int 
stopIndex) {
+    private SQLToken getCipherColumnToken(final EncryptColumn encryptColumn, 
final ColumnDefinitionSegment column, final int stopIndex) {
         return new SubstitutableColumnNameToken(stopIndex + 1, 
column.getColumnName().getStopIndex(),
-                getColumnProjections(new 
IdentifierValue(encryptTable.getEncryptColumn(columnName).getCipher().getName(),
 column.getColumnName().getIdentifier().getQuoteCharacter())));
+                getColumnProjections(new 
IdentifierValue(encryptColumn.getCipher().getName(), 
column.getColumnName().getIdentifier().getQuoteCharacter())));
     }
     
-    private Optional<? extends SQLToken> getAssistedQueryColumnToken(final 
EncryptTable encryptTable, final String columnName, final 
ColumnDefinitionSegment column,
-                                                                     final int 
stopIndex, final boolean lastColumn) {
-        Optional<String> assistedQueryColumn = 
encryptTable.findAssistedQueryColumn(columnName);
-        return assistedQueryColumn.map(optional -> new 
SubstitutableColumnNameToken(stopIndex + 1, 
column.getColumnName().getStopIndex(),
-                getColumnProjections(new IdentifierValue(optional, 
column.getColumnName().getIdentifier().getQuoteCharacter())), lastColumn));
+    private Optional<? extends SQLToken> getAssistedQueryColumnToken(final 
EncryptColumn encryptColumn, final ColumnDefinitionSegment column, final int 
stopIndex, final boolean lastColumn) {
+        return encryptColumn.getAssistedQuery().map(optional -> new 
SubstitutableColumnNameToken(stopIndex + 1, 
column.getColumnName().getStopIndex(),
+                getColumnProjections(new IdentifierValue(optional.getName(), 
column.getColumnName().getIdentifier().getQuoteCharacter())), lastColumn));
     }
     
-    private Optional<? extends SQLToken> getLikeQueryColumnToken(final 
EncryptTable encryptTable, final String columnName, final 
ColumnDefinitionSegment column,
-                                                                 final int 
stopIndex, final boolean lastColumn) {
-        Optional<String> likeQueryColumn = 
encryptTable.findLikeQueryColumn(columnName);
-        return likeQueryColumn.map(optional -> new 
SubstitutableColumnNameToken(stopIndex + 1, 
column.getColumnName().getStopIndex(),
-                getColumnProjections(new IdentifierValue(optional, 
column.getColumnName().getIdentifier().getQuoteCharacter())), lastColumn));
+    private Optional<? extends SQLToken> getLikeQueryColumnToken(final 
EncryptColumn encryptColumn, final ColumnDefinitionSegment column, final int 
stopIndex, final boolean lastColumn) {
+        return encryptColumn.getLikeQuery().map(optional -> new 
SubstitutableColumnNameToken(stopIndex + 1, 
column.getColumnName().getStopIndex(),
+                getColumnProjections(new IdentifierValue(optional.getName(), 
column.getColumnName().getIdentifier().getQuoteCharacter())), lastColumn));
     }
     
     private Collection<Projection> getColumnProjections(final IdentifierValue 
columnIdentifier) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
index 6ec287fe551..106aba407ba 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptForUseDefaultInsertColumnsTokenGenerator.java
@@ -22,6 +22,7 @@ import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.generator.OptionalSQLTokenGenerator;
@@ -91,28 +92,29 @@ public final class 
EncryptForUseDefaultInsertColumnsTokenGenerator implements Op
             if (!encryptTable.isEncryptColumn(columnName)) {
                 continue;
             }
+            EncryptColumn encryptColumn = 
encryptTable.getEncryptColumn(columnName);
             int columnIndex = result.indexOf(columnName);
-            setCipherColumn(result, encryptTable, columnName, columnIndex);
-            if (encryptTable.findAssistedQueryColumn(columnName).isPresent()) {
-                addAssistedQueryColumn(result, encryptTable, columnName, 
columnIndex);
+            setCipherColumn(result, encryptColumn, columnIndex);
+            if (encryptColumn.getAssistedQuery().isPresent()) {
+                addAssistedQueryColumn(result, encryptColumn, columnIndex);
                 columnIndex++;
             }
-            if (encryptTable.findLikeQueryColumn(columnName).isPresent()) {
-                addLikeQueryColumn(result, encryptTable, columnName, 
columnIndex);
+            if (encryptColumn.getLikeQuery().isPresent()) {
+                addLikeQueryColumn(result, encryptColumn, columnIndex);
             }
         }
         return result;
     }
     
-    private void addAssistedQueryColumn(final List<String> columnNames, final 
EncryptTable encryptTable, final String columnName, final int columnIndex) {
-        encryptTable.findAssistedQueryColumn(columnName).ifPresent(optional -> 
columnNames.add(columnIndex + 1, optional));
+    private void setCipherColumn(final List<String> columnNames, final 
EncryptColumn encryptColumn, final int columnIndex) {
+        columnNames.set(columnIndex, encryptColumn.getCipher().getName());
     }
     
-    private void addLikeQueryColumn(final List<String> columnNames, final 
EncryptTable encryptTable, final String columnName, final int columnIndex) {
-        encryptTable.findLikeQueryColumn(columnName).ifPresent(optional -> 
columnNames.add(columnIndex + 1, optional));
+    private void addAssistedQueryColumn(final List<String> columnNames, final 
EncryptColumn encryptColumn, final int columnIndex) {
+        encryptColumn.getAssistedQuery().ifPresent(optional -> 
columnNames.add(columnIndex + 1, optional.getName()));
     }
     
-    private void setCipherColumn(final List<String> columnNames, final 
EncryptTable encryptTable, final String columnName, final int columnIndex) {
-        columnNames.set(columnIndex, 
encryptTable.getEncryptColumn(columnName).getCipher().getName());
+    private void addLikeQueryColumn(final List<String> columnNames, final 
EncryptColumn encryptColumn, final int columnIndex) {
+        encryptColumn.getLikeQuery().ifPresent(optional -> 
columnNames.add(columnIndex + 1, optional.getName()));
     }
 }
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 494113fee3c..dae1b62adb9 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
@@ -22,6 +22,7 @@ import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
@@ -69,12 +70,12 @@ public final class EncryptIndexColumnTokenGenerator 
implements CollectionSQLToke
     }
     
     private Optional<SQLToken> getColumnToken(final EncryptTable encryptTable, 
final ColumnSegment columnSegment) {
-        String columnName = columnSegment.getIdentifier().getValue();
         QuoteCharacter quoteCharacter = 
columnSegment.getIdentifier().getQuoteCharacter();
         int startIndex = columnSegment.getStartIndex();
         int stopIndex = columnSegment.getStopIndex();
-        return encryptTable.findAssistedQueryColumn(columnName).map(optional 
-> getAssistedQueryColumnToken(startIndex, stopIndex, optional, quoteCharacter))
-                .orElseGet(() -> getCipherColumnToken(encryptTable, 
startIndex, stopIndex, columnName, quoteCharacter));
+        EncryptColumn encryptColumn = 
encryptTable.getEncryptColumn(columnSegment.getIdentifier().getValue());
+        return encryptColumn.getAssistedQuery().map(optional -> 
getAssistedQueryColumnToken(startIndex, stopIndex, optional.getName(), 
quoteCharacter))
+                .orElseGet(() -> getCipherColumnToken(encryptColumn, 
startIndex, stopIndex, quoteCharacter));
     }
     
     private Optional<SQLToken> getAssistedQueryColumnToken(final int 
startIndex, final int stopIndex, final String columnName, final QuoteCharacter 
quoteCharacter) {
@@ -82,8 +83,8 @@ public final class EncryptIndexColumnTokenGenerator 
implements CollectionSQLToke
         return Optional.of(new SubstitutableColumnNameToken(startIndex, 
stopIndex, columnProjections, quoteCharacter));
     }
     
-    private Optional<SQLToken> getCipherColumnToken(final EncryptTable 
encryptTable, final int startIndex, final int stopIndex, final String 
columnName, final QuoteCharacter quoteCharacter) {
-        String cipherColumn = 
encryptTable.getEncryptColumn(columnName).getCipher().getName();
+    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);
         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/EncryptOrderByItemTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
index 1e59c6bf6ed..14795cc360b 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
@@ -78,18 +78,19 @@ public final class EncryptOrderByItemTokenGenerator 
implements CollectionSQLToke
     
     private Collection<SubstitutableColumnNameToken> 
generateSQLTokensWithColumnSegments(final Collection<ColumnSegment> 
columnSegments, final Map<String, String> columnTableNames) {
         Collection<SubstitutableColumnNameToken> result = new LinkedList<>();
-        for (ColumnSegment column : columnSegments) {
-            String tableName = 
columnTableNames.getOrDefault(column.getExpression(), "");
+        for (ColumnSegment each : columnSegments) {
+            String tableName = 
columnTableNames.getOrDefault(each.getExpression(), "");
             Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
-            if (!encryptTable.isPresent() || 
!encryptTable.get().isEncryptColumn(column.getIdentifier().getValue())) {
+            if (!encryptTable.isPresent() || 
!encryptTable.get().isEncryptColumn(each.getIdentifier().getValue())) {
                 continue;
             }
-            int startIndex = column.getOwner().isPresent() ? 
column.getOwner().get().getStopIndex() + 2 : column.getStartIndex();
-            int stopIndex = column.getStopIndex();
-            Optional<String> assistedQueryColumn = 
encryptTable.get().findAssistedQueryColumn(column.getIdentifier().getValue());
-            SubstitutableColumnNameToken encryptColumnNameToken = 
assistedQueryColumn.map(optional -> new 
SubstitutableColumnNameToken(startIndex, stopIndex,
-                    createColumnProjections(optional, 
column.getIdentifier().getQuoteCharacter()))).orElseGet(() -> new 
SubstitutableColumnNameToken(startIndex, stopIndex,
-                            
createColumnProjections(encryptTable.get().getEncryptColumn(column.getIdentifier().getValue()).getCipher().getName(),
 column.getIdentifier().getQuoteCharacter())));
+            int startIndex = each.getOwner().isPresent() ? 
each.getOwner().get().getStopIndex() + 2 : each.getStartIndex();
+            int stopIndex = each.getStopIndex();
+            SubstitutableColumnNameToken encryptColumnNameToken = 
encryptTable.get().getEncryptColumn(each.getIdentifier().getValue()).getAssistedQuery()
+                    .map(optional -> new 
SubstitutableColumnNameToken(startIndex, stopIndex,
+                            createColumnProjections(optional.getName(), 
each.getIdentifier().getQuoteCharacter())))
+                    .orElseGet(() -> new 
SubstitutableColumnNameToken(startIndex, stopIndex,
+                            
createColumnProjections(encryptTable.get().getEncryptColumn(each.getIdentifier().getValue()).getCipher().getName(),
 each.getIdentifier().getQuoteCharacter())));
             result.add(encryptColumnNameToken);
         }
         return result;
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 907afa35180..393db5a7a26 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
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLE
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
@@ -86,25 +87,22 @@ public final class EncryptPredicateColumnTokenGenerator 
implements CollectionSQL
             String tableName = 
Optional.ofNullable(columnExpressionTableNames.get(each.getExpression())).orElse("");
             Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
             if (encryptTable.isPresent() && 
encryptTable.get().isEncryptColumn(each.getIdentifier().getValue())) {
-                result.add(buildSubstitutableColumnNameToken(each, 
whereSegments, encryptTable.get()));
+                
result.add(buildSubstitutableColumnNameToken(encryptTable.get().getEncryptColumn(each.getIdentifier().getValue()),
 each, whereSegments));
             }
         }
         return result;
     }
     
-    private SubstitutableColumnNameToken 
buildSubstitutableColumnNameToken(final ColumnSegment columnSegment, final 
Collection<WhereSegment> whereSegments, final EncryptTable encryptTable) {
+    private SubstitutableColumnNameToken 
buildSubstitutableColumnNameToken(final EncryptColumn encryptColumn, final 
ColumnSegment columnSegment, final Collection<WhereSegment> whereSegments) {
         int startIndex = columnSegment.getOwner().isPresent() ? 
columnSegment.getOwner().get().getStopIndex() + 2 : 
columnSegment.getStartIndex();
         int stopIndex = columnSegment.getStopIndex();
-        String logicColumn = columnSegment.getIdentifier().getValue();
-        // TODO remove foreach loop to improve performance
         if (includesLike(whereSegments, columnSegment)) {
-            Optional<String> likeQueryColumn = 
encryptTable.findLikeQueryColumn(logicColumn);
-            
ShardingSpherePreconditions.checkState(likeQueryColumn.isPresent(), () -> new 
UnsupportedEncryptSQLException("LIKE"));
-            return new SubstitutableColumnNameToken(startIndex, stopIndex, 
createColumnProjections(likeQueryColumn.get(), 
columnSegment.getIdentifier().getQuoteCharacter()));
+            
ShardingSpherePreconditions.checkState(encryptColumn.getLikeQuery().isPresent(),
 () -> new UnsupportedEncryptSQLException("LIKE"));
+            return new SubstitutableColumnNameToken(startIndex, stopIndex, 
createColumnProjections(encryptColumn.getLikeQuery().get().getName(), 
columnSegment.getIdentifier().getQuoteCharacter()));
         }
         Collection<Projection> columnProjections =
-                encryptTable.findAssistedQueryColumn(logicColumn).map(optional 
-> createColumnProjections(optional, 
columnSegment.getIdentifier().getQuoteCharacter()))
-                        .orElseGet(() -> 
createColumnProjections(encryptTable.getEncryptColumn(logicColumn).getCipher().getName(),
 columnSegment.getIdentifier().getQuoteCharacter()));
+                encryptColumn.getAssistedQuery().map(optional -> 
createColumnProjections(optional.getName(), 
columnSegment.getIdentifier().getQuoteCharacter()))
+                        .orElseGet(() -> 
createColumnProjections(encryptColumn.getCipher().getName(), 
columnSegment.getIdentifier().getQuoteCharacter()));
         return new SubstitutableColumnNameToken(startIndex, stopIndex, 
columnProjections);
     }
     
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 21e1041d936..f8e98de83f7 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
@@ -22,6 +22,8 @@ import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
+import 
org.apache.shardingsphere.encrypt.rule.column.item.AssistedQueryColumnItem;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.ProjectionsContext;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection;
@@ -94,7 +96,7 @@ public final class EncryptProjectionTokenGenerator implements 
CollectionSQLToken
                 }
                 Optional<EncryptTable> encryptTable = 
encryptRule.findEncryptTable(tableName);
                 if (encryptTable.isPresent() && 
encryptTable.get().isEncryptColumn(columnProjection.getName())) {
-                    sqlTokens.add(generateSQLToken(encryptTable.get(), 
columnSegment, columnProjection, subqueryType));
+                    
sqlTokens.add(generateSQLToken(encryptTable.get().getEncryptColumn(columnProjection.getName()),
 columnSegment, columnProjection, subqueryType));
                 }
             }
             if (each instanceof ShorthandProjectionSegment) {
@@ -107,9 +109,9 @@ public final class EncryptProjectionTokenGenerator 
implements CollectionSQLToken
         }
     }
     
-    private SubstitutableColumnNameToken generateSQLToken(final EncryptTable 
encryptTable, final ColumnProjectionSegment columnSegment,
+    private SubstitutableColumnNameToken generateSQLToken(final EncryptColumn 
encryptColumn, final ColumnProjectionSegment columnSegment,
                                                           final 
ColumnProjection columnProjection, final SubqueryType subqueryType) {
-        Collection<Projection> projections = generateProjections(encryptTable, 
columnProjection, subqueryType, false, null);
+        Collection<Projection> projections = 
generateProjections(encryptColumn, columnProjection, subqueryType, false, null);
         int startIndex = columnSegment.getColumn().getOwner().isPresent() ? 
columnSegment.getColumn().getOwner().get().getStopIndex() + 2 : 
columnSegment.getColumn().getStartIndex();
         int stopIndex = columnSegment.getStopIndex();
         return new SubstitutableColumnNameToken(startIndex, stopIndex, 
projections);
@@ -124,7 +126,7 @@ public final class EncryptProjectionTokenGenerator 
implements CollectionSQLToken
             if (!encryptTable.isPresent() || 
!encryptTable.get().isEncryptColumn(each.getColumnLabel())) {
                 projections.add(each.getAlias().map(optional -> (Projection) 
new ColumnProjection(null, optional, null)).orElse(each));
             } else if (each instanceof ColumnProjection) {
-                projections.addAll(generateProjections(encryptTable.get(), 
(ColumnProjection) each, subqueryType, true, segment));
+                
projections.addAll(generateProjections(encryptTable.get().getEncryptColumn(((ColumnProjection)
 each).getName()), (ColumnProjection) each, subqueryType, true, segment));
             }
         }
         int startIndex = segment.getOwner().isPresent() ? 
segment.getOwner().get().getStartIndex() : segment.getStartIndex();
@@ -152,17 +154,17 @@ public final class EncryptProjectionTokenGenerator 
implements CollectionSQLToken
         return 
selectStatementContext.getTablesContext().findTableNamesByColumnProjection(columns,
 schema);
     }
     
-    private Collection<Projection> generateProjections(final EncryptTable 
encryptTable, final ColumnProjection column, final SubqueryType subqueryType, 
final boolean shorthand,
-                                                       final 
ShorthandProjectionSegment segment) {
+    private Collection<Projection> generateProjections(final EncryptColumn 
encryptColumn, final ColumnProjection column,
+                                                       final SubqueryType 
subqueryType, final boolean shorthand, final ShorthandProjectionSegment 
segment) {
         Collection<Projection> result = new LinkedList<>();
         if (SubqueryType.PREDICATE_SUBQUERY == subqueryType) {
-            
result.add(distinctOwner(generatePredicateSubqueryProjection(encryptTable, 
column), shorthand));
+            
result.add(distinctOwner(generatePredicateSubqueryProjection(encryptColumn, 
column), shorthand));
         } else if (SubqueryType.TABLE_SUBQUERY == subqueryType) {
-            result.addAll(generateTableSubqueryProjections(encryptTable, 
column, shorthand));
+            result.addAll(generateTableSubqueryProjections(encryptColumn, 
column, shorthand));
         } else if (SubqueryType.EXISTS_SUBQUERY == subqueryType) {
-            result.addAll(generateExistsSubqueryProjections(encryptTable, 
column, shorthand));
+            result.addAll(generateExistsSubqueryProjections(encryptColumn, 
column, shorthand));
         } else {
-            result.add(distinctOwner(generateCommonProjection(encryptTable, 
column, segment), shorthand));
+            result.add(distinctOwner(generateCommonProjection(encryptColumn, 
column, segment), shorthand));
         }
         return result;
     }
@@ -174,33 +176,33 @@ public final class EncryptProjectionTokenGenerator 
implements CollectionSQLToken
         return new ColumnProjection(null, column.getNameIdentifier(), 
column.getAlias().isPresent() ? column.getAliasIdentifier() : null);
     }
     
-    private ColumnProjection generatePredicateSubqueryProjection(final 
EncryptTable encryptTable, final ColumnProjection column) {
-        Optional<String> assistedQueryColumn = 
encryptTable.findAssistedQueryColumn(column.getName());
+    private ColumnProjection generatePredicateSubqueryProjection(final 
EncryptColumn encryptColumn, final ColumnProjection column) {
+        Optional<AssistedQueryColumnItem> assistedQueryColumn = 
encryptColumn.getAssistedQuery();
         if (assistedQueryColumn.isPresent()) {
-            return new ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(assistedQueryColumn.get(), 
column.getNameIdentifier().getQuoteCharacter()), null);
+            return new ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(assistedQueryColumn.get().getName(), 
column.getNameIdentifier().getQuoteCharacter()), null);
         }
-        String cipherColumn = 
encryptTable.getEncryptColumn(column.getName()).getCipher().getName();
+        String cipherColumn = encryptColumn.getCipher().getName();
         return new ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(cipherColumn, column.getNameIdentifier().getQuoteCharacter()), 
null);
     }
     
-    private Collection<ColumnProjection> 
generateTableSubqueryProjections(final EncryptTable encryptTable, final 
ColumnProjection column, final boolean shorthand) {
+    private Collection<ColumnProjection> 
generateTableSubqueryProjections(final EncryptColumn encryptColumn, final 
ColumnProjection column, final boolean shorthand) {
         Collection<ColumnProjection> result = new LinkedList<>();
-        result.add(distinctOwner(new 
ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(encryptTable.getEncryptColumn(column.getName()).getCipher().getName(),
+        result.add(distinctOwner(new 
ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(encryptColumn.getCipher().getName(),
                 column.getNameIdentifier().getQuoteCharacter()), null), 
shorthand));
-        Optional<String> assistedQueryColumn = 
encryptTable.findAssistedQueryColumn(column.getName());
-        assistedQueryColumn.ifPresent(optional -> result.add(new 
ColumnProjection(column.getOwnerIdentifier(), new IdentifierValue(optional, 
column.getNameIdentifier().getQuoteCharacter()), null)));
+        encryptColumn.getAssistedQuery().ifPresent(optional -> result.add(
+                new ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(optional.getName(), 
column.getNameIdentifier().getQuoteCharacter()), null)));
         return result;
     }
     
-    private Collection<ColumnProjection> 
generateExistsSubqueryProjections(final EncryptTable encryptTable, final 
ColumnProjection column, final boolean shorthand) {
+    private Collection<ColumnProjection> 
generateExistsSubqueryProjections(final EncryptColumn encryptColumn, final 
ColumnProjection column, final boolean shorthand) {
         Collection<ColumnProjection> result = new LinkedList<>();
-        result.add(distinctOwner(new 
ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(encryptTable.getEncryptColumn(column.getName()).getCipher().getName(),
+        result.add(distinctOwner(new 
ColumnProjection(column.getOwnerIdentifier(), new 
IdentifierValue(encryptColumn.getCipher().getName(),
                 column.getNameIdentifier().getQuoteCharacter()), null), 
shorthand));
         return result;
     }
     
-    private ColumnProjection generateCommonProjection(final EncryptTable 
encryptTable, final ColumnProjection column, final ShorthandProjectionSegment 
segment) {
-        String encryptColumnName = 
encryptTable.getEncryptColumn(column.getName()).getCipher().getName();
+    private ColumnProjection generateCommonProjection(final EncryptColumn 
encryptColumn, final ColumnProjection column, final ShorthandProjectionSegment 
segment) {
+        String encryptColumnName = 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()
                 ? column.getAliasIdentifier()
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
index 52ff05bab28..aa4a1fef99a 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
@@ -21,6 +21,7 @@ import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
@@ -29,6 +30,7 @@ import 
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.InsertColu
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -59,9 +61,14 @@ public final class EncryptInsertDerivedColumnsTokenGenerator 
implements Collecti
     }
     
     private List<String> getDerivedColumnNames(final EncryptTable 
encryptTable, final ColumnSegment columnSegment) {
+        String columnName = columnSegment.getIdentifier().getValue();
+        if (!encryptTable.isEncryptColumn(columnName)) {
+            return Collections.emptyList();
+        }
         List<String> result = new LinkedList<>();
-        
encryptTable.findAssistedQueryColumn(columnSegment.getIdentifier().getValue()).ifPresent(result::add);
-        
encryptTable.findLikeQueryColumn(columnSegment.getIdentifier().getValue()).ifPresent(result::add);
+        EncryptColumn encryptColumn = 
encryptTable.getEncryptColumn(columnName);
+        encryptColumn.getAssistedQuery().ifPresent(optional -> 
result.add(optional.getName()));
+        encryptColumn.getLikeQuery().ifPresent(optional -> 
result.add(optional.getName()));
         return result;
     }
 }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
index 73fa050dc66..ad966be309a 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
@@ -29,6 +29,8 @@ import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptParameterAssi
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
+import 
org.apache.shardingsphere.encrypt.rule.column.item.AssistedQueryColumnItem;
+import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
@@ -111,9 +113,10 @@ public final class EncryptInsertOnUpdateTokenGenerator 
implements CollectionSQLT
     private EncryptAssignmentToken generateParameterSQLToken(final 
EncryptTable encryptTable, final AssignmentSegment assignmentSegment) {
         EncryptParameterAssignmentToken result = new 
EncryptParameterAssignmentToken(assignmentSegment.getColumns().get(0).getStartIndex(),
 assignmentSegment.getStopIndex());
         String columnName = 
assignmentSegment.getColumns().get(0).getIdentifier().getValue();
-        
result.addColumnName(encryptTable.getEncryptColumn(columnName).getCipher().getName());
-        
encryptTable.findAssistedQueryColumn(columnName).ifPresent(result::addColumnName);
-        
encryptTable.findLikeQueryColumn(columnName).ifPresent(result::addColumnName);
+        EncryptColumn encryptColumn = 
encryptTable.getEncryptColumn(columnName);
+        result.addColumnName(encryptColumn.getCipher().getName());
+        encryptColumn.getAssistedQuery().ifPresent(optional -> 
result.addColumnName(optional.getName()));
+        encryptColumn.getLikeQuery().ifPresent(optional -> 
result.addColumnName(optional.getName()));
         return result;
     }
     
@@ -134,24 +137,26 @@ public final class EncryptInsertOnUpdateTokenGenerator 
implements CollectionSQLT
         EncryptFunctionAssignmentToken result = new 
EncryptFunctionAssignmentToken(columnSegment.getStartIndex(), 
assignmentSegment.getStopIndex());
         boolean isEncryptColumn = encryptTable.isEncryptColumn(column);
         boolean isEncryptValueColumn = 
encryptTable.isEncryptColumn(valueColumn);
+        EncryptColumn encryptColumn = encryptTable.getEncryptColumn(column);
+        EncryptColumn encryptValueColumn = 
encryptTable.getEncryptColumn(column);
         if (isEncryptColumn && isEncryptValueColumn) {
-            String cipherColumn = 
encryptTable.getEncryptColumn(column).getCipher().getName();
-            String cipherValueColumn = 
encryptTable.getEncryptColumn(valueColumn).getCipher().getName();
+            String cipherColumn = encryptColumn.getCipher().getName();
+            String cipherValueColumn = 
encryptValueColumn.getCipher().getName();
             result.addAssignment(cipherColumn, "VALUES(" + cipherValueColumn + 
")");
         } else if (isEncryptColumn != isEncryptValueColumn) {
             throw new 
UnsupportedEncryptSQLException(String.format("%s=VALUES(%s)", column, 
valueColumn));
         }
-        Optional<String> assistedQueryColumn = 
encryptTable.findAssistedQueryColumn(column);
-        Optional<String> valueAssistedQueryColumn = 
encryptTable.findAssistedQueryColumn(valueColumn);
+        Optional<AssistedQueryColumnItem> assistedQueryColumn = 
encryptColumn.getAssistedQuery();
+        Optional<AssistedQueryColumnItem> valueAssistedQueryColumn = 
encryptValueColumn.getAssistedQuery();
         if (assistedQueryColumn.isPresent() && 
valueAssistedQueryColumn.isPresent()) {
-            result.addAssignment(assistedQueryColumn.get(), "VALUES(" + 
valueAssistedQueryColumn.get() + ")");
+            result.addAssignment(assistedQueryColumn.get().getName(), 
"VALUES(" + valueAssistedQueryColumn.get().getName() + ")");
         } else if (assistedQueryColumn.isPresent() != 
valueAssistedQueryColumn.isPresent()) {
             throw new 
UnsupportedEncryptSQLException(String.format("%s=VALUES(%s)", column, 
valueColumn));
         }
-        Optional<String> likeQueryColumn = 
encryptTable.findLikeQueryColumn(column);
-        Optional<String> valueLikeQueryColumn = 
encryptTable.findLikeQueryColumn(valueColumn);
+        Optional<LikeQueryColumnItem> likeQueryColumn = 
encryptColumn.getLikeQuery();
+        Optional<LikeQueryColumnItem> valueLikeQueryColumn = 
encryptValueColumn.getLikeQuery();
         if (likeQueryColumn.isPresent() && valueLikeQueryColumn.isPresent()) {
-            result.addAssignment(likeQueryColumn.get(), "VALUES(" + 
valueLikeQueryColumn.get() + ")");
+            result.addAssignment(likeQueryColumn.get().getName(), "VALUES(" + 
valueLikeQueryColumn.get().getName() + ")");
         } else if (likeQueryColumn.isPresent() != 
valueLikeQueryColumn.isPresent()) {
             throw new 
UnsupportedEncryptSQLException(String.format("%s=VALUES(%s)", column, 
valueColumn));
         }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
index ccd5ad42ac7..d8b71be3f57 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
@@ -143,11 +143,11 @@ public final class EncryptInsertValuesTokenGenerator 
implements OptionalSQLToken
             Object originalValue = 
insertValueContext.getLiteralValue(columnIndex).orElse(null);
             setCipherColumn(schemaName, tableName, encryptColumn, 
insertValueToken, insertValueContext.getValueExpressions().get(columnIndex), 
columnIndex, originalValue);
             int indexDelta = 1;
-            if (encryptTable.findAssistedQueryColumn(columnName).isPresent()) {
+            if (encryptColumn.getAssistedQuery().isPresent()) {
                 addAssistedQueryColumn(schemaName, tableName, encryptColumn, 
insertValueContext, insertValueToken, columnIndex, indexDelta, originalValue);
                 indexDelta++;
             }
-            if (encryptTable.findLikeQueryColumn(columnName).isPresent()) {
+            if (encryptColumn.getLikeQuery().isPresent()) {
                 addLikeQueryColumn(schemaName, tableName, encryptColumn, 
insertValueContext, insertValueToken, columnIndex, indexDelta, originalValue);
             }
         }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
index c2db7735e18..1b54bb96e6b 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
@@ -123,16 +123,6 @@ public final class EncryptTable {
         return columns.values().stream().anyMatch(each -> 
each.getCipher().getName().equalsIgnoreCase(logicColumnName));
     }
     
-    /**
-     * Get cipher column.
-     *
-     * @param logicColumnName logic column name
-     * @return cipher column
-     */
-    public String getCipherColumn(final String logicColumnName) {
-        return columns.get(logicColumnName).getCipher().getName();
-    }
-    
     /**
      * Get assisted query columns.
      *
@@ -163,26 +153,6 @@ public final class EncryptTable {
         return result;
     }
     
-    /**
-     * Find assisted query column.
-     *
-     * @param logicColumnName logic column name
-     * @return assisted query column
-     */
-    public Optional<String> findAssistedQueryColumn(final String 
logicColumnName) {
-        return columns.containsKey(logicColumnName) ? 
columns.get(logicColumnName).getAssistedQuery().map(AssistedQueryColumnItem::getName)
 : Optional.empty();
-    }
-    
-    /**
-     * Find like query column.
-     *
-     * @param logicColumnName logic column name
-     * @return like query column
-     */
-    public Optional<String> findLikeQueryColumn(final String logicColumnName) {
-        return columns.containsKey(logicColumnName) ? 
columns.get(logicColumnName).getLikeQuery().map(LikeQueryColumnItem::getName) : 
Optional.empty();
-    }
-    
     /**
      * Get logic and cipher columns.
      *
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
index df5a963b5b2..e9cb159b336 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
@@ -73,8 +73,10 @@ class EncryptAlterTableTokenGeneratorTest {
         when(result.getTable()).thenReturn("t_encrypt");
         when(result.isEncryptColumn("certificate_number")).thenReturn(true);
         
when(result.getEncryptColumn("certificate_number").getCipher().getName()).thenReturn("cipher_certificate_number");
-        
when(result.findAssistedQueryColumn("certificate_number")).thenReturn(Optional.of("assisted_certificate_number"));
-        
when(result.findLikeQueryColumn("certificate_number")).thenReturn(Optional.of("like_certificate_number"));
+        when(result.getEncryptColumn("certificate_number").getAssistedQuery())
+                .thenReturn(Optional.of(new 
AssistedQueryColumnItem("assisted_certificate_number", 
mock(AssistedEncryptAlgorithm.class))));
+        when(result.getEncryptColumn("certificate_number").getLikeQuery())
+                .thenReturn(Optional.of(new 
LikeQueryColumnItem("like_certificate_number", 
mock(LikeEncryptAlgorithm.class))));
         
when(result.getLogicColumns()).thenReturn(Collections.singleton("t_encrypt"));
         
when(result.getEncryptColumn("certificate_number")).thenReturn(mockEncryptColumn());
         
when(result.isEncryptColumn("certificate_number_new")).thenReturn(true);
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 8b49c9ea50b..4eebd699206 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,6 +41,7 @@ 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;
@@ -70,8 +71,10 @@ class EncryptCreateTableTokenGeneratorTest {
         EncryptColumn column = mockEncryptColumn();
         when(result.isEncryptColumn("certificate_number")).thenReturn(true);
         
when(result.getEncryptColumn("certificate_number").getCipher().getName()).thenReturn(column.getCipher().getName());
-        
when(result.findAssistedQueryColumn("certificate_number")).thenReturn(column.getAssistedQuery().map(AssistedQueryColumnItem::getName));
-        
when(result.findLikeQueryColumn("certificate_number")).thenReturn(column.getLikeQuery().map(LikeQueryColumnItem::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))));
         return result;
     }
     
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
index 4b08bc70fc9..9c402b1787b 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.encrypt.rewrite.token.generator;
 
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem;
 import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
@@ -60,6 +61,9 @@ class EncryptOrderByItemTokenGeneratorTest {
         EncryptRule result = mock(EncryptRule.class);
         EncryptTable encryptTable = mock(EncryptTable.class);
         
when(encryptTable.isEncryptColumn("certificate_number")).thenReturn(true);
+        EncryptColumn encryptColumn = mock(EncryptColumn.class, 
RETURNS_DEEP_STUBS);
+        when(encryptColumn.getAssistedQuery()).thenReturn(Optional.empty());
+        
when(encryptTable.getEncryptColumn("certificate_number")).thenReturn(encryptColumn);
         
when(result.findEncryptTable("t_encrypt")).thenReturn(Optional.of(encryptTable));
         return result;
     }
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
index 5eba82c04d3..644c13afe61 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGeneratorTest.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.encrypt.rewrite.token.generator;
 
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.infra.binder.segment.select.projection.impl.ColumnProjection;
 import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
@@ -67,6 +68,9 @@ class EncryptProjectionTokenGeneratorTest {
         
when(result.findEncryptTable("doctor")).thenReturn(Optional.of(encryptTable1));
         
when(result.findEncryptTable("doctor1")).thenReturn(Optional.of(encryptTable2));
         when(encryptTable1.isEncryptColumn("mobile")).thenReturn(true);
+        EncryptColumn encryptColumn = mock(EncryptColumn.class, 
RETURNS_DEEP_STUBS);
+        when(encryptColumn.getAssistedQuery()).thenReturn(Optional.empty());
+        
when(encryptTable1.getEncryptColumn("mobile")).thenReturn(encryptColumn);
         return result;
     }
     
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
index 5f686052779..ab0156efc08 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
@@ -17,8 +17,10 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
 
+import 
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.EncryptTable;
+import 
org.apache.shardingsphere.encrypt.rule.column.item.AssistedQueryColumnItem;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
 import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
@@ -87,8 +89,9 @@ class EncryptInsertDerivedColumnsTokenGeneratorTest {
     
     private EncryptRule mockEncryptRule() {
         EncryptRule result = mock(EncryptRule.class);
-        EncryptTable encryptTable = mock(EncryptTable.class);
-        
when(encryptTable.findAssistedQueryColumn("foo_col")).thenReturn(Optional.of("assisted_query_col"));
+        EncryptTable encryptTable = mock(EncryptTable.class, 
RETURNS_DEEP_STUBS);
+        when(encryptTable.isEncryptColumn("foo_col")).thenReturn(true);
+        
when(encryptTable.getEncryptColumn("foo_col").getAssistedQuery()).thenReturn(Optional.of(new
 AssistedQueryColumnItem("assisted_query_col", 
mock(AssistedEncryptAlgorithm.class))));
         when(result.getEncryptTable("foo_tbl")).thenReturn(encryptTable);
         return result;
     }
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
index 4305f4a47b4..2ef886e9c67 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
@@ -26,7 +26,6 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
-import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -89,30 +88,6 @@ class EncryptTableTest {
         assertThat(encryptTable.getAssistedQueryColumns(), 
is(Collections.singletonList("assistedQueryColumn")));
     }
     
-    @Test
-    void assertFindAssistedQueryColumn() {
-        Optional<String> actual = 
encryptTable.findAssistedQueryColumn("logicColumn");
-        assertTrue(actual.isPresent());
-        assertThat(actual.get(), is("assistedQueryColumn"));
-    }
-    
-    @Test
-    void assertFindLikeQueryColumn() {
-        Optional<String> actual = 
encryptTable.findLikeQueryColumn("logicColumn");
-        assertTrue(actual.isPresent());
-        assertThat(actual.get(), is("likeQueryColumn"));
-    }
-    
-    @Test
-    void assertNotFindAssistedQueryColumn() {
-        
assertFalse(encryptTable.findAssistedQueryColumn("notExistLogicColumn").isPresent());
-    }
-    
-    @Test
-    void assertNotFindLikeQueryColumn() {
-        
assertFalse(encryptTable.findAssistedQueryColumn("notExistLikeQueryColumn").isPresent());
-    }
-    
     @Test
     void assertGetLogicAndCipherColumns() {
         assertThat(encryptTable.getLogicAndCipherColumns(), 
is(Collections.singletonMap("logicColumn", "cipherColumn")));

Reply via email to