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

rong pushed a commit to branch revert-rest-it
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit dab234bc00ceba463422400b3cb6b9b3473afde1
Author: Steve Yurong Su <[email protected]>
AuthorDate: Fri Dec 15 10:19:07 2023 +0800

    Revert "add IT testing to rest service (#11437)"
    
    This reverts commit f12b5eb5f517184819086a2acd57af076b272875.
---
 .../iotdb/it/env/cluster/ClusterConstant.java      |    5 -
 .../it/env/cluster/node/AbstractNodeWrapper.java   |   26 +-
 .../iotdb/it/env/cluster/node/DataNodeWrapper.java |   20 -
 .../apache/iotdb/db/it/GrafanaApiServiceIT.java    |  448 -----
 .../org/apache/iotdb/db/it/IoTDBRestServiceIT.java | 2087 --------------------
 5 files changed, 1 insertion(+), 2585 deletions(-)

diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java
 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java
index ac4ca94ca57..6cf9fb71c1c 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java
@@ -139,11 +139,6 @@ public class ClusterConstant {
   public static final String TRIGGER_LIB_DIR = "trigger_lib_dir";
   public static final String PIPE_LIB_DIR = "pipe_lib_dir";
   public static final String REST_SERVICE_PORT = "rest_service_port";
-  public static final String ENABLE_REST_SERVICE = "enable_rest_service";
-  public static final String ENABLE_SWAGGER = "enable_swagger";
-  public static final String REST_QUERY_DEFAULT_ROW_SIZE_LIMIT =
-      "rest_query_default_row_size_limit";
-  public static final String CACHE_EXPIRE_IN_SECONDS = 
"cache_expire_in_seconds";
   public static final String INFLUXDB_RPC_PORT = "influxdb_rpc_port";
 
   // ConfigNode
diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/AbstractNodeWrapper.java
 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/AbstractNodeWrapper.java
index 517d7c152fb..433a180fa4f 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/AbstractNodeWrapper.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/AbstractNodeWrapper.java
@@ -417,30 +417,6 @@ public abstract class AbstractNodeWrapper implements 
BaseNodeWrapper {
         startCmd.add("--add-opens=java.base/java.io=ALL-UNNAMED");
         startCmd.add("--add-opens=java.base/java.net=ALL-UNNAMED");
       }
-
-      String libPath =
-          System.getProperty("user.dir")
-              + File.separator
-              + "target"
-              + File.separator
-              + "template-node-share"
-              + File.separator
-              + "lib"
-              + File.separator;
-      File directory = new File(libPath);
-      String osName = System.getProperty("os.name").toLowerCase();
-      String server_node_lib_path = "";
-      if (directory.exists() && directory.isDirectory() && 
!osName.contains("win")) {
-        File[] files = directory.listFiles();
-        for (File file : files) {
-          if (file.getName().startsWith("iotdb-server")) {
-            server_node_lib_path = libPath + file.getName() + ":" + 
TEMPLATE_NODE_LIB_PATH;
-            break;
-          }
-        }
-      } else {
-        server_node_lib_path = TEMPLATE_NODE_LIB_PATH;
-      }
       startCmd.addAll(
           Arrays.asList(
               "-Dcom.sun.management.jmxremote.port=" + jmxPort,
@@ -454,7 +430,7 @@ public abstract class AbstractNodeWrapper implements 
BaseNodeWrapper {
               "-XX:MaxDirectMemorySize=" + jvmConfig.getMaxDirectMemorySize() 
+ "m",
               "-Djdk.nio.maxCachedBufferSize=262144",
               "-cp",
-              server_node_lib_path));
+              TEMPLATE_NODE_LIB_PATH));
       addStartCmdParams(startCmd);
       FileUtils.write(
           stdoutFile, String.join(" ", startCmd) + "\n\n", 
StandardCharsets.UTF_8, true);
diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
index e62f11de718..20f1cb2eb82 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
@@ -29,7 +29,6 @@ import java.util.Arrays;
 import java.util.List;
 
 import static org.apache.iotdb.consensus.ConsensusFactory.SIMPLE_CONSENSUS;
-import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.CACHE_EXPIRE_IN_SECONDS;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.COMMON_PROPERTIES_FILE;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.CONFIG_NODE_CONSENSUS_PROTOCOL_CLASS;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.DATANODE_INIT_HEAP_SIZE;
@@ -54,16 +53,12 @@ import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.DN_SYNC_DIR;
 import static org.apache.iotdb.it.env.cluster.ClusterConstant.DN_SYSTEM_DIR;
 import static org.apache.iotdb.it.env.cluster.ClusterConstant.DN_TRACING_DIR;
 import static org.apache.iotdb.it.env.cluster.ClusterConstant.DN_WAL_DIRS;
-import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.ENABLE_REST_SERVICE;
-import static org.apache.iotdb.it.env.cluster.ClusterConstant.ENABLE_SWAGGER;
 import static org.apache.iotdb.it.env.cluster.ClusterConstant.MAIN_CLASS_NAME;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.MAX_TSBLOCK_SIZE_IN_BYTES;
 import static org.apache.iotdb.it.env.cluster.ClusterConstant.MQTT_HOST;
 import static org.apache.iotdb.it.env.cluster.ClusterConstant.MQTT_PORT;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.PAGE_SIZE_IN_BYTE;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.PIPE_AIR_GAP_RECEIVER_PORT;
-import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.REST_QUERY_DEFAULT_ROW_SIZE_LIMIT;
-import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.REST_SERVICE_PORT;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.SCHEMA_REGION_CONSENSUS_PROTOCOL_CLASS;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.SCHEMA_REPLICATION_FACTOR;
 import static 
org.apache.iotdb.it.env.cluster.ClusterConstant.SYSTEM_PROPERTIES_FILE;
@@ -77,7 +72,6 @@ public class DataNodeWrapper extends AbstractNodeWrapper {
   private final int dataRegionConsensusPort;
   private final int schemaRegionConsensusPort;
   private final int mqttPort;
-  private final int restServicePort;
   private final int pipeAirGapReceiverPort;
 
   private final String defaultNodePropertiesFile;
@@ -100,7 +94,6 @@ public class DataNodeWrapper extends AbstractNodeWrapper {
     this.schemaRegionConsensusPort = portList[4];
     this.mqttPort = portList[5];
     this.pipeAirGapReceiverPort = portList[6];
-    this.restServicePort = portList[10] + 6000;
     this.defaultNodePropertiesFile =
         EnvUtils.getFilePathFromSysVar(DEFAULT_DATA_NODE_PROPERTIES, 
clusterIndex);
     this.defaultCommonPropertiesFile =
@@ -115,12 +108,6 @@ public class DataNodeWrapper extends AbstractNodeWrapper {
     immutableCommonProperties.setProperty(
         PIPE_AIR_GAP_RECEIVER_PORT, 
String.valueOf(this.pipeAirGapReceiverPort));
 
-    immutableNodeProperties.setProperty(REST_SERVICE_PORT, 
String.valueOf(restServicePort));
-    immutableNodeProperties.setProperty(ENABLE_REST_SERVICE, "true");
-    immutableNodeProperties.setProperty(ENABLE_SWAGGER, "false");
-    immutableNodeProperties.setProperty(REST_QUERY_DEFAULT_ROW_SIZE_LIMIT, 
"10000");
-    immutableNodeProperties.setProperty(CACHE_EXPIRE_IN_SECONDS, "28800");
-
     immutableNodeProperties.setProperty(IoTDBConstant.DN_SEED_CONFIG_NODE, 
seedConfigNode);
     immutableNodeProperties.setProperty(DN_SYSTEM_DIR, 
MppBaseConfig.NULL_VALUE);
     immutableNodeProperties.setProperty(DN_DATA_DIRS, 
MppBaseConfig.NULL_VALUE);
@@ -195,9 +182,6 @@ public class DataNodeWrapper extends AbstractNodeWrapper {
     mutableCommonProperties.setProperty(SCHEMA_REPLICATION_FACTOR, "1");
     mutableCommonProperties.setProperty(DATA_REPLICATION_FACTOR, "1");
 
-    mutableNodeProperties.put(ENABLE_REST_SERVICE, "true");
-    mutableNodeProperties.put(REST_SERVICE_PORT, 
String.valueOf(this.restServicePort));
-
     mutableCommonProperties.put(MAX_TSBLOCK_SIZE_IN_BYTES, "1024");
     mutableCommonProperties.put(PAGE_SIZE_IN_BYTE, "1024");
 
@@ -277,8 +261,4 @@ public class DataNodeWrapper extends AbstractNodeWrapper {
   public int getPipeAirGapReceiverPort() {
     return pipeAirGapReceiverPort;
   }
-
-  public int getRestServicePort() {
-    return restServicePort;
-  }
 }
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/GrafanaApiServiceIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/GrafanaApiServiceIT.java
deleted file mode 100644
index d52b0b64351..00000000000
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/GrafanaApiServiceIT.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.it;
-
-import org.apache.iotdb.it.env.EnvFactory;
-import org.apache.iotdb.it.env.cluster.node.DataNodeWrapper;
-import org.apache.iotdb.it.framework.IoTDBTestRunner;
-import org.apache.iotdb.itbase.category.ClusterIT;
-import org.apache.iotdb.itbase.category.LocalStandaloneIT;
-import org.apache.iotdb.itbase.category.RemoteIT;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.util.EntityUtils;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.Base64;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-// move to integration-test
-@RunWith(IoTDBTestRunner.class)
-@Category({LocalStandaloneIT.class, ClusterIT.class, RemoteIT.class})
-public class GrafanaApiServiceIT {
-
-  private int port = 18080;
-
-  @Before
-  public void setUp() throws Exception {
-    EnvFactory.getEnv().initClusterEnvironment();
-    DataNodeWrapper portConflictDataNodeWrapper = 
EnvFactory.getEnv().getDataNodeWrapper(0);
-    port = portConflictDataNodeWrapper.getRestServicePort();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanClusterEnvironment();
-  }
-
-  private String getAuthorization(String username, String password) {
-    return Base64.getEncoder()
-        .encodeToString((username + ":" + 
password).getBytes(StandardCharsets.UTF_8));
-  }
-
-  private HttpPost getHttpPost(String url) {
-    HttpPost httpPost = new HttpPost(url);
-    httpPost.addHeader("Content-type", "application/json; charset=utf-8");
-    httpPost.setHeader("Accept", "application/json");
-    String authorization = getAuthorization("root", "root");
-    httpPost.setHeader("Authorization", authorization);
-    return httpPost;
-  }
-
-  @Test
-  public void login() {
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    HttpGet httpGet = new HttpGet("http://127.0.0.1:"; + port + 
"/grafana/v1/login");
-    CloseableHttpResponse response = null;
-    try {
-      String authorization = getAuthorization("root", "root");
-      httpGet.setHeader("Authorization", authorization);
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpGet);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(200, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (httpClient != null) {
-          httpClient.close();
-        }
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void rightInsertTablet(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/insertTablet");
-      String json =
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s4\",\"s5\"],\"dataTypes\":[\"INT32\",\"INT32\"],\"values\":[[11,2],[15,13]],\"isAligned\":false,\"deviceId\":\"root.sg25\"}";
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(200, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void expressionGroupByLevel(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/grafana/v1/query/expression");
-      String sql =
-          
"{\"expression\":[\"count(s4)\"],\"prefixPath\":[\"root.sg25\"],\"startTime\":1635232143960,\"endTime\":1635232153960,\"control\":\"group
 by([1635232143960,1635232153960),1s),level=1\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map map = mapper.readValue(message, Map.class);
-      List<Long> timestampsResult = (List<Long>) map.get("timestamps");
-      List<Long> expressionsResult = (List<Long>) map.get("expressions");
-      List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-      Assert.assertTrue(map.size() > 0);
-      Assert.assertTrue(timestampsResult.size() == 10);
-      Assert.assertTrue(valuesResult.size() == 1);
-      
Assert.assertTrue("count(root.sg25.s4)".equals(expressionsResult.get(0)));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void expression(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/grafana/v1/query/expression");
-      String sql =
-          
"{\"expression\":[\"s4\",\"s5\"],\"prefixPath\":[\"root.sg25\"],\"startTime\":1635232133960,\"endTime\":1635232163960}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map<String, List> map = mapper.readValue(message, Map.class);
-      String[] expressionsResult = {"root.sg25.s4", "root.sg25.s5"};
-      Long[] timestamps = {1635232143960L, 1635232153960L};
-      Object[] values1 = {11, 2};
-      Object[] values2 = {15, 13};
-      Assert.assertArrayEquals(
-          expressionsResult, (map.get("expressions")).toArray(new String[] 
{}));
-      Assert.assertArrayEquals(timestamps, (map.get("timestamps")).toArray(new 
Long[] {}));
-      Assert.assertArrayEquals(
-          values1, ((List) (map.get("values")).get(0)).toArray(new Object[] 
{}));
-      Assert.assertArrayEquals(
-          values2, ((List) (map.get("values")).get(1)).toArray(new Object[] 
{}));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void expressionWithControl(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/grafana/v1/query/expression");
-      String sql =
-          
"{\"expression\":[\"sum(s4)\",\"avg(s5)\"],\"prefixPath\":[\"root.sg25\"],\"startTime\":1635232133960,\"endTime\":1635232163960,\"control\":\"group
 by([1635232133960,1635232163960),20s)\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map<String, List> map = mapper.readValue(message, Map.class);
-      String[] expressionsResult = {"sum(root.sg25.s4)", "avg(root.sg25.s5)"};
-      Long[] timestamps = {1635232133960L, 1635232153960L};
-      Object[] values1 = {11.0, 2.0};
-      Object[] values2 = {15.0, 13.0};
-      Assert.assertArrayEquals(
-          expressionsResult, (map.get("expressions")).toArray(new String[] 
{}));
-      Assert.assertArrayEquals(timestamps, (map.get("timestamps")).toArray(new 
Long[] {}));
-      Assert.assertArrayEquals(
-          values1, ((List) (map.get("values")).get(0)).toArray(new Object[] 
{}));
-      Assert.assertArrayEquals(
-          values2, ((List) (map.get("values")).get(1)).toArray(new Object[] 
{}));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void expressionWithConditionControl(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/grafana/v1/query/expression");
-      String sql =
-          
"{\"expression\":[\"sum(s4)\",\"avg(s5)\"],\"prefixPath\":[\"root.sg25\"],\"condition\":\"timestamp=1635232143960\",\"startTime\":1635232133960,\"endTime\":1635232163960,\"control\":\"group
 by([1635232133960,1635232163960),20s)\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map<String, List> map = mapper.readValue(message, Map.class);
-      String[] expressionsResult = {"sum(root.sg25.s4)", "avg(root.sg25.s5)"};
-      Long[] timestamps = {1635232133960L, 1635232153960L};
-      Object[] values1 = {11.0, null};
-      Object[] values2 = {15.0, null};
-      Assert.assertArrayEquals(expressionsResult, 
map.get("expressions").toArray(new String[] {}));
-      Assert.assertArrayEquals(timestamps, (map.get("timestamps")).toArray(new 
Long[] {}));
-      Assert.assertArrayEquals(
-          values1, ((List) (map.get("values")).get(0)).toArray(new Object[] 
{}));
-      Assert.assertArrayEquals(
-          values2, ((List) (map.get("values")).get(1)).toArray(new Object[] 
{}));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void variable(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/grafana/v1/variable");
-      String sql = "{\"sql\":\"show child paths root.sg25\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      List list = mapper.readValue(message, List.class);
-      String[] expectedResult = {"s4", "s5"};
-      Assert.assertArrayEquals(expectedResult, list.toArray(new String[] {}));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  @Test
-  public void expressionWithConditionControlTest() {
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    rightInsertTablet(httpClient);
-    expressionWithConditionControl(httpClient);
-    try {
-      httpClient.close();
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void expressionTest() {
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    rightInsertTablet(httpClient);
-    expression(httpClient);
-    // expressionGroupByLevel(httpClient);
-    try {
-      httpClient.close();
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void expressionWithControlTest() {
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    rightInsertTablet(httpClient);
-    expressionWithControl(httpClient);
-    try {
-      httpClient.close();
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void variableTest() {
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    rightInsertTablet(httpClient);
-    variable(httpClient);
-    try {
-      httpClient.close();
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-}
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
deleted file mode 100644
index 4b711b01874..00000000000
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
+++ /dev/null
@@ -1,2087 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.it;
-
-import org.apache.iotdb.it.env.EnvFactory;
-import org.apache.iotdb.it.env.cluster.node.DataNodeWrapper;
-import org.apache.iotdb.it.framework.IoTDBTestRunner;
-import org.apache.iotdb.itbase.category.ClusterIT;
-import org.apache.iotdb.itbase.category.LocalStandaloneIT;
-import org.apache.iotdb.itbase.category.RemoteIT;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.util.EntityUtils;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-@RunWith(IoTDBTestRunner.class)
-@Category({LocalStandaloneIT.class, ClusterIT.class, RemoteIT.class})
-public class IoTDBRestServiceIT {
-
-  private int port = 18080;
-
-  @Before
-  public void setUp() throws Exception {
-
-    EnvFactory.getEnv().initClusterEnvironment();
-    DataNodeWrapper portConflictDataNodeWrapper = 
EnvFactory.getEnv().getDataNodeWrapper(0);
-    port = portConflictDataNodeWrapper.getRestServicePort();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanClusterEnvironment();
-  }
-
-  private String getAuthorization(String username, String password) {
-    return Base64.getEncoder()
-        .encodeToString((username + ":" + 
password).getBytes(StandardCharsets.UTF_8));
-  }
-
-  @Test
-  public void ping() {
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    HttpGet httpGet = new HttpGet("http://127.0.0.1:"; + port + "/ping");
-    CloseableHttpResponse response = null;
-    try {
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpGet);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(200, response.getStatusLine().getStatusCode());
-      assertEquals(200, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (httpClient != null) {
-          httpClient.close();
-        }
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  private HttpPost getHttpPost(String url) {
-    HttpPost httpPost = new HttpPost(url);
-    httpPost.addHeader("Content-type", "application/json; charset=utf-8");
-    httpPost.setHeader("Accept", "application/json");
-    String authorization = getAuthorization("root", "root");
-    httpPost.setHeader("Authorization", authorization);
-    return httpPost;
-  }
-
-  private HttpPost getHttpPost_1(String url) {
-    HttpPost httpPost = new HttpPost(url);
-    httpPost.addHeader("Content-type", "application/json; charset=utf-8");
-    httpPost.setHeader("Accept", "application/json");
-    String authorization = getAuthorization("root1", "root1");
-    httpPost.setHeader("Authorization", authorization);
-    return httpPost;
-  }
-
-  public void nonQuery(CloseableHttpClient httpClient, String json, HttpPost 
httpPost) {
-    CloseableHttpResponse response = null;
-    try {
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(200, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void errorNonQuery(CloseableHttpClient httpClient, String json, 
HttpPost httpPost) {
-    CloseableHttpResponse response = null;
-    try {
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(700, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void rightInsertRecords(CloseableHttpClient httpClient, String json, 
HttpPost httpPost) {
-    CloseableHttpResponse response = null;
-    try {
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(200, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void errorInsertRecords(CloseableHttpClient httpClient, String json, 
HttpPost httpPost) {
-    CloseableHttpResponse response = null;
-    try {
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(509, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void rightInsertTablet(CloseableHttpClient httpClient, String json, 
HttpPost httpPost) {
-    CloseableHttpResponse response = null;
-    try {
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(200, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void rightInsertTablet(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/insertTablet");
-      String json =
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"isAligned\":false,\"deviceId\":\"root.sg25\"}";
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(200, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void errorInsertTablet(String json, HttpPost httpPost) {
-    CloseableHttpResponse response = null;
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    try {
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(606, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  @Test
-  public void errorInsertTablet() {
-    CloseableHttpResponse response = null;
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/insertTablet");
-      String json =
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"isAligned\":fal
 [...]
-      httpPost.setEntity(new StringEntity(json, Charset.defaultCharset()));
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(606, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void perData(CloseableHttpClient httpClient) {
-    HttpPost httpPost2 = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/nonQuery");
-    HttpPost httpPostV2 = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/nonQuery");
-
-    nonQuery(httpClient, "{\"sql\":\"CREATE USER `root1` 'root1'\"}", 
httpPost2);
-    nonQuery(httpClient, "{\"sql\":\"GRANT WRITE ON  root.** to user 
root1\"}", httpPostV2);
-  }
-
-  @Test
-  public void insertAndQuery() {
-    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-    //
-    rightInsertTablet(httpClient);
-    query(httpClient);
-    queryGroupByLevel(httpClient);
-    queryRowLimit(httpClient);
-    queryShowChildPaths(httpClient);
-    queryShowNodes(httpClient);
-    showAllTTL(httpClient);
-    showStorageGroup(httpClient);
-    showFunctions(httpClient);
-    showTimeseries(httpClient);
-
-    showLastTimeseries(httpClient);
-    countTimeseries(httpClient);
-    countNodes(httpClient);
-    showDevices(httpClient);
-
-    showDevicesWithStroage(httpClient);
-    listUser(httpClient);
-    selectCount(httpClient);
-    selectLast(httpClient);
-
-    queryV2(httpClient);
-    queryGroupByLevelV2(httpClient);
-    queryRowLimitV2(httpClient);
-    queryShowChildPathsV2(httpClient);
-    queryShowNodesV2(httpClient);
-    showAllTTLV2(httpClient);
-    showStorageGroupV2(httpClient);
-    showFunctionsV2(httpClient);
-    showTimeseriesV2(httpClient);
-
-    showLastTimeseriesV2(httpClient);
-    countTimeseriesV2(httpClient);
-    countNodesV2(httpClient);
-    showDevicesV2(httpClient);
-
-    showDevicesWithStroageV2(httpClient);
-    listUserV2(httpClient);
-    selectCountV2(httpClient);
-    selectLastV2(httpClient);
-    perData(httpClient);
-    List<String> insertTablet_right_json_list = new ArrayList<>();
-    List<String> insertTablet_error_json_list = new ArrayList<>();
-
-    List<String> insertRecords_right_json_list = new ArrayList<>();
-    List<String> insertRecords_error_json_list = new ArrayList<>();
-
-    List<String> nonQuery_right_json_list = new ArrayList<>();
-    List<String> nonQuery_error_json_list = new ArrayList<>();
-
-    List<String> insertTablet_right_json_list_v2 = new ArrayList<>();
-    List<String> insertTablet_error_json_list_v2 = new ArrayList<>();
-
-    List<String> insertRecords_right_json_list_v2 = new ArrayList<>();
-    List<String> insertRecords_error_json_list_v2 = new ArrayList<>();
-
-    List<String> nonQuery_right_json_list_v2 = new ArrayList<>();
-    List<String> nonQuery_error_json_list_v2 = new ArrayList<>();
-    for (int i = 0; i <= 1; i++) {
-      boolean isAligned = false;
-      if (i == 0) {
-        isAligned = true;
-      }
-      insertTablet_right_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"isAligned\":\""
-              + isAligned
-              + "\",\"deviceId\":\"root.sg21"
-              + i
-              + "\"}");
-      insertTablet_right_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`s3`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"isAligned\":\""
-              + isAligned
-              + "\",\"deviceId\":\"root.sg22"
-              + i
-              + "\"}");
-      insertTablet_right_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"isAligned\":\""
-              + isAligned
-              + "\",\"deviceId\":\"root.`sg23"
-              + i
-              + "`\"}");
-      insertTablet_right_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`s3`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"isAligned\":\""
-              + isAligned
-              + "\",\"deviceId\":\"root.`sg24"
-              + i
-              + "`\"}");
-      insertTablet_error_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"isAligned\":"
-              + isAligned
-              + ",\"deviceId\":\"root.sg25"
-              + i
-              + "\"}");
-      insertTablet_error_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`s3`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"isAligned\":"
-              + isAligned
-              + ",\"deviceId\":\"root.sg36"
-              + i
-              + "\"}");
-      insertTablet_error_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"a123123\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"isAligned\":"
-              + isAligned
-              + ",\"deviceId\":\"root.`sg46"
-              + i
-              + "`\"}");
-      insertTablet_error_json_list.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`1231231`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"dataTypes\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"isAligned\":"
-              + isAligned
-              + ",\"deviceId\":\"root.`3333a"
-              + i
-              + "`\"}");
-      insertRecords_right_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"s33\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.s3\"],\"isAligned\":"
-              + isAligned
-              + "}");
-      insertRecords_right_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"`s33`\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.s3\"],\"isAligned\":"
-              + isAligned
-              + "}");
-      insertRecords_right_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"s33\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.`s3`\"],\"isAligned\":"
-              + isAligned
-              + "}");
-      insertRecords_right_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"`s33`\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.`s11`\",\"root.s11\",\"root.s1\",\"root.`s3`\"],\"isAligned\":"
-              + isAligned
-              + "}");
-
-      insertRecords_error_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"root\",\"442\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.time\"],\"isAligned\":"
-              + isAligned
-              + "}");
-      insertRecords_error_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"time\",\"a123123\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.time\"],\"isAligned\":"
-              + isAligned
-              + "}");
-      insertRecords_error_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"time\",\"a12321\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.111\",\"root.`s11`\",\"root.s1\",\"root.s3\"],\"isAligned\":"
-              + isAligned
-              + "}");
-      insertRecords_error_json_list.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurementsList\":[[\"`root`\",\"1111\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"dataTypesList\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"valuesList\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"deviceIds\":[\"root.s11\",\"root.s11\",\"root.time\",\"root.`s3`\"],\"isAligned\":"
-              + isAligned
-              + "}");
-
-      nonQuery_right_json_list.add("{\"sql\":\"insert into root.aa(time,`bb`) 
values(111,1)\"}");
-      nonQuery_right_json_list.add("{\"sql\":\"insert into root.`aa`(time,bb) 
values(111,1)\"}");
-      nonQuery_right_json_list.add("{\"sql\":\"insert into 
root.`aa`(time,`bb`) values(111,1)\"}");
-      nonQuery_right_json_list.add("{\"sql\":\"insert into root.aa(time,bb) 
values(111,1)\"}");
-
-      nonQuery_error_json_list.add("{\"sql\":\"insert into 
root.time(time,1`bb`) values(111,1)\"}");
-      nonQuery_error_json_list.add(
-          "{\"sql\":\"insert into root.time.`aa`(time,bb) values(111,1)\"}");
-      nonQuery_error_json_list.add(
-          "{\"sql\":\"insert into root.time.`aa`(time,`bb`) values(111,1)\"}");
-      nonQuery_error_json_list.add("{\"sql\":\"insert into root.aa(time,root) 
values(111,1)\"}");
-
-      insertTablet_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"is_aligned\":\""
-              + isAligned
-              + "\",\"device\":\"root.sg21"
-              + i
-              + "\"}");
-      insertTablet_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`s3`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"is_aligned\":"
-              + isAligned
-              + ",\"device\":\"root.sg22"
-              + i
-              + "\"}");
-      insertTablet_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"is_aligned\":"
-              + isAligned
-              + ",\"device\":\"root.`sg23"
-              + i
-              + "`\"}");
-      insertTablet_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`s3`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[11,2],[1635000012345555,1635000012345556],[1.41,null],[null,false],[null,3.5555]],\"is_aligned\":"
-              + isAligned
-              + ",\"device\":\"root.`sg24"
-              + i
-              + "`\"}");
-      insertTablet_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"s3\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"is_aligned\":"
-              + isAligned
-              + ",\"device\":\"root.sg25"
-              + i
-              + "\"}");
-      insertTablet_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`s3`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"is_aligned\":"
-              + isAligned
-              + ",\"device\":\"root.sg26"
-              + i
-              + "\"}");
-      insertTablet_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"cc123123\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"is_aligned\":"
-              + isAligned
-              + ",\"device\":\"root.`sg26"
-              + i
-              + "`\"}");
-      insertTablet_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232143960,1635232153960],\"measurements\":[\"`1231231cc`\",\"s4\",\"s5\",\"s6\",\"s7\",\"s8\"],\"data_types\":[\"TEXT\",\"INT32\",\"INT64\",\"FLOAT\",\"BOOLEAN\",\"DOUBLE\"],\"values\":[[\"2aa\",\"\"],[111111112312312442352545452323123,2],[16,15],[1.41,null],[null,false],[null,3.55555555555555555555555555555555555555555555312234235345123127318927461482308478123645555555555555555555555555555555555555555555531223423534512312731892746148230847812364]],\"is_al
 [...]
-              + isAligned
-              + ",\"device\":\"root.`3333a"
-              + i
-              + "`\"}");
-      insertRecords_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"s33\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.s3\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-      insertRecords_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"`s33`\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.s3\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-      insertRecords_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"s33\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.`s3`\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-      insertRecords_right_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"`s33`\",\"s44\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[1,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.`s11`\",\"root.s11\",\"root.s1\",\"root.`s3`\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-
-      insertRecords_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"root\",\"442\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.time\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-      insertRecords_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"time\",\"123123\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.s11\",\"root.s11\",\"root.s1\",\"root.time\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-      insertRecords_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"time\",\"12321\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.111\",\"root.`s11`\",\"root.s1\",\"root.s3\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-      insertRecords_error_json_list_v2.add(
-          
"{\"timestamps\":[1635232113960,1635232151960,1123,10],\"measurements_list\":[[\"`root`\",\"1111\"],[\"s55\",\"s66\"],[\"s77\",\"s88\"],[\"s771\",\"s881\"]],\"data_types_list\":[[\"INT32\",\"INT64\"],[\"float\",\"double\"],[\"float\",\"double\"],[\"boolean\",\"text\"]],\"values_list\":[[true,11],[2.1,2],[4,6],[false,\"cccccc\"]],\"devices\":[\"root.s11\",\"root.s11\",\"root.time\",\"root.`s3`\"],\"is_aligned\":"
-              + isAligned
-              + "}");
-
-      nonQuery_right_json_list_v2.add("{\"sql\":\"insert into 
root.aa(time,`bb`) values(111,1)\"}");
-      nonQuery_right_json_list_v2.add("{\"sql\":\"insert into 
root.`aa`(time,bb) values(111,1)\"}");
-      nonQuery_right_json_list_v2.add(
-          "{\"sql\":\"insert into root.`aa`(time,`bb`) values(111,1)\"}");
-      nonQuery_right_json_list_v2.add("{\"sql\":\"insert into root.aa(time,bb) 
values(111,1)\"}");
-
-      nonQuery_error_json_list_v2.add(
-          "{\"sql\":\"insert into root.time(time,1`bb`) values(111,1)\"}");
-      nonQuery_error_json_list_v2.add(
-          "{\"sql\":\"insert into root.time.`aa`(time,bb) values(111,1)\"}");
-      nonQuery_error_json_list_v2.add(
-          "{\"sql\":\"insert into root.time.`aa`(time,`bb`) values(111,1)\"}");
-      nonQuery_error_json_list_v2.add("{\"sql\":\"insert into 
root.aa(time,root) values(111,1)\"}");
-    }
-    HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/insertTablet");
-    HttpPost httpPost1 = getHttpPost_1("http://127.0.0.1:"; + port + 
"/rest/v1/insertTablet");
-
-    List<HttpPost> httpPosts = new ArrayList<>();
-    httpPosts.add(httpPost);
-    httpPosts.add(httpPost1);
-    for (HttpPost hp : httpPosts) {
-      for (String json : insertTablet_right_json_list) {
-        rightInsertTablet(httpClient, json, hp);
-      }
-      for (String json : insertTablet_error_json_list) {
-        errorInsertTablet(json, hp);
-      }
-    }
-
-    HttpPost httpPost3 = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/nonQuery");
-    HttpPost httpPost4 = getHttpPost_1("http://127.0.0.1:"; + port + 
"/rest/v1/nonQuery");
-    List<HttpPost> httpPosts1 = new ArrayList<>();
-    httpPosts1.add(httpPost3);
-    httpPosts1.add(httpPost4);
-
-    for (HttpPost hp : httpPosts1) {
-      for (String json : nonQuery_right_json_list) {
-        nonQuery(httpClient, json, hp);
-      }
-      for (String json : nonQuery_error_json_list) {
-        errorNonQuery(httpClient, json, hp);
-      }
-    }
-
-    HttpPost httpPost5 = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/insertRecords");
-    HttpPost httpPost6 = getHttpPost_1("http://127.0.0.1:"; + port + 
"/rest/v1/insertRecords");
-    List<HttpPost> httpPosts2 = new ArrayList<>();
-    httpPosts2.add(httpPost5);
-    httpPosts2.add(httpPost6);
-
-    HttpPost httpPostV2 = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/insertTablet");
-    HttpPost httpPost1V2 = getHttpPost_1("http://127.0.0.1:"; + port + 
"/rest/v2/insertTablet");
-
-    List<HttpPost> httpPostsV2 = new ArrayList<>();
-    httpPostsV2.add(httpPostV2);
-    httpPostsV2.add(httpPost1V2);
-    for (HttpPost hp : httpPostsV2) {
-      for (String json : insertTablet_right_json_list_v2) {
-        rightInsertTablet(httpClient, json, hp);
-      }
-      for (String json : insertTablet_error_json_list_v2) {
-        errorInsertTablet(json, hp);
-      }
-    }
-
-    HttpPost httpPost3V2 = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/nonQuery");
-    HttpPost httpPost4V2 = getHttpPost_1("http://127.0.0.1:"; + port + 
"/rest/v2/nonQuery");
-    List<HttpPost> httpPosts1V2 = new ArrayList<>();
-    httpPosts1V2.add(httpPost3V2);
-    httpPosts1V2.add(httpPost4V2);
-    for (HttpPost hp : httpPosts1V2) {
-      for (String json : nonQuery_right_json_list_v2) {
-        nonQuery(httpClient, json, hp);
-      }
-      for (String json : nonQuery_error_json_list_v2) {
-        errorNonQuery(httpClient, json, hp);
-      }
-    }
-
-    HttpPost httpPost5V2 = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/insertRecords");
-    HttpPost httpPost6V2 = getHttpPost_1("http://127.0.0.1:"; + port + 
"/rest/v2/insertRecords");
-    List<HttpPost> httpPosts2V2 = new ArrayList<>();
-    httpPosts2V2.add(httpPost5V2);
-    httpPosts2V2.add(httpPost6V2);
-    for (HttpPost hp : httpPosts2V2) {
-      for (String json : insertRecords_right_json_list_v2) {
-        rightInsertRecords(httpClient, json, hp);
-      }
-      for (String json : insertRecords_error_json_list_v2) {
-        errorInsertRecords(httpClient, json, hp);
-      }
-    }
-
-    try {
-      httpClient.close();
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void queryWithUnsetAuthorization() {
-    CloseableHttpResponse response = null;
-    try {
-      CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-      HttpPost httpPost = new HttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/query");
-      httpPost.addHeader("Content-type", "application/json; charset=utf-8");
-      httpPost.setHeader("Accept", "application/json");
-      String sql = "{\"sql\":\"select *,s4+1,s4+1 from root.sg25\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      Assert.assertEquals(401, response.getStatusLine().getStatusCode());
-      String message = EntityUtils.toString(response.getEntity(), "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(800, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  @Test
-  public void queryWithWrongAuthorization() {
-    CloseableHttpResponse response = null;
-    try {
-      CloseableHttpClient httpClient = HttpClientBuilder.create().build();
-      HttpPost httpPost = new HttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/query");
-      httpPost.addHeader("Content-type", "application/json; charset=utf-8");
-      httpPost.setHeader("Accept", "application/json");
-      String authorization = getAuthorization("abc", "def");
-      httpPost.setHeader("Authorization", authorization);
-      String sql = "{\"sql\":\"select *,s4+1,s4+1 from root.sg25\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      for (int i = 0; i < 30; i++) {
-        try {
-          response = httpClient.execute(httpPost);
-          break;
-        } catch (Exception e) {
-          if (i == 29) {
-            throw e;
-          }
-          try {
-            Thread.sleep(1000);
-          } catch (InterruptedException ex) {
-            throw new RuntimeException(ex);
-          }
-        }
-      }
-
-      Assert.assertEquals(401, response.getStatusLine().getStatusCode());
-      String message = EntityUtils.toString(response.getEntity(), "utf-8");
-      JsonObject result = JsonParser.parseString(message).getAsJsonObject();
-      assertEquals(801, Integer.parseInt(result.get("code").toString()));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void query(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/query");
-      String sql = "{\"sql\":\"select *,s4+1,s4+1 from root.sg25\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map map = mapper.readValue(message, Map.class);
-      List<Long> timestampsResult = (List<Long>) map.get("timestamps");
-      List<Long> expressionsResult = (List<Long>) map.get("expressions");
-      List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-      Assert.assertTrue(map.size() > 0);
-      List<Object> expressions =
-          new ArrayList<Object>() {
-            {
-              add("root.sg25.s3");
-              add("root.sg25.s4");
-              add("root.sg25.s5");
-              add("root.sg25.s6");
-              add("root.sg25.s7");
-              add("root.sg25.s8");
-              add("root.sg25.s4 + 1");
-              add("root.sg25.s4 + 1");
-            }
-          };
-      List<Object> timestamps =
-          new ArrayList<Object>() {
-            {
-              add(1635232143960l);
-              add(1635232153960l);
-            }
-          };
-      List<Object> values1 =
-          new ArrayList<Object>() {
-            {
-              add("2aa");
-              add("");
-            }
-          };
-      List<Object> values2 =
-          new ArrayList<Object>() {
-            {
-              add(11);
-              add(2);
-            }
-          };
-      List<Object> values3 =
-          new ArrayList<Object>() {
-            {
-              add(1635000012345555l);
-              add(1635000012345556l);
-            }
-          };
-
-      List<Object> values4 =
-          new ArrayList<Object>() {
-            {
-              add(1.41);
-              add(null);
-            }
-          };
-      List<Object> values5 =
-          new ArrayList<Object>() {
-            {
-              add(null);
-              add(false);
-            }
-          };
-      List<Object> values6 =
-          new ArrayList<Object>() {
-            {
-              add(null);
-              add(3.5555);
-            }
-          };
-
-      Assert.assertEquals(expressions, expressionsResult);
-      Assert.assertEquals(timestamps, timestampsResult);
-      Assert.assertEquals(values1, valuesResult.get(0));
-      Assert.assertEquals(values2, valuesResult.get(1));
-      Assert.assertEquals(values3, valuesResult.get(2));
-      Assert.assertEquals(values4, valuesResult.get(3));
-      Assert.assertEquals(values5, valuesResult.get(4));
-      Assert.assertEquals(values6, valuesResult.get(5));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void queryGroupByLevel(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/query");
-      String sql =
-          "{\"sql\":\"select count(s4) from root.sg25 group 
by([1635232143960,1635232153960),1s),level=1\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map map = mapper.readValue(message, Map.class);
-      List<Long> timestampsResult = (List<Long>) map.get("timestamps");
-      List<Long> expressionsResult = (List<Long>) map.get("expressions");
-      List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-      Assert.assertTrue(map.size() > 0);
-      Assert.assertTrue(timestampsResult.size() == 10);
-      Assert.assertTrue(valuesResult.size() == 1);
-      
Assert.assertTrue("count(root.sg25.s4)".equals(expressionsResult.get(0)));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void queryRowLimit(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/query");
-      String sql = "{\"sql\":\"select *,s4+1,s4+1 from 
root.sg25\",\"rowLimit\":1}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      assertTrue(message.contains("row size exceeded the given max row size"));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public Map queryMetaData(CloseableHttpClient httpClient, String sql) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v1/query");
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map map = mapper.readValue(message, Map.class);
-      return map;
-
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-    return null;
-  }
-
-  public void queryShowChildPaths(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show child paths root\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("ChildPaths");
-            add("NodeTypes");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void queryShowNodes(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show child nodes root\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("ChildNodes");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void showAllTTL(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show all ttl\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Database");
-            add("TTL");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(null);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-  }
-
-  public void showStorageGroup(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"SHOW DATABASES root.*\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Database");
-            add("TTL");
-            add("SchemaReplicationFactor");
-            add("DataReplicationFactor");
-            add("TimePartitionInterval");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void showFunctions(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show functions\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    assertEquals(3, columnNamesResult.size());
-    assertEquals(3, valuesResult.size());
-  }
-
-  public void showTimeseries(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show timeseries\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Timeseries");
-            add("Alias");
-            add("Database");
-            add("DataType");
-            add("Encoding");
-            add("Compression");
-            add("Tags");
-            add("Attributes");
-            add("Deadband");
-            add("DeadbandParameters");
-            add("ViewType");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25.s3");
-            add("root.sg25.s4");
-            add("root.sg25.s5");
-            add("root.sg25.s6");
-            add("root.sg25.s7");
-            add("root.sg25.s8");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-
-  public void showLastTimeseries(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"SHOW LATEST TIMESERIES\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Timeseries");
-            add("Alias");
-            add("Database");
-            add("DataType");
-            add("Encoding");
-            add("Compression");
-            add("Tags");
-            add("Attributes");
-            add("Deadband");
-            add("DeadbandParameters");
-            add("ViewType");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25.s3");
-            add("root.sg25.s4");
-            add("root.sg25.s5");
-            add("root.sg25.s7");
-            add("root.sg25.s8");
-            add("root.sg25.s6");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-
-  public void countTimeseries(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"COUNT TIMESERIES root.** GROUP BY LEVEL=1\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Column");
-            add("count(timeseries)");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(6);
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-  }
-
-  public void countNodes(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"count nodes root.** level=2\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("count(nodes)");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add(6);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void showDevices(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show devices\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Device");
-            add("IsAligned");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Boolean> values2 =
-        new ArrayList<Boolean>() {
-          {
-            add(false);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void showDevicesWithStroage(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show devices with database\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Device");
-            add("Database");
-            add("IsAligned");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("false");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-
-  public void listUser(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"list user\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("columnNames");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("user");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void selectCount(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"select count(s3) from root.** group by level = 
1\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("expressions");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("count(root.sg25.s3)");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add(2);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void selectLast(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"select last s4 from root.sg25\"}";
-    Map map = queryMetaData(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("expressions");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    List<Long> timestampsResult = (List<Long>) map.get("timestamps");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Timeseries");
-            add("Value");
-            add("DataType");
-          }
-        };
-    List<Long> timestamps =
-        new ArrayList<Long>() {
-          {
-            add(1635232153960l);
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25.s4");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add("2");
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("INT32");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(timestamps, timestampsResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2.get(0), valuesResult.get(1).get(0));
-    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-
-  public void queryV2(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/query");
-      String sql = "{\"sql\":\"select *,s4+1,s4+1 from root.sg25\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map map = mapper.readValue(message, Map.class);
-      List<Long> timestampsResult = (List<Long>) map.get("timestamps");
-      List<Long> expressionsResult = (List<Long>) map.get("expressions");
-      List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-      Assert.assertTrue(map.size() > 0);
-      List<Object> expressions =
-          new ArrayList<Object>() {
-            {
-              add("root.sg25.s3");
-              add("root.sg25.s4");
-              add("root.sg25.s5");
-              add("root.sg25.s6");
-              add("root.sg25.s7");
-              add("root.sg25.s8");
-              add("root.sg25.s4 + 1");
-              add("root.sg25.s4 + 1");
-            }
-          };
-      List<Object> timestamps =
-          new ArrayList<Object>() {
-            {
-              add(1635232143960l);
-              add(1635232153960l);
-            }
-          };
-      List<Object> values1 =
-          new ArrayList<Object>() {
-            {
-              add("2aa");
-              add("");
-            }
-          };
-      List<Object> values2 =
-          new ArrayList<Object>() {
-            {
-              add(11);
-              add(2);
-            }
-          };
-      List<Object> values3 =
-          new ArrayList<Object>() {
-            {
-              add(1635000012345555l);
-              add(1635000012345556l);
-            }
-          };
-
-      List<Object> values4 =
-          new ArrayList<Object>() {
-            {
-              add(1.41);
-              add(null);
-            }
-          };
-      List<Object> values5 =
-          new ArrayList<Object>() {
-            {
-              add(null);
-              add(false);
-            }
-          };
-      List<Object> values6 =
-          new ArrayList<Object>() {
-            {
-              add(null);
-              add(3.5555);
-            }
-          };
-
-      Assert.assertEquals(expressions, expressionsResult);
-      Assert.assertEquals(timestamps, timestampsResult);
-      Assert.assertEquals(values1, valuesResult.get(0));
-      Assert.assertEquals(values2, valuesResult.get(1));
-      Assert.assertEquals(values3, valuesResult.get(2));
-      Assert.assertEquals(values4, valuesResult.get(3));
-      Assert.assertEquals(values5, valuesResult.get(4));
-      Assert.assertEquals(values6, valuesResult.get(5));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void queryGroupByLevelV2(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/query");
-      String sql =
-          "{\"sql\":\"select count(s4) from root.sg25 group 
by([1635232143960,1635232153960),1s),level=1\"}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map map = mapper.readValue(message, Map.class);
-      List<Long> timestampsResult = (List<Long>) map.get("timestamps");
-      List<Long> expressionsResult = (List<Long>) map.get("expressions");
-      List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-      Assert.assertTrue(map.size() > 0);
-      Assert.assertTrue(timestampsResult.size() == 10);
-      Assert.assertTrue(valuesResult.size() == 1);
-      
Assert.assertTrue("count(root.sg25.s4)".equals(expressionsResult.get(0)));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public void queryRowLimitV2(CloseableHttpClient httpClient) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/query");
-      String sql = "{\"sql\":\"select *,s4+1,s4+1 from 
root.sg25\",\"row_limit\":1}";
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      assertTrue(message.contains("row size exceeded the given max row size"));
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  public Map queryMetaDataV2(CloseableHttpClient httpClient, String sql) {
-    CloseableHttpResponse response = null;
-    try {
-      HttpPost httpPost = getHttpPost("http://127.0.0.1:"; + port + 
"/rest/v2/query");
-      httpPost.setEntity(new StringEntity(sql, Charset.defaultCharset()));
-      response = httpClient.execute(httpPost);
-      HttpEntity responseEntity = response.getEntity();
-      String message = EntityUtils.toString(responseEntity, "utf-8");
-      ObjectMapper mapper = new ObjectMapper();
-      Map map = mapper.readValue(message, Map.class);
-      return map;
-
-    } catch (IOException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    } finally {
-      try {
-        if (response != null) {
-          response.close();
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-        fail(e.getMessage());
-      }
-    }
-    return null;
-  }
-
-  public void queryShowChildPathsV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show child paths root\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("ChildPaths");
-            add("NodeTypes");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void queryShowNodesV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show child nodes root\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("ChildNodes");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void showAllTTLV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show all ttl\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Database");
-            add("TTL");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(null);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-  }
-
-  public void showStorageGroupV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"SHOW DATABASES root.*\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Database");
-            add("TTL");
-            add("SchemaReplicationFactor");
-            add("DataReplicationFactor");
-            add("TimePartitionInterval");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void showFunctionsV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show functions\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    assertEquals(3, columnNamesResult.size());
-    assertEquals(3, valuesResult.size());
-  }
-
-  public void showTimeseriesV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show timeseries\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Timeseries");
-            add("Alias");
-            add("Database");
-            add("DataType");
-            add("Encoding");
-            add("Compression");
-            add("Tags");
-            add("Attributes");
-            add("Deadband");
-            add("DeadbandParameters");
-            add("ViewType");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25.s3");
-            add("root.sg25.s4");
-            add("root.sg25.s5");
-            add("root.sg25.s6");
-            add("root.sg25.s7");
-            add("root.sg25.s8");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    //    Assert.assertEquals(values1, valuesResult.get(0));
-    //    Assert.assertEquals(values2, valuesResult.get(1));
-    //    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-
-  public void showLastTimeseriesV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"SHOW LATEST TIMESERIES\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Timeseries");
-            add("Alias");
-            add("Database");
-            add("DataType");
-            add("Encoding");
-            add("Compression");
-            add("Tags");
-            add("Attributes");
-            add("Deadband");
-            add("DeadbandParameters");
-            add("ViewType");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25.s3");
-            add("root.sg25.s4");
-            add("root.sg25.s5");
-            add("root.sg25.s7");
-            add("root.sg25.s8");
-            add("root.sg25.s6");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-            add(null);
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-            add("root.sg25");
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-
-  public void countTimeseriesV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"COUNT TIMESERIES root.** GROUP BY LEVEL=1\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Column");
-            add("count(timeseries)");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add(6);
-          }
-        };
-
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-  }
-
-  public void countNodesV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"count nodes root.** level=2\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("count(nodes)");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add(6);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void showDevicesV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show devices\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Device");
-            add("IsAligned");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Boolean> values2 =
-        new ArrayList<Boolean>() {
-          {
-            add(false);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    // Assert.assertEquals(values2, valuesResult.get(1));
-  }
-
-  public void showDevicesWithStroageV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"show devices with database\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Device");
-            add("Database");
-            add("IsAligned");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25");
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("false");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2, valuesResult.get(1));
-    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-
-  public void listUserV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"list user\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("column_names");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("user");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void selectCountV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"select count(s3) from root.** group by level = 
1\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("expressions");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("count(root.sg25.s3)");
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add(2);
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-  }
-
-  public void selectLastV2(CloseableHttpClient httpClient) {
-    String sql = "{\"sql\":\"select last s4 from root.sg25\"}";
-    Map map = queryMetaDataV2(httpClient, sql);
-    List<String> columnNamesResult = (List<String>) map.get("expressions");
-    List<List<Object>> valuesResult = (List<List<Object>>) map.get("values");
-    List<Long> timestampsResult = (List<Long>) map.get("timestamps");
-    Assert.assertTrue(map.size() > 0);
-    List<Object> columnNames =
-        new ArrayList<Object>() {
-          {
-            add("Timeseries");
-            add("Value");
-            add("DataType");
-          }
-        };
-    List<Long> timestamps =
-        new ArrayList<Long>() {
-          {
-            add(1635232153960l);
-          }
-        };
-    List<Object> values1 =
-        new ArrayList<Object>() {
-          {
-            add("root.sg25.s4");
-          }
-        };
-    List<Object> values2 =
-        new ArrayList<Object>() {
-          {
-            add("2");
-          }
-        };
-    List<Object> values3 =
-        new ArrayList<Object>() {
-          {
-            add("INT32");
-          }
-        };
-    Assert.assertEquals(columnNames, columnNamesResult);
-    Assert.assertEquals(timestamps, timestampsResult);
-    Assert.assertEquals(values1, valuesResult.get(0));
-    Assert.assertEquals(values2.get(0), valuesResult.get(1).get(0));
-    Assert.assertEquals(values3, valuesResult.get(2));
-  }
-}

Reply via email to