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 2022/02/20 01:41:24 UTC
[iotdb] branch master updated: [IOTDB-2568] "show query processlist" is blocked (#5092)
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new a6ecfce [IOTDB-2568] "show query processlist" is blocked (#5092)
a6ecfce is described below
commit a6ecfceebe2544970e6a339abdd770e5405d0bf4
Author: Xiangwei Wei <34...@users.noreply.github.com>
AuthorDate: Sun Feb 20 09:40:02 2022 +0800
[IOTDB-2568] "show query processlist" is blocked (#5092)
---
.../db/service/thrift/impl/TSServiceImpl.java | 52 ++++++++++------------
1 file changed, 24 insertions(+), 28 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
index ad10505..183e5a5 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
@@ -615,20 +615,7 @@ public class TSServiceImpl implements TSIService.Iface {
SESSION_MANAGER.getClientVersion(req.sessionId));
if (physicalPlan.isQuery()) {
- Future<TSExecuteStatementResp> resp =
- QueryTaskManager.getInstance()
- .submit(
- new QueryTask(
- physicalPlan,
- startTime,
- req.sessionId,
- req.statement,
- req.statementId,
- req.timeout,
- req.fetchSize,
- req.jdbcQuery,
- req.enableRedirectQuery));
- return resp.get();
+ return submitQueryTask(physicalPlan, startTime, req);
} else {
return executeUpdateStatement(
statement,
@@ -667,20 +654,7 @@ public class TSServiceImpl implements TSIService.Iface {
SESSION_MANAGER.getClientVersion(req.sessionId));
if (physicalPlan.isQuery()) {
- Future<TSExecuteStatementResp> resp =
- QueryTaskManager.getInstance()
- .submit(
- new QueryTask(
- physicalPlan,
- startTime,
- req.sessionId,
- req.statement,
- req.statementId,
- req.timeout,
- req.fetchSize,
- req.jdbcQuery,
- req.enableRedirectQuery));
- return resp.get();
+ return submitQueryTask(physicalPlan, startTime, req);
} else {
return RpcUtils.getTSExecuteStatementResp(
TSStatusCode.EXECUTE_STATEMENT_ERROR, "Statement is not a query statement.");
@@ -790,6 +764,28 @@ public class TSServiceImpl implements TSIService.Iface {
}
}
+ private TSExecuteStatementResp submitQueryTask(
+ PhysicalPlan physicalPlan, long startTime, TSExecuteStatementReq req) throws Exception {
+ QueryTask queryTask =
+ new QueryTask(
+ physicalPlan,
+ startTime,
+ req.sessionId,
+ req.statement,
+ req.statementId,
+ req.timeout,
+ req.fetchSize,
+ req.jdbcQuery,
+ req.enableRedirectQuery);
+ TSExecuteStatementResp resp;
+ if (physicalPlan instanceof ShowQueryProcesslistPlan) {
+ resp = queryTask.call();
+ } else {
+ resp = QueryTaskManager.getInstance().submit(queryTask).get();
+ }
+ return resp;
+ }
+
private TSExecuteStatementResp executeQueryPlan(
QueryPlan plan, QueryContext context, boolean isJdbcQuery, int fetchSize, String username)
throws TException, MetadataException, QueryProcessException, StorageEngineException,