You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2021/03/02 02:00:20 UTC
[iotdb] 01/01: getObject method in JDBC should return an Object
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch getObject
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 4de876fa366e8273ff61c8f1693ee08583a3c2e1
Author: HTHou <hh...@outlook.com>
AuthorDate: Tue Mar 2 09:59:32 2021 +0800
getObject method in JDBC should return an Object
---
.../iotdb/jdbc/AbstractIoTDBJDBCResultSet.java | 4 +++-
.../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java | 9 +++++++++
.../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java | 22 ++++++++++++++++++++++
3 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/AbstractIoTDBJDBCResultSet.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/AbstractIoTDBJDBCResultSet.java
index dacddff..36f74fd 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/AbstractIoTDBJDBCResultSet.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/AbstractIoTDBJDBCResultSet.java
@@ -443,7 +443,7 @@ public abstract class AbstractIoTDBJDBCResultSet implements ResultSet {
@Override
public Object getObject(String columnName) throws SQLException {
- return getValueByName(columnName);
+ return getObjectByName(columnName);
}
@Override
@@ -1121,4 +1121,6 @@ public abstract class AbstractIoTDBJDBCResultSet implements ResultSet {
abstract void checkRecord() throws SQLException;
abstract String getValueByName(String columnName) throws SQLException;
+
+ abstract Object getObjectByName(String columnName) throws SQLException;
}
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java
index 9d36394..9039a1c 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java
@@ -104,6 +104,15 @@ public class IoTDBJDBCResultSet extends AbstractIoTDBJDBCResultSet {
}
}
+ @Override
+ protected Object getObjectByName(String columnName) throws SQLException {
+ try {
+ return ioTDBRpcDataSet.getObjectByName(columnName);
+ } catch (StatementExecutionException e) {
+ throw new SQLException(e.getMessage());
+ }
+ }
+
public boolean isIgnoreTimeStamp() {
return ioTDBRpcDataSet.ignoreTimeStamp;
}
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java
index 1324733..c78644c 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java
@@ -248,4 +248,26 @@ public class IoTDBNonAlignJDBCResultSet extends AbstractIoTDBJDBCResultSet {
return ioTDBRpcDataSet.getString(
index, ioTDBRpcDataSet.columnTypeDeduplicatedList.get(index), ioTDBRpcDataSet.values);
}
+
+ @Override
+ protected Object getObjectByName(String columnName) throws SQLException {
+ checkRecord();
+ if (columnName.startsWith(TIMESTAMP_STR)) {
+ String column = columnName.substring(TIMESTAMP_STR_LENGTH);
+ int index = ioTDBRpcDataSet.columnOrdinalMap.get(column) - START_INDEX;
+ if (times[index] == null || times[index].length == 0) {
+ return null;
+ }
+ return BytesUtils.bytesToLong(times[index]);
+ }
+ int index = ioTDBRpcDataSet.columnOrdinalMap.get(columnName) - START_INDEX;
+ if (index < 0
+ || index >= ioTDBRpcDataSet.values.length
+ || ioTDBRpcDataSet.values[index] == null
+ || ioTDBRpcDataSet.values[index].length < 1) {
+ return null;
+ }
+ return ioTDBRpcDataSet.getObject(
+ index, ioTDBRpcDataSet.columnTypeDeduplicatedList.get(index), ioTDBRpcDataSet.values);
+ }
}