You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2019/12/10 04:17:29 UTC
[incubator-iotdb] branch master updated: Move show version to
server-side (#630)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 0212fd8 Move show version to server-side (#630)
0212fd8 is described below
commit 0212fd85482fda9437763a32637e16eb3b10d635
Author: Boris <zh...@gmail.com>
AuthorDate: Tue Dec 10 12:17:19 2019 +0800
Move show version to server-side (#630)
* move show version to the server and use antlr to parse it.
---
.../main/java/org/apache/iotdb/jdbc/Constant.java | 3 --
.../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 14 --------
.../iotdb/jdbc/IoTDBMetadataResultMetadata.java | 2 +-
.../apache/iotdb/jdbc/IoTDBMetadataResultSet.java | 5 ---
.../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 5 ---
.../org/apache/iotdb/db/qp/strategy/SqlBase.g4 | 9 +++--
.../apache/iotdb/db/qp/constant/SQLConstant.java | 1 +
.../qp/executor/AbstractQueryProcessExecutor.java | 33 +++++++++++------
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 2 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 13 +++++--
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 2 ++
.../dataset/SingleDataSet.java} | 41 ++++++++++------------
.../iotdb/db/query/executor/EngineQueryRouter.java | 2 --
.../db/query/executor/FillEngineExecutor.java | 1 -
.../org/apache/iotdb/db/service/TSServiceImpl.java | 23 +++++++-----
.../iotdb/db/integration/IoTDBMetadataFetchIT.java | 4 +--
service-rpc/rpc-changelist.md | 1 +
service-rpc/src/main/thrift/rpc.thrift | 1 -
18 files changed, 82 insertions(+), 80 deletions(-)
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/Constant.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/Constant.java
index bca6af8..fe66e64 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/Constant.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/Constant.java
@@ -24,8 +24,6 @@ public class Constant {
public static final String GLOBAL_DB_NAME = "IoTDB";
- static final String GLOBAL_VERSION = "VERSION";
-
public static final String GLOBAL_COLUMN_REQ = "COLUMN";
static final String GLOBAL_SHOW_DEVICES_REQ = "SHOW_DEVICES";
@@ -50,7 +48,6 @@ public class Constant {
public static final String CATALOG_STORAGE_GROUP = "sg";
public static final String CATALOG_DEVICES = "devices";
public static final String CATALOG_CHILD_PATHS = "cp";
- public static final String CATALOG_VERSION = "version";
static final String COUNT_TIMESERIES = "cntts";
static final String COUNT_NODE_TIMESERIES = "cntnodets";
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBDatabaseMetadata.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBDatabaseMetadata.java
index 433b41a..ae61f30 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBDatabaseMetadata.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBDatabaseMetadata.java
@@ -161,20 +161,6 @@ public class IoTDBDatabaseMetadata implements DatabaseMetaData {
} catch (TException e) {
throw new TException("Connection error when fetching timeseries metadata", e);
}
- case Constant.CATALOG_VERSION:
- req = new TSFetchMetadataReq(Constant.GLOBAL_VERSION);
- req.setColumnPath(schemaPattern);
- try {
- TSFetchMetadataResp resp = client.fetchMetadata(req);
- try {
- RpcUtils.verifySuccess(resp.getStatus());
- } catch (IoTDBRPCException e) {
- throw new IoTDBSQLException(e.getMessage(), resp.getStatus());
- }
- return new IoTDBMetadataResultSet(resp.getVersion(), MetadataType.VERSION);
- } catch (TException e) {
- throw new TException("Connection error when fetching timeseries metadata", e);
- }
default:
throw new SQLException(catalog + " is not supported. Please refer to the user guide"
+ " for more details.");
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultMetadata.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultMetadata.java
index 3f2cb98..7e43174 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultMetadata.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultMetadata.java
@@ -24,7 +24,7 @@ import java.sql.SQLException;
import java.sql.Types;
/*
- TsfileMetadataResultMetadata implements a similar api like TsFileQueryResultSet
+ IoTDBMetadataResultMetadata implements a similar api like IoTDBQueryResultSet
to display column metadata.
*/
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultSet.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultSet.java
index 7df876c..c215c6c 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultSet.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBMetadataResultSet.java
@@ -44,7 +44,6 @@ public class IoTDBMetadataResultSet extends IoTDBQueryResultSet {
private String currentStorageGroup;
private String currentDevice;
private String currentChildPath;
- private String currentVersion;
private List<String> currentTimeseries;
private List<String> timeseriesNumList;
private List<String> nodesNumList;
@@ -282,10 +281,6 @@ public class IoTDBMetadataResultSet extends IoTDBQueryResultSet {
currentNode = (String) pair.getKey();
currentNodeTimeseriesNum = (String) pair.getValue();
break;
- case VERSION:
- currentVersion = (String) columnItr.next();
- hasNext = false;
- break;
default:
break;
}
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 ca6cd52..f726c3b 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
@@ -53,7 +53,6 @@ public class IoTDBStatement implements Statement {
private static final String COUNT_TIMESERIES_COMMAND_LOWERCASE = "count timeseries";
private static final String COUNT_NODES_COMMAND_LOWERCASE = "count nodes";
private static final String METHOD_NOT_SUPPORTED_STRING = "Method not supported";
- private static final String SHOW_VERSION_COMMAND_LOWERCASE = "show version";
ZoneId zoneId;
private ResultSet resultSet = null;
@@ -316,10 +315,6 @@ public class IoTDBStatement implements Statement {
resultSet = databaseMetaData.getNodes(Constant.COUNT_NODES, path, null, null, level);
return true;
}
- } else if (sqlToLowerCase.equals(SHOW_VERSION_COMMAND_LOWERCASE)) {
- IoTDBDatabaseMetadata databaseMetadata = (IoTDBDatabaseMetadata) connection.getMetaData();
- resultSet = databaseMetadata.getColumns(Constant.CATALOG_VERSION, null, null, null);
- return true;
} else {
TSExecuteStatementReq execReq = new TSExecuteStatementReq(sessionHandle, sql, stmtId);
TSExecuteStatementResp execResp = client.executeStatement(execReq);
diff --git a/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4 b/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4
index aabcca8..784a5b2 100644
--- a/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4
+++ b/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4
@@ -69,11 +69,11 @@ statement
| SHOW ALL TTL #showAllTTLStatement
| SHOW FLUSH TASK INFO #showFlushTaskInfo
| SHOW DYNAMIC PARAMETER #showDynamicParameter
+ | SHOW VERSION #showVersion
| LOAD CONFIGURATION #loadConfigurationStatement
| LOAD FILE autoCreateSchema? #loadFiles
- | REMOVE FILE#removeFile
+ | REMOVE FILE #removeFile
| MOVE FILE FILE #moveFile
-
| SELECT INDEX func=ID //not support yet
LR_BRACKET
p1=timeseriesPath COMMA p2=timeseriesPath COMMA n1=timeValue COMMA n2=timeValue COMMA
@@ -621,6 +621,11 @@ PARAMETER
: P A R A M E T E R
;
+
+VERSION
+ : V E R S I O N
+ ;
+
REMOVE
: R E M O V E
;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/constant/SQLConstant.java b/server/src/main/java/org/apache/iotdb/db/qp/constant/SQLConstant.java
index 555736c..dbc81ff 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/constant/SQLConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/constant/SQLConstant.java
@@ -128,6 +128,7 @@ public class SQLConstant {
public static final int TOK_LOAD_FILES = 69;
public static final int TOK_REMOVE_FILE = 70;
public static final int TOK_MOVE_FILE = 71;
+ public static final int TOK_VERSION = 72;
public static final Map<Integer, String> tokenSymbol = new HashMap<>();
public static final Map<Integer, String> tokenNames = new HashMap<>();
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java
index dce3286..a0fa7c1 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java
@@ -30,6 +30,7 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.apache.iotdb.db.conf.IoTDBConstant;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.conf.adapter.CompressionRatio;
import org.apache.iotdb.db.conf.adapter.IoTDBConfigDynamicAdapter;
@@ -40,13 +41,18 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.metadata.MManager;
import org.apache.iotdb.db.metadata.MNode;
import org.apache.iotdb.db.qp.physical.PhysicalPlan;
-import org.apache.iotdb.db.qp.physical.crud.*;
+import org.apache.iotdb.db.qp.physical.crud.AggregationPlan;
+import org.apache.iotdb.db.qp.physical.crud.DeletePlan;
+import org.apache.iotdb.db.qp.physical.crud.FillQueryPlan;
+import org.apache.iotdb.db.qp.physical.crud.GroupByPlan;
+import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
import org.apache.iotdb.db.qp.physical.sys.AuthorPlan;
import org.apache.iotdb.db.qp.physical.sys.ShowPlan;
import org.apache.iotdb.db.qp.physical.sys.ShowTTLPlan;
import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.db.query.dataset.DeviceIterateDataSet;
import org.apache.iotdb.db.query.dataset.ListDataSet;
+import org.apache.iotdb.db.query.dataset.SingleDataSet;
import org.apache.iotdb.db.query.executor.EngineQueryRouter;
import org.apache.iotdb.db.query.executor.IEngineQueryRouter;
import org.apache.iotdb.tsfile.exception.filter.QueryFilterOptimizationException;
@@ -58,15 +64,6 @@ import org.apache.iotdb.tsfile.read.expression.QueryExpression;
import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
import org.apache.iotdb.tsfile.utils.Binary;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import static org.apache.iotdb.db.conf.IoTDBConstant.STORAGE_GROUP;
-import static org.apache.iotdb.db.conf.IoTDBConstant.TTL;
-
public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecutor {
IEngineQueryRouter queryRouter = new EngineQueryRouter();
@@ -93,6 +90,8 @@ public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecu
return processShowDynamicParameterQuery();
case FLUSH_TASK_INFO:
return processShowFlushTaskInfo();
+ case VERSION:
+ return processShowVersion();
default:
throw new QueryProcessException(String.format("Unrecognized show plan %s", showPlan));
}
@@ -134,6 +133,20 @@ public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecu
return listDataSet;
}
+ private QueryDataSet processShowVersion() {
+ List<Path> paths = new ArrayList<>();
+ List<TSDataType> dataTypes = new ArrayList<>();
+ paths.add(new Path("root"));
+ dataTypes.add(TSDataType.TEXT);
+ SingleDataSet singleDataSet = new SingleDataSet(paths, dataTypes);
+ Field field = new Field(TSDataType.TEXT);
+ field.setBinaryV(new Binary(IoTDBConstant.VERSION));
+ RowRecord rowRecord = new RowRecord(0);
+ rowRecord.addField(field);
+ singleDataSet.setRecord(rowRecord);
+ return singleDataSet;
+ }
+
private QueryDataSet processShowDynamicParameterQuery() {
List<Path> paths = new ArrayList<>();
paths.add(new Path(PARAMETER));
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
index 5c2f9dd..2ca5862 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
@@ -49,7 +49,7 @@ public class ShowPlan extends PhysicalPlan {
}
public enum ShowContentType {
- DYNAMIC_PARAMETER, FLUSH_TASK_INFO, TTL
+ DYNAMIC_PARAMETER, FLUSH_TASK_INFO, TTL, VERSION
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
index 273c4d1..582c042 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
@@ -120,6 +120,7 @@ import org.apache.iotdb.db.qp.strategy.SqlBaseParser.SetStorageGroupContext;
import org.apache.iotdb.db.qp.strategy.SqlBaseParser.SetTTLStatementContext;
import org.apache.iotdb.db.qp.strategy.SqlBaseParser.ShowAllTTLStatementContext;
import org.apache.iotdb.db.qp.strategy.SqlBaseParser.ShowTTLStatementContext;
+import org.apache.iotdb.db.qp.strategy.SqlBaseParser.ShowVersionContext;
import org.apache.iotdb.db.qp.strategy.SqlBaseParser.SlimitClauseContext;
import org.apache.iotdb.db.qp.strategy.SqlBaseParser.SoffsetClauseContext;
import org.apache.iotdb.db.qp.strategy.SqlBaseParser.SuffixPathContext;
@@ -191,14 +192,14 @@ public class LogicalGenerator extends SqlBaseBaseListener {
@Override
public void enterMoveFile(MoveFileContext ctx) {
super.enterMoveFile(ctx);
- initializedOperator = new MoveFileOperator(new File(ctx.getChild(1).getText()),
- new File(ctx.getChild(2).getText()));
+ initializedOperator = new MoveFileOperator(new File(ctx.FILE(0).getText()),
+ new File(ctx.FILE(1).getText()));
}
@Override
public void enterRemoveFile(RemoveFileContext ctx) {
super.enterRemoveFile(ctx);
- initializedOperator = new RemoveFileOperator(new File(ctx.getChild(1).getText()));
+ initializedOperator = new RemoveFileOperator(new File(ctx.FILE().getText()));
}
@Override
@@ -208,6 +209,12 @@ public class LogicalGenerator extends SqlBaseBaseListener {
}
@Override
+ public void enterShowVersion(ShowVersionContext ctx) {
+ super.enterShowVersion(ctx);
+ initializedOperator = new ShowOperator(SQLConstant.TOK_VERSION);
+ }
+
+ @Override
public void enterShowDynamicParameter(SqlBaseParser.ShowDynamicParameterContext ctx) {
super.enterShowDynamicParameter(ctx);
initializedOperator = new ShowOperator(SQLConstant.TOK_DYNAMIC_PARAMETER);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
index f62c3b2..077d256 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
@@ -168,6 +168,8 @@ public class PhysicalGenerator {
return new ShowPlan(ShowContentType.DYNAMIC_PARAMETER);
case SQLConstant.TOK_FLUSH_TASK_INFO:
return new ShowPlan(ShowContentType.FLUSH_TASK_INFO);
+ case SQLConstant.TOK_VERSION:
+ return new ShowPlan(ShowContentType.VERSION);
default:
throw new LogicalOperatorException(String
.format("not supported operator type %s in show operation.", operator.getType()));
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/SingleDataSet.java
similarity index 56%
copy from server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
copy to server/src/main/java/org/apache/iotdb/db/query/dataset/SingleDataSet.java
index 5c2f9dd..e6e60d3 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/SingleDataSet.java
@@ -15,41 +15,38 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
- *
*/
-package org.apache.iotdb.db.qp.physical.sys;
+package org.apache.iotdb.db.query.dataset;
+import java.io.IOException;
import java.util.List;
-import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
-import org.apache.iotdb.db.qp.physical.PhysicalPlan;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.Path;
+import org.apache.iotdb.tsfile.read.common.RowRecord;
+import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
-public class ShowPlan extends PhysicalPlan {
-
- private ShowContentType showContentType;
+public class SingleDataSet extends QueryDataSet {
- public ShowPlan(ShowContentType showContentType){
- super(true);
- this.showContentType = showContentType;
- setOperatorType(OperatorType.SHOW);
- }
+ private RowRecord record;
+ private int i = 0;
- @Override
- public List<Path> getPaths() {
- return null;
+ public SingleDataSet(List<Path> paths,
+ List<TSDataType> dataTypes) {
+ super(paths, dataTypes);
}
- public ShowContentType getShowContentType() {
- return showContentType;
+ public void setRecord(RowRecord record) {
+ this.record = record;
}
@Override
- public String toString() {
- return String.format("%s %s", getOperatorType().toString(), showContentType);
+ protected boolean hasNextWithoutConstraint() throws IOException {
+ return i == 0;
}
- public enum ShowContentType {
- DYNAMIC_PARAMETER, FLUSH_TASK_INFO, TTL
+ @Override
+ protected RowRecord nextWithoutConstraint() throws IOException {
+ i++;
+ return record;
}
-
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java b/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
index aaf70ed..267f915 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
@@ -24,7 +24,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.apache.iotdb.db.exception.StorageEngineException;
-import org.apache.iotdb.db.exception.path.PathException;
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.db.query.dataset.groupby.GroupByWithValueFilterDataSet;
@@ -40,7 +39,6 @@ import org.apache.iotdb.tsfile.read.expression.impl.BinaryExpression;
import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
import org.apache.iotdb.tsfile.read.expression.util.ExpressionOptimizer;
import org.apache.iotdb.tsfile.read.filter.GroupByFilter;
-import org.apache.iotdb.tsfile.read.filter.TimeFilter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterType;
import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
import org.apache.iotdb.tsfile.utils.Pair;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java
index 00bbe8e..315d0a4 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.iotdb.db.exception.StorageEngineException;
-import org.apache.iotdb.db.exception.path.PathException;
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.metadata.MManager;
import org.apache.iotdb.db.query.context.QueryContext;
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 af471db..c6ea279 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
@@ -378,10 +378,6 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
getNodeTimeseriesNum(getNodesList(req.getColumnPath(), req.getNodeLevel())));
status = getStatus(TSStatusCode.SUCCESS_STATUS);
break;
- case "VERSION":
- resp.setVersion(getVersion());
- status = getStatus(TSStatusCode.SUCCESS_STATUS);
- break;
default:
status = getStatus(TSStatusCode.METADATA_ERROR, req.getType());
break;
@@ -422,10 +418,6 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return MManager.getInstance().getChildNodePathInNextLevel(path);
}
- private String getVersion() throws SQLException {
- return IoTDBConstant.VERSION;
- }
-
private List<List<String>> getTimeSeriesForPath(String path)
throws PathException {
return MManager.getInstance().getShowTimeseriesPath(path);
@@ -669,6 +661,8 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return executeShowFlushTaskInfo();
case DYNAMIC_PARAMETER:
return executeShowDynamicParameter();
+ case VERSION:
+ return executeShowVersion();
default:
logger.error("Unsupported show content type: {}", showPlan.getShowContentType());
throw new Exception("Unsupported show content type:" + showPlan.getShowContentType());
@@ -720,6 +714,19 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return resp;
}
+ private TSExecuteStatementResp executeShowVersion() {
+ TSExecuteStatementResp resp =
+ getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS));
+ resp.setIgnoreTimeStamp(true);
+ List<String> columns = new ArrayList<>();
+ List<String> columnTypes = new ArrayList<>();
+ columns.add("version ");
+ columnTypes.add(TSDataType.TEXT.toString());
+ resp.setColumns(columns);
+ resp.setDataTypeList(columnTypes);
+ return resp;
+ }
+
private TSExecuteStatementResp getAuthQueryColumnHeaders(PhysicalPlan plan) {
TSExecuteStatementResp resp = getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS));
resp.setIgnoreTimeStamp(true);
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
index 0c4203c..1c93693 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
@@ -208,8 +208,8 @@ public class IoTDBMetadataFetchIT {
boolean hasResultSet = statement.execute(sql);
if(hasResultSet) {
try(ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Assert.assertEquals(resultSetMetaData.getColumnLabel(1), IoTDBConstant.VERSION);
+ resultSet.next();
+ Assert.assertEquals(resultSet.getString(2), IoTDBConstant.VERSION);
}
}
} catch (Exception e) {
diff --git a/service-rpc/rpc-changelist.md b/service-rpc/rpc-changelist.md
index 43c8a75..4e722f8 100644
--- a/service-rpc/rpc-changelist.md
+++ b/service-rpc/rpc-changelist.md
@@ -32,6 +32,7 @@ Last Updated on October 27th, 2019 by Lei Rui.
| Delete struct TSSetStorageGroupReq | Jialin Qiao |
| Remove struct TSDataValue | Lei Rui |
| Remove struct TSRowRecord | Lei Rui |
+| Remove optional string version in TSFetchMetadataResp | Genius_pig |
diff --git a/service-rpc/src/main/thrift/rpc.thrift b/service-rpc/src/main/thrift/rpc.thrift
index 4384309..d7a123d 100644
--- a/service-rpc/src/main/thrift/rpc.thrift
+++ b/service-rpc/src/main/thrift/rpc.thrift
@@ -198,7 +198,6 @@ struct TSFetchMetadataResp{
9: optional list<string> nodesList
10: optional map<string, string> nodeTimeseriesNum
11: optional set<string> childPaths
- 12: optional string version
}
struct TSFetchMetadataReq{