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 d989c233e7b Fix the case sensitivity issue caused by using
CaseInsensitiveMap keys. (#28713)
d989c233e7b is described below
commit d989c233e7b16537a665be23fae9371b2334b2c8
Author: Cong Hu <[email protected]>
AuthorDate: Wed Oct 11 10:57:07 2023 +0800
Fix the case sensitivity issue caused by using CaseInsensitiveMap keys.
(#28713)
---
.../apache/shardingsphere/encrypt/rule/EncryptTable.java | 2 +-
.../backend/hbase/result/query/HBaseGetResultSet.java | 14 +++++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
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 3aca7bb2326..aae70f8abec 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
@@ -150,7 +150,7 @@ public final class EncryptTable {
public String getLogicColumnByAssistedQueryColumn(final String
assistQueryColumnName) {
for (Entry<String, EncryptColumn> entry : columns.entrySet()) {
if (entry.getValue().getAssistedQuery().isPresent() &&
entry.getValue().getAssistedQuery().get().getName().equalsIgnoreCase(assistQueryColumnName))
{
- return entry.getKey();
+ return entry.getValue().getName();
}
}
throw new EncryptLogicColumnNotFoundException(assistQueryColumnName);
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
index 3c1829daa41..4c62c7dd121 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
@@ -49,6 +49,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -140,7 +141,18 @@ public final class HBaseGetResultSet implements
HBaseQueryResultSet {
if (rows.hasNext()) {
compensateResult = rows.next();
}
- columnNames = null == compensateResult ?
Arrays.asList(ROW_KEY_COLUMN_NAME, CONTENT_COLUMN_NAME) :
parseResult(compensateResult).keySet();
+ columnNames = null == compensateResult ?
Arrays.asList(ROW_KEY_COLUMN_NAME, CONTENT_COLUMN_NAME) :
parseResultColumnNames(compensateResult);
+ }
+
+ private Collection<String> parseResultColumnNames(final Result result) {
+ Collection<String> columnNames = new LinkedList<>();
+ columnNames.add(ROW_KEY_COLUMN_NAME);
+ for (Cell each : result.listCells()) {
+ String column = new String(CellUtil.cloneQualifier(each),
StandardCharsets.UTF_8);
+ columnNames.add(column);
+ }
+ columnNames.add(TIMESTAMP_COLUMN_NAME);
+ return columnNames;
}
private Map<String, String> parseResult(final Result result) {