You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by lt...@apache.org on 2019/11/15 04:36:31 UTC

[incubator-iotdb] branch fix_show_info created (now dd89ef7)

This is an automated email from the ASF dual-hosted git repository.

lta pushed a change to branch fix_show_info
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.


      at dd89ef7  add ut

This branch includes the following new commits:

     new 42695c6  rename sync client class name
     new d6ca9de  update TqlLexer.g
     new fbe0227  Merge remote-tracking branch 'origin/master' into fix_show_info
     new e157476  merge master
     new f496dae  add show dynamic parameter and flush task info
     new dd89ef7  add ut

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-iotdb] 06/06: add ut

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch fix_show_info
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit dd89ef7c17962bd9934cdc2cbc4e4c0a77b20f9d
Author: lta <li...@163.com>
AuthorDate: Fri Nov 15 12:36:07 2019 +0800

    add ut
---
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |  6 ++---
 .../qp/executor/AbstractQueryProcessExecutor.java  | 30 +++++++++++-----------
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  4 +--
 3 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
index 8591c93..ace0a75 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
@@ -55,9 +55,9 @@ public class IoTDBConstant {
   public static final int MIN_SUPPORTED_JDK_VERSION = 8;
 
   // show info
-  public static final String ITEM = "item";
-  public static final String PARAMETER = "parameter";
-  public static final String VALUE = "value(B)";
+  public static final String ITEM = "                             item";
+  public static final String PARAMETER = "                                          parameter";
+  public static final String VALUE = "value";
 
   public static final String ROLE = "role";
   public static final String USER = "user";
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 8877860..70c760e 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
@@ -134,25 +134,25 @@ public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecu
     paths.add(new Path(VALUE));
     List<TSDataType> dataTypes = new ArrayList<>();
     dataTypes.add(TSDataType.TEXT);
-    dataTypes.add(TSDataType.INT64);
+    dataTypes.add(TSDataType.TEXT);
     ListDataSet listDataSet = new ListDataSet(paths, dataTypes);
 
     int timestamp = 0;
     addRowRecordForShowQuery(listDataSet, timestamp++, "memtable size threshold",
-        IoTDBDescriptor.getInstance().getConfig().getMemtableSizeThreshold());
+        IoTDBDescriptor.getInstance().getConfig().getMemtableSizeThreshold() + "B");
     addRowRecordForShowQuery(listDataSet, timestamp++, "memtable number",
-        IoTDBDescriptor.getInstance().getConfig().getMaxMemtableNumber());
+        IoTDBDescriptor.getInstance().getConfig().getMaxMemtableNumber() + "B");
     addRowRecordForShowQuery(listDataSet, timestamp++, "tsfile size threshold",
-        IoTDBDescriptor.getInstance().getConfig().getTsFileSizeThreshold());
+        IoTDBDescriptor.getInstance().getConfig().getTsFileSizeThreshold() + "B");
     addRowRecordForShowQuery(listDataSet, timestamp++, "compression ratio",
-        (long) CompressionRatio.getInstance().getRatio());
+        Double.toString(CompressionRatio.getInstance().getRatio()));
     addRowRecordForShowQuery(listDataSet, timestamp++, "storage group number",
-        MManager.getInstance().getAllStorageGroupNames().size());
+        Integer.toString( MManager.getInstance().getAllStorageGroupNames().size()));
     addRowRecordForShowQuery(listDataSet, timestamp++, "timeseries number",
-        IoTDBConfigDynamicAdapter.getInstance().getTotalTimeseries());
+        Integer.toString(IoTDBConfigDynamicAdapter.getInstance().getTotalTimeseries()));
     addRowRecordForShowQuery(listDataSet, timestamp++,
         "maximal timeseries number among storage groups",
-        MManager.getInstance().getMaximalSeriesNumberAmongStorageGroups());
+        Long.toString(MManager.getInstance().getMaximalSeriesNumberAmongStorageGroups()));
     return listDataSet;
   }
 
@@ -162,26 +162,26 @@ public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecu
     paths.add(new Path(VALUE));
     List<TSDataType> dataTypes = new ArrayList<>();
     dataTypes.add(TSDataType.TEXT);
-    dataTypes.add(TSDataType.INT64);
+    dataTypes.add(TSDataType.TEXT);
     ListDataSet listDataSet = new ListDataSet(paths, dataTypes);
 
     int timestamp = 0;
     addRowRecordForShowQuery(listDataSet, timestamp++, "total number of flush tasks",
-        FlushTaskPoolManager.getInstance().getTotalTasks());
+        Integer.toString(FlushTaskPoolManager.getInstance().getTotalTasks()));
     addRowRecordForShowQuery(listDataSet, timestamp++, "number of working flush tasks",
-        FlushTaskPoolManager.getInstance().getWorkingTasksNumber());
+        Integer.toString(FlushTaskPoolManager.getInstance().getWorkingTasksNumber()));
     addRowRecordForShowQuery(listDataSet, timestamp++, "number of waiting flush tasks",
-        FlushTaskPoolManager.getInstance().getWaitingTasksNumber());
+        Integer.toString(FlushTaskPoolManager.getInstance().getWaitingTasksNumber()));
     return listDataSet;
   }
 
   private void addRowRecordForShowQuery(ListDataSet listDataSet, int timestamp, String item,
-      long value) {
+      String value) {
     RowRecord rowRecord = new RowRecord(timestamp);
     Field itemField = new Field(TSDataType.TEXT);
     itemField.setBinaryV(new Binary(item));
-    Field valueField = new Field(TSDataType.INT64);
-    valueField.setLongV(value);
+    Field valueField = new Field(TSDataType.TEXT);
+    valueField.setBinaryV(new Binary(value));
     rowRecord.addField(itemField);
     rowRecord.addField(valueField);
     listDataSet.putRecord(rowRecord);
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 d5449c4..b2201b9 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
@@ -746,7 +746,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
     columns.add(ITEM);
     columns.add(VALUE);
     columnTypes.add(TSDataType.TEXT.toString());
-    columnTypes.add(TSDataType.INT64.toString());
+    columnTypes.add(TSDataType.TEXT.toString());
     resp.setColumns(columns);
     resp.setDataTypeList(columnTypes);
     return resp;
@@ -761,7 +761,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
     columns.add(PARAMETER);
     columns.add(VALUE);
     columnTypes.add(TSDataType.TEXT.toString());
-    columnTypes.add(TSDataType.INT64.toString());
+    columnTypes.add(TSDataType.TEXT.toString());
     resp.setColumns(columns);
     resp.setDataTypeList(columnTypes);
     return resp;


[incubator-iotdb] 01/06: rename sync client class name

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch fix_show_info
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 42695c6abd844feb40a7d6756430dedb93fe84a2
Author: lta <li...@163.com>
AuthorDate: Fri Nov 8 17:40:22 2019 +0800

    rename sync client class name
---
 .../ISyncClient.java}                                    |  4 ++--
 .../DataTransferManager.java => client/SyncClient.java}  | 16 ++++++++--------
 .../{transfer => client}/DataTransferManagerTest.java    |  6 +++---
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/IDataTransferManager.java b/server/src/main/java/org/apache/iotdb/db/sync/sender/client/ISyncClient.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/IDataTransferManager.java
rename to server/src/main/java/org/apache/iotdb/db/sync/sender/client/ISyncClient.java
index f218451..7c5e73a 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/IDataTransferManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/sender/client/ISyncClient.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.sync.sender.transfer;
+package org.apache.iotdb.db.sync.sender.client;
 
 import java.io.File;
 import java.io.IOException;
@@ -31,7 +31,7 @@ import org.apache.thrift.TException;
  * synchronized in <class>SyncFileManager</class>, these files are synchronized to the receiving end
  * to complete the synchronization task.
  */
-public interface IDataTransferManager {
+public interface ISyncClient {
 
   void init();
 
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/DataTransferManager.java b/server/src/main/java/org/apache/iotdb/db/sync/sender/client/SyncClient.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/DataTransferManager.java
rename to server/src/main/java/org/apache/iotdb/db/sync/sender/client/SyncClient.java
index dc04a1a..69a3640 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/DataTransferManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/sender/client/SyncClient.java
@@ -12,7 +12,7 @@
  * or implied.  See the License for the specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.sync.sender.transfer;
+package org.apache.iotdb.db.sync.sender.client;
 
 import static org.apache.iotdb.db.sync.conf.SyncConstant.CONFLICT_CODE;
 import static org.apache.iotdb.db.sync.conf.SyncConstant.SUCCESS_CODE;
@@ -72,9 +72,9 @@ import org.apache.thrift.transport.TTransportException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class DataTransferManager implements IDataTransferManager {
+public class SyncClient implements ISyncClient {
 
-  private static final Logger logger = LoggerFactory.getLogger(DataTransferManager.class);
+  private static final Logger logger = LoggerFactory.getLogger(SyncClient.class);
 
   private static SyncSenderConfig config = SyncSenderDescriptor.getInstance().getConfig();
 
@@ -114,11 +114,11 @@ public class DataTransferManager implements IDataTransferManager {
 
   private ScheduledExecutorService executorService;
 
-  private DataTransferManager() {
+  private SyncClient() {
     init();
   }
 
-  public static DataTransferManager getInstance() {
+  public static SyncClient getInstance() {
     return InstanceHolder.INSTANCE;
   }
 
@@ -127,7 +127,7 @@ public class DataTransferManager implements IDataTransferManager {
    */
   public static void main(String[] args) throws IOException {
     Thread.currentThread().setName(ThreadName.SYNC_CLIENT.getName());
-    IDataTransferManager fileSenderImpl = new DataTransferManager();
+    ISyncClient fileSenderImpl = new SyncClient();
     fileSenderImpl.verifySingleton();
     fileSenderImpl.startMonitor();
     fileSenderImpl.startTimedTask();
@@ -655,7 +655,7 @@ public class DataTransferManager implements IDataTransferManager {
 
   private static class InstanceHolder {
 
-    private static final DataTransferManager INSTANCE = new DataTransferManager();
+    private static final SyncClient INSTANCE = new SyncClient();
   }
 
   private File getSyncLogFile() {
@@ -667,6 +667,6 @@ public class DataTransferManager implements IDataTransferManager {
   }
 
   public void setConfig(SyncSenderConfig config) {
-    DataTransferManager.config = config;
+    SyncClient.config = config;
   }
 }
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/sender/transfer/DataTransferManagerTest.java b/server/src/test/java/org/apache/iotdb/db/sync/sender/client/DataTransferManagerTest.java
similarity index 96%
rename from server/src/test/java/org/apache/iotdb/db/sync/sender/transfer/DataTransferManagerTest.java
rename to server/src/test/java/org/apache/iotdb/db/sync/sender/client/DataTransferManagerTest.java
index 305a2ea..49ae416 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/sender/transfer/DataTransferManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/sender/client/DataTransferManagerTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.sync.sender.transfer;
+package org.apache.iotdb.db.sync.sender.client;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -51,7 +51,7 @@ import org.slf4j.LoggerFactory;
 public class DataTransferManagerTest {
 
   private static final Logger logger = LoggerFactory.getLogger(DataTransferManagerTest.class);
-  private IDataTransferManager manager = DataTransferManager.getInstance();
+  private ISyncClient manager = SyncClient.getInstance();
   private SyncSenderConfig config = SyncSenderDescriptor.getInstance().getConfig();
   private String dataDir;
   private ISyncSenderLogAnalyzer senderLogAnalyzer;
@@ -106,7 +106,7 @@ public class DataTransferManagerTest {
       dataFileMap.putIfAbsent(sgFile.getName(), new HashSet<>());
       for (File tsfile : sgFile.listFiles()) {
         if (!tsfile.getName().endsWith(TsFileResource.RESOURCE_SUFFIX)) {
-          ((DataTransferManager)manager).makeFileSnapshot(tsfile);
+          ((SyncClient)manager).makeFileSnapshot(tsfile);
         }
         dataFileMap.get(sgFile.getName()).add(tsfile.getName());
       }


[incubator-iotdb] 02/06: update TqlLexer.g

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch fix_show_info
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit d6ca9de3aa0d116eb17733809291bbef00af7112
Author: lta <li...@163.com>
AuthorDate: Wed Nov 13 15:20:59 2019 +0800

    update TqlLexer.g
---
 .../antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g  | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g b/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
index c49fb6f..896c11f 100644
--- a/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
+++ b/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
@@ -273,6 +273,26 @@ K_UNSET
     : U N S E T
     ;
 
+K_FLUSH
+    : F L U S H
+    ;
+
+K_TASK
+    : T A S K
+    ;
+
+K_DYNAMIC
+    : D Y N A  M I C
+    ;
+
+K_PARAMETERS
+    : P A R  A M E T E R S
+    ;
+
+K_INFO
+    : I N F O
+    ;
+
 //************** logical operator***********
 OPERATOR_AND
     : A N D


[incubator-iotdb] 05/06: add show dynamic parameter and flush task info

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch fix_show_info
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit f496dae489da560783311a26da7f8b924252785d
Author: lta <li...@163.com>
AuthorDate: Fri Nov 15 11:58:11 2019 +0800

    add show dynamic parameter and flush task info
---
 .../org/apache/iotdb/db/sql/parse/TqlLexer.g       |   7 +-
 .../org/apache/iotdb/db/sql/parse/TqlParser.g      |  25 +++
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |  10 +-
 .../org/apache/iotdb/db/qp/QueryProcessor.java     |   1 +
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   5 +
 .../qp/executor/AbstractQueryProcessExecutor.java  |  90 ++++++++++-
 .../org/apache/iotdb/db/qp/logical/Operator.java   |   2 +-
 .../{ShowTTLOperator.java => ShowOperator.java}    |  20 +--
 .../iotdb/db/qp/logical/sys/ShowTTLOperator.java   |   5 +-
 .../sys/ShowPlan.java}                             |  41 +++--
 .../iotdb/db/qp/physical/sys/ShowTTLPlan.java      |   7 +-
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |  19 +++
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |  12 ++
 .../org/apache/iotdb/db/service/TSServiceImpl.java | 169 ++++++++++-----------
 .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java  |  17 +++
 15 files changed, 289 insertions(+), 141 deletions(-)

diff --git a/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g b/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
index 00ce42e..7237522 100644
--- a/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
+++ b/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
@@ -286,15 +286,16 @@ K_TASK
     ;
 
 K_DYNAMIC
-    : D Y N A  M I C
+    : D Y N A M I C
     ;
 
-K_PARAMETERS
-    : P A R  A M E T E R S
+K_PARAMETER
+    : P A R A M E T E R
     ;
 
 K_INFO
     : I N F O
+    ;
 
 //************** logical operator***********
 OPERATOR_AND
diff --git a/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlParser.g b/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlParser.g
index 9f420c4..e9cf046 100644
--- a/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlParser.g
+++ b/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlParser.g
@@ -108,6 +108,8 @@ tokens{
     TOK_DATE_EXPR;
     TOK_DURATION;
     TOK_LOAD_CONFIGURATION;
+    TOK_DYNAMIC_PARAMETER;
+    TOK_FLUSH_TASK_INFO;
 }
 
 @header{
@@ -172,6 +174,13 @@ static {
 	tokenNameMap.put("K_LIST", "LIST");
 	tokenNameMap.put("K_TTL", "TTL");
 	tokenNameMap.put("K_UNSET", "UNSET");
+	tokenNameMap.put("K_CONFIGURATION", "CONFIGURATION");
+	tokenNameMap.put("K_FLUSH", "FLUSH");
+	tokenNameMap.put("K_TASK", "TASK");
+	tokenNameMap.put("K_DYNAMIC", "DYNAMIC");
+	tokenNameMap.put("K_PARAMETER", "PARAMETER");
+	tokenNameMap.put("K_INFO", "INFO");
+
 	// Operators
 	tokenNameMap.put("DOT", ".");
 	tokenNameMap.put("COLON", ":");
@@ -276,6 +285,7 @@ sqlStatement
     | dmlStatement
     | administrationStatement
     | configurationStatement
+    | showStatement
     ;
 
 dmlStatement
@@ -765,6 +775,21 @@ loadConfigurationStatement
     -> ^(TOK_LOAD_CONFIGURATION)
     ;
 
+showStatement
+    : showFlushTaskInfo
+    | showDynamicParameter
+    ;
+
+showFlushTaskInfo
+    : K_SHOW K_FLUSH K_TASK K_INFO
+    -> ^(TOK_SHOW TOK_FLUSH_TASK_INFO)
+    ;
+
+showDynamicParameter
+    : K_SHOW K_DYNAMIC K_PARAMETER
+    -> ^(TOK_SHOW TOK_DYNAMIC_PARAMETER)
+    ;
+
 /*
 ****
 *************
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
index 9fe4780..8591c93 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
@@ -54,12 +54,10 @@ public class IoTDBConstant {
   public static final String MIN_TIME = "min_time";
   public static final int MIN_SUPPORTED_JDK_VERSION = 8;
 
-  // for cluster, set read consistency level
-  public static final String SET_READ_CONSISTENCY_LEVEL_PATTERN = "set\\s+read.*level.*";
-
-  public static final String SHOW_FLUSH_TASK_INFO = "show\\s+flush\\s+task\\s+info";
-
-  public static final String SHOW_DYNAMIC_PARAMETERS = "show\\s+dynamic\\s+parameters";
+  // show info
+  public static final String ITEM = "item";
+  public static final String PARAMETER = "parameter";
+  public static final String VALUE = "value(B)";
 
   public static final String ROLE = "role";
   public static final String USER = "user";
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java b/server/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java
index 2e60a29..746465a 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java
@@ -129,6 +129,7 @@ public class QueryProcessor {
       case REVOKE_WATERMARK_EMBEDDING:
       case TTL:
       case LOAD_CONFIGURATION:
+      case SHOW:
         return operator;
       case QUERY:
       case UPDATE:
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 adc63f6..d62ec8d 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
@@ -104,6 +104,9 @@ public class SQLConstant {
   public static final int TOK_SHOW = 65;
   public static final int TOK_LOAD_CONFIGURATION = 66;
 
+  public static final int TOK_FLUSH_TASK_INFO = 67;
+  public static final int TOK_DYNAMIC_PARAMETER = 68;
+
   public static final Map<Integer, String> tokenSymbol = new HashMap<>();
   public static final Map<Integer, String> tokenNames = new HashMap<>();
   public static final Map<Integer, Integer> reverseWords = new HashMap<>();
@@ -164,6 +167,8 @@ public class SQLConstant {
     tokenNames.put(TOK_SHOW, "TOK_SHOW");
 
     tokenNames.put(TOK_LOAD_CONFIGURATION, "TOK_LOAD_CONFIGURATION");
+    tokenNames.put(TOK_FLUSH_TASK_INFO, "TOK_FLUSH_TASK_INFO");
+    tokenNames.put(TOK_DYNAMIC_PARAMETER, "TOK_DYNAMIC_PARAMETER");
   }
 
   static {
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 8443892..8877860 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
@@ -18,16 +18,23 @@
  */
 package org.apache.iotdb.db.qp.executor;
 
+import static org.apache.iotdb.db.conf.IoTDBConstant.ITEM;
+import static org.apache.iotdb.db.conf.IoTDBConstant.PARAMETER;
 import static org.apache.iotdb.db.conf.IoTDBConstant.STORAGE_GROUP;
 import static org.apache.iotdb.db.conf.IoTDBConstant.TTL;
+import static org.apache.iotdb.db.conf.IoTDBConstant.VALUE;
 
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import org.apache.iotdb.db.exception.metadata.MetadataException;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.conf.adapter.CompressionRatio;
+import org.apache.iotdb.db.conf.adapter.IoTDBConfigDynamicAdapter;
+import org.apache.iotdb.db.engine.flush.pool.FlushTaskPoolManager;
 import org.apache.iotdb.db.exception.StorageEngineException;
+import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.MManager;
 import org.apache.iotdb.db.metadata.MNode;
@@ -38,6 +45,7 @@ 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;
@@ -64,13 +72,26 @@ public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecu
       return processDataQuery((QueryPlan) queryPlan, context);
     } else if (queryPlan instanceof AuthorPlan) {
       return processAuthorQuery((AuthorPlan) queryPlan, context);
-    } else if (queryPlan instanceof ShowTTLPlan) {
-      return processShowTTLQuery((ShowTTLPlan) queryPlan);
+    } else if (queryPlan instanceof ShowPlan) {
+      return processShowQuery((ShowPlan) queryPlan);
     } else {
       throw new QueryProcessException(String.format("Unrecognized query plan %s", queryPlan));
     }
   }
 
+  private QueryDataSet processShowQuery(ShowPlan showPlan) throws QueryProcessException {
+    switch (showPlan.getShowContentType()) {
+      case TTL:
+        return processShowTTLQuery((ShowTTLPlan) showPlan);
+      case DYNAMIC_PARAMETER:
+        return processShowDynamicParameterQuery();
+      case FLUSH_TASK_INFO:
+        return processShowFlushTaskInfo();
+      default:
+        throw new QueryProcessException(String.format("Unrecognized show plan %s", showPlan));
+    }
+  }
+
   private QueryDataSet processShowTTLQuery(ShowTTLPlan showTTLPlan) {
     List<Path> paths = new ArrayList<>();
     paths.add(new Path(STORAGE_GROUP));
@@ -83,13 +104,13 @@ public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecu
     List<String> selectedSgs = showTTLPlan.getStorageGroups();
 
     List<MNode> storageGroups = MManager.getInstance().getAllStorageGroups();
-    int i = 0;
+    int timestamp = 0;
     for (MNode mNode : storageGroups) {
       String sgName = mNode.getFullPath();
       if (!selectedSgs.isEmpty() && !selectedSgs.contains(sgName)) {
         continue;
       }
-      RowRecord rowRecord = new RowRecord(i++);
+      RowRecord rowRecord = new RowRecord(timestamp++);
       Field sg = new Field(TSDataType.TEXT);
       Field ttl;
       sg.setBinaryV(new Binary(sgName));
@@ -107,6 +128,65 @@ public abstract class AbstractQueryProcessExecutor implements IQueryProcessExecu
     return listDataSet;
   }
 
+  private QueryDataSet processShowDynamicParameterQuery() {
+    List<Path> paths = new ArrayList<>();
+    paths.add(new Path(PARAMETER));
+    paths.add(new Path(VALUE));
+    List<TSDataType> dataTypes = new ArrayList<>();
+    dataTypes.add(TSDataType.TEXT);
+    dataTypes.add(TSDataType.INT64);
+    ListDataSet listDataSet = new ListDataSet(paths, dataTypes);
+
+    int timestamp = 0;
+    addRowRecordForShowQuery(listDataSet, timestamp++, "memtable size threshold",
+        IoTDBDescriptor.getInstance().getConfig().getMemtableSizeThreshold());
+    addRowRecordForShowQuery(listDataSet, timestamp++, "memtable number",
+        IoTDBDescriptor.getInstance().getConfig().getMaxMemtableNumber());
+    addRowRecordForShowQuery(listDataSet, timestamp++, "tsfile size threshold",
+        IoTDBDescriptor.getInstance().getConfig().getTsFileSizeThreshold());
+    addRowRecordForShowQuery(listDataSet, timestamp++, "compression ratio",
+        (long) CompressionRatio.getInstance().getRatio());
+    addRowRecordForShowQuery(listDataSet, timestamp++, "storage group number",
+        MManager.getInstance().getAllStorageGroupNames().size());
+    addRowRecordForShowQuery(listDataSet, timestamp++, "timeseries number",
+        IoTDBConfigDynamicAdapter.getInstance().getTotalTimeseries());
+    addRowRecordForShowQuery(listDataSet, timestamp++,
+        "maximal timeseries number among storage groups",
+        MManager.getInstance().getMaximalSeriesNumberAmongStorageGroups());
+    return listDataSet;
+  }
+
+  private QueryDataSet processShowFlushTaskInfo() {
+    List<Path> paths = new ArrayList<>();
+    paths.add(new Path(ITEM));
+    paths.add(new Path(VALUE));
+    List<TSDataType> dataTypes = new ArrayList<>();
+    dataTypes.add(TSDataType.TEXT);
+    dataTypes.add(TSDataType.INT64);
+    ListDataSet listDataSet = new ListDataSet(paths, dataTypes);
+
+    int timestamp = 0;
+    addRowRecordForShowQuery(listDataSet, timestamp++, "total number of flush tasks",
+        FlushTaskPoolManager.getInstance().getTotalTasks());
+    addRowRecordForShowQuery(listDataSet, timestamp++, "number of working flush tasks",
+        FlushTaskPoolManager.getInstance().getWorkingTasksNumber());
+    addRowRecordForShowQuery(listDataSet, timestamp++, "number of waiting flush tasks",
+        FlushTaskPoolManager.getInstance().getWaitingTasksNumber());
+    return listDataSet;
+  }
+
+  private void addRowRecordForShowQuery(ListDataSet listDataSet, int timestamp, String item,
+      long value) {
+    RowRecord rowRecord = new RowRecord(timestamp);
+    Field itemField = new Field(TSDataType.TEXT);
+    itemField.setBinaryV(new Binary(item));
+    Field valueField = new Field(TSDataType.INT64);
+    valueField.setLongV(value);
+    rowRecord.addField(itemField);
+    rowRecord.addField(valueField);
+    listDataSet.putRecord(rowRecord);
+  }
+
   protected abstract QueryDataSet processAuthorQuery(AuthorPlan plan, QueryContext context)
       throws QueryProcessException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
index 06fc4be..8c4eeac 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
@@ -74,6 +74,6 @@ public abstract class Operator {
     DELETE_ROLE, GRANT_ROLE_PRIVILEGE, REVOKE_ROLE_PRIVILEGE, LIST_USER, LIST_ROLE,
     LIST_USER_PRIVILEGE, LIST_ROLE_PRIVILEGE, LIST_USER_ROLES, LIST_ROLE_USERS,
     GRANT_WATERMARK_EMBEDDING, REVOKE_WATERMARK_EMBEDDING,
-    TTL, DELETE_STORAGE_GROUP, LOAD_CONFIGURATION
+    TTL, DELETE_STORAGE_GROUP, LOAD_CONFIGURATION, SHOW
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowOperator.java
similarity index 69%
copy from server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java
copy to server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowOperator.java
index b8406ef..9c5c3b2 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowOperator.java
@@ -17,24 +17,18 @@
  * under the License.
  *
  */
-
 package org.apache.iotdb.db.qp.logical.sys;
 
-import java.util.List;
-import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.logical.RootOperator;
 
-public class ShowTTLOperator extends RootOperator {
-
-  private List<String> storageGroups;
+public class ShowOperator extends RootOperator {
 
-  public ShowTTLOperator(List<String> storageGroups) {
-    super(SQLConstant.TOK_SHOW);
-    this.operatorType = OperatorType.TTL;
-    this.storageGroups = storageGroups;
+  public ShowOperator(int tokenIntType) {
+    this(tokenIntType, OperatorType.SHOW);
   }
 
-  public List<String> getStorageGroups() {
-    return storageGroups;
+  public ShowOperator(int tokenIntType, OperatorType operatorType) {
+    super(tokenIntType);
+    this.operatorType = operatorType;
   }
-}
\ No newline at end of file
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java
index b8406ef..3426883 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java
@@ -24,13 +24,12 @@ import java.util.List;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.logical.RootOperator;
 
-public class ShowTTLOperator extends RootOperator {
+public class ShowTTLOperator extends ShowOperator {
 
   private List<String> storageGroups;
 
   public ShowTTLOperator(List<String> storageGroups) {
-    super(SQLConstant.TOK_SHOW);
-    this.operatorType = OperatorType.TTL;
+    super(SQLConstant.TOK_SHOW, OperatorType.TTL);
     this.storageGroups = storageGroups;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
similarity index 51%
copy from server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java
copy to server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
index b8406ef..5c2f9dd 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/ShowTTLOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowPlan.java
@@ -17,24 +17,39 @@
  * under the License.
  *
  */
-
-package org.apache.iotdb.db.qp.logical.sys;
+package org.apache.iotdb.db.qp.physical.sys;
 
 import java.util.List;
-import org.apache.iotdb.db.qp.constant.SQLConstant;
-import org.apache.iotdb.db.qp.logical.RootOperator;
+import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
+import org.apache.iotdb.db.qp.physical.PhysicalPlan;
+import org.apache.iotdb.tsfile.read.common.Path;
+
+public class ShowPlan extends PhysicalPlan {
+
+  private ShowContentType showContentType;
+
+  public ShowPlan(ShowContentType showContentType){
+    super(true);
+    this.showContentType = showContentType;
+    setOperatorType(OperatorType.SHOW);
+  }
 
-public class ShowTTLOperator extends RootOperator {
+  @Override
+  public List<Path> getPaths() {
+    return null;
+  }
 
-  private List<String> storageGroups;
+  public ShowContentType getShowContentType() {
+    return showContentType;
+  }
 
-  public ShowTTLOperator(List<String> storageGroups) {
-    super(SQLConstant.TOK_SHOW);
-    this.operatorType = OperatorType.TTL;
-    this.storageGroups = storageGroups;
+  @Override
+  public String toString() {
+    return String.format("%s %s", getOperatorType().toString(), showContentType);
   }
 
-  public List<String> getStorageGroups() {
-    return storageGroups;
+  public enum ShowContentType {
+    DYNAMIC_PARAMETER, FLUSH_TASK_INFO, TTL
   }
-}
\ No newline at end of file
+
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowTTLPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowTTLPlan.java
index 5061b4e..1632a61 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowTTLPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/ShowTTLPlan.java
@@ -5,18 +5,15 @@
 package org.apache.iotdb.db.qp.physical.sys;
 
 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.read.common.Path;
 
-public class ShowTTLPlan extends PhysicalPlan {
+public class ShowTTLPlan extends ShowPlan {
 
   private List<String> storageGroups;
 
   public ShowTTLPlan(List<String> storageGroups) {
-    super(true);
+    super(ShowContentType.TTL);
     this.storageGroups = storageGroups;
-    setOperatorType(OperatorType.TTL);
   }
 
   @Override
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 2e7c962..a8d4ae0 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
@@ -37,7 +37,9 @@ import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_CREATE;
 import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_DATETIME;
 import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_DELETE;
 import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_DROP;
+import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_DYNAMIC_PARAMETER;
 import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_FILL;
+import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_FLUSH_TASK_INFO;
 import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_FROM;
 import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_GRANT;
 import static org.apache.iotdb.db.sql.parse.TqlParser.TOK_GRANT_WATERMARK_EMBEDDING;
@@ -109,6 +111,7 @@ import org.apache.iotdb.db.qp.logical.sys.LoadDataOperator;
 import org.apache.iotdb.db.qp.logical.sys.PropertyOperator;
 import org.apache.iotdb.db.qp.logical.sys.SetStorageGroupOperator;
 import org.apache.iotdb.db.qp.logical.sys.SetTTLOperator;
+import org.apache.iotdb.db.qp.logical.sys.ShowOperator;
 import org.apache.iotdb.db.qp.logical.sys.ShowTTLOperator;
 import org.apache.iotdb.db.query.fill.IFill;
 import org.apache.iotdb.db.query.fill.LinearFill;
@@ -280,6 +283,9 @@ public class LogicalGenerator {
       case TOK_LOAD_CONFIGURATION:
         initializedOperator = new LoadConfigurationOperator();
         return;
+      case TOK_SHOW:
+        analyzeShow(astNode);
+        return;
       default:
         throw new QueryProcessException("Not supported TqlParser type " + token.getText());
     }
@@ -288,6 +294,19 @@ public class LogicalGenerator {
     }
   }
 
+  private void analyzeShow(AstNode astNode){
+    switch (astNode.getChild(0).getType()) {
+      case TOK_DYNAMIC_PARAMETER:
+        initializedOperator = new ShowOperator(SQLConstant.TOK_DYNAMIC_PARAMETER);
+        break;
+      case TOK_FLUSH_TASK_INFO:
+        initializedOperator = new ShowOperator(SQLConstant.TOK_FLUSH_TASK_INFO);
+        break;
+      default:
+        break;
+    }
+  }
+
   private void analyzeTTL(AstNode astNode) throws QueryProcessException {
     int tokenType = astNode.getChild(0).getToken().getType();
     switch (tokenType) {
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 0aeef61..e4ed293 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
@@ -66,6 +66,8 @@ import org.apache.iotdb.db.qp.physical.sys.LoadDataPlan;
 import org.apache.iotdb.db.qp.physical.sys.PropertyPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetStorageGroupPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetTTLPlan;
+import org.apache.iotdb.db.qp.physical.sys.ShowPlan;
+import org.apache.iotdb.db.qp.physical.sys.ShowPlan.ShowContentType;
 import org.apache.iotdb.db.qp.physical.sys.ShowTTLPlan;
 import org.apache.iotdb.db.service.TSServiceImpl;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -155,6 +157,16 @@ public class PhysicalGenerator {
         }
       case LOAD_CONFIGURATION:
         return new LoadConfigurationPlan();
+      case SHOW:
+        switch (operator.getTokenIntType()){
+          case SQLConstant.TOK_DYNAMIC_PARAMETER:
+            return new ShowPlan(ShowContentType.DYNAMIC_PARAMETER);
+          case SQLConstant.TOK_FLUSH_TASK_INFO:
+            return new ShowPlan(ShowContentType.FLUSH_TASK_INFO);
+          default:
+            throw new LogicalOperatorException(String
+                .format("not supported operator type %s in show operation.", operator.getType()));
+        }
       default:
         throw new LogicalOperatorException(operator.getType().toString(), "");
     }
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 f8abfce..d5449c4 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,11 +18,14 @@
  */
 package org.apache.iotdb.db.service;
 
+import static org.apache.iotdb.db.conf.IoTDBConstant.ITEM;
+import static org.apache.iotdb.db.conf.IoTDBConstant.PARAMETER;
 import static org.apache.iotdb.db.conf.IoTDBConstant.PRIVILEGE;
 import static org.apache.iotdb.db.conf.IoTDBConstant.ROLE;
 import static org.apache.iotdb.db.conf.IoTDBConstant.STORAGE_GROUP;
 import static org.apache.iotdb.db.conf.IoTDBConstant.TTL;
 import static org.apache.iotdb.db.conf.IoTDBConstant.USER;
+import static org.apache.iotdb.db.conf.IoTDBConstant.VALUE;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -37,7 +40,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
-import java.util.regex.Pattern;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.AuthorityChecker;
 import org.apache.iotdb.db.auth.authorizer.IAuthorizer;
@@ -45,15 +47,12 @@ import org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 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;
 import org.apache.iotdb.db.cost.statistic.Measurement;
 import org.apache.iotdb.db.cost.statistic.Operation;
 import org.apache.iotdb.db.engine.StorageEngine;
-import org.apache.iotdb.db.engine.flush.pool.FlushTaskPoolManager;
-import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.QueryInBatchStatementException;
 import org.apache.iotdb.db.exception.StorageEngineException;
+import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.path.PathException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.exception.storageGroup.StorageGroupException;
@@ -73,7 +72,7 @@ import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.DeleteStorageGroupPlan;
 import org.apache.iotdb.db.qp.physical.sys.DeleteTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.SetStorageGroupPlan;
-import org.apache.iotdb.db.qp.physical.sys.ShowTTLPlan;
+import org.apache.iotdb.db.qp.physical.sys.ShowPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.QueryResourceManager;
 import org.apache.iotdb.db.tools.watermark.GroupedLSBWatermarkEncoder;
@@ -218,32 +217,38 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
       zoneIds.remove();
     }
     // clear the statementId counter
-    if (statementIdGenerator.get() != null)
+    if (statementIdGenerator.get() != null) {
       statementIdGenerator.remove();
+    }
     // clear the queryId counter
-    if (queryIdGenerator.get() != null)
+    if (queryIdGenerator.get() != null) {
       queryIdGenerator.remove();
+    }
     // clear all cached physical plans of the connection
-    if (operationStatus.get() != null)
+    if (operationStatus.get() != null) {
       operationStatus.remove();
+    }
     // clear all cached ResultSets of the connection
-    if (queryDataSets.get() != null)
+    if (queryDataSets.get() != null) {
       queryDataSets.remove();
+    }
     // clear all cached query context of the connection
     if (contextMapLocal.get() != null) {
       try {
         for (QueryContext context : contextMapLocal.get().values()) {
-            QueryResourceManager.getInstance().endQueryForGivenJob(context.getJobId());
+          QueryResourceManager.getInstance().endQueryForGivenJob(context.getJobId());
         }
         contextMapLocal.remove();
       } catch (StorageEngineException e) {
         logger.error("Error in closeSession : ", e);
-        return new TSStatus(getStatus(TSStatusCode.CLOSE_OPERATION_ERROR, "Error in closeOperation"));
+        return new TSStatus(
+            getStatus(TSStatusCode.CLOSE_OPERATION_ERROR, "Error in closeOperation"));
       }
     }
     // clear the statementId to queryId map
-    if (statementId2QueryId.get() != null)
+    if (statementId2QueryId.get() != null) {
       statementId2QueryId.remove();
+    }
 
     return new TSStatus(tsStatus);
   }
@@ -262,8 +267,9 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
         long stmtId = req.getStmtId();
         Set<Long> queryIdSet = statementId2QueryId.get().get(stmtId);
         if (queryIdSet != null) {
-          for (long queryId : queryIdSet)
+          for (long queryId : queryIdSet) {
             releaseQueryResource(queryId);
+          }
           statementId2QueryId.get().remove(stmtId);
         }
       }
@@ -282,21 +288,21 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
 
   /**
    * release single operation resource
-   * @param queryId
-   * @throws StorageEngineException
    */
   private void releaseQueryResource(long queryId) throws StorageEngineException {
 
     // remove the corresponding Physical Plan
-    if (operationStatus.get() != null)
+    if (operationStatus.get() != null) {
       operationStatus.get().remove(queryId);
+    }
     // remove the corresponding Dataset
-    if (queryDataSets.get() != null)
+    if (queryDataSets.get() != null) {
       queryDataSets.get().remove(queryId);
+    }
     // remove the corresponding query context and query resource
     if (contextMapLocal.get() != null && contextMapLocal.get().containsKey(queryId)) {
       QueryResourceManager.getInstance()
-              .endQueryForGivenJob(contextMapLocal.get().remove(queryId).getJobId());
+          .endQueryForGivenJob(contextMapLocal.get().remove(queryId).getJobId());
     }
   }
 
@@ -601,34 +607,6 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
             getStatus(TSStatusCode.SUCCESS_STATUS, "ADMIN_COMMAND_SUCCESS"));
       }
 
-      if (execShowFlushInfo(statement)) {
-        String msg = String.format(
-            "There are %d flush tasks, %d flush tasks are in execution and %d flush tasks are waiting for execution.",
-            FlushTaskPoolManager.getInstance().getTotalTasks(),
-            FlushTaskPoolManager.getInstance().getWorkingTasksNumber(),
-            FlushTaskPoolManager.getInstance().getWaitingTasksNumber());
-        return getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS, msg));
-      }
-
-      if (execShowDynamicParameters(statement)) {
-        String msg = String.format(
-            "Memtable size threshold: %dB, Memtable number: %d, Tsfile size threshold: %dB, Compression ratio: %f,"
-                + " Storage group number: %d, Timeseries number: %d, Maximal timeseries number among storage groups: %d",
-            IoTDBDescriptor.getInstance().getConfig().getMemtableSizeThreshold(),
-            IoTDBDescriptor.getInstance().getConfig().getMaxMemtableNumber(),
-            IoTDBDescriptor.getInstance().getConfig().getTsFileSizeThreshold(),
-            CompressionRatio.getInstance().getRatio(),
-            MManager.getInstance().getAllStorageGroupNames().size(),
-            IoTDBConfigDynamicAdapter.getInstance().getTotalTimeseries(),
-            MManager.getInstance().getMaximalSeriesNumberAmongStorageGroups());
-        return getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS, msg));
-      }
-
-      if (execSetConsistencyLevel(statement)) {
-        return getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS,
-            "Execute set consistency level successfully"));
-      }
-
       PhysicalPlan physicalPlan;
       physicalPlan = processor.parseSQLToPhysicalPlan(statement, zoneIds.get());
       if (physicalPlan.isQuery()) {
@@ -649,7 +627,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
       logger.error("check metadata error: ", e);
       return getTSExecuteStatementResp(getStatus(TSStatusCode.METADATA_ERROR,
           "Check metadata error: " + e.getMessage()));
-    } catch (SQLException | QueryProcessException e) {
+    } catch (QueryProcessException e) {
       logger.error("meet error while parsing SQL to physical plan: ", e);
       return getTSExecuteStatementResp(getStatus(TSStatusCode.SQL_PARSE_ERROR,
           "Statement format is not right: " + e.getMessage()));
@@ -660,52 +638,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
     }
   }
 
-  /**
-   * Show flush info
-   */
-  private boolean execShowFlushInfo(String statement) {
-    if (statement == null) {
-      return false;
-    }
-    statement = statement.toLowerCase().trim();
-    return Pattern.matches(IoTDBConstant.SHOW_FLUSH_TASK_INFO, statement);
-  }
-
-  /**
-   * Show dynamic parameters
-   */
-  private boolean execShowDynamicParameters(String statement) {
-    if (statement == null) {
-      return false;
-    }
-    statement = statement.toLowerCase().trim();
-    return Pattern.matches(IoTDBConstant.SHOW_DYNAMIC_PARAMETERS, statement);
-  }
-
-  /**
-   * Set consistency level
-   */
-  private boolean execSetConsistencyLevel(String statement) throws SQLException {
-    if (statement == null) {
-      return false;
-    }
-    statement = statement.toLowerCase().trim();
-    if (Pattern.matches(IoTDBConstant.SET_READ_CONSISTENCY_LEVEL_PATTERN, statement)) {
-      throw new SQLException(
-          "IoTDB Stand-alone version does not support setting read-insert consistency level");
-    } else {
-      return false;
-    }
-  }
-
   private TSExecuteStatementResp executeQueryStatement(long statementId, PhysicalPlan plan) {
     long t1 = System.currentTimeMillis();
     try {
       TSExecuteStatementResp resp;
       if (plan instanceof AuthorPlan) {
         resp = executeAuthQuery(plan);
-      } else if (plan instanceof ShowTTLPlan) {
-        resp = executeShowTTL();
+      } else if (plan instanceof ShowPlan) {
+        resp = executeShow((ShowPlan) plan);
       } else {
         resp = executeDataQuery(plan);
       }
@@ -716,7 +656,8 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
       // generate the queryId for the operation
       long queryId = generateQueryId();
       // put it into the corresponding Set
-      Set<Long> queryIdSet = statementId2QueryId.get().computeIfAbsent(statementId, k -> new HashSet<>());
+      Set<Long> queryIdSet = statementId2QueryId.get()
+          .computeIfAbsent(statementId, k -> new HashSet<>());
       queryIdSet.add(queryId);
 
       TSHandleIdentifier operationId = new TSHandleIdentifier(
@@ -767,6 +708,19 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
     return columnTypes;
   }
 
+  private TSExecuteStatementResp executeShow(ShowPlan showPlan) throws Exception {
+    switch (showPlan.getShowContentType()) {
+      case TTL:
+        return executeShowTTL();
+      case FLUSH_TASK_INFO:
+        return executeShowFlushTaskInfo();
+      case DYNAMIC_PARAMETER:
+        return executeShowDynamicParameter();
+      default:
+        logger.error("Unsupported show content type: {}", showPlan.getShowContentType());
+        throw new Exception("Unsupported show content type:" + showPlan.getShowContentType());
+    }
+  }
 
   private TSExecuteStatementResp executeShowTTL() {
     TSExecuteStatementResp resp =
@@ -783,6 +737,36 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
     return resp;
   }
 
+  private TSExecuteStatementResp executeShowFlushTaskInfo() {
+    TSExecuteStatementResp resp =
+        getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS));
+    resp.setIgnoreTimeStamp(true);
+    List<String> columns = new ArrayList<>();
+    List<String> columnTypes = new ArrayList<>();
+    columns.add(ITEM);
+    columns.add(VALUE);
+    columnTypes.add(TSDataType.TEXT.toString());
+    columnTypes.add(TSDataType.INT64.toString());
+    resp.setColumns(columns);
+    resp.setDataTypeList(columnTypes);
+    return resp;
+  }
+
+  private TSExecuteStatementResp executeShowDynamicParameter() {
+    TSExecuteStatementResp resp =
+        getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS));
+    resp.setIgnoreTimeStamp(true);
+    List<String> columns = new ArrayList<>();
+    List<String> columnTypes = new ArrayList<>();
+    columns.add(PARAMETER);
+    columns.add(VALUE);
+    columnTypes.add(TSDataType.TEXT.toString());
+    columnTypes.add(TSDataType.INT64.toString());
+    resp.setColumns(columns);
+    resp.setDataTypeList(columnTypes);
+    return resp;
+  }
+
   private TSExecuteStatementResp executeAuthQuery(PhysicalPlan plan) {
     TSExecuteStatementResp resp = getTSExecuteStatementResp(getStatus(TSStatusCode.SUCCESS_STATUS));
     resp.setIgnoreTimeStamp(true);
@@ -1164,7 +1148,8 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
     }
 
     long stmtId = req.getStmtId();
-    InsertPlan plan = (InsertPlan) operationStatus.get().computeIfAbsent(stmtId, k -> new InsertPlan());
+    InsertPlan plan = (InsertPlan) operationStatus.get()
+        .computeIfAbsent(stmtId, k -> new InsertPlan());
 
     // the old parameter will be used if new parameter is not set
     if (req.isSetDeviceId()) {
@@ -1351,7 +1336,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
   @Override
   public long requestStatementId() {
     long statementId = statementIdGenerator.get();
-    statementIdGenerator.set(statementId+1);
+    statementIdGenerator.set(statementId + 1);
     return statementId;
   }
 
@@ -1383,7 +1368,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
 
   private long generateQueryId() {
     long queryId = queryIdGenerator.get();
-    queryIdGenerator.set(queryId+1);
+    queryIdGenerator.set(queryId + 1);
     return queryId;
   }
 }
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/plan/PhysicalPlanTest.java b/server/src/test/java/org/apache/iotdb/db/qp/plan/PhysicalPlanTest.java
index eec5c7b..2877bef 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/plan/PhysicalPlanTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/plan/PhysicalPlanTest.java
@@ -37,6 +37,7 @@ import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
 import org.apache.iotdb.db.qp.physical.sys.DataAuthPlan;
 import org.apache.iotdb.db.qp.physical.sys.LoadConfigurationPlan;
 import org.apache.iotdb.db.qp.physical.sys.PropertyPlan;
+import org.apache.iotdb.db.qp.physical.sys.ShowPlan;
 import org.apache.iotdb.db.qp.utils.MemIntQpExecutor;
 import org.apache.iotdb.db.query.fill.LinearFill;
 import org.apache.iotdb.db.query.fill.PreviousFill;
@@ -494,4 +495,20 @@ public class PhysicalPlanTest {
     LoadConfigurationPlan plan = (LoadConfigurationPlan) processor.parseSQLToPhysicalPlan(metadata);
     assertEquals("LOAD_CONFIGURATION", plan.toString());
   }
+
+  @Test
+  public void testShowDynamicParameter() throws QueryProcessException, MetadataException {
+    String metadata = "show dynamic parameter";
+    QueryProcessor processor = new QueryProcessor(new MemIntQpExecutor());
+    ShowPlan plan = (ShowPlan) processor.parseSQLToPhysicalPlan(metadata);
+    assertEquals("SHOW DYNAMIC_PARAMETER", plan.toString());
+  }
+
+  @Test
+  public void testShowFlushInfo() throws QueryProcessException, MetadataException {
+    String metadata = "show flush task info";
+    QueryProcessor processor = new QueryProcessor(new MemIntQpExecutor());
+    ShowPlan plan = (ShowPlan) processor.parseSQLToPhysicalPlan(metadata);
+    assertEquals("SHOW FLUSH_TASK_INFO", plan.toString());
+  }
 }


[incubator-iotdb] 03/06: Merge remote-tracking branch 'origin/master' into fix_show_info

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch fix_show_info
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit fbe0227364e8adbe6bd011322a2f67f986fe6ba6
Merge: d6ca9de 8c2e5e3
Author: lta <li...@163.com>
AuthorDate: Thu Nov 14 19:50:38 2019 +0800

    Merge remote-tracking branch 'origin/master' into fix_show_info

 RELEASE_NOTES.md                                   | 277 +++++++----
 ...e(CLI).md => 1-Command Line Interface (CLI).md} |   2 +-
 .../UserGuide/4-Client/2-Programming - JDBC.md     |  27 +-
 .../5-Operation Manual/4-SQL Reference.md          |   2 +-
 ...e Hadoop Connector.md => 2-MapReduce TsFile.md} |   2 +-
 ...TsFile Spark Connector.md => 3-Spark TsFile.md} |   0
 ...4-Spark IoTDB Connector.md => 4-Spark IoTDB.md} |   0
 ...5-Tsfile Hive Connector.md => 5-Hive TsFile.md} |   0
 .../8-System Design (Developer)/2-Files.md         |  34 +-
 docs/Documentation/UserGuide/0-Content.md          |  10 +-
 .../UserGuide/3-Server/4-Config Manual.md          |   2 +-
 ... (Cli).md => 1-Command Line Interface (CLI).md} |   4 +-
 .../UserGuide/4-Client/2-Programming - JDBC.md     |  30 +-
 .../5-Operation Manual/4-SQL Reference.md          |   4 +-
 .../7-Ecosystem Integration/2-MapReduce TsFile.md  |   2 +-
 .../7-Ecosystem Integration/4-Spark IoTDB.md       |   8 +-
 .../8-System Design (Developer)/1-Hierarchy.md     | 190 +++-----
 .../8-System Design (Developer)/2-Files.md         |   6 +-
 grafana/readme.md                                  |  68 ++-
 grafana/readme_zh.md                               | 106 ++--
 hadoop/README.md                                   | 192 +++++++-
 jdbc/README.md                                     |  96 +++-
 .../java/org/apache/iotdb/jdbc/IoTDBStatement.java |  17 +-
 server/server-changelist.md                        |  39 ++
 .../resources/conf/iotdb-engine.properties         |   9 +
 .../resources/tools/upgrade/config.properties      |  27 ++
 .../resources/tools/upgrade/offline-upgrade.bat    |  67 +++
 .../resources/tools/upgrade/offline-upgrade.sh     |  47 ++
 .../iotdb/db/auth/user/LocalFileUserAccessor.java  |  19 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  13 +
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   2 +
 .../db/conf/adapter/IoTDBConfigDynamicAdapter.java |   5 +-
 .../directories/strategy/DirectoryStrategy.java    |   3 +-
 .../iotdb/db/cost/statistic/Measurement.java       |   5 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  84 +++-
 .../db/engine/cache/CacheHitRatioMonitor.java      |   5 +-
 .../apache/iotdb/db/engine/flush/FlushManager.java |   5 +-
 .../iotdb/db/engine/flush/MemTableFlushTask.java   |   2 +-
 .../iotdb/db/engine/memtable/AbstractMemTable.java |  20 +-
 .../apache/iotdb/db/engine/memtable/IMemTable.java |   6 +-
 .../db/engine/merge/manage/MergeResource.java      |  10 +-
 .../iotdb/db/engine/merge/recover/LogAnalyzer.java |   4 +-
 .../merge/selector/MaxFileMergeFileSelector.java   |  32 +-
 .../iotdb/db/engine/merge/task/MergeFileTask.java  |   8 +-
 .../iotdb/db/engine/merge/task/MergeTask.java      |   4 +-
 .../db/engine/merge/task/RecoverMergeTask.java     |   4 +-
 .../engine/storagegroup/StorageGroupProcessor.java |  81 +++-
 .../db/engine/storagegroup/TsFileProcessor.java    |   6 +-
 .../db/engine/storagegroup/TsFileResource.java     |  23 +-
 .../upgrade/UpgradeCheckStatus.java}               |  21 +-
 .../apache/iotdb/db/engine/upgrade/UpgradeLog.java |  88 ++++
 .../iotdb/db/engine/upgrade/UpgradeTask.java       |  81 ++++
 .../db/exception/ConfigAdjusterException.java      |  18 +-
 .../db/exception/DeltaEngineRunningException.java  |  45 --
 .../exception/DiskSpaceInsufficientException.java  |   8 +-
 .../apache/iotdb/db/exception/MergeException.java  |  16 +-
 ...ysCheckException.java => ProcessException.java} |  17 +-
 .../iotdb/db/exception/ProcessorException.java     |  47 --
 ...on.java => QueryInBatchStatementException.java} |  18 +-
 .../iotdb/db/exception/StartupException.java       |  19 +-
 .../iotdb/db/exception/StorageEngineException.java |  19 +-
 .../db/exception/SyncConnectionException.java      |  11 +-
 .../SyncDeviceOwnerConflictException.java          |  18 +-
 ...rorException.java => SystemCheckException.java} |  16 +-
 .../db/exception/TsFileProcessorException.java     |  22 +-
 .../MetadataException.java}                        |  20 +-
 .../TimeseriesAlreadyExistException.java}          |  16 +-
 .../MTreePathException.java}                       |  21 +-
 .../{ => path}/NotStorageGroupException.java       |  11 +-
 .../PTreePathException.java}                       |  11 +-
 .../PathException.java}                            |  17 +-
 .../db/exception/qp/IllegalASTFormatException.java |  39 --
 .../db/exception/qp/QueryProcessorException.java   |  40 --
 .../exception/query/IllegalASTFormatException.java |  68 +++
 .../{qp => query}/LogicalOperatorException.java    |  22 +-
 .../{qp => query}/LogicalOptimizeException.java    |  20 +-
 .../exception/{ => query}/OutOfTTLException.java   |   9 +-
 .../QueryProcessException.java}                    |  20 +-
 .../{ => query}/UnSupportedFillTypeException.java  |  19 +-
 .../{ => runtime}/FlushRunTimeException.java       |  17 +-
 .../StorageEngineFailureException.java             |  17 +-
 .../{ => storageGroup}/StorageGroupException.java  |  20 +-
 .../storageGroup/StorageGroupNotSetException.java} |  12 +-
 .../storageGroup/StorageGroupPathException.java}   |  13 +-
 .../StorageGroupProcessorException.java            |  29 +-
 .../java/org/apache/iotdb/db/metadata/MGraph.java  |  94 ++--
 .../org/apache/iotdb/db/metadata/MManager.java     | 239 ++++-----
 .../java/org/apache/iotdb/db/metadata/MTree.java   | 190 ++++----
 .../java/org/apache/iotdb/db/metadata/PNode.java   |  10 +-
 .../java/org/apache/iotdb/db/metadata/PTree.java   |  49 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |  22 +-
 .../org/apache/iotdb/db/qp/QueryProcessor.java     |  52 +-
 .../apache/iotdb/db/qp/constant/DatetimeUtils.java |   4 +-
 .../qp/executor/AbstractQueryProcessExecutor.java  |  46 +-
 .../db/qp/executor/IQueryProcessExecutor.java      |  33 +-
 .../iotdb/db/qp/executor/QueryProcessExecutor.java | 148 +++---
 .../db/qp/logical/crud/BasicFunctionOperator.java  |  11 +-
 .../db/qp/logical/crud/BasicOperatorType.java      |   2 +-
 .../iotdb/db/qp/logical/crud/FilterOperator.java   |  47 +-
 .../iotdb/db/qp/physical/crud/QueryPlan.java       |   6 +-
 .../iotdb/db/qp/strategy/LogicalGenerator.java     | 143 +++---
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |  46 +-
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |  38 +-
 .../qp/strategy/optimizer/DnfFilterOptimizer.java  |   6 +-
 .../db/qp/strategy/optimizer/IFilterOptimizer.java |   6 +-
 .../qp/strategy/optimizer/ILogicalOptimizer.java   |   2 +-
 .../optimizer/MergeSingleFilterOptimizer.java      |   2 +-
 .../qp/strategy/optimizer/RemoveNotOptimizer.java  |  15 +-
 .../db/query/aggregation/AggregateFunction.java    |  42 +-
 .../db/query/aggregation/impl/FirstAggrFunc.java   |   6 +-
 .../iotdb/db/query/control/FileReaderManager.java  |   4 +-
 .../db/query/control/QueryResourceManager.java     |   2 +-
 .../db/query/dataset/DeviceIterateDataSet.java     |   6 +-
 .../dataset/groupby/GroupByEngineDataSet.java      |   7 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   6 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |  16 +-
 .../db/query/executor/AggregateEngineExecutor.java |  19 +-
 .../iotdb/db/query/executor/EngineExecutor.java    |   9 +-
 .../iotdb/db/query/executor/EngineQueryRouter.java |  22 +-
 .../db/query/executor/FillEngineExecutor.java      |   8 +-
 .../db/query/executor/IEngineQueryRouter.java      |  16 +-
 .../externalsort/SimpleExternalSortEngine.java     |   4 +-
 .../iotdb/db/query/factory/AggreFuncFactory.java   |   8 +-
 .../java/org/apache/iotdb/db/query/fill/IFill.java |   3 +-
 .../org/apache/iotdb/db/query/fill/LinearFill.java |   9 +-
 .../query/timegenerator/EngineNodeConstructor.java |   2 +-
 .../apache/iotdb/db/rescon/TVListAllocator.java    |   5 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |   1 +
 .../org/apache/iotdb/db/service/JDBCService.java   |   4 +-
 .../org/apache/iotdb/db/service/JMXService.java    |   8 +-
 .../apache/iotdb/db/service/MetricsService.java    |   2 +-
 .../java/org/apache/iotdb/db/service/Monitor.java  |   5 +-
 .../org/apache/iotdb/db/service/ServiceType.java   |   1 +
 .../org/apache/iotdb/db/service/TSServiceImpl.java | 151 +++---
 .../org/apache/iotdb/db/service/UpgradeSevice.java | 118 +++++
 .../db/sync/receiver/load/FileLoaderManager.java   |   4 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |   8 +-
 .../iotdb/db/sync/sender/client/SyncClient.java    |   1 -
 .../db/sync/sender/manage/SyncFileManager.java     |   4 +
 .../java/org/apache/iotdb/db/tools/WalChecker.java |  10 +-
 .../iotdb/db/tools/upgrade/OfflineUpgradeTool.java |  68 +++
 .../db/tools/watermark/WatermarkDetector.java      |  10 +-
 .../org/apache/iotdb/db/utils/UpgradeUtils.java    | 130 +++++
 .../writelog/manager/MultiFileLogNodeManager.java  |   5 +-
 .../iotdb/db/writelog/recover/LogReplayer.java     |  27 +-
 .../writelog/recover/TsFileRecoverPerformer.java   |  29 +-
 .../adapter/IoTDBConfigDynamicAdapterTest.java     |   8 +-
 .../db/engine/cache/DeviceMetaDataCacheTest.java   |   6 +-
 .../apache/iotdb/db/engine/merge/MergeLogTest.java |   6 +-
 .../iotdb/db/engine/merge/MergeOverLapTest.java    |   7 +-
 .../iotdb/db/engine/merge/MergeTaskTest.java       |   6 +-
 .../apache/iotdb/db/engine/merge/MergeTest.java    |   8 +-
 .../iotdb/db/engine/merge/MergeUpgradeTest.java    | 160 ++++++
 .../engine/modification/DeletionFileNodeTest.java  |  20 +-
 .../db/engine/modification/DeletionQueryTest.java  |  27 +-
 .../storagegroup/FileNodeManagerBenchmark.java     |  18 +-
 .../storagegroup/StorageGroupProcessorTest.java    |  26 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |  52 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |  11 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   2 +-
 .../apache/iotdb/db/integration/IoTDBTtlIT.java    |   6 +-
 .../org/apache/iotdb/db/metadata/MGraphTest.java   |   6 +-
 .../iotdb/db/metadata/MManagerAdvancedTest.java    |  14 +-
 .../iotdb/db/metadata/MManagerBasicTest.java       |  81 ++--
 .../iotdb/db/metadata/MManagerImproveTest.java     |  20 +-
 .../org/apache/iotdb/db/metadata/MTreeTest.java    | 152 +++---
 .../org/apache/iotdb/db/metadata/MetadataTest.java |   8 +-
 .../iotdb/db/qp/bench/QueryParseBenchmark.java     |  12 +-
 .../iotdb/db/qp/other/TSPlanContextAuthorTest.java |   9 +-
 .../db/qp/other/TSPlanContextPropertyTest.java     |   9 +-
 .../iotdb/db/qp/plan/LogicalPlanSmallTest.java     |  56 +--
 .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java  |  74 ++-
 .../org/apache/iotdb/db/qp/plan/QPUpdateTest.java  |  37 +-
 .../iotdb/db/qp/plan/TestConcatOptimizer.java      |  17 +-
 .../iotdb/db/qp/strategy/LogicalGeneratorTest.java |   2 +-
 .../apache/iotdb/db/qp/utils/MemIntQpExecutor.java |  14 +-
 .../iotdb/db/query/reader/ReaderTestHelper.java    |   6 +-
 .../fileRelated/UnSealedTsFileReaderTest.java      |   4 +-
 .../resourceRelated/SeqResourceReaderTest.java     |   4 +-
 .../resourceRelated/UnseqResourceReaderTest.java   |   4 +-
 .../db/sql/DatetimeQueryDataSetUtilsTest.java      |   2 +-
 .../db/sync/receiver/load/FileLoaderTest.java      |   6 +-
 .../recover/SyncReceiverLogAnalyzerTest.java       |   6 +-
 .../apache/iotdb/db/tools/IoTDBWatermarkTest.java  |  15 +-
 .../org/apache/iotdb/db/tools/WalCheckerTest.java  |  12 +-
 .../apache/iotdb/db/writelog/PerformanceTest.java  |  10 +-
 .../iotdb/db/writelog/recover/LogReplayerTest.java |   8 +-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |   8 +-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |  10 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |  20 +-
 spark-iotdb-connector/Readme.md                    |  19 +-
 spark-tsfile/README.md                             | 109 +++--
 .../apache/iotdb/tsfile/common/cache/LRUCache.java |  45 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |   2 +
 .../tsfile/common/constant/TsFileConstant.java     |   1 +
 .../iotdb/tsfile/file/metadata/TsFileMetaData.java |  52 +-
 .../fileOutputFactory/HDFSOutputFactory.java       |   1 +
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |  98 ++--
 .../tool/upgrade/TsfileUpgradeToolV0_8_0.java      | 539 +++++++++++++++++++++
 .../iotdb/tsfile/tool/upgrade/UpgradeTool.java     | 108 +++++
 .../iotdb/tsfile/write/chunk/ChunkBuffer.java      |  45 +-
 .../tsfile/file/metadata/TsFileMetaDataTest.java   |   2 +-
 202 files changed, 4234 insertions(+), 2281 deletions(-)



[incubator-iotdb] 04/06: merge master

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch fix_show_info
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit e15747692f165891300307440c1937e4fd07f17c
Merge: fbe0227 3e18e11
Author: lta <li...@163.com>
AuthorDate: Thu Nov 14 19:53:02 2019 +0800

    merge master

 .../UserGuide/3-Server/4-Config Manual.md          |  53 +++--
 .../UserGuide/3-Server/4-Config Manual.md          |  43 ++--
 server/src/assembly/resources/conf/iotdb-env.bat   |  19 +-
 .../org/apache/iotdb/db/sql/parse/TqlLexer.g       |   5 +-
 .../org/apache/iotdb/db/sql/parse/TqlParser.g      |  34 +--
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  79 +++----
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |   4 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 247 +++++++++++++--------
 .../db/conf/directories/DirectoryManager.java      |  57 ++++-
 .../directories/strategy/DirectoryStrategy.java    |  11 +-
 .../directories/strategy/SequenceStrategy.java     |   6 +-
 .../db/exception/LoadConfigurationException.java   |  37 +++
 .../org/apache/iotdb/db/qp/QueryProcessor.java     |   1 +
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   3 +
 .../iotdb/db/qp/executor/QueryProcessExecutor.java |   3 +
 .../org/apache/iotdb/db/qp/logical/Operator.java   |   2 +-
 .../qp/logical/sys/LoadConfigurationOperator.java  |  31 +++
 .../db/qp/physical/sys/LoadConfigurationPlan.java  |  43 ++++
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |   8 +-
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |   8 +-
 .../strategy/DirectoryStrategyTest.java            |  12 +-
 .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java  |   9 +
 22 files changed, 490 insertions(+), 225 deletions(-)

diff --cc server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
index 896c11f,6a00dde..00ce42e
--- a/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
+++ b/server/src/main/antlr3/org/apache/iotdb/db/sql/parse/TqlLexer.g
@@@ -273,26 -273,10 +273,29 @@@ K_UNSE
      : U N S E T
      ;
  
+ K_CONFIGURATION
+     : C O N F I G U R A T I O N
+     ;
+ 
 +K_FLUSH
 +    : F L U S H
 +    ;
 +
 +K_TASK
 +    : T A S K
 +    ;
 +
 +K_DYNAMIC
 +    : D Y N A  M I C
 +    ;
 +
 +K_PARAMETERS
 +    : P A R  A M E T E R S
 +    ;
 +
 +K_INFO
 +    : I N F O
-     ;
 +
  //************** logical operator***********
  OPERATOR_AND
      : A N D