You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2020/03/05 13:04:08 UTC

[incubator-iotdb] branch 545 created (now 617c2df)

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

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


      at 617c2df  [IOTDB-545] Update checkPathValidity in Session

This branch includes the following new commits:

     new 617c2df  [IOTDB-545] Update checkPathValidity in Session

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



[incubator-iotdb] 01/01: [IOTDB-545] Update checkPathValidity in Session

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

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

commit 617c2df65267699fb665e85a813479ab55ae1fc6
Author: samperson1997 <sz...@mails.tsinghua.edu.cn>
AuthorDate: Thu Mar 5 21:03:21 2020 +0800

    [IOTDB-545] Update checkPathValidity in Session
---
 .../main/java/org/apache/iotdb/session/Config.java |  3 +-
 .../java/org/apache/iotdb/session/Session.java     |  4 +-
 .../org/apache/iotdb/session/IoTDBSessionIT.java   | 48 ++++++++++++++--------
 3 files changed, 36 insertions(+), 19 deletions(-)

diff --git a/session/src/main/java/org/apache/iotdb/session/Config.java b/session/src/main/java/org/apache/iotdb/session/Config.java
index e21eab6..181f2ff 100644
--- a/session/src/main/java/org/apache/iotdb/session/Config.java
+++ b/session/src/main/java/org/apache/iotdb/session/Config.java
@@ -29,6 +29,7 @@ public class Config {
   public static final int DEFAULT_TIMEOUT_MS = 0;
 
   public static final String PATH_MATCHER =
-      PATH_ROOT + "([" + PATH_SEPARATOR + "](([a-zA-Z_][a-zA-Z0-9_-]*)|([+-]?[0-9]+)))+";
+      PATH_ROOT + "([" + PATH_SEPARATOR + "]([+-]?[a-zA-Z0-9_-]+))+"
+          + "[\"|\'a-zA-Z0-9_-[" + PATH_SEPARATOR + "a-zA-Z0-9_-]+\"|\']?";
 
 }
diff --git a/session/src/main/java/org/apache/iotdb/session/Session.java b/session/src/main/java/org/apache/iotdb/session/Session.java
index 5406489..629f73d 100644
--- a/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -652,9 +652,9 @@ public class Session {
   }
 
   private void checkPathValidity(String path) throws IoTDBSessionException {
-    if (!Pattern.matches(PATH_MATCHER, path)) {
+    if (!Pattern.compile(PATH_MATCHER).matcher(path).find()) {
       throw new IoTDBSessionException(
-          String.format("Path [%s] is invalid", StringEscapeUtils.escapeJava(path)));
+          String.format("Path [%s] is invalid", path));
     }
   }
 
diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
index 3a7d627..ccd863b 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
@@ -48,8 +48,6 @@ import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class IoTDBSessionIT {
 
@@ -113,7 +111,7 @@ public class IoTDBSessionIT {
     try (Connection connection = DriverManager
         .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      statement.execute("flush");
+      statement.execute("FLUSH");
     }
     //
     insertRowBatchTest3("root.sg1.d1");
@@ -230,6 +228,19 @@ public class IoTDBSessionIT {
     insertInBatch();
 
     query4();
+
+    // special characters
+    session.createTimeseries("root.sg1.d1.1_2", TSDataType.INT64, TSEncoding.RLE,
+        CompressionType.SNAPPY);
+    session.createTimeseries("root.sg1.d1.\"1.2.3\"", TSDataType.INT64, TSEncoding.RLE,
+        CompressionType.SNAPPY);
+    session.createTimeseries("root.sg1.d1.\'1.2.4\'", TSDataType.INT64, TSEncoding.RLE,
+        CompressionType.SNAPPY);
+
+    session.setStorageGroup("root.1");
+    session.createTimeseries("root.1.2.3", TSDataType.INT64, TSEncoding.RLE,
+        CompressionType.SNAPPY);
+
     // Add another storage group to test the deletion of storage group
     session.setStorageGroup("root.sg2");
     session.createTimeseries("root.sg2.d1.s1", TSDataType.INT64, TSEncoding.RLE,
@@ -392,6 +403,10 @@ public class IoTDBSessionIT {
 
   private void deleteTimeseries() throws IoTDBSessionException {
     session.deleteTimeseries("root.sg1.d1.s1");
+    session.deleteTimeseries("root.laptop.d1.1_2");
+    session.deleteTimeseries("root.laptop.d1.\"1.2.3\"");
+    session.deleteTimeseries("root.laptop.d1.\'1.2.4\'");
+    session.deleteTimeseries("root.1.2.3");
   }
 
   private void query() throws ClassNotFoundException, SQLException {
@@ -402,7 +417,7 @@ public class IoTDBSessionIT {
     try (Connection connection = DriverManager
         .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      ResultSet resultSet = statement.executeQuery("select * from root");
+      ResultSet resultSet = statement.executeQuery("SELECT * FROM root");
       final ResultSetMetaData metaData = resultSet.getMetaData();
       final int colCount = metaData.getColumnCount();
       StringBuilder resultStr = new StringBuilder();
@@ -420,8 +435,9 @@ public class IoTDBSessionIT {
   }
 
   private void queryForAlignByDevice()
-      throws  SQLException, TException, IoTDBRPCException {
-    SessionDataSet sessionDataSet = session.executeQueryStatement("select '11', s1, '11' from root.sg1.d1 align by device");
+      throws SQLException, TException, IoTDBRPCException {
+    SessionDataSet sessionDataSet = session
+        .executeQueryStatement("select '11', s1, '11' from root.sg1.d1 align by device");
     sessionDataSet.setBatchSize(1024);
     int count = 0;
     while (sessionDataSet.hasNext()) {
@@ -438,8 +454,9 @@ public class IoTDBSessionIT {
   }
 
   private void queryForAlignByDevice2()
-      throws  SQLException, TException, IoTDBRPCException {
-    SessionDataSet sessionDataSet = session.executeQueryStatement("select '11', s1, '11', s5, s1, s5 from root.sg1.d1 align by device");
+      throws SQLException, TException, IoTDBRPCException {
+    SessionDataSet sessionDataSet = session.executeQueryStatement(
+        "select '11', s1, '11', s5, s1, s5 from root.sg1.d1 align by device");
     sessionDataSet.setBatchSize(1024);
     int count = 0;
     while (sessionDataSet.hasNext()) {
@@ -464,7 +481,7 @@ public class IoTDBSessionIT {
     try (Connection connection = DriverManager
         .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      ResultSet resultSet = statement.executeQuery("select * from root");
+      ResultSet resultSet = statement.executeQuery("SELECT * FROM root");
       final ResultSetMetaData metaData = resultSet.getMetaData();
       final int colCount = metaData.getColumnCount();
       StringBuilder resultStr = new StringBuilder();
@@ -496,11 +513,11 @@ public class IoTDBSessionIT {
         CompressionType.SNAPPY);
     // using the query result as the QueryTest to verify the deletion and the new insertion
     Class.forName(Config.JDBC_DRIVER_NAME);
-    String standard = "Time\n" + "root.sg2.d1.s1\n" + "root.sg1.d1.s1\n";
+    String standard = "Time\n" + "root.1.2.3\n" + "root.sg2.d1.s1\n" + "root.sg1.d1.s1\n";
     try (Connection connection = DriverManager
         .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      ResultSet resultSet = statement.executeQuery("select * from root");
+      ResultSet resultSet = statement.executeQuery("SELECT * FROM root");
       final ResultSetMetaData metaData = resultSet.getMetaData();
       final int colCount = metaData.getColumnCount();
       StringBuilder resultStr = new StringBuilder();
@@ -513,7 +530,7 @@ public class IoTDBSessionIT {
         }
         resultStr.append("\n");
       }
-      Assert.assertEquals(resultStr.toString(), standard);
+      Assert.assertEquals(standard, resultStr.toString());
       List<String> storageGroups = new ArrayList<>();
       storageGroups.add("root.sg1.d1");
       storageGroups.add("root.sg2");
@@ -723,7 +740,6 @@ public class IoTDBSessionIT {
     if (rowBatch.batchSize != 0) {
       long start = System.currentTimeMillis();
       session.insertBatch(rowBatch);
-      countTime += System.currentTimeMillis() - start;
       rowBatch.reset();
     }
 
@@ -737,7 +753,7 @@ public class IoTDBSessionIT {
     try (Connection connection = DriverManager
         .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      ResultSet resultSet = statement.executeQuery("select * from root");
+      ResultSet resultSet = statement.executeQuery("SELECT * FROM root");
       final ResultSetMetaData metaData = resultSet.getMetaData();
       final int colCount = metaData.getColumnCount();
       StringBuilder resultStr = new StringBuilder();
@@ -765,7 +781,7 @@ public class IoTDBSessionIT {
     try (Connection connection = DriverManager
         .getConnection(Config.IOTDB_URL_PREFIX + "192.168.130.18:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      ResultSet resultSet = statement.executeQuery("select s_0 from root.group_0.d_0 limit 10000");
+      ResultSet resultSet = statement.executeQuery("SELECT s_0 FROM root.group_0.d_0 LIMIT 10000");
       final ResultSetMetaData metaData = resultSet.getMetaData();
       final int colCount = metaData.getColumnCount();
       StringBuilder resultStr = new StringBuilder();
@@ -805,7 +821,7 @@ public class IoTDBSessionIT {
     try (Connection connection = DriverManager
         .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
         Statement statement = connection.createStatement()) {
-      ResultSet resultSet = statement.executeQuery("select * from root");
+      ResultSet resultSet = statement.executeQuery("SELECT * FROM root");
       final ResultSetMetaData metaData = resultSet.getMetaData();
       final int colCount = metaData.getColumnCount();
       StringBuilder resultStr = new StringBuilder();