You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ch...@apache.org on 2020/12/02 09:30:19 UTC
[iotdb] branch cluster_new updated: fix the cache leader error in
iotdb statement
This is an automated email from the ASF dual-hosted git repository.
chaow pushed a commit to branch cluster_new
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/cluster_new by this push:
new 90892d3 fix the cache leader error in iotdb statement
new 6560337 Merge pull request #2149 from neuyilan/apache_cluster_new_1130_fix_statement
90892d3 is described below
commit 90892d361d541be5c3a5fe1d1ce727ba22ff3493
Author: HouliangQi <ne...@163.com>
AuthorDate: Mon Nov 30 19:15:03 2020 +0800
fix the cache leader error in iotdb statement
---
.../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 57 +++++++++++-----------
1 file changed, 29 insertions(+), 28 deletions(-)
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
index f4b7502..92be83e 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
@@ -192,8 +192,8 @@ public class IoTDBStatement implements Statement {
throw new SQLException(String.format("Fail to execute %s", sql), e);
} else {
throw new SQLException(String
- .format("Fail to reconnect to server when executing %s. please check server status",
- sql), e);
+ .format("Fail to reconnect to server when executing %s. please check server status",
+ sql), e);
}
}
}
@@ -215,8 +215,8 @@ public class IoTDBStatement implements Statement {
/**
* There are two kinds of sql here: (1) query sql (2) update sql.
- * (1) return IoTDBJDBCResultSet or IoTDBNonAlignJDBCResultSet
- * (2) simply get executed
+ * <p>
+ * (1) return IoTDBJDBCResultSet or IoTDBNonAlignJDBCResultSet (2) simply get executed
*/
private boolean executeSQL(String sql) throws TException, SQLException {
isCancelled = false;
@@ -234,13 +234,12 @@ public class IoTDBStatement implements Statement {
queryId = execResp.getQueryId();
if (execResp.queryDataSet == null) {
this.resultSet = new IoTDBNonAlignJDBCResultSet(this, execResp.getColumns(),
- execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp, client, sql, queryId,
- sessionId, execResp.nonAlignQueryDataSet);
- }
- else {
+ execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp,
+ client, sql, queryId, sessionId, execResp.nonAlignQueryDataSet);
+ } else {
this.resultSet = new IoTDBJDBCResultSet(this, execResp.getColumns(),
- execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp, client, sql, queryId,
- sessionId, execResp.queryDataSet);
+ execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp,
+ client, sql, queryId, sessionId, execResp.queryDataSet);
}
return true;
}
@@ -278,13 +277,15 @@ public class IoTDBStatement implements Statement {
for (int i = 0; i < result.length; i++) {
if (execResp.getCode() == TSStatusCode.MULTIPLE_ERROR.getStatusCode()) {
result[i] = execResp.getSubStatus().get(i).code;
- if (result[i] != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ if (result[i] != TSStatusCode.SUCCESS_STATUS.getStatusCode()
+ && result[i] != TSStatusCode.NEED_REDIRECTION.getStatusCode()) {
allSuccess = false;
message = execResp.getSubStatus().get(i).message;
}
} else {
allSuccess =
- allSuccess && execResp.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode();
+ allSuccess && (execResp.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()
+ || execResp.getCode() == TSStatusCode.NEED_REDIRECTION.getStatusCode());
result[i] = execResp.getCode();
message = execResp.getMessage();
}
@@ -335,12 +336,12 @@ public class IoTDBStatement implements Statement {
if (execResp.queryDataSet == null) {
this.resultSet = new IoTDBNonAlignJDBCResultSet(this, execResp.getColumns(),
- execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp, client, sql, queryId,
- sessionId, execResp.nonAlignQueryDataSet);
+ execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp, client,
+ sql, queryId, sessionId, execResp.nonAlignQueryDataSet);
} else {
this.resultSet = new IoTDBJDBCResultSet(this, execResp.getColumns(),
- execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp, client, sql, queryId,
- sessionId, execResp.queryDataSet);
+ execResp.getDataTypeList(), execResp.columnNameIndexMap, execResp.ignoreTimeStamp, client,
+ sql, queryId, sessionId, execResp.queryDataSet);
}
return resultSet;
}
@@ -362,14 +363,14 @@ public class IoTDBStatement implements Statement {
}
final List<ByteBuffer> valueList = nonAlignDataSet.valueList
- .stream()
- .map(ReadWriteIOUtils::clone)
- .collect(Collectors.toList());
+ .stream()
+ .map(ReadWriteIOUtils::clone)
+ .collect(Collectors.toList());
final List<ByteBuffer> timeList = nonAlignDataSet.timeList
- .stream()
- .map(ReadWriteIOUtils::clone)
- .collect(Collectors.toList());
+ .stream()
+ .map(ReadWriteIOUtils::clone)
+ .collect(Collectors.toList());
nonAlignDataSet.setTimeList(timeList);
nonAlignDataSet.setValueList(valueList);
@@ -378,14 +379,14 @@ public class IoTDBStatement implements Statement {
private void deepCopyTsQueryDataSet(TSQueryDataSet tsQueryDataSet) {
final ByteBuffer time = ReadWriteIOUtils.clone(tsQueryDataSet.time);
final List<ByteBuffer> valueList = tsQueryDataSet.valueList
- .stream()
- .map(ReadWriteIOUtils::clone)
- .collect(Collectors.toList());
+ .stream()
+ .map(ReadWriteIOUtils::clone)
+ .collect(Collectors.toList());
final List<ByteBuffer> bitmapList = tsQueryDataSet.bitmapList
- .stream()
- .map(ReadWriteIOUtils::clone)
- .collect(Collectors.toList());
+ .stream()
+ .map(ReadWriteIOUtils::clone)
+ .collect(Collectors.toList());
tsQueryDataSet.setBitmapList(bitmapList);
tsQueryDataSet.setValueList(valueList);