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

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


The following commit(s) were added to refs/heads/master by this push:
     new 230432d  [IOTDB-642] Data can't be inserted correctly by alias (#1166)
230432d is described below

commit 230432da6c41e978d6e7d6a2865c41be0b136717
Author: Xiangwei Wei <[email protected]>
AuthorDate: Fri May 8 13:07:14 2020 +0800

    [IOTDB-642] Data can't be inserted correctly by alias (#1166)
    
    * Fix insertByAlias bug
---
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  4 +++
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |  2 +-
 .../apache/iotdb/db/integration/IoTDBTagIT.java    | 32 ++++++++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java 
b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 92b71e5..44ac685 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -871,8 +871,12 @@ public class PlanExecutor implements IPlanExecutor {
         }
         LeafMNode measurementNode = (LeafMNode) node.getChild(measurement);
         schemas[i] = measurementNode.getSchema();
+        if (measurement != measurementNode.getName()) {
+          measurementList[i] = measurementNode.getName();
+        }
       }
 
+      insertPlan.setMeasurements(measurementList);
       insertPlan.setSchemas(schemas);
       StorageEngine.getInstance().insert(insertPlan);
     } catch (StorageEngineException | MetadataException e) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
index 0cf280f..5c023f4 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
@@ -105,7 +105,7 @@ public class ConcatPathOptimizer implements 
ILogicalOptimizer {
                             + " For more details please refer to the SQL 
document.");
           }
         }
-        // GROUP_BY_DEVICE leaves the 1) concat, 2) remove star, 3) slimit 
tasks to the next phase,
+        // ALIGN_BY_DEVICE leaves the 1) concat, 2) remove star, 3) slimit 
tasks to the next phase,
         // i.e., PhysicalGenerator.transformQuery
       }
     }
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTagIT.java 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTagIT.java
index 99b4161..eb2b369 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTagIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTagIT.java
@@ -887,4 +887,36 @@ public class IoTDBTagIT {
       assertTrue(e.getMessage().contains("The key tag1 is not a tag"));
     }
   }
+
+  @Test
+  public void insertWithAliasTest() throws ClassNotFoundException {
+    String[] ret = {"1,36.5,36.5"};
+    String[] sqls = {
+        "create timeseries root.turbine.d1.s1(temperature) with 
datatype=FLOAT, encoding=RLE, compression=SNAPPY",
+        "insert into root.turbine.d1(timestamp, temperature) values(1,36.5)"
+    };
+    Class.forName(Config.JDBC_DRIVER_NAME);
+    try (Connection connection = DriverManager
+        .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", 
"root");
+        Statement statement = connection.createStatement()) {
+      for (String sql : sqls) {
+        statement.execute(sql);
+      }
+      boolean hasResult = statement.execute("select s1, temperature from 
root.turbine.d1");
+      assertTrue(hasResult);
+      ResultSet resultSet = statement.getResultSet();
+      int count = 0;
+      while (resultSet.next()) {
+        String ans = resultSet.getString("Time")
+            + "," + resultSet.getString("root.turbine.d1.s1")
+            + "," + resultSet.getString("root.turbine.d1.s1");
+        assertEquals(ret[count], ans);
+        count++;
+      }
+      assertEquals(ret.length, count);
+    } catch (Exception e) {
+      e.printStackTrace();
+      fail();
+    }
+  }
 }

Reply via email to