This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch iotdb-1532 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 46e61efee565e92e81bfd3d7ae1cf54c941dc810 Author: Steve Yurong Su <[email protected]> AuthorDate: Wed Jul 28 10:17:30 2021 +0800 [IOTDB-1532] CI fails on testSelectInto() in E2E test --- .../iotdb/db/integration/IoTDBSelectIntoIT.java | 53 ++++++++++++++++++++++ .../test/java/org/apache/iotdb/db/sql/Cases.java | 38 +++++++++++++--- 2 files changed, 85 insertions(+), 6 deletions(-) diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectIntoIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectIntoIT.java index be5a23b..8d2be9e 100644 --- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectIntoIT.java +++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectIntoIT.java @@ -561,4 +561,57 @@ public class IoTDBSelectIntoIT { throwable.getMessage().contains("target paths in into clause should be different.")); } } + + @Test + public void testContainerCase() throws SQLException { + try (Statement statement = + DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root") + .createStatement()) { + + for (int i = 0; i < 10; i++) { + statement.execute( + String.format("INSERT INTO root.sg.device%s(timestamp,s) VALUES(1,1)", i)); + } + + statement.execute( + "SELECT device0.s, device1.s, device2.s, device3.s, device4.s, device5.s, device6.s, device7.s, device8.s, device9.s " + + "into device0.t device1.t, device2.t, device3.t, device4.t, device5.t, device6.t, device7.t, device8.t, device9.t " + + "from root.sg;"); + + for (int i = 0; i < 10; i++) { + statement.execute( + String.format("INSERT INTO root.sg.device%s(timestamp,s) VALUES(2,2)", i)); + statement.execute(String.format("SELECT device%s.s into device%s.t from root.sg;", i, i)); + } + + for (int i = 0; i < 10; ++i) { + try (ResultSet resultSet = + statement.executeQuery(String.format("SELECT s, t FROM root.sg.device%s", i))) { + assertTrue(resultSet.next()); + assertEquals(1, Double.parseDouble(resultSet.getString(1)), 0); + assertEquals( + Double.parseDouble(resultSet.getString(1)), + Double.parseDouble(resultSet.getString(2)), + 0); + assertEquals( + Double.parseDouble(resultSet.getString(2)), + Double.parseDouble(resultSet.getString(3)), + 0); + + assertTrue(resultSet.next()); + assertEquals(2, Double.parseDouble(resultSet.getString(1)), 0); + assertEquals( + Double.parseDouble(resultSet.getString(1)), + Double.parseDouble(resultSet.getString(2)), + 0); + assertEquals( + Double.parseDouble(resultSet.getString(2)), + Double.parseDouble(resultSet.getString(3)), + 0); + + assertFalse(resultSet.next()); + } + } + } + } } diff --git a/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java b/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java index fbbc3fa..181d020 100644 --- a/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java +++ b/testcontainer/src/test/java/org/apache/iotdb/db/sql/Cases.java @@ -466,21 +466,47 @@ public abstract class Cases { public void testSelectInto() throws SQLException { for (int i = 0; i < 10; i++) { writeStatement.execute( - String.format("INSERT INTO root.sg.d%s(timestamp,s) VALUES(%s,%s)", i, i, i)); + String.format("INSERT INTO root.sg.device%s(timestamp,s) VALUES(1,1)", i)); } writeStatement.execute( - "SELECT d0.s, d1.s, d2.s, d3.s, d4.s into d0.t, d1.t, d2.t, d3.t, d4.t from root.sg;"); - for (int i = 5; i < 10; ++i) { - writeStatement.execute(String.format("SELECT d%s.s into d%s.t from root.sg;", i, i)); + "SELECT device0.s, device1.s, device2.s, device3.s, device4.s, device5.s, device6.s, device7.s, device8.s, device9.s " + + "into device0.t device1.t, device2.t, device3.t, device4.t, device5.t, device6.t, device7.t, device8.t, device9.t " + + "from root.sg;"); + + for (int i = 0; i < 10; i++) { + writeStatement.execute( + String.format("INSERT INTO root.sg.device%s(timestamp,s) VALUES(2,2)", i)); + writeStatement.execute( + String.format("SELECT device%s.s into device%s.t from root.sg;", i, i)); } for (Statement readStatement : readStatements) { for (int i = 0; i < 10; ++i) { try (ResultSet resultSet = - readStatement.executeQuery(String.format("SELECT s, t FROM root.sg.d%s", i))) { + readStatement.executeQuery(String.format("SELECT s, t FROM root.sg.device%s", i))) { Assert.assertTrue(resultSet.next()); - Assert.assertEquals(resultSet.getDouble(2), resultSet.getDouble(3), 0); + Assert.assertEquals(1, Double.parseDouble(resultSet.getString(1)), 0); + Assert.assertEquals( + Double.parseDouble(resultSet.getString(1)), + Double.parseDouble(resultSet.getString(2)), + 0); + Assert.assertEquals( + Double.parseDouble(resultSet.getString(2)), + Double.parseDouble(resultSet.getString(3)), + 0); + + Assert.assertTrue(resultSet.next()); + Assert.assertEquals(2, Double.parseDouble(resultSet.getString(1)), 0); + Assert.assertEquals( + Double.parseDouble(resultSet.getString(1)), + Double.parseDouble(resultSet.getString(2)), + 0); + Assert.assertEquals( + Double.parseDouble(resultSet.getString(2)), + Double.parseDouble(resultSet.getString(3)), + 0); + Assert.assertFalse(resultSet.next()); } }
