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 <[email protected]> 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();
