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) {

Reply via email to