You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ge...@apache.org on 2020/12/02 10:01:52 UTC
[iotdb] 01/01: remove static resps
This is an automated email from the ASF dual-hosted git repository.
geniuspig pushed a commit to branch remove_duplicate_header
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 9aae15d92f538a4ce731895eb7bf0ce995241a33
Author: Boris <96...@qq.com>
AuthorDate: Wed Dec 2 18:01:24 2020 +0800
remove static resps
---
.../org/apache/iotdb/db/service/StaticResps.java | 98 +------------------
.../org/apache/iotdb/db/service/TSServiceImpl.java | 107 ++++++---------------
2 files changed, 28 insertions(+), 177 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java b/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java
index ac45067..f261469 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java
@@ -19,30 +19,10 @@
package org.apache.iotdb.db.service;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CANCELLED;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CHILD_PATHS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_COLUMN;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_COUNT;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CREATED_TIME;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_DEVICES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_DONE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_ITEM;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_PRIVILEGE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_PROGRESS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_ROLE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_STORAGE_GROUP;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TASK_NAME;
import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_COMPRESSION;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_ENCODING;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TTL;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_USER;
import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_VALUE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_VERSION;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -58,88 +38,12 @@ class StaticResps {
// enum-like class
}
- static final TSExecuteStatementResp TTL_RESP = getNoTimeExecuteResp(
- Arrays.asList(COLUMN_STORAGE_GROUP, COLUMN_TTL),
- Arrays.asList(TSDataType.TEXT.toString(), TSDataType.INT64.toString()));
-
- static final TSExecuteStatementResp FLUSH_INFO_RESP = getNoTimeExecuteResp(
- Arrays.asList(COLUMN_ITEM, COLUMN_VALUE),
- Arrays.asList(TSDataType.TEXT.toString(), TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp SHOW_VERSION_RESP = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_VERSION),
- Collections.singletonList(TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp SHOW_TIMESERIES_RESP = getNoTimeExecuteResp(
- Arrays.asList(COLUMN_TIMESERIES, COLUMN_STORAGE_GROUP, COLUMN_TIMESERIES_DATATYPE,
- COLUMN_TIMESERIES_ENCODING, COLUMN_TIMESERIES_COMPRESSION),
- Arrays.asList(TSDataType.TEXT.toString(),
- TSDataType.TEXT.toString(),
- TSDataType.TEXT.toString(),
- TSDataType.TEXT.toString(),
- TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp SHOW_DEVICES = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_DEVICES),
- Collections.singletonList(TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp SHOW_STORAGE_GROUP = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_STORAGE_GROUP),
- Collections.singletonList(TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp SHOW_CHILD_PATHS = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_CHILD_PATHS),
- Collections.singletonList(TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp COUNT_TIMESERIES = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_COUNT),
- Collections.singletonList(TSDataType.INT32.toString()));
-
- static final TSExecuteStatementResp COUNT_NODE_TIMESERIES = getNoTimeExecuteResp(
- Arrays.asList(COLUMN_COLUMN, COLUMN_COUNT),
- Arrays.asList(TSDataType.TEXT.toString(), TSDataType.INT32.toString()));
-
- static final TSExecuteStatementResp COUNT_DEVICES = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_COUNT),
- Collections.singletonList(TSDataType.INT32.toString()));
-
- static final TSExecuteStatementResp COUNT_STORAGE_GROUP = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_COUNT),
- Collections.singletonList(TSDataType.INT32.toString()));
-
- static final TSExecuteStatementResp COUNT_NODES = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_COUNT),
- Collections.singletonList(TSDataType.INT32.toString()));
-
- static final TSExecuteStatementResp LIST_ROLE_RESP = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_ROLE),
- Collections.singletonList(TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp LIST_USER_RESP = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_USER),
- Collections.singletonList(TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp LIST_USER_PRIVILEGE_RESP = getNoTimeExecuteResp(
- Arrays.asList(COLUMN_ROLE, COLUMN_PRIVILEGE),
- Arrays.asList(TSDataType.TEXT.toString(), TSDataType.TEXT.toString()));
-
- static final TSExecuteStatementResp LIST_ROLE_PRIVILEGE_RESP = getNoTimeExecuteResp(
- Collections.singletonList(COLUMN_PRIVILEGE),
- Collections.singletonList(TSDataType.TEXT.toString()));
-
static final TSExecuteStatementResp LAST_RESP = getExecuteResp(
Arrays.asList(COLUMN_TIMESERIES, COLUMN_VALUE),
Arrays.asList(TSDataType.TEXT.toString(), TSDataType.TEXT.toString()), false
);
- static final TSExecuteStatementResp MERGE_STATUS_RESP = getNoTimeExecuteResp(
- Arrays.asList(COLUMN_STORAGE_GROUP, COLUMN_TASK_NAME, COLUMN_CREATED_TIME, COLUMN_PROGRESS,
- COLUMN_CANCELLED, COLUMN_DONE),
- Arrays.asList(TSDataType.TEXT.toString(), TSDataType.TEXT.toString(),
- TSDataType.TEXT.toString(),
- TSDataType.TEXT.toString(), TSDataType.BOOLEAN.toString(), TSDataType.BOOLEAN.toString()));
-
- private static TSExecuteStatementResp getNoTimeExecuteResp(List<String> columns,
+ public static TSExecuteStatementResp getNoTimeExecuteResp(List<String> columns,
List<String> dataTypes) {
return getExecuteResp(columns, dataTypes, true);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index 9145e51..bc63108 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -18,8 +18,6 @@
*/
package org.apache.iotdb.db.service;
-import static org.apache.iotdb.db.qp.physical.sys.ShowPlan.ShowContentType.TIMESERIES;
-
import java.io.IOException;
import java.nio.ByteBuffer;
import java.sql.SQLException;
@@ -650,7 +648,6 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
long startTime = System.currentTimeMillis();
long queryId = -1;
try {
- TSExecuteStatementResp resp = getQueryResp(plan, username); // column headers
// In case users forget to set this field in query, use the default value
if (fetchSize == 0) {
@@ -678,10 +675,9 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
}
}
if (plan.getOperatorType() == OperatorType.AGGREGATION) {
- resp.setIgnoreTimeStamp(true);
// the actual row number of aggregation query is 1
fetchSize = 1;
- } // else default ignoreTimeStamp is false
+ }
if (plan instanceof GroupByTimePlan) {
GroupByTimePlan groupByTimePlan = (GroupByTimePlan) plan;
@@ -691,8 +687,6 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
.getInterval()), fetchSize);
}
- resp.setOperationType(plan.getOperatorType().toString());
-
// get deduplicated path num
int deduplicatedPathNum = -1;
if (plan instanceof AlignByDevicePlan) {
@@ -725,19 +719,30 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
if (plan instanceof AuthorPlan) {
plan.setLoginUserName(username);
}
+
+ TSExecuteStatementResp resp = null;
+
+ if (plan instanceof QueryPlan) {
+ resp = getQueryColumnHeaders(plan, username);
+ }
// create and cache dataset
QueryDataSet newDataSet = createQueryDataSet(queryId, plan);
+
+ if (plan instanceof ShowPlan || plan instanceof AuthorPlan) {
+ resp = getListDataResp(newDataSet);
+ }
+
+ resp.setOperationType(plan.getOperatorType().toString());
+
+ if (plan.getOperatorType() == OperatorType.AGGREGATION) {
+ resp.setIgnoreTimeStamp(true);
+ } // else default ignoreTimeStamp is false
+
if (plan instanceof QueryPlan && !((QueryPlan) plan).isAlignByTime()
&& newDataSet instanceof NonAlignEngineDataSet) {
TSQueryNonAlignDataSet result = fillRpcNonAlignReturnData(fetchSize, newDataSet, username);
resp.setNonAlignQueryDataSet(result);
} else {
- if (plan instanceof ShowPlan && ((ShowPlan) plan).getShowContentType() == TIMESERIES) {
- resp.setColumns(
- newDataSet.getPaths().stream().map(Path::getFullPath).collect(Collectors.toList()));
- resp.setDataTypeList(
- newDataSet.getDataTypes().stream().map(Enum::toString).collect(Collectors.toList()));
- }
TSQueryDataSet result = fillRpcReturnData(fetchSize, newDataSet, username);
resp.setQueryDataSet(result);
}
@@ -791,71 +796,11 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
}
}
- private TSExecuteStatementResp getQueryResp(PhysicalPlan plan, String username)
- throws QueryProcessException, AuthException, TException, MetadataException {
- if (plan instanceof AuthorPlan) {
- return getAuthQueryColumnHeaders(plan);
- } else if (plan instanceof ShowPlan) {
- return getShowQueryColumnHeaders((ShowPlan) plan);
- } else {
- return getQueryColumnHeaders(plan, username);
- }
- }
-
- private TSExecuteStatementResp getShowQueryColumnHeaders(ShowPlan showPlan)
- throws QueryProcessException {
- switch (showPlan.getShowContentType()) {
- case TTL:
- return StaticResps.TTL_RESP;
- case FLUSH_TASK_INFO:
- return StaticResps.FLUSH_INFO_RESP;
- case VERSION:
- return StaticResps.SHOW_VERSION_RESP;
- case TIMESERIES:
- return StaticResps.SHOW_TIMESERIES_RESP;
- case STORAGE_GROUP:
- return StaticResps.SHOW_STORAGE_GROUP;
- case CHILD_PATH:
- return StaticResps.SHOW_CHILD_PATHS;
- case DEVICES:
- return StaticResps.SHOW_DEVICES;
- case COUNT_NODE_TIMESERIES:
- return StaticResps.COUNT_NODE_TIMESERIES;
- case COUNT_NODES:
- return StaticResps.COUNT_NODES;
- case COUNT_TIMESERIES:
- return StaticResps.COUNT_TIMESERIES;
- case COUNT_DEVICES:
- return StaticResps.COUNT_DEVICES;
- case COUNT_STORAGE_GROUP:
- return StaticResps.COUNT_STORAGE_GROUP;
- case MERGE_STATUS:
- return StaticResps.MERGE_STATUS_RESP;
- default:
- logger.warn("Unsupported show content type: {}", showPlan.getShowContentType());
- throw new QueryProcessException(
- "Unsupported show content type:" + showPlan.getShowContentType());
- }
- }
-
- private TSExecuteStatementResp getAuthQueryColumnHeaders(PhysicalPlan plan) {
- AuthorPlan authorPlan = (AuthorPlan) plan;
- switch (authorPlan.getAuthorType()) {
- case LIST_ROLE:
- case LIST_USER_ROLES:
- return StaticResps.LIST_ROLE_RESP;
- case LIST_USER:
- case LIST_ROLE_USERS:
- return StaticResps.LIST_USER_RESP;
- case LIST_ROLE_PRIVILEGE:
- return StaticResps.LIST_ROLE_PRIVILEGE_RESP;
- case LIST_USER_PRIVILEGE:
- return StaticResps.LIST_USER_PRIVILEGE_RESP;
- default:
- return RpcUtils.getTSExecuteStatementResp(
- RpcUtils.getStatus(TSStatusCode.SQL_PARSE_ERROR,
- String.format("%s is not an auth query", authorPlan.getAuthorType())));
- }
+ private TSExecuteStatementResp getListDataResp(QueryDataSet dataSet) {
+ return StaticResps
+ .getNoTimeExecuteResp(dataSet.getPaths().stream().map(Path::getFullPath).collect(
+ Collectors.toList()), dataSet.getDataTypes().stream().map(Enum::toString).collect(
+ Collectors.toList()));
}
/**
@@ -887,9 +832,11 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return StaticResps.LAST_RESP.deepCopy();
} else if (plan instanceof AggregationPlan && ((AggregationPlan) plan).getLevel() >= 0) {
Map<Integer, String> pathIndex = new HashMap<>();
- Map<String, AggregateResult> finalPaths = FilePathUtils.getPathByLevel((AggregationPlan) plan, pathIndex);
+ Map<String, AggregateResult> finalPaths = FilePathUtils
+ .getPathByLevel((AggregationPlan) plan, pathIndex);
for (Map.Entry<String, AggregateResult> entry : finalPaths.entrySet()) {
- respColumns.add(entry.getValue().getAggregationType().toString() + "(" + entry.getKey() + ")");
+ respColumns
+ .add(entry.getValue().getAggregationType().toString() + "(" + entry.getKey() + ")");
columnsTypes.add(entry.getValue().getResultDataType().toString());
}
} else {