You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2019/11/30 01:47:46 UTC
[incubator-iotdb] 01/01: Revert "[IOTDB-298] Refactor the "last"
and "first" aggregators (#594)"
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch revert-594-last_to_lastvalue
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit e1fa4fb4315538e4b280c9a1e9724eddf8f991d4
Author: Jialin Qiao <qj...@mails.tsinghua.edu.cn>
AuthorDate: Sat Nov 30 09:47:36 2019 +0800
Revert "[IOTDB-298] Refactor the "last" and "first" aggregators (#594)"
This reverts commit 2785bd157597cca70f201b4bb64aa32f146f776c.
---
.../5-Operation Manual/4-SQL Reference.md | 14 +---
.../5-Operation Manual/4-SQL Reference.md | 18 ++---
...{FirstValueAggrFunc.java => FirstAggrFunc.java} | 4 +-
.../{LastValueAggrFunc.java => LastAggrFunc.java} | 4 +-
.../db/query/executor/AggregateEngineExecutor.java | 6 +-
.../iotdb/db/query/factory/AggreFuncFactory.java | 12 ++--
.../org/apache/iotdb/db/service/TSServiceImpl.java | 4 +-
.../org/apache/iotdb/db/integration/Constant.java | 8 +--
.../iotdb/db/integration/IOTDBGroupByIT.java | 28 ++++----
.../iotdb/db/integration/IoTDBAggregationIT.java | 34 ++++-----
.../integration/IoTDBAggregationLargeDataIT.java | 80 +++++++++++-----------
.../integration/IoTDBAggregationSmallDataIT.java | 32 ++++-----
.../tsfile/common/constant/StatisticConstant.java | 4 +-
13 files changed, 114 insertions(+), 134 deletions(-)
diff --git a/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md b/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md
index a8f74b3..f45bf35 100644
--- a/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md
+++ b/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md
@@ -495,19 +495,11 @@ Eg. SELECT COUNT(status), COUNT(temperature) FROM root.ln.wf01.wt01 WHERE root.l
Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
```
-* FIRST_VALUE
-原有的 `FIRST` 方法在 `v0.10.0` 版本更名为 `FIRST_VALUE`。
-```
-SELECT FIRST_VALUE (Path) (COMMA FIRST_VALUE (Path))* FROM <FromClause> [WHERE <WhereClause>]?
-Eg. SELECT FIRST_VALUE (status), FIRST_VALUE (temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.temperature < 24
-Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
-```
+* FIRST
-* LAST_VALUE
-原有的 `LAST` 方法在 `v0.10.0` 版本更名为 `LAST_VALUE`。
```
-SELECT LAST_VALUE (Path) (COMMA LAST_VALUE (Path))* FROM <FromClause> [WHERE <WhereClause>]?
-Eg. SELECT LAST_VALUE (status), LAST_VALUE (temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.temperature < 24
+SELECT FIRST (Path) (COMMA FIRST (Path))* FROM <FromClause> [WHERE <WhereClause>]?
+Eg. SELECT FIRST (status), FIRST (temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.temperature < 24
Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
```
diff --git a/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md b/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md
index ff98ea6..88982f1 100644
--- a/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md
+++ b/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md
@@ -579,23 +579,13 @@ Eg. SELECT COUNT(status), COUNT(temperature) FROM root.ln.wf01.wt01 WHERE root.l
Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
```
-* FIRST_VALUE(Rename from `FIRST` at `V0.10.0`)
+* FIRST
-The FIRST_VALUE function returns the first point value of the choosen timeseries(one or more).
+The FIRST function returns the first point value of the choosen timeseries(one or more).
```
-SELECT FIRST_VALUE (Path) (COMMA FIRST_VALUE (Path))* FROM <FromClause> [WHERE <WhereClause>]?
-Eg. SELECT FIRST_VALUE (status), FIRST_VALUE (temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.temperature < 24
-Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
-```
-
-* LAST_VALUE(Rename from `LAST` at `V0.10.0`)
-
-The LAST_VALUE function returns the last point value of the choosen timeseries(one or more).
-
-```
-SELECT LAST_VALUE (Path) (COMMA LAST_VALUE (Path))* FROM <FromClause> [WHERE <WhereClause>]?
-Eg. SELECT LAST_VALUE (status), LAST_VALUE (temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.temperature < 24
+SELECT FIRST (Path) (COMMA FIRST (Path))* FROM <FromClause> [WHERE <WhereClause>]?
+Eg. SELECT FIRST (status), FIRST (temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.temperature < 24
Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
```
diff --git a/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/FirstValueAggrFunc.java b/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/FirstAggrFunc.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/FirstValueAggrFunc.java
rename to server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/FirstAggrFunc.java
index 25288ef..58b6069 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/FirstValueAggrFunc.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/FirstAggrFunc.java
@@ -29,9 +29,9 @@ import org.apache.iotdb.tsfile.file.header.PageHeader;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.BatchData;
-public class FirstValueAggrFunc extends AggregateFunction {
+public class FirstAggrFunc extends AggregateFunction {
- public FirstValueAggrFunc(TSDataType dataType) {
+ public FirstAggrFunc(TSDataType dataType) {
super(dataType);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/LastValueAggrFunc.java b/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/LastAggrFunc.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/LastValueAggrFunc.java
rename to server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/LastAggrFunc.java
index ac51f37..7a4687b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/LastValueAggrFunc.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/LastAggrFunc.java
@@ -29,9 +29,9 @@ import org.apache.iotdb.tsfile.file.header.PageHeader;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.BatchData;
-public class LastValueAggrFunc extends AggregateFunction {
+public class LastAggrFunc extends AggregateFunction {
- public LastValueAggrFunc(TSDataType dataType) {
+ public LastAggrFunc(TSDataType dataType) {
super(dataType);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java
index e9e4bca..8978cdc 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java
@@ -30,7 +30,7 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.metadata.MManager;
import org.apache.iotdb.db.query.aggregation.AggreResultData;
import org.apache.iotdb.db.query.aggregation.AggregateFunction;
-import org.apache.iotdb.db.query.aggregation.impl.LastValueAggrFunc;
+import org.apache.iotdb.db.query.aggregation.impl.LastAggrFunc;
import org.apache.iotdb.db.query.aggregation.impl.MaxTimeAggrFunc;
import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.db.query.control.QueryResourceManager;
@@ -105,7 +105,7 @@ public class AggregateEngineExecutor {
// sequence reader for sealed tsfile, unsealed tsfile, memory
IAggregateReader seqResourceIterateReader;
- if (function instanceof MaxTimeAggrFunc || function instanceof LastValueAggrFunc) {
+ if (function instanceof MaxTimeAggrFunc || function instanceof LastAggrFunc) {
seqResourceIterateReader = new SeqResourceIterateReader(queryDataSource.getSeriesPath(),
queryDataSource.getSeqResources(), timeFilter, context, true);
} else {
@@ -143,7 +143,7 @@ public class AggregateEngineExecutor {
private AggreResultData aggregateWithoutValueFilter(AggregateFunction function,
IAggregateReader sequenceReader, IPointReader unSequenceReader, Filter filter)
throws IOException, QueryProcessException {
- if (function instanceof MaxTimeAggrFunc || function instanceof LastValueAggrFunc) {
+ if (function instanceof MaxTimeAggrFunc || function instanceof LastAggrFunc) {
return handleLastMaxTimeWithOutTimeGenerator(function, sequenceReader, unSequenceReader,
filter);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/factory/AggreFuncFactory.java b/server/src/main/java/org/apache/iotdb/db/query/factory/AggreFuncFactory.java
index 24f893a..aecb9a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/factory/AggreFuncFactory.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/factory/AggreFuncFactory.java
@@ -23,8 +23,8 @@ import org.apache.iotdb.db.exception.path.PathException;
import org.apache.iotdb.db.query.aggregation.AggregateFunction;
import org.apache.iotdb.db.query.aggregation.impl.AvgAggrFunc;
import org.apache.iotdb.db.query.aggregation.impl.CountAggrFunc;
-import org.apache.iotdb.db.query.aggregation.impl.FirstValueAggrFunc;
-import org.apache.iotdb.db.query.aggregation.impl.LastValueAggrFunc;
+import org.apache.iotdb.db.query.aggregation.impl.FirstAggrFunc;
+import org.apache.iotdb.db.query.aggregation.impl.LastAggrFunc;
import org.apache.iotdb.db.query.aggregation.impl.MaxTimeAggrFunc;
import org.apache.iotdb.db.query.aggregation.impl.MaxValueAggrFunc;
import org.apache.iotdb.db.query.aggregation.impl.MinTimeAggrFunc;
@@ -66,12 +66,12 @@ public class AggreFuncFactory {
return new CountAggrFunc();
case StatisticConstant.AVG:
return new AvgAggrFunc(dataType);
- case StatisticConstant.FIRST_VALUE:
- return new FirstValueAggrFunc(dataType);
+ case StatisticConstant.FIRST:
+ return new FirstAggrFunc(dataType);
case StatisticConstant.SUM:
return new SumAggrFunc(dataType);
- case StatisticConstant.LAST_VALUE:
- return new LastValueAggrFunc(dataType);
+ case StatisticConstant.LAST:
+ return new LastAggrFunc(dataType);
default:
throw new PathException(
"aggregate does not support " + aggrFuncName + " function.");
diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index 1f113d8..b8a6583 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -182,8 +182,8 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
case StatisticConstant.MAX_TIME:
case StatisticConstant.COUNT:
return TSDataType.INT64;
- case StatisticConstant.LAST_VALUE:
- case StatisticConstant.FIRST_VALUE:
+ case StatisticConstant.LAST:
+ case StatisticConstant.FIRST:
case StatisticConstant.MIN_VALUE:
case StatisticConstant.MAX_VALUE:
return getSeriesType(innerPath);
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/Constant.java b/server/src/test/java/org/apache/iotdb/db/integration/Constant.java
index c606d68..da2b08a 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/Constant.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/Constant.java
@@ -51,12 +51,12 @@ public class Constant {
public static String insertTemplate = "insert into %s(timestamp%s) values(%d%s)";
- public static String first_value(String path) {
- return String.format("first_value(%s)", path);
+ public static String first(String path) {
+ return String.format("first(%s)", path);
}
- public static String last_value(String path) {
- return String.format("last_value(%s)", path);
+ public static String last(String path) {
+ return String.format("last(%s)", path);
}
public static String sum(String path) {
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
index d54a1e0..6755b52 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IOTDBGroupByIT.java
@@ -21,8 +21,8 @@ package org.apache.iotdb.db.integration;
import static org.apache.iotdb.db.integration.Constant.avg;
import static org.apache.iotdb.db.integration.Constant.count;
-import static org.apache.iotdb.db.integration.Constant.first_value;
-import static org.apache.iotdb.db.integration.Constant.last_value;
+import static org.apache.iotdb.db.integration.Constant.first;
+import static org.apache.iotdb.db.integration.Constant.last;
import static org.apache.iotdb.db.integration.Constant.max_time;
import static org.apache.iotdb.db.integration.Constant.max_value;
import static org.apache.iotdb.db.integration.Constant.min_time;
@@ -306,7 +306,7 @@ public class IOTDBGroupByIT {
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
boolean hasResultSet = statement.execute(
- "select last_value(temperature), first_value(temperature) from root.ln.wf01.wt01 where time > 3 "
+ "select last(temperature), first(temperature) from root.ln.wf01.wt01 where time > 3 "
+ "GROUP BY (20ms, 5,[2,30], [35,37], [50, 160], [310, 314])");
Assert.assertTrue(hasResultSet);
@@ -315,8 +315,8 @@ public class IOTDBGroupByIT {
cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet
- .getString(last_value("root.ln.wf01.wt01.temperature"))
- + "," + resultSet.getString(first_value("root.ln.wf01.wt01.temperature"));
+ .getString(last("root.ln.wf01.wt01.temperature"))
+ + "," + resultSet.getString(first("root.ln.wf01.wt01.temperature"));
Assert.assertEquals(retArray1[cnt], ans);
cnt++;
}
@@ -324,7 +324,7 @@ public class IOTDBGroupByIT {
}
hasResultSet = statement.execute(
- "select first_value(temperature), last_value(temperature) from root.ln.wf01.wt01 "
+ "select first(temperature), last(temperature) from root.ln.wf01.wt01 "
+ "where temperature > 3 "
+ "GROUP BY (20ms, 5,[2,30], [35,37], [50, 160], [310, 314])");
@@ -333,8 +333,8 @@ public class IOTDBGroupByIT {
cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet
- .getString(last_value("root.ln.wf01.wt01.temperature"))
- + "," + resultSet.getString(first_value("root.ln.wf01.wt01.temperature"));
+ .getString(last("root.ln.wf01.wt01.temperature"))
+ + "," + resultSet.getString(first("root.ln.wf01.wt01.temperature"));
Assert.assertEquals(retArray2[cnt], ans);
cnt++;
}
@@ -427,7 +427,7 @@ public class IOTDBGroupByIT {
Statement statement = connection.createStatement()) {
boolean hasResultSet = statement.execute(
- "select last_value(temperature), first_value(temperature), sum(temperature) from "
+ "select last(temperature), first(temperature), sum(temperature) from "
+ "root.ln.wf01.wt01 where time > 3 "
+ "GROUP BY (80ms, 30,[50,100], [615, 650])");
@@ -436,8 +436,8 @@ public class IOTDBGroupByIT {
try (ResultSet resultSet = statement.getResultSet()) {
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet
- .getString(last_value("root.ln.wf01.wt01.temperature"))
- + "," + resultSet.getString(first_value("root.ln.wf01.wt01.temperature")) + ","
+ .getString(last("root.ln.wf01.wt01.temperature"))
+ + "," + resultSet.getString(first("root.ln.wf01.wt01.temperature")) + ","
+ resultSet.getString(sum("root.ln.wf01.wt01.temperature"));
Assert.assertEquals(retArray1[cnt], ans);
cnt++;
@@ -446,7 +446,7 @@ public class IOTDBGroupByIT {
}
hasResultSet = statement.execute(
- "select first_value(temperature), last_value(temperature), sum(temperature) from "
+ "select first(temperature), last(temperature), sum(temperature) from "
+ "root.ln.wf01.wt01 where temperature > 3 "
+ "GROUP BY (80ms, 30,[50,100], [585,590], [615, 650])");
@@ -455,8 +455,8 @@ public class IOTDBGroupByIT {
cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet
- .getString(last_value("root.ln.wf01.wt01.temperature"))
- + "," + resultSet.getString(first_value("root.ln.wf01.wt01.temperature")) + ","
+ .getString(last("root.ln.wf01.wt01.temperature"))
+ + "," + resultSet.getString(first("root.ln.wf01.wt01.temperature")) + ","
+ resultSet.getString(sum("root.ln.wf01.wt01.temperature"));
Assert.assertEquals(retArray2[cnt], ans);
cnt++;
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationIT.java
index 6db444c..f9e0efa 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationIT.java
@@ -210,7 +210,7 @@ public class IoTDBAggregationIT {
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select first_value(s0),first_value(s1),first_value(s2),first_value(s3) " +
+ boolean hasResultSet = statement.execute("select first(s0),first(s1),first(s2),first(s3) " +
"from root.vehicle.d0 where time >= 1500 and time <= 9000");
Assert.assertTrue(hasResultSet);
@@ -219,24 +219,24 @@ public class IoTDBAggregationIT {
try (ResultSet resultSet = statement.getResultSet()) {
cnt = 0;
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first_value(d0s0))
- + "," + resultSet.getString(first_value(d0s1)) + "," + resultSet.getString(first_value(d0s2))
- + "," + resultSet.getString(first_value(d0s3));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first(d0s0))
+ + "," + resultSet.getString(first(d0s1)) + "," + resultSet.getString(first(d0s2))
+ + "," + resultSet.getString(first(d0s3));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
Assert.assertEquals(1, cnt);
}
- hasResultSet = statement.execute("select first_value(s0),first_value(s1),first_value(s2),first_value(s3) " +
+ hasResultSet = statement.execute("select first(s0),first(s1),first(s2),first(s3) " +
"from root.vehicle.d0");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first_value(d0s0))
- + "," + resultSet.getString(first_value(d0s1)) + "," + resultSet.getString(first_value(d0s2))
- + "," + resultSet.getString(first_value(d0s3));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first(d0s0))
+ + "," + resultSet.getString(first(d0s1)) + "," + resultSet.getString(first(d0s2))
+ + "," + resultSet.getString(first(d0s3));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
@@ -259,7 +259,7 @@ public class IoTDBAggregationIT {
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select last_value(s0),last_value(s2) " +
+ boolean hasResultSet = statement.execute("select last(s0),last(s2) " +
"from root.vehicle.d0 where time >= 1500 and time < 9000");
Assert.assertTrue(hasResultSet);
@@ -267,36 +267,36 @@ public class IoTDBAggregationIT {
try (ResultSet resultSet = statement.getResultSet()) {
cnt = 0;
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last_value(d0s0))
- + "," + resultSet.getString(last_value(d0s2));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last(d0s0))
+ + "," + resultSet.getString(last(d0s2));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
Assert.assertEquals(1, cnt);
}
- hasResultSet = statement.execute("select last_value(s0),last_value(s2) " +
+ hasResultSet = statement.execute("select last(s0),last(s2) " +
"from root.vehicle.d0 where time <= 1600");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last_value(d0s0))
- + "," + resultSet.getString(last_value(d0s2));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last(d0s0))
+ + "," + resultSet.getString(last(d0s2));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
Assert.assertEquals(2, cnt);
}
- hasResultSet = statement.execute("select last_value(s0),last_value(s2) " +
+ hasResultSet = statement.execute("select last(s0),last(s2) " +
"from root.vehicle.d0 where time <= 2200");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last_value(d0s0))
- + "," + resultSet.getString(last_value(d0s2));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last(d0s0))
+ + "," + resultSet.getString(last(d0s2));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationLargeDataIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationLargeDataIT.java
index e96dcbc..badb1ee 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationLargeDataIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationLargeDataIT.java
@@ -21,11 +21,9 @@ package org.apache.iotdb.db.integration;
import static org.apache.iotdb.db.integration.Constant.avg;
import static org.apache.iotdb.db.integration.Constant.count;
-import static org.apache.iotdb.db.integration.Constant.first_value;
-import static org.apache.iotdb.db.integration.Constant.last_value;
+import static org.apache.iotdb.db.integration.Constant.first;
import static org.apache.iotdb.db.integration.Constant.max_time;
import static org.apache.iotdb.db.integration.Constant.max_value;
-import static org.apache.iotdb.db.integration.Constant.min_time;
import static org.apache.iotdb.db.integration.Constant.min_value;
import static org.apache.iotdb.db.integration.Constant.sum;
import static org.junit.Assert.fail;
@@ -133,7 +131,7 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = DriverManager.
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");) {
- lastValueAggreWithSingleFilterTest();
+ lastAggreWithSingleFilterTest();
avgAggreWithSingleFilterTest();
sumAggreWithSingleFilterTest();
firstAggreWithSingleFilterTest();
@@ -142,7 +140,7 @@ public class IoTDBAggregationLargeDataIT {
minValueAggreWithSingleFilterTest();
maxValueAggreWithSingleFilterTest();
- lastValueAggreWithMultiFilterTest();
+ lastAggreWithMultiFilterTest();
countAggreWithMultiFilterTest();
minTimeAggreWithMultiFilterTest();
maxTimeAggreWithMultiFilterTest();
@@ -154,7 +152,7 @@ public class IoTDBAggregationLargeDataIT {
}
}
- private void lastValueAggreWithMultiFilterTest() throws SQLException {
+ private void lastAggreWithMultiFilterTest() throws SQLException {
String[] retArray = new String[]{
"0,9,39,63.0,E,true"
};
@@ -163,18 +161,18 @@ public class IoTDBAggregationLargeDataIT {
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
boolean hasResultSet = statement.execute(
- "select last_value(s0),last_value(s1),last_value(s2),last_value(s3),last_value(s4)" +
+ "select last(s0),last(s1),last(s2),last(s3),last(s4)" +
" from root.vehicle.d0 where s1 >= 0");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
int cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," +
- resultSet.getString(last_value(d0s0)) + "," + resultSet
- .getString(last_value(d0s1))
- + "," + resultSet.getString(last_value(d0s2)) + "," +
- resultSet.getString(last_value(d0s3)) + "," + resultSet
- .getString(last_value(d0s4));
+ resultSet.getString(Constant.last(d0s0)) + "," + resultSet
+ .getString(Constant.last(d0s1))
+ + "," + resultSet.getString(Constant.last(d0s2)) + "," +
+ resultSet.getString(Constant.last(d0s3)) + "," + resultSet
+ .getString(Constant.last(d0s4));
// System.out.println("============ " + ans);
Assert.assertEquals(ans, retArray[cnt]);
cnt++;
@@ -187,7 +185,7 @@ public class IoTDBAggregationLargeDataIT {
}
}
- private void lastValueAggreWithSingleFilterTest() throws SQLException {
+ private void lastAggreWithSingleFilterTest() throws SQLException {
String[] retArray = new String[]{
"0,9,39,63.0"
};
@@ -195,16 +193,16 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = DriverManager.
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select last_value(s0),last_value(s1),last_value(s2)" +
+ boolean hasResultSet = statement.execute("select last(s0),last(s1),last(s2)" +
" from root.vehicle.d0 where s1 >= 0");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
int cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," +
- resultSet.getString(last_value(d0s0)) + ","
- + resultSet.getString(last_value(d0s1)) + "," +
- resultSet.getString(last_value(d0s2));
+ resultSet.getString(Constant.last(d0s0)) + ","
+ + resultSet.getString(Constant.last(d0s1)) + "," +
+ resultSet.getString(Constant.last(d0s2));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
@@ -233,7 +231,7 @@ Statement statement = connection.createStatement()) {
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(sum(d0s0)) + ","
+ resultSet.getString(sum(d0s1)) + "," + Math
- .round(resultSet.getDouble(sum(d0s2)));
+ .round(resultSet.getDouble(Constant.sum(d0s2)));
Assert.assertEquals(ans, retArray[cnt]);
cnt++;
}
@@ -254,18 +252,18 @@ Statement statement = connection.createStatement()) {
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select first_value(s0),first_value(s1),first_value(s2),first_value(s3),"
- + "first_value(s4) from root.vehicle.d0 where s1 >= 0");
+ boolean hasResultSet = statement.execute("select first(s0),first(s1),first(s2),first(s3),"
+ + "first(s4) from root.vehicle.d0 where s1 >= 0");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
int cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," +
- resultSet.getString(first_value(d0s0)) + ","
- + resultSet.getString(first_value(d0s1)) + "," +
- resultSet.getString(first_value(d0s2))
- + "," + resultSet.getString(first_value(d0s3)) + "," +
- resultSet.getString(first_value(d0s4));
+ resultSet.getString(Constant.first(d0s0)) + ","
+ + resultSet.getString(Constant.first(d0s1)) + "," +
+ resultSet.getString(Constant.first(d0s2))
+ + "," + resultSet.getString(Constant.first(d0s3)) + "," +
+ resultSet.getString(Constant.first(d0s4));
Assert.assertEquals(ans, retArray[cnt]);
cnt++;
}
@@ -354,11 +352,11 @@ Statement statement = connection.createStatement()) {
int cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," +
- resultSet.getString(min_time(d0s0)) + "," +
- resultSet.getString(min_time(d0s1)) + "," +
- resultSet.getString(min_time(d0s2)) +
- "," + resultSet.getString(min_time(d0s3)) +
- "," + resultSet.getString(min_time(d0s4));
+ resultSet.getString(Constant.min_time(d0s0)) + "," +
+ resultSet.getString(Constant.min_time(d0s1)) + "," +
+ resultSet.getString(Constant.min_time(d0s2)) +
+ "," + resultSet.getString(Constant.min_time(d0s3)) +
+ "," + resultSet.getString(Constant.min_time(d0s4));
Assert.assertEquals(ans, retArray[cnt]);
cnt++;
}
@@ -534,16 +532,16 @@ Statement statement = connection.createStatement()) {
getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select first_value(s0),first_value(s1),first_value(s2),first_value(s3),"
- + "first_value(s4) from root.vehicle.d0 where s1 >= 0 or s2 < 10");
+ boolean hasResultSet = statement.execute("select first(s0),first(s1),first(s2),first(s3),"
+ + "first(s4) from root.vehicle.d0 where s1 >= 0 or s2 < 10");
Assert.assertTrue(hasResultSet);
ResultSet resultSet = statement.getResultSet();
int cnt = 0;
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first_value(d0s0))
- + "," + resultSet.getString(first_value(d0s1)) + "," + resultSet.getString(first_value(d0s2))
- + "," + resultSet.getString(first_value(d0s3)) + "," + resultSet.getString(first_value(d0s4));
- //String ans = resultSet.getString(first_value(d0s3));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first(d0s0))
+ + "," + resultSet.getString(first(d0s1)) + "," + resultSet.getString(first(d0s2))
+ + "," + resultSet.getString(first(d0s3)) + "," + resultSet.getString(first(d0s4));
+ //String ans = resultSet.getString(first(d0s3));
//System.out.println("!!!!!============ " + ans);
Assert.assertEquals(retArray[cnt], ans);
cnt++;
@@ -603,11 +601,11 @@ Statement statement = connection.createStatement()) {
int cnt = 0;
while (resultSet.next()) {
String ans = resultSet.getString(TIMESTAMP_STR) + "," +
- resultSet.getString(min_time(d0s0)) + "," +
- resultSet.getString(min_time(d0s1)) + "," +
- resultSet.getString(min_time(d0s2)) + "," +
- resultSet.getString(min_time(d0s3)) + "," +
- resultSet.getString(min_time(d0s4));
+ resultSet.getString(Constant.min_time(d0s0)) + "," +
+ resultSet.getString(Constant.min_time(d0s1)) + "," +
+ resultSet.getString(Constant.min_time(d0s2)) + "," +
+ resultSet.getString(Constant.min_time(d0s3)) + "," +
+ resultSet.getString(Constant.min_time(d0s4));
// System.out.println("============ " + ans);
Assert.assertEquals(ans, retArray[cnt]);
cnt++;
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationSmallDataIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationSmallDataIT.java
index 959af04..3b6a453 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationSmallDataIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBAggregationSmallDataIT.java
@@ -21,8 +21,8 @@ package org.apache.iotdb.db.integration;
import static org.apache.iotdb.db.integration.Constant.avg;
import static org.apache.iotdb.db.integration.Constant.count;
-import static org.apache.iotdb.db.integration.Constant.first_value;
-import static org.apache.iotdb.db.integration.Constant.last_value;
+import static org.apache.iotdb.db.integration.Constant.first;
+import static org.apache.iotdb.db.integration.Constant.last;
import static org.apache.iotdb.db.integration.Constant.max_time;
import static org.apache.iotdb.db.integration.Constant.max_value;
import static org.apache.iotdb.db.integration.Constant.min_time;
@@ -218,28 +218,28 @@ public class IoTDBAggregationSmallDataIT {
Assert.assertEquals(2, cnt);
}
- //select first_value(d0.s0),first_value(d1.s1),first_value(d0.s3) from root.vehicle
+ //select first(d0.s0),first(d1.s1),first(d0.s3) from root.vehicle
hasResultSet = statement.execute(
- "select first_value(d0.s0),first_value(d1.s1),first_value(d0.s3) from root.vehicle");
+ "select first(d0.s0),first(d1.s1),first(d0.s3) from root.vehicle");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first_value(d0s0))
- + "," + resultSet.getString(first_value(d1s1)) + "," + resultSet.getString(first_value(d0s3));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first(d0s0))
+ + "," + resultSet.getString(first(d1s1)) + "," + resultSet.getString(first(d0s3));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
Assert.assertEquals(3, cnt);
}
- //select last_value(d0.s0),last_value(d1.s1),last_value(d0.s3) from root.vehicle
+ //select last(d0.s0),last(d1.s1),last(d0.s3) from root.vehicle
hasResultSet = statement.execute(
- "select last_value(d0.s0),last_value(d1.s1),last_value(d0.s3) from root.vehicle");
+ "select last(d0.s0),last(d1.s1),last(d0.s3) from root.vehicle");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last_value(d0s0))
- + "," + resultSet.getString(last_value(d1s1)) + "," + resultSet.getString(last_value(d0s3));
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last(d0s0))
+ + "," + resultSet.getString(last(d1s1)) + "," + resultSet.getString(last(d0s3));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
@@ -276,14 +276,14 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement()) {
boolean hasResultSet = statement.execute(
- "select last_value(s0),last_value(s1) from root.vehicle.d0 where s2 >= 3.33");
+ "select last(s0),last(s1) from root.vehicle.d0 where s2 >= 3.33");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
int cnt = 0;
while (resultSet.next()) {
String ans =
- resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last_value(d0s0)) + ","
- + resultSet.getString(last_value(d0s1));
+ resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(last(d0s0)) + ","
+ + resultSet.getString(last(d0s1));
//System.out.println("!!!!!============ " + ans);
Assert.assertEquals(retArray[cnt], ans);
cnt++;
@@ -307,14 +307,14 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement();) {
boolean hasResultSet = statement.execute(
- "select first_value(s0),first_value(s1) from root.vehicle.d0 where s2 >= 3.33");
+ "select first(s0),first(s1) from root.vehicle.d0 where s2 >= 3.33");
Assert.assertTrue(hasResultSet);
try (ResultSet resultSet = statement.getResultSet()) {
int cnt = 0;
while (resultSet.next()) {
String ans =
- resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first_value(d0s0)) + ","
- + resultSet.getString(first_value(d0s1));
+ resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(first(d0s0)) + ","
+ + resultSet.getString(first(d0s1));
//System.out.println("!!!!!============ " + ans);
Assert.assertEquals(retArray[cnt], ans);
cnt++;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/StatisticConstant.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/StatisticConstant.java
index f41cca4..fb1c02a 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/StatisticConstant.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/StatisticConstant.java
@@ -29,13 +29,13 @@ public class StatisticConstant {
public static final String COUNT = "count";
- public static final String FIRST_VALUE = "first_value";
+ public static final String FIRST = "first";
public static final String AVG = "avg";
public static final String SUM = "sum";
- public static final String LAST_VALUE = "last_value";
+ public static final String LAST = "last";
private StatisticConstant(){}
}