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

hui pushed a commit to branch lmh/addQueryIT
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit c73b9f9050bdfa3c369e7eff14794099d0e08793
Author: Minghui Liu <[email protected]>
AuthorDate: Mon Jun 20 23:01:47 2022 +0800

    fix bug in align by device result set
---
 .../src/main/java/org/apache/iotdb/rpc/IoTDBJDBCDataSet.java     | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git 
a/service-rpc/src/main/java/org/apache/iotdb/rpc/IoTDBJDBCDataSet.java 
b/service-rpc/src/main/java/org/apache/iotdb/rpc/IoTDBJDBCDataSet.java
index 8f47547ce5..d7f11803cd 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/IoTDBJDBCDataSet.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/IoTDBJDBCDataSet.java
@@ -219,8 +219,9 @@ public class IoTDBJDBCDataSet {
 
     // deduplicate and map
     if (columnNameIndex != null) {
-      this.columnTypeDeduplicatedList = new 
ArrayList<>(columnNameIndex.size());
-      for (int i = 0; i < columnNameIndex.size(); i++) {
+      int columnSize = (int) 
columnNameIndex.values().stream().distinct().count();
+      this.columnTypeDeduplicatedList = new ArrayList<>(columnSize);
+      for (int i = 0; i < columnSize; i++) {
         columnTypeDeduplicatedList.add(null);
       }
       for (int i = 0; i < columnNameList.size(); i++) {
@@ -238,8 +239,10 @@ public class IoTDBJDBCDataSet {
         // "Time".equals(name) -> to allow the Time column appear in value 
columns
         if (!columnOrdinalMap.containsKey(name) || "Time".equals(name)) {
           int index = columnNameIndex.get(name);
+          if (!columnOrdinalMap.containsValue(index + START_INDEX)) {
+            columnTypeDeduplicatedList.set(index, 
TSDataType.valueOf(columnTypeList.get(i)));
+          }
           columnOrdinalMap.put(name, index + START_INDEX);
-          columnTypeDeduplicatedList.set(index, 
TSDataType.valueOf(columnTypeList.get(i)));
         }
       }
     } else {

Reply via email to