This is an automated email from the ASF dual-hosted git repository. sunzesong pushed a commit to branch jira_545 in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 84b7135868813968900a6f87df3001d44992e65b Author: samperson1997 <[email protected]> AuthorDate: Thu Mar 5 21:05:32 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 2db5923..65582b0 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 502e20b..206dbe3 100644 --- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java +++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java @@ -47,8 +47,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 { @@ -112,7 +110,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"); @@ -229,6 +227,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, @@ -391,6 +402,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 { @@ -401,7 +416,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(); @@ -419,8 +434,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()) { @@ -437,8 +453,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()) { @@ -463,7 +480,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(); @@ -495,11 +512,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(); @@ -512,7 +529,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"); @@ -710,7 +727,6 @@ public class IoTDBSessionIT { if (rowBatch.batchSize != 0) { long start = System.currentTimeMillis(); session.insertBatch(rowBatch); - countTime += System.currentTimeMillis() - start; rowBatch.reset(); } @@ -724,7 +740,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(); @@ -752,7 +768,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(); @@ -792,7 +808,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();
