diff --git a/sharding-core/sharding-core-rewrite/src/main/java/org/apache/shardingsphere/core/rewrite/SQLRewriteEngine.java b/sharding-core/sharding-core-rewrite/src/main/java/org/apache/shardingsphere/core/rewrite/SQLRewriteEngine.java index 0eb6c3eb34315429be66efa3a42ec7a085e82d30..80beeac429e806275ca6f3e61b55a14ba3ab0a43 100644 --- a/sharding-core/sharding-core-rewrite/src/main/java/org/apache/shardingsphere/core/rewrite/SQLRewriteEngine.java +++ b/sharding-core/sharding-core-rewrite/src/main/java/org/apache/shardingsphere/core/rewrite/SQLRewriteEngine.java @@ -69,7 +69,8 @@ public final class SQLRewriteEngine { public SQLRewriteEngine(final ShardingRule shardingRule, final SQLRouteResult sqlRouteResult, final String sql, final List parameters, final boolean isSingleRoute, final boolean isQueryWithCipherColumn) { baseRule = shardingRule; - optimizedStatement = encryptOptimizedStatement(shardingRule.getEncryptRule(), sqlRouteResult.getShardingStatement()); + optimizedStatement = sqlRouteResult.getShardingStatement(); + encryptOptimizedStatement(shardingRule.getEncryptRule()); parameterBuilder = createParameterBuilder(parameters, sqlRouteResult); sqlTokens = createSQLTokens(isSingleRoute, isQueryWithCipherColumn); sqlBuilder = new SQLBuilder(sql, sqlTokens); @@ -77,7 +78,8 @@ public final class SQLRewriteEngine { public SQLRewriteEngine(final EncryptRule encryptRule, final EncryptOptimizedStatement encryptStatement, final String sql, final List parameters, final boolean isQueryWithCipherColumn) { baseRule = encryptRule; - optimizedStatement = encryptOptimizedStatement(encryptRule, encryptStatement); + optimizedStatement = encryptStatement; + encryptOptimizedStatement(encryptRule); parameterBuilder = createParameterBuilder(parameters); sqlTokens = createSQLTokens(false, isQueryWithCipherColumn); sqlBuilder = new SQLBuilder(sql, sqlTokens); @@ -91,11 +93,10 @@ public final class SQLRewriteEngine { sqlBuilder = new SQLBuilder(sql, sqlTokens); } - private OptimizedStatement encryptOptimizedStatement(final EncryptRule encryptRule, final OptimizedStatement optimizedStatement) { + private void encryptOptimizedStatement(final EncryptRule encryptRule) { if (optimizedStatement instanceof InsertOptimizedStatement && !encryptRule.getEncryptTableNames().isEmpty()) { encryptInsertOptimizedStatement(encryptRule, (InsertOptimizedStatement) optimizedStatement); } - return optimizedStatement; } private void encryptInsertOptimizedStatement(final EncryptRule encryptRule, final InsertOptimizedStatement insertOptimizedStatement) {