diff --git a/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/MemoryQueryResult.java b/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/MemoryQueryResult.java index 48e7c168daf4cb948ebced9f8f383af63aa4339b..78ad276831df3e8d525ebe24d27860ae03f42759 100644 --- a/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/MemoryQueryResult.java +++ b/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/MemoryQueryResult.java @@ -53,13 +53,13 @@ public final class MemoryQueryResult implements QueryResult { @SneakyThrows public MemoryQueryResult(final ResultSet resultSet, final ShardingRule shardingRule) { resultData = getResultData(resultSet); - metaData = new QueryResultMetaData(resultSet.getMetaData(), shardingRule, shardingRule.getEncryptRule().getEncryptorEngine()); + metaData = new QueryResultMetaData(resultSet.getMetaData(), shardingRule); } @SneakyThrows public MemoryQueryResult(final ResultSet resultSet, final EncryptRule encryptRule) { resultData = getResultData(resultSet); - metaData = new QueryResultMetaData(resultSet.getMetaData(), null, encryptRule.getEncryptorEngine()); + metaData = new QueryResultMetaData(resultSet.getMetaData(), encryptRule); } @SneakyThrows diff --git a/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaData.java b/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaData.java index f4e0cf6f9d8f7f7ae1071cafea15e1b4e2b98484..62e9a65241e36e71f6e5869c1f66aa4c96c42ee7 100644 --- a/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaData.java +++ b/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaData.java @@ -19,6 +19,7 @@ package org.apache.shardingsphere.core.execute.sql.execute.result; import com.google.common.base.Optional; import lombok.SneakyThrows; +import org.apache.shardingsphere.core.rule.EncryptRule; import org.apache.shardingsphere.core.rule.ShardingRule; import org.apache.shardingsphere.core.rule.TableRule; import org.apache.shardingsphere.core.strategy.encrypt.ShardingEncryptorEngine; @@ -44,17 +45,28 @@ public final class QueryResultMetaData { private final ShardingEncryptorEngine shardingEncryptorEngine; - @SneakyThrows - public QueryResultMetaData(final ResultSetMetaData resultSetMetaData, final ShardingRule shardingRule, final ShardingEncryptorEngine shardingEncryptorEngine) { + @SneakyThrows + public QueryResultMetaData(final ResultSetMetaData resultSetMetaData, final ShardingRule shardingRule) { columnLabelAndIndexes = getColumnLabelAndIndexMap(resultSetMetaData); this.resultSetMetaData = resultSetMetaData; this.shardingRule = shardingRule; - this.shardingEncryptorEngine = shardingEncryptorEngine; + this.shardingEncryptorEngine = shardingRule.getEncryptRule().getEncryptorEngine(); + } + + @SneakyThrows + public QueryResultMetaData(final ResultSetMetaData resultSetMetaData, final EncryptRule encryptRule) { + columnLabelAndIndexes = getColumnLabelAndIndexMap(resultSetMetaData); + this.resultSetMetaData = resultSetMetaData; + this.shardingRule = null; + this.shardingEncryptorEngine = encryptRule.getEncryptorEngine(); } @SneakyThrows public QueryResultMetaData(final ResultSetMetaData resultSetMetaData) { - this(resultSetMetaData, null, new ShardingEncryptorEngine()); + columnLabelAndIndexes = getColumnLabelAndIndexMap(resultSetMetaData); + this.resultSetMetaData = resultSetMetaData; + this.shardingRule = null; + this.shardingEncryptorEngine = new ShardingEncryptorEngine(); } @SneakyThrows diff --git a/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/StreamQueryResult.java b/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/StreamQueryResult.java index 071d6347a103c43b7ce082ab6636bebc8dc15c39..a7dcbb9b07cb7da2924a370a4f06c49b8c011752 100644 --- a/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/StreamQueryResult.java +++ b/sharding-core/sharding-core-execute/src/main/java/org/apache/shardingsphere/core/execute/sql/execute/result/StreamQueryResult.java @@ -52,13 +52,13 @@ public final class StreamQueryResult implements QueryResult { @SneakyThrows public StreamQueryResult(final ResultSet resultSet, final ShardingRule shardingRule) { this.resultSet = resultSet; - metaData = new QueryResultMetaData(resultSet.getMetaData(), shardingRule, shardingRule.getEncryptRule().getEncryptorEngine()); + metaData = new QueryResultMetaData(resultSet.getMetaData(), shardingRule); } @SneakyThrows public StreamQueryResult(final ResultSet resultSet, final EncryptRule encryptRule) { this.resultSet = resultSet; - metaData = new QueryResultMetaData(resultSet.getMetaData(), null, encryptRule.getEncryptorEngine()); + metaData = new QueryResultMetaData(resultSet.getMetaData(), encryptRule); } @SneakyThrows diff --git a/sharding-core/sharding-core-execute/src/test/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaDataTest.java b/sharding-core/sharding-core-execute/src/test/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaDataTest.java index a211b062fb74f9e80a38ae84bac427b8d0c7f4c0..aa02d1aec22414452bd91d293800c72979665031 100644 --- a/sharding-core/sharding-core-execute/src/test/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaDataTest.java +++ b/sharding-core/sharding-core-execute/src/test/java/org/apache/shardingsphere/core/execute/sql/execute/result/QueryResultMetaDataTest.java @@ -49,7 +49,7 @@ public class QueryResultMetaDataTest { public void setUp() { ResultSetMetaData resultSetMetaData = getResultMetaData(); ShardingRule shardingRule = getShardingRule(); - queryResultMetaData = new QueryResultMetaData(resultSetMetaData, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine()); + queryResultMetaData = new QueryResultMetaData(resultSetMetaData, shardingRule); } @SuppressWarnings("unchecked")