This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 43d90990278 Refactor EncryptPredicateRightValueTokenGenerator (#32381)
43d90990278 is described below

commit 43d90990278ee0aea97c7651482a90e4c1fbfbf8
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Aug 3 19:18:13 2024 +0800

    Refactor EncryptPredicateRightValueTokenGenerator (#32381)
---
 .../predicate/EncryptPredicateRightValueTokenGenerator.java | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
index 7bd4bd9f6c8..da884430264 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.predicate;
 
 import lombok.Setter;
-import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
+import 
org.apache.shardingsphere.encrypt.exception.metadata.MissingMatchedEncryptQueryAlgorithmException;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptConditionsAware;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
@@ -29,9 +29,9 @@ import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptPredicateEqua
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptPredicateFunctionRightValueToken;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptPredicateInRightValueToken;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
+import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
@@ -81,11 +81,11 @@ public final class EncryptPredicateRightValueTokenGenerator 
implements Collectio
     
     private SQLToken generateSQLToken(final String schemaName, final 
EncryptTable encryptTable, final EncryptCondition encryptCondition) {
         List<Object> originalValues = encryptCondition.getValues(parameters);
-        int startIndex = encryptCondition.getStartIndex();
-        return generateSQLToken(schemaName, encryptTable, encryptCondition, 
originalValues, startIndex);
+        return generateSQLToken(schemaName, encryptTable, encryptCondition, 
originalValues);
     }
     
-    private SQLToken generateSQLToken(final String schemaName, final 
EncryptTable encryptTable, final EncryptCondition encryptCondition, final 
List<Object> originalValues, final int startIndex) {
+    private SQLToken generateSQLToken(final String schemaName, final 
EncryptTable encryptTable, final EncryptCondition encryptCondition, final 
List<Object> originalValues) {
+        int startIndex = encryptCondition.getStartIndex();
         int stopIndex = encryptCondition.getStopIndex();
         Map<Integer, Object> indexValues = 
getPositionValues(encryptCondition.getPositionValueMap().keySet(), 
getEncryptedValues(schemaName, encryptTable, encryptCondition, originalValues));
         Collection<Integer> parameterMarkerIndexes = 
encryptCondition.getPositionIndexMap().keySet();
@@ -101,7 +101,8 @@ public final class EncryptPredicateRightValueTokenGenerator 
implements Collectio
     private List<Object> getEncryptedValues(final String schemaName, final 
EncryptTable encryptTable, final EncryptCondition encryptCondition, final 
List<Object> originalValues) {
         EncryptColumn encryptColumn = 
encryptTable.getEncryptColumn(encryptCondition.getColumnName());
         if (encryptCondition instanceof EncryptBinaryCondition && 
"LIKE".equalsIgnoreCase(((EncryptBinaryCondition) 
encryptCondition).getOperator())) {
-            LikeQueryColumnItem likeQueryColumnItem = 
encryptColumn.getLikeQuery().orElseThrow(() -> new 
UnsupportedEncryptSQLException("LIKE"));
+            LikeQueryColumnItem likeQueryColumnItem = 
encryptColumn.getLikeQuery()
+                    .orElseThrow(() -> new 
MissingMatchedEncryptQueryAlgorithmException(encryptTable.getTable(), 
encryptCondition.getColumnName(), "LIKE"));
             return likeQueryColumnItem.encrypt(databaseName, schemaName, 
encryptCondition.getTableName(), encryptCondition.getColumnName(), 
originalValues);
         }
         return encryptColumn.getAssistedQuery()

Reply via email to