You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2021/07/28 02:19:43 UTC

[iotdb] 01/01: [IOTDB-1532] CI fails on testSelectInto() in E2E test

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 <ro...@apache.org>
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());
         }
       }