You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2024/06/26 06:42:59 UTC

(iotdb) 01/01: [IOTDB-6344] Display null in cli

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

jackietien pushed a commit to branch ty/FixCli
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 496e07b45b9ff32504f1a9d8ac08bdeaf48ae088
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Wed Jun 26 14:42:29 2024 +0800

    [IOTDB-6344] Display null in cli
---
 .../java/org/apache/iotdb/cli/AbstractCli.java     | 27 ++++++++++++++--------
 .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java  | 23 +++++++++++++-----
 2 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java b/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
index afc4c23ba88..0da407e00f0 100644
--- a/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
+++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
@@ -721,25 +721,34 @@ public abstract class AbstractCli {
     TSDataType type = TSDataType.valueOf(resultSet.getColumnTypeByIndex(columnIndex));
     switch (type) {
       case BOOLEAN:
-        return String.valueOf(resultSet.getBoolean(columnIndex));
       case INT32:
-        return String.valueOf(resultSet.getInt(columnIndex));
       case INT64:
-        return String.valueOf(resultSet.getLong(columnIndex));
       case FLOAT:
-        return String.valueOf(resultSet.getFloat(columnIndex));
       case DOUBLE:
-        return String.valueOf(resultSet.getDouble(columnIndex));
       case TEXT:
       case STRING:
         return resultSet.getString(columnIndex);
       case BLOB:
-        return BytesUtils.parseBlobByteArrayToString(resultSet.getBytes(columnIndex));
+        byte[] v = resultSet.getBytes(columnIndex);
+        if (v == null) {
+          return null;
+        } else {
+          return BytesUtils.parseBlobByteArrayToString(v);
+        }
       case DATE:
-        return DateUtils.formatDate(resultSet.getInt(columnIndex));
+        int intValue = resultSet.getInt(columnIndex);
+        if (resultSet.wasNull()) {
+          return null;
+        } else {
+          return DateUtils.formatDate(intValue);
+        }
       case TIMESTAMP:
-        return RpcUtils.formatDatetime(
-            timeFormat, timestampPrecision, resultSet.getLong(columnIndex), zoneId);
+        long longValue = resultSet.getLong(columnIndex);
+        if (resultSet.wasNull()) {
+          return null;
+        } else {
+          return RpcUtils.formatDatetime(timeFormat, timestampPrecision, longValue, zoneId);
+        }
       default:
         return null;
     }
diff --git a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java
index 269d6ec7c26..e5c0e60e841 100644
--- a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java
+++ b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java
@@ -29,6 +29,7 @@ import org.apache.iotdb.service.rpc.thrift.TSTracingInfo;
 import org.apache.thrift.TException;
 import org.apache.tsfile.common.conf.TSFileConfig;
 import org.apache.tsfile.enums.TSDataType;
+import org.apache.tsfile.utils.Binary;
 import org.apache.tsfile.utils.DateUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -381,9 +382,14 @@ public class IoTDBJDBCResultSet implements ResultSet {
       if (dataType == null) {
         return null;
       }
-      return dataType.equals(TSDataType.BLOB)
-          ? ioTDBRpcDataSet.getBinary(columnIndex).getValues()
-          : ioTDBRpcDataSet.getString(columnIndex).getBytes(charset);
+
+      if (dataType.equals(TSDataType.BLOB)) {
+        Binary binary = ioTDBRpcDataSet.getBinary(columnIndex);
+        return binary == null ? null : binary.getValues();
+      } else {
+        String s = ioTDBRpcDataSet.getString(columnIndex);
+        return s == null ? null : s.getBytes(charset);
+      }
     } catch (StatementExecutionException e) {
       throw new SQLException(e.getMessage());
     }
@@ -396,9 +402,14 @@ public class IoTDBJDBCResultSet implements ResultSet {
       if (dataType == null) {
         return null;
       }
-      return dataType.equals(TSDataType.BLOB)
-          ? ioTDBRpcDataSet.getBinary(columnName).getValues()
-          : ioTDBRpcDataSet.getString(columnName).getBytes(charset);
+
+      if (dataType.equals(TSDataType.BLOB)) {
+        Binary binary = ioTDBRpcDataSet.getBinary(columnName);
+        return binary == null ? null : binary.getValues();
+      } else {
+        String s = ioTDBRpcDataSet.getString(columnName);
+        return s == null ? null : s.getBytes(charset);
+      }
     } catch (StatementExecutionException e) {
       throw new SQLException(e.getMessage());
     }