This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 8907772 [IOTDB-1348] Last plan not work in cluster mode (#3118)
8907772 is described below
commit 890777248cf5ecd68d467e097efef7e881048228
Author: Irvine <[email protected]>
AuthorDate: Fri May 7 18:44:07 2021 +0800
[IOTDB-1348] Last plan not work in cluster mode (#3118)
* [IOTDB-1153] Last plan not work in cluster mode
---
.../query/last/ClusterLastQueryExecutor.java | 1 +
.../java/org/apache/iotdb/db/sql/ClusterIT.java | 23 ++++++++++++++++++++++
.../java/org/apache/iotdb/db/sql/SingleNodeIT.java | 23 ++++++++++++++++++++++
3 files changed, 47 insertions(+)
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java
b/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java
index 8ebb31d..d5ec324 100644
---
a/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java
+++
b/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java
@@ -127,6 +127,7 @@ public class ClusterLastQueryExecutor extends
LastQueryExecutor {
List<Pair<Boolean, TimeValuePair>> timeValuePairs = groupFuture.get();
for (int i = 0; i < timeValuePairs.size(); i++) {
if (timeValuePairs.get(i) != null
+ && timeValuePairs.get(i).right != null
&& timeValuePairs.get(i).right.getTimestamp() >
results.get(i).right.getTimestamp()) {
results.get(i).right = timeValuePairs.get(i).right;
}
diff --git a/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java
b/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java
index 207cb8c..79b1292 100644
--- a/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java
+++ b/testcontainer/src/test/java/org/apache/iotdb/db/sql/ClusterIT.java
@@ -119,4 +119,27 @@ public class ClusterIT {
Assert.assertEquals(35.71, avg, 0.1);
resultSet.close();
}
+
+ @Test
+ public void testLast() throws SQLException {
+
+ String[] timeSeriesArray = {"root.ln.wf01.wt01.temperature WITH
DATATYPE=DOUBLE, ENCODING=RLE"};
+ String[] initDataArray = {
+ "INSERT INTO root.ln.wf01.wt01(timestamp, temperature) values(100,
10.0)",
+ "INSERT INTO root.ln.wf01.wt01(timestamp, temperature) values(200,
20.0)",
+ "INSERT INTO root.ln.wf01.wt01(timestamp, temperature) values(150, 15.0)"
+ };
+
+ for (String timeSeries : timeSeriesArray) {
+ statement.execute(String.format("create timeseries %s ", timeSeries));
+ }
+ for (String initData : initDataArray) {
+ statement.execute(initData);
+ }
+ ResultSet resultSet = statement.executeQuery("select last * from
root.ln.wf01.wt01;");
+ Assert.assertTrue(resultSet.next());
+ double last = Double.parseDouble(resultSet.getString(3));
+ Assert.assertEquals(20.0, last, 0.1);
+ resultSet.close();
+ }
}
diff --git
a/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java
b/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java
index 0ec5ae7..9a3ba1b 100644
--- a/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java
+++ b/testcontainer/src/test/java/org/apache/iotdb/db/sql/SingleNodeIT.java
@@ -119,4 +119,27 @@ public class SingleNodeIT {
Assert.assertEquals(35.71, avg, 0.1);
resultSet.close();
}
+
+ @Test
+ public void testLast() throws SQLException {
+
+ String[] timeSeriesArray = {"root.ln.wf01.wt01.temperature WITH
DATATYPE=DOUBLE, ENCODING=RLE"};
+ String[] initDataArray = {
+ "INSERT INTO root.ln.wf01.wt01(timestamp, temperature) values(100,
10.0)",
+ "INSERT INTO root.ln.wf01.wt01(timestamp, temperature) values(200,
20.0)",
+ "INSERT INTO root.ln.wf01.wt01(timestamp, temperature) values(150, 15.0)"
+ };
+
+ for (String timeSeries : timeSeriesArray) {
+ statement.execute(String.format("create timeseries %s ", timeSeries));
+ }
+ for (String initData : initDataArray) {
+ statement.execute(initData);
+ }
+ ResultSet resultSet = statement.executeQuery("select last * from
root.ln.wf01.wt01;");
+ Assert.assertTrue(resultSet.next());
+ double last = Double.parseDouble(resultSet.getString(3));
+ Assert.assertEquals(20.0, last, 0.1);
+ resultSet.close();
+ }
}