This is an automated email from the ASF dual-hosted git repository.
hui 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 5aa0fe612e [IOTDB-3436] Add aggregation IT without value filter (#6338)
5aa0fe612e is described below
commit 5aa0fe612e3f41e010cf60d1a8b5e1d3b7acc27f
Author: Xiangwei Wei <[email protected]>
AuthorDate: Wed Jun 22 14:33:05 2022 +0800
[IOTDB-3436] Add aggregation IT without value filter (#6338)
---
.../org/apache/iotdb/itbase/env/BaseConfig.java | 4 +
.../it}/aggregation/IoTDBAggregationByLevelIT.java | 323 +++++++-------
.../it}/aggregation/IoTDBAggregationDeleteIT.java | 23 +-
.../db/it}/aggregation/IoTDBAggregationIT.java | 494 +++++++++------------
.../aggregation/IoTDBAggregationLargeDataIT.java | 431 ++++++++----------
.../aggregation/IoTDBAggregationSmallDataIT.java | 241 +++++-----
.../iotdb/db/it/env/StandaloneEnvConfig.java | 5 +
.../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 19 +-
.../db/mpp/plan/analyze/ExpressionAnalyzer.java | 1 +
.../mpp/plan/analyze/GroupByLevelController.java | 13 +-
.../statement/component/GroupByLevelComponent.java | 13 +
11 files changed, 728 insertions(+), 839 deletions(-)
diff --git
a/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
b/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
index aa8f888f82..10cb4f365a 100644
--- a/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
+++ b/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
@@ -58,6 +58,10 @@ public interface BaseConfig {
return this;
}
+ default long getPartitionInterval() {
+ return 604800;
+ }
+
default BaseConfig setCompressor(String compressor) {
return this;
}
diff --git
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationByLevelIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationByLevelIT.java
similarity index 61%
rename from
integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationByLevelIT.java
rename to
integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationByLevelIT.java
index badd79a9af..54c657a8ec 100644
---
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationByLevelIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationByLevelIT.java
@@ -16,17 +16,16 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.iotdb.db.integration.aggregation;
+package org.apache.iotdb.db.it.aggregation;
-import org.apache.iotdb.db.constant.TestConstant;
-import org.apache.iotdb.db.qp.Planner;
-import org.apache.iotdb.db.qp.logical.crud.AggregationQueryOperator;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
+import org.apache.iotdb.it.env.EnvFactory;
+import org.apache.iotdb.itbase.category.ClusterIT;
+import org.apache.iotdb.itbase.category.LocalStandaloneIT;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -34,12 +33,19 @@ import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
+import static org.apache.iotdb.itbase.constant.TestConstant.TIMESTAMP_STR;
+import static org.apache.iotdb.itbase.constant.TestConstant.avg;
+import static org.apache.iotdb.itbase.constant.TestConstant.count;
+import static org.apache.iotdb.itbase.constant.TestConstant.lastValue;
+import static org.apache.iotdb.itbase.constant.TestConstant.maxTime;
+import static org.apache.iotdb.itbase.constant.TestConstant.maxValue;
+import static org.apache.iotdb.itbase.constant.TestConstant.minTime;
+import static org.apache.iotdb.itbase.constant.TestConstant.sum;
import static org.junit.Assert.fail;
-@Category({LocalStandaloneTest.class})
+@Category({LocalStandaloneIT.class, ClusterIT.class})
public class IoTDBAggregationByLevelIT {
- private Planner planner = new Planner();
private static final String[] dataSet =
new String[] {
"SET STORAGE GROUP TO root.sg1",
@@ -83,41 +89,41 @@ public class IoTDBAggregationByLevelIT {
Statement statement = connection.createStatement()) {
// Here we duplicate the column to test the bug
// https://issues.apache.org/jira/browse/IOTDB-2088
- statement.execute(
- "select sum(temperature), sum(temperature) from root.sg1.* GROUP BY
level=1");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select sum(temperature), sum(temperature) from root.sg1.* GROUP
BY level=1")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.sum("root.sg1.*.temperature"));
+ String ans = resultSet.getString(sum("root.sg1.*.temperature"));
Assert.assertEquals(retArray[cnt], Double.parseDouble(ans),
DOUBLE_PRECISION);
cnt++;
}
}
- statement.execute("select sum(temperature) from root.sg2.* GROUP BY
level=1");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select sum(temperature) from root.sg2.*
GROUP BY level=1")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.sum("root.sg2.*.temperature"));
+ String ans = resultSet.getString(sum("root.sg2.*.temperature"));
Assert.assertEquals(retArray[cnt], Double.parseDouble(ans),
DOUBLE_PRECISION);
cnt++;
}
}
- statement.execute("select sum(temperature) from root.*.* GROUP BY
level=0");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select sum(temperature) from root.*.* GROUP
BY level=0")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.sum("root.*.*.temperature"));
+ String ans = resultSet.getString(sum("root.*.*.temperature"));
Assert.assertEquals(retArray[cnt], Double.parseDouble(ans),
DOUBLE_PRECISION);
cnt++;
}
}
- statement.execute("select sum(temperature) from root.sg1.* GROUP BY
level=1,2");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select sum(temperature) from root.sg1.*
GROUP BY level=1,2")) {
while (resultSet.next()) {
- String ans1 =
resultSet.getString(TestConstant.sum("root.sg1.d1.temperature"));
- String ans2 =
resultSet.getString(TestConstant.sum("root.sg1.d2.temperature"));
+ String ans1 = resultSet.getString(sum("root.sg1.d1.temperature"));
+ String ans2 = resultSet.getString(sum("root.sg1.d2.temperature"));
Assert.assertEquals(retArray[cnt++], Double.parseDouble(ans1),
DOUBLE_PRECISION);
Assert.assertEquals(retArray[cnt++], Double.parseDouble(ans2),
DOUBLE_PRECISION);
}
@@ -131,40 +137,40 @@ public class IoTDBAggregationByLevelIT {
double[] retArray = new double[] {48.682d, 95.115d, 69.319d, 45.915d,
50.527d};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute("select avg(temperature) from root.sg1.* GROUP BY
level=1");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select avg(temperature) from root.sg1.*
GROUP BY level=1")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.avg("root.sg1.*.temperature"));
+ String ans = resultSet.getString(avg("root.sg1.*.temperature"));
Assert.assertEquals(retArray[cnt], Double.parseDouble(ans),
DOUBLE_PRECISION);
cnt++;
}
}
- statement.execute("select avg(temperature) from root.sg2.* GROUP BY
level=1");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select avg(temperature) from root.sg2.*
GROUP BY level=1")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.avg("root.sg2.*.temperature"));
+ String ans = resultSet.getString(avg("root.sg2.*.temperature"));
Assert.assertEquals(retArray[cnt], Double.parseDouble(ans),
DOUBLE_PRECISION);
cnt++;
}
}
- statement.execute("select avg(temperature) from root.*.* GROUP BY
level=0");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select avg(temperature) from root.*.* GROUP
BY level=0")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.avg("root.*.*.temperature"));
+ String ans = resultSet.getString(avg("root.*.*.temperature"));
Assert.assertEquals(retArray[cnt], Double.parseDouble(ans),
DOUBLE_PRECISION);
cnt++;
}
}
- statement.execute("select avg(temperature) from root.sg1.* GROUP BY
level=1, 2");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select avg(temperature) from root.sg1.*
GROUP BY level=1, 2")) {
while (resultSet.next()) {
- String ans1 =
resultSet.getString(TestConstant.avg("root.sg1.d1.temperature"));
- String ans2 =
resultSet.getString(TestConstant.avg("root.sg1.d2.temperature"));
+ String ans1 = resultSet.getString(avg("root.sg1.d1.temperature"));
+ String ans2 = resultSet.getString(avg("root.sg1.d2.temperature"));
Assert.assertEquals(retArray[cnt++], Double.parseDouble(ans1),
DOUBLE_PRECISION);
Assert.assertEquals(retArray[cnt++], Double.parseDouble(ans2),
DOUBLE_PRECISION);
}
@@ -178,51 +184,51 @@ public class IoTDBAggregationByLevelIT {
String[] retArray = new String[] {"5,3,100,200", "600,700,2,3",
"600,700,500"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select count(status), min_time(temperature) from root.*.* GROUP BY
level=2");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(status), min_time(temperature) from root.*.* GROUP
BY level=2")) {
while (resultSet.next()) {
String ans =
- resultSet.getString(TestConstant.count("root.*.d1.status"))
+ resultSet.getString(count("root.*.d1.status"))
+ ","
- + resultSet.getString(TestConstant.count("root.*.d2.status"))
+ + resultSet.getString(count("root.*.d2.status"))
+ ","
- +
resultSet.getString(TestConstant.minTime("root.*.d1.temperature"))
+ + resultSet.getString(minTime("root.*.d1.temperature"))
+ ","
- +
resultSet.getString(TestConstant.minTime("root.*.d2.temperature"));
+ + resultSet.getString(minTime("root.*.d2.temperature"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute(
- "select max_time(status), count(temperature) from root.sg1.* GROUP
BY level=2");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select max_time(status), count(temperature) from root.sg1.*
GROUP BY level=2")) {
while (resultSet.next()) {
String ans =
- resultSet.getString(TestConstant.maxTime("root.*.d1.status"))
+ resultSet.getString(maxTime("root.*.d1.status"))
+ ","
- +
resultSet.getString(TestConstant.maxTime("root.*.d2.status"))
+ + resultSet.getString(maxTime("root.*.d2.status"))
+ ","
- +
resultSet.getString(TestConstant.count("root.*.d1.temperature"))
+ + resultSet.getString(count("root.*.d1.temperature"))
+ ","
- +
resultSet.getString(TestConstant.count("root.*.d2.temperature"));
+ + resultSet.getString(count("root.*.d2.temperature"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute("select max_time(status) from root.*.* GROUP BY
level=1, 2");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select max_time(status) from root.*.* GROUP
BY level=1, 2")) {
while (resultSet.next()) {
String ans =
- resultSet.getString(TestConstant.maxTime("root.sg1.d1.status"))
+ resultSet.getString(maxTime("root.sg1.d1.status"))
+ ","
- +
resultSet.getString(TestConstant.maxTime("root.sg1.d2.status"))
+ + resultSet.getString(maxTime("root.sg1.d2.status"))
+ ","
- +
resultSet.getString(TestConstant.maxTime("root.sg2.d1.status"));
+ + resultSet.getString(maxTime("root.sg2.d1.status"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
@@ -239,33 +245,33 @@ public class IoTDBAggregationByLevelIT {
};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select last_value(temperature), max_value(temperature) from
root.*.* GROUP BY level=0");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select last_value(temperature), max_value(temperature) from
root.*.* GROUP BY level=0")) {
while (resultSet.next()) {
String ans =
-
resultSet.getString(TestConstant.lastValue("root.*.*.temperature"))
+ resultSet.getString(lastValue("root.*.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.maxValue("root.*.*.temperature"));
+ + resultSet.getString(maxValue("root.*.*.temperature"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute(
- "select last_value(temperature), max_value(temperature) from
root.sg1.* GROUP BY level=2");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select last_value(temperature), max_value(temperature) from
root.sg1.* GROUP BY level=2")) {
while (resultSet.next()) {
String ans =
-
resultSet.getString(TestConstant.lastValue("root.*.d1.temperature"))
+ resultSet.getString(lastValue("root.*.d1.temperature"))
+ ","
- +
resultSet.getString(TestConstant.lastValue("root.*.d2.temperature"))
+ + resultSet.getString(lastValue("root.*.d2.temperature"))
+ ","
- +
resultSet.getString(TestConstant.maxValue("root.*.d1.temperature"))
+ + resultSet.getString(maxValue("root.*.d1.temperature"))
+ ","
- +
resultSet.getString(TestConstant.maxValue("root.*.d2.temperature"));
+ + resultSet.getString(maxValue("root.*.d2.temperature"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
@@ -279,32 +285,30 @@ public class IoTDBAggregationByLevelIT {
String[] retArray = new String[] {"17", "17", "8"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute("select count(*) from root.*.* GROUP BY level=0");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select count(*) from root.*.* GROUP BY
level=0")) {
while (resultSet.next()) {
- String ans = resultSet.getString(TestConstant.count("root.*.*.*"));
+ String ans = resultSet.getString(count("root.*.*.*"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute("select count(**) from root GROUP BY level=0");
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select count(**) from root GROUP BY
level=0")) {
while (resultSet.next()) {
- String ans = resultSet.getString(TestConstant.count("root.*.*.*"));
+ String ans = resultSet.getString(count("root.*.*.*"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute("select count(status) from root.*.* GROUP BY level=0");
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select count(status) from root.*.* GROUP BY
level=0")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.count("root.*.*.status"));
+ String ans = resultSet.getString(count("root.*.*.status"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
@@ -322,11 +326,11 @@ public class IoTDBAggregationByLevelIT {
String[] retArray = new String[] {"5", "5", "5"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select count(temperature) as ct from root.sg1.d1, root.sg1.d2 GROUP
BY level=1");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature) as ct from root.sg1.d1, root.sg1.d2
GROUP BY level=1")) {
while (resultSet.next()) {
String ans = resultSet.getString("ct");
Assert.assertEquals(retArray[cnt], ans);
@@ -334,9 +338,10 @@ public class IoTDBAggregationByLevelIT {
}
}
- statement.execute("select count(temperature) as ct from root.sg1.* GROUP
BY level=1");
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature) as ct from root.sg1.* GROUP BY
level=1")) {
while (resultSet.next()) {
String ans = resultSet.getString("ct");
Assert.assertEquals(retArray[cnt], ans);
@@ -345,8 +350,8 @@ public class IoTDBAggregationByLevelIT {
}
// root.sg1.d1.* -> [root.sg1.d1.status, root.sg1.d1.temperature] ->
root.*.*.* -> ct
- statement.execute("select count(*) as ct from root.sg1.d1 GROUP BY
level=0");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("select count(*) as ct from root.sg1.d1 GROUP
BY level=0")) {
while (resultSet.next()) {
String ans = resultSet.getString("ct");
Assert.assertEquals(retArray[cnt], ans);
@@ -365,7 +370,7 @@ public class IoTDBAggregationByLevelIT {
public void groupByLevelWithAliasFailTest() throws Exception {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute("select count(temperature) as ct from root.sg1.* GROUP
BY level=2");
+ statement.executeQuery("select count(temperature) as ct from root.sg1.*
GROUP BY level=2");
fail("No exception thrown");
} catch (Exception e) {
Assert.assertTrue(e.getMessage().contains("can only be matched with
one"));
@@ -377,10 +382,11 @@ public class IoTDBAggregationByLevelIT {
public void groupByLevelWithAliasFailTest2() throws Exception {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
+ statement.executeQuery(
"select count(temperature) as ct from root.sg1.d1, root.sg2.d2 GROUP
BY level=2");
fail("No exception thrown");
} catch (Exception e) {
+ System.out.println(e.getMessage());
Assert.assertTrue(e.getMessage().contains("can only be matched with
one"));
}
}
@@ -390,7 +396,7 @@ public class IoTDBAggregationByLevelIT {
public void groupByLevelWithAliasFailTest3() throws Exception {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
+ statement.executeQuery(
"select count(temperature) as ct, count(temperature) as ct2 from
root.sg1.d1 GROUP BY level=2");
fail("No exception thrown");
} catch (Exception e) {
@@ -404,11 +410,11 @@ public class IoTDBAggregationByLevelIT {
String[] retArray2 = new String[] {"0,0", "100,1", "200,2", "300,0",
"400,0", "500,0"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select count(temperature) as ct from root.sg1.d1, root.sg1.d2 GROUP
BY ([0, 600), 100ms), level=1");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature) as ct from root.sg1.d1, root.sg1.d2
GROUP BY ([0, 600), 100ms), level=1")) {
while (resultSet.next()) {
String ans = resultSet.getString("Time") + "," +
resultSet.getString("ct");
Assert.assertEquals(retArray[cnt], ans);
@@ -416,11 +422,10 @@ public class IoTDBAggregationByLevelIT {
}
}
- statement.execute(
- "select count(temperature) as ct from root.sg1.* GROUP BY ([0, 600),
100ms), level=1");
-
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature) as ct from root.sg1.* GROUP BY ([0,
600), 100ms), level=1")) {
while (resultSet.next()) {
String ans = resultSet.getString("Time") + "," +
resultSet.getString("ct");
Assert.assertEquals(retArray[cnt], ans);
@@ -430,9 +435,9 @@ public class IoTDBAggregationByLevelIT {
cnt = 0;
// root.sg1.d1.* -> [root.sg1.d1.status, root.sg1.d1.temperature] ->
root.*.*.* -> ct
- statement.execute(
- "select count(*) as ct from root.sg1.d1 GROUP BY ([0, 600), 100ms),
level=1");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(*) as ct from root.sg1.d1 GROUP BY ([0, 600),
100ms), level=1")) {
while (resultSet.next()) {
String ans = resultSet.getString("Time") + "," +
resultSet.getString("ct");
Assert.assertEquals(retArray2[cnt], ans);
@@ -451,7 +456,7 @@ public class IoTDBAggregationByLevelIT {
public void groupByLevelWithAliasWithTimeIntervalFailTest() throws Exception
{
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
+ statement.executeQuery(
"select count(temperature) as ct from root.sg1.* GROUP BY ([0, 600),
100ms), level=2");
fail();
} catch (Exception e) {
@@ -464,7 +469,7 @@ public class IoTDBAggregationByLevelIT {
public void groupByLevelWithAliasWithTimeIntervalFailTest2() throws
Exception {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
+ statement.executeQuery(
"select count(temperature) as ct from root.sg1.d1, root.sg1.d2 GROUP
BY ([0, 600), 100ms), level=2");
fail();
} catch (Exception e) {
@@ -477,41 +482,39 @@ public class IoTDBAggregationByLevelIT {
String[] retArray = new String[] {"5,4", "4,6", "3"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select count(temperature), count(status) from root.*.* GROUP BY
level=1 slimit 2");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature), count(status) from root.*.* GROUP BY
level=1 slimit 2")) {
while (resultSet.next()) {
String ans =
- resultSet.getString(TestConstant.count("root.sg1.*.temperature"))
+ resultSet.getString(count("root.sg1.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.count("root.sg2.*.temperature"));
+ + resultSet.getString(count("root.sg2.*.temperature"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute(
- "select count(temperature), count(status) from root.*.* GROUP BY
level=1 slimit 2 soffset 1");
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature), count(status) from root.*.* GROUP BY
level=1 slimit 2 soffset 1")) {
while (resultSet.next()) {
String ans =
- resultSet.getString(TestConstant.count("root.sg2.*.temperature"))
+ resultSet.getString(count("root.sg2.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.count("root.sg1.*.status"));
+ + resultSet.getString(count("root.sg1.*.status"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute(
- "select count(temperature), count(status) from root.*.* GROUP BY
level=1,2 slimit 1 soffset 4");
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature), count(status) from root.*.* GROUP BY
level=1,2 slimit 1 soffset 4")) {
while (resultSet.next()) {
- String ans =
resultSet.getString(TestConstant.count("root.sg1.d1.status"));
+ String ans = resultSet.getString(count("root.sg1.d1.status"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
@@ -537,30 +540,30 @@ public class IoTDBAggregationByLevelIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select sum(temperature) from root.sg2.* GROUP BY ([0, 600), 100ms),
level=1");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select sum(temperature) from root.sg2.* GROUP BY ([0, 600),
100ms), level=1")) {
while (resultSet.next()) {
- String ans = "" +
resultSet.getString(TestConstant.sum("root.sg2.*.temperature"));
+ String ans = "" + resultSet.getString(sum("root.sg2.*.temperature"));
Assert.assertEquals(retArray1[cnt], ans);
cnt++;
}
}
cnt = 0;
- statement.execute(
- "select max_time(temperature), avg(temperature) from root.*.* GROUP
BY ([0, 600), 100ms), level=1");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select max_time(temperature), avg(temperature) from root.*.*
GROUP BY ([0, 600), 100ms), level=1")) {
while (resultSet.next()) {
String ans =
-
resultSet.getString(TestConstant.maxTime("root.sg1.*.temperature"))
+ resultSet.getString(maxTime("root.sg1.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.maxTime("root.sg2.*.temperature"))
+ + resultSet.getString(maxTime("root.sg2.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.avg("root.sg1.*.temperature"))
+ + resultSet.getString(avg("root.sg1.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.avg("root.sg2.*.temperature"));
+ + resultSet.getString(avg("root.sg2.*.temperature"));
Assert.assertEquals(retArray2[cnt], ans);
cnt++;
}
@@ -577,16 +580,17 @@ public class IoTDBAggregationByLevelIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select sum(temperature) from root.sg2.* GROUP BY ([0, 600), 100ms),
level=0,1");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select sum(temperature) from root.sg2.* GROUP BY ([0, 600),
100ms), level=0,1")) {
while (resultSet.next()) {
- String ans = "" +
resultSet.getString(TestConstant.sum("root.sg2.*.temperature"));
+ String ans = "" + resultSet.getString(sum("root.sg2.*.temperature"));
Assert.assertEquals(retArray1[cnt], ans);
cnt++;
}
}
+ Assert.assertEquals(6, cnt);
}
}
@@ -600,33 +604,33 @@ public class IoTDBAggregationByLevelIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(
- "select count(temperature) from root.*.* GROUP BY ([0, 600), 100ms),
level=1 slimit 2");
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature) from root.*.* GROUP BY ([0, 600),
100ms), level=1 slimit 2")) {
while (resultSet.next()) {
String ans =
- resultSet.getString(TestConstant.TIMESTAMP_STR)
+ resultSet.getString(TIMESTAMP_STR)
+ ","
- +
resultSet.getString(TestConstant.count("root.sg1.*.temperature"))
+ + resultSet.getString(count("root.sg1.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.count("root.sg2.*.temperature"));
+ + resultSet.getString(count("root.sg2.*.temperature"));
Assert.assertEquals(retArray[cnt], ans);
cnt++;
}
}
- statement.execute(
- "select count(temperature), count(status) from root.*.* GROUP BY
([0, 600), 100ms), level=1 slimit 2 soffset 1");
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(temperature), count(status) from root.*.* GROUP BY
([0, 600), 100ms), level=1 slimit 2 soffset 1")) {
while (resultSet.next()) {
String ans =
- resultSet.getString(TestConstant.TIMESTAMP_STR)
+ resultSet.getString(TIMESTAMP_STR)
+ ","
- +
resultSet.getString(TestConstant.count("root.sg2.*.temperature"))
+ + resultSet.getString(count("root.sg2.*.temperature"))
+ ","
- +
resultSet.getString(TestConstant.count("root.sg1.*.status"));
+ + resultSet.getString(count("root.sg1.*.status"));
Assert.assertEquals(retArray2[cnt], ans);
cnt++;
}
@@ -634,30 +638,15 @@ public class IoTDBAggregationByLevelIT {
}
}
+ @Ignore
@Test
public void mismatchedFuncGroupByLevelTest() throws Exception {
- String[] retArray =
- new String[] {
- "true", "3",
- };
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute("select last_value(status) from root.*.* GROUP BY
level=0");
-
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans = resultSet.getString(1);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- }
-
- try {
- planner.parseSQLToPhysicalPlan("select avg(status) from root.sg2.*
GROUP BY level=1");
- } catch (Exception e) {
- Assert.assertEquals("Aggregate among unmatched data types",
e.getMessage());
- }
+ statement.executeQuery("select last_value(status) from root.*.* GROUP BY
level=0");
+ fail();
+ } catch (Exception e) {
+ Assert.assertTrue(e.getMessage().contains("the data types of the same
output column"));
}
}
@@ -665,16 +654,20 @@ public class IoTDBAggregationByLevelIT {
* Test group by level without aggregation function used in select clause.
The expected situation
* is throwing an exception.
*/
+ // TODO
+ @Ignore
@Test
public void TestGroupByLevelWithoutAggregationFunc() {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute("select temperature from root.sg1.* group by level =
2");
-
+ statement.executeQuery("select temperature from root.sg1.* group by
level = 2");
fail("No expected exception thrown");
} catch (Exception e) {
-
Assert.assertTrue(e.getMessage().contains(AggregationQueryOperator.ERROR_MESSAGE1));
+ Assert.assertTrue(
+ e.getMessage()
+ .contains(
+ "Common queries and aggregated queries are not allowed to
appear at the same time"));
}
}
diff --git
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationDeleteIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationDeleteIT.java
similarity index 79%
rename from
integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationDeleteIT.java
rename to
integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationDeleteIT.java
index 8862251e1a..3335e22f7f 100644
---
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationDeleteIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationDeleteIT.java
@@ -16,13 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.iotdb.db.integration.aggregation;
+package org.apache.iotdb.db.it.aggregation;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
+import org.apache.iotdb.it.env.ConfigFactory;
+import org.apache.iotdb.it.env.EnvFactory;
+import org.apache.iotdb.itbase.category.ClusterIT;
+import org.apache.iotdb.itbase.category.LocalStandaloneIT;
import org.junit.After;
import org.junit.Before;
@@ -36,9 +35,8 @@ import java.sql.Statement;
import static org.apache.iotdb.db.constant.TestConstant.count;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-@Category({LocalStandaloneTest.class, ClusterTest.class})
+@Category({LocalStandaloneIT.class, ClusterIT.class})
public class IoTDBAggregationDeleteIT {
private static String[] dataSet =
@@ -55,7 +53,7 @@ public class IoTDBAggregationDeleteIT {
@Before
public void setUp() throws Exception {
- prevPartitionInterval =
IoTDBDescriptor.getInstance().getConfig().getPartitionInterval();
+ prevPartitionInterval = ConfigFactory.getConfig().getPartitionInterval();
ConfigFactory.getConfig().setPartitionInterval(1000);
EnvFactory.getEnv().initBeforeTest();
prepareData();
@@ -71,13 +69,14 @@ public class IoTDBAggregationDeleteIT {
public void countAfterDeleteTest() throws SQLException {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select count(*) from root");
- assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ int cnt = 0;
+ try (ResultSet resultSet = statement.executeQuery("select count(**) from
root")) {
while (resultSet.next()) {
assertEquals("3", resultSet.getString(count("root.turbine.d1.s1")));
+ cnt++;
}
+ assertEquals(1, cnt);
}
}
}
diff --git
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationIT.java
similarity index 72%
rename from
integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationIT.java
rename to
integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationIT.java
index bb2c8a7124..007ce9c4c2 100644
---
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationIT.java
@@ -17,17 +17,16 @@
* under the License.
*/
-package org.apache.iotdb.db.integration.aggregation;
+package org.apache.iotdb.db.it.aggregation;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
+import org.apache.iotdb.it.env.EnvFactory;
+import org.apache.iotdb.itbase.category.ClusterIT;
+import org.apache.iotdb.itbase.category.LocalStandaloneIT;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -51,14 +50,14 @@ import static org.apache.iotdb.db.constant.TestConstant.sum;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.fail;
-@Category({LocalStandaloneTest.class, ClusterTest.class})
+@Category({LocalStandaloneIT.class, ClusterIT.class})
public class IoTDBAggregationIT {
private static final double DETLA = 1e-6;
private static final String TIMESTAMP_STR = "Time";
private static final String TEMPERATURE_STR =
"root.ln.wf01.wt01.temperature";
- private static String[] creationSqls =
+ private static final String[] creationSqls =
new String[] {
"SET STORAGE GROUP TO root.vehicle.d0",
"SET STORAGE GROUP TO root.vehicle.d1",
@@ -68,7 +67,7 @@ public class IoTDBAggregationIT {
"CREATE TIMESERIES root.vehicle.d0.s3 WITH DATATYPE=TEXT,
ENCODING=PLAIN",
"CREATE TIMESERIES root.vehicle.d0.s4 WITH DATATYPE=BOOLEAN,
ENCODING=PLAIN"
};
- private static String[] dataSet2 =
+ private static final String[] dataSet2 =
new String[] {
"SET STORAGE GROUP TO root.ln.wf01.wt01",
"CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN,
ENCODING=PLAIN",
@@ -85,7 +84,7 @@ public class IoTDBAggregationIT {
"INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware)
"
+ "values(5, 5.5, false, 55)"
};
- private static String[] dataSet3 =
+ private static final String[] dataSet3 =
new String[] {
"SET STORAGE GROUP TO root.sg",
"CREATE TIMESERIES root.sg.d1.s1 WITH DATATYPE=INT32, ENCODING=RLE",
@@ -97,7 +96,7 @@ public class IoTDBAggregationIT {
"flush",
"insert into root.sg.d1(timestamp,s1) values(1,111)",
"insert into root.sg.d1(timestamp,s1) values(20,200)",
- "flush"
+ "flush",
};
private final String d0s0 = "root.vehicle.d0.s0";
private final String d0s1 = "root.vehicle.d0.s1";
@@ -109,9 +108,6 @@ public class IoTDBAggregationIT {
@BeforeClass
public static void setUp() throws Exception {
-
- prevPartitionInterval =
IoTDBDescriptor.getInstance().getConfig().getPartitionInterval();
- ConfigFactory.getConfig().setPartitionInterval(1000);
EnvFactory.getEnv().initBeforeClass();
prepareData();
}
@@ -119,23 +115,22 @@ public class IoTDBAggregationIT {
@AfterClass
public static void tearDown() throws Exception {
EnvFactory.getEnv().cleanAfterClass();
- ConfigFactory.getConfig().setPartitionInterval(prevPartitionInterval);
}
// add test for part of points in page don't satisfy filter
// details in: https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-54
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void test() {
String[] retArray = new String[] {"0,2", "0,4", "0,3"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute("SELECT count(temperature) FROM root.ln.wf01.wt01
WHERE time > 3");
-
- Assert.assertTrue(hasResultSet);
int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT count(temperature) FROM root.ln.wf01.wt01 WHERE time >
3")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -148,11 +143,9 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
- "SELECT count(temperature) FROM root.ln.wf01.wt01 WHERE time > 3
order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT count(temperature) FROM root.ln.wf01.wt01 WHERE time > 3
order by time desc")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -165,11 +158,9 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute("SELECT min_time(temperature) FROM
root.ln.wf01.wt01 WHERE time > 3");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT min_time(temperature) FROM root.ln.wf01.wt01 WHERE time
> 3")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -181,12 +172,9 @@ public class IoTDBAggregationIT {
Assert.assertEquals(2, cnt);
}
- hasResultSet =
- statement.execute(
- "SELECT min_time(temperature) FROM root.ln.wf01.wt01 WHERE
temperature > 3");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT min_time(temperature) FROM root.ln.wf01.wt01 WHERE
temperature > 3")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -199,7 +187,7 @@ public class IoTDBAggregationIT {
}
try {
- statement.execute("SELECT max(root.temperature) from
root.ln.wf01.wt01");
+ statement.executeQuery("SELECT max(root.temperature) from
root.ln.wf01.wt01");
fail();
} catch (Exception ignored) {
}
@@ -214,14 +202,12 @@ public class IoTDBAggregationIT {
String[] retArray = new String[] {"0,2001,2001,2001,2001",
"0,7500,7500,7500,7500"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT count(s0),count(s1),count(s2),count(s3) "
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000");
- Assert.assertTrue(hasResultSet);
int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT count(s0),count(s1),count(s2),count(s3) "
+ + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -240,12 +226,9 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
- "SELECT count(s0),count(s1),count(s2),count(s3) " + "FROM
root.vehicle.d0");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT count(s0),count(s1),count(s2),count(s3) " + "FROM
root.vehicle.d0")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -264,12 +247,10 @@ public class IoTDBAggregationIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT count(s0),count(s1),count(s2),count(s3) "
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000
order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000
order by time desc")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -288,12 +269,10 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT count(s0),count(s1),count(s2),count(s3) "
- + "FROM root.vehicle.d0 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 order by time desc")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -322,13 +301,11 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT
first_value(s0),first_value(s1),first_value(s2),first_value(s3) "
- + "FROM root.vehicle.d0 WHERE time >= 1500 AND time <=
9000");
- Assert.assertTrue(hasResultSet);
int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT
first_value(s0),first_value(s1),first_value(s2),first_value(s3) "
+ + "FROM root.vehicle.d0 WHERE time >= 1500 AND time <=
9000")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -347,12 +324,10 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT
first_value(s0),first_value(s1),first_value(s2),first_value(s3) "
- + "FROM root.vehicle.d0");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -371,12 +346,10 @@ public class IoTDBAggregationIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT
first_value(s0),first_value(s1),first_value(s2),first_value(s3) "
- + "FROM root.vehicle.d0 WHERE time >= 1500 AND time <= 9000
order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 1500 AND time <= 9000
order by time desc")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -406,13 +379,11 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT last_value(s0),last_value(s2) "
- + "FROM root.vehicle.d0 WHERE time >= 1500 AND time < 9000");
- Assert.assertTrue(hasResultSet);
int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT last_value(s0),last_value(s2) "
+ + "FROM root.vehicle.d0 WHERE time >= 1500 AND time <
9000")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -427,11 +398,10 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
- "SELECT last_value(s0),last_value(s2) " + "FROM root.vehicle.d0
WHERE time <= 1600");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT last_value(s0),last_value(s2) "
+ + "FROM root.vehicle.d0 WHERE time <= 1600")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -445,12 +415,10 @@ public class IoTDBAggregationIT {
Assert.assertEquals(2, cnt);
}
- hasResultSet =
- statement.execute(
- "SELECT last_value(s0),last_value(s2) " + "FROM root.vehicle.d0
WHERE time <= 2200");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT last_value(s0),last_value(s2) "
+ + "FROM root.vehicle.d0 WHERE time <= 2200")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -464,13 +432,10 @@ public class IoTDBAggregationIT {
Assert.assertEquals(3, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT last_value(s0),last_value(s2) "
- + "FROM root.vehicle.d0 WHERE time <= 2200 order by time
desc");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time <= 2200 order by time
desc")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -486,12 +451,10 @@ public class IoTDBAggregationIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT last_value(s0),last_value(s2) "
- + "FROM root.vehicle.d0 WHERE time >= 1500 AND time < 9000
order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 1500 AND time < 9000
order by time desc")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -517,13 +480,11 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT max_time(s0),min_time(s2) "
- + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000");
- Assert.assertTrue(hasResultSet);
int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT max_time(s0),min_time(s2) "
+ + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000"))
{
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -538,12 +499,10 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT max_time(s0),min_time(s2) "
- + "FROM root.vehicle.d0 WHERE time <= 2500 AND time > 1800");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time <= 2500 AND time >
1800")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -558,12 +517,10 @@ public class IoTDBAggregationIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT max_time(s0),min_time(s2) "
- + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000
order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000
order by time desc")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -592,13 +549,11 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT first_value(temperature),last_value(temperature) "
- + "FROM root.ln.wf01.wt01 WHERE time > 1 AND time < 5");
- Assert.assertTrue(hasResultSet);
int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT first_value(temperature),last_value(temperature) "
+ + "FROM root.ln.wf01.wt01 WHERE time > 1 AND time < 5")) {
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -621,14 +576,11 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT max_value(s0),min_value(s2) "
- + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000");
-
- Assert.assertTrue(hasResultSet);
int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT max_value(s0),min_value(s2) "
+ + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000"))
{
cnt = 0;
while (resultSet.next()) {
String ans =
@@ -643,12 +595,9 @@ public class IoTDBAggregationIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
- "SELECT max_value(s0),min_value(s2) " + "FROM root.vehicle.d0
WHERE time < 2500");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT max_value(s0),min_value(s2) " + "FROM root.vehicle.d0
WHERE time < 2500")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -663,14 +612,11 @@ public class IoTDBAggregationIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
- "SELECT max_value(s0),min_value(s2) "
- + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000
order by time desc");
-
- Assert.assertTrue(hasResultSet);
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT max_value(s0),min_value(s2) "
+ + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000
order by time desc")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -699,37 +645,31 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT sum(s0),avg(s2)"
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000");
-
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT sum(s0),avg(s2)"
+ + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000")) {
while (resultSet.next()) {
double[] ans = new double[3];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(sum(d0s0)));
- ans[2] = Double.valueOf(resultSet.getString(avg(d0s2)));
+ ans[0] = Double.parseDouble(resultSet.getString(TIMESTAMP_STR));
+ ans[1] = Double.parseDouble(resultSet.getString(sum(d0s0)));
+ ans[2] = Double.parseDouble(resultSet.getString(avg(d0s2)));
assertArrayEquals(retArray[cnt], ans, DETLA);
cnt++;
}
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT sum(s0),avg(s2)"
- + "FROM root.vehicle.d0 WHERE time >= 1000 AND time <=
2000");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 1000 AND time <=
2000")) {
while (resultSet.next()) {
double[] ans = new double[3];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(sum(d0s0)));
- ans[2] = Double.valueOf(resultSet.getString(avg(d0s2)));
+ ans[0] = Double.parseDouble(resultSet.getString(TIMESTAMP_STR));
+ ans[1] = Double.parseDouble(resultSet.getString(sum(d0s0)));
+ ans[2] = Double.parseDouble(resultSet.getString(avg(d0s2)));
assertArrayEquals(retArray[cnt], ans, DETLA);
cnt++;
}
@@ -737,19 +677,16 @@ public class IoTDBAggregationIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
- "SELECT sum(s0),avg(s2)"
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000
order by time desc");
-
- Assert.assertTrue(hasResultSet);
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT sum(s0),avg(s2)"
+ + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000
order by time desc")) {
while (resultSet.next()) {
double[] ans = new double[3];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(sum(d0s0)));
- ans[2] = Double.valueOf(resultSet.getString(avg(d0s2)));
+ ans[0] = Double.parseDouble(resultSet.getString(TIMESTAMP_STR));
+ ans[1] = Double.parseDouble(resultSet.getString(sum(d0s0)));
+ ans[2] = Double.parseDouble(resultSet.getString(avg(d0s2)));
assertArrayEquals(retArray[cnt], ans, DETLA);
cnt++;
}
@@ -761,14 +698,15 @@ public class IoTDBAggregationIT {
}
}
+ @Ignore
@Test
public void avgSumErrorTest() {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
try {
- statement.execute(
- "SELECT avg(s3)" + "FROM root.vehicle.d0 WHERE time >= 6000 AND
time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT avg(s3) FROM root.vehicle.d0 WHERE time >= 6000 AND
time <= 9000")) {
resultSet.next();
fail();
}
@@ -780,9 +718,9 @@ public class IoTDBAggregationIT {
"Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE,
MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
}
try {
- statement.execute(
- "SELECT sum(s3)" + "FROM root.vehicle.d0 WHERE time >= 6000 AND
time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT sum(s3)" + "FROM root.vehicle.d0 WHERE time >= 6000
AND time <= 9000")) {
resultSet.next();
fail();
}
@@ -793,9 +731,9 @@ public class IoTDBAggregationIT {
"Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE,
MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
}
try {
- statement.execute(
- "SELECT avg(s4)" + "FROM root.vehicle.d0 WHERE time >= 6000 AND
time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT avg(s4)" + "FROM root.vehicle.d0 WHERE time >= 6000
AND time <= 9000")) {
resultSet.next();
fail();
}
@@ -806,9 +744,9 @@ public class IoTDBAggregationIT {
"Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE,
MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
}
try {
- statement.execute(
- "SELECT sum(s4)" + "FROM root.vehicle.d0 WHERE time >= 6000 AND
time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT sum(s4)" + "FROM root.vehicle.d0 WHERE time >= 6000
AND time <= 9000")) {
resultSet.next();
fail();
}
@@ -820,8 +758,8 @@ public class IoTDBAggregationIT {
"Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE,
MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
}
try {
- statement.execute("SELECT avg(status) FROM root.ln.wf01.wt01");
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("SELECT avg(status) FROM
root.ln.wf01.wt01")) {
resultSet.next();
fail();
}
@@ -851,83 +789,71 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT sum(s0), avg(s2), avg(s0), sum(s2)"
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000");
-
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT sum(s0), avg(s2), avg(s0), sum(s2)"
+ + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000")) {
while (resultSet.next()) {
double[] ans = new double[5];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(sum(d0s0)));
- ans[2] = Double.valueOf(resultSet.getString(avg(d0s2)));
- ans[3] = Double.valueOf(resultSet.getString(avg(d0s0)));
- ans[4] = Double.valueOf(resultSet.getString(sum(d0s2)));
+ ans[0] = Double.parseDouble(resultSet.getString(TIMESTAMP_STR));
+ ans[1] = Double.parseDouble(resultSet.getString(sum(d0s0)));
+ ans[2] = Double.parseDouble(resultSet.getString(avg(d0s2)));
+ ans[3] = Double.parseDouble(resultSet.getString(avg(d0s0)));
+ ans[4] = Double.parseDouble(resultSet.getString(sum(d0s2)));
assertArrayEquals(retArray[cnt], ans, DETLA);
cnt++;
}
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT sum(s0), avg(s2), avg(s0), sum(s2)"
- + "FROM root.vehicle.d0 WHERE time >= 1000 AND time <=
2000");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 1000 AND time <=
2000")) {
while (resultSet.next()) {
double[] ans = new double[5];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(sum(d0s0)));
- ans[2] = Double.valueOf(resultSet.getString(avg(d0s2)));
- ans[3] = Double.valueOf(resultSet.getString(avg(d0s0)));
- ans[4] = Double.valueOf(resultSet.getString(sum(d0s2)));
+ ans[0] = Double.parseDouble(resultSet.getString(TIMESTAMP_STR));
+ ans[1] = Double.parseDouble(resultSet.getString(sum(d0s0)));
+ ans[2] = Double.parseDouble(resultSet.getString(avg(d0s2)));
+ ans[3] = Double.parseDouble(resultSet.getString(avg(d0s0)));
+ ans[4] = Double.parseDouble(resultSet.getString(sum(d0s2)));
assertArrayEquals(retArray[cnt], ans, DETLA);
cnt++;
}
Assert.assertEquals(2, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT sum(s0), count(s0), avg(s2), avg(s0)"
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000")) {
while (resultSet.next()) {
double[] ans = new double[5];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(sum(d0s0)));
- ans[2] = Double.valueOf(resultSet.getString(count(d0s0)));
- ans[3] = Double.valueOf(resultSet.getString(avg(d0s2)));
- ans[4] = Double.valueOf(resultSet.getString(avg(d0s0)));
+ ans[0] = Double.parseDouble(resultSet.getString(TIMESTAMP_STR));
+ ans[1] = Double.parseDouble(resultSet.getString(sum(d0s0)));
+ ans[2] = Double.parseDouble(resultSet.getString(count(d0s0)));
+ ans[3] = Double.parseDouble(resultSet.getString(avg(d0s2)));
+ ans[4] = Double.parseDouble(resultSet.getString(avg(d0s0)));
assertArrayEquals(retArray[cnt], ans, DETLA);
cnt++;
}
Assert.assertEquals(3, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT sum(s2), count(s0), avg(s2), avg(s1), count(s2),sum(s0)"
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <=
9000")) {
while (resultSet.next()) {
double[] ans = new double[7];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(sum(d0s2)));
- ans[2] = Double.valueOf(resultSet.getString(count(d0s0)));
- ans[3] = Double.valueOf(resultSet.getString(avg(d0s2)));
- ans[4] = Double.valueOf(resultSet.getString(avg(d0s1)));
- ans[5] = Double.valueOf(resultSet.getString(count(d0s2)));
- ans[6] = Double.valueOf(resultSet.getString(sum(d0s0)));
+ ans[0] = Double.parseDouble(resultSet.getString(TIMESTAMP_STR));
+ ans[1] = Double.parseDouble(resultSet.getString(sum(d0s2)));
+ ans[2] = Double.parseDouble(resultSet.getString(count(d0s0)));
+ ans[3] = Double.parseDouble(resultSet.getString(avg(d0s2)));
+ ans[4] = Double.parseDouble(resultSet.getString(avg(d0s1)));
+ ans[5] = Double.parseDouble(resultSet.getString(count(d0s2)));
+ ans[6] = Double.parseDouble(resultSet.getString(sum(d0s0)));
assertArrayEquals(retArray[cnt], ans, DETLA);
cnt++;
}
@@ -948,12 +874,9 @@ public class IoTDBAggregationIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute("SELECT max_time(s1) FROM root.sg.d1 where time <
15");
-
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("SELECT max_time(s1) FROM root.sg.d1 where
time < 15")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -978,51 +901,76 @@ public class IoTDBAggregationIT {
statement.execute(sql);
}
+ // TODO: change insert to batch insert
// prepare BufferWrite file
for (int i = 5000; i < 7000; i++) {
- statement.addBatch(
+ // statement.addBatch(
+ // String.format(
+ // Locale.ENGLISH, insertTemplate, i, i, i, (double) i,
"'" + i + "'",
+ // "true"));
+ statement.execute(
String.format(
Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "true"));
}
- statement.executeBatch();
- statement.execute("FLUSH");
+ // statement.executeBatch();
+ statement.execute("flush");
+
for (int i = 7500; i < 8500; i++) {
- statement.addBatch(
+ statement.execute(
String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "false"));
+ Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "true"));
+ // statement.addBatch(
+ // String.format(
+ // Locale.ENGLISH, insertTemplate, i, i, i, (double) i,
"'" + i + "'",
+ // "false"));
}
- statement.executeBatch();
- statement.execute("FLUSH");
+ // statement.executeBatch();
+ statement.execute("flush");
// prepare Unseq-File
for (int i = 500; i < 1500; i++) {
- statement.addBatch(
+ // statement.addBatch(
+ // String.format(
+ // Locale.ENGLISH, insertTemplate, i, i, i, (double) i,
"'" + i + "'",
+ // "true"));
+ statement.execute(
String.format(
Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "true"));
}
- statement.executeBatch();
- statement.execute("FLUSH");
+ // statement.executeBatch();
+ statement.execute("flush");
for (int i = 3000; i < 6500; i++) {
- statement.addBatch(
+ // statement.addBatch(
+ // String.format(
+ // Locale.ENGLISH, insertTemplate, i, i, i, (double) i,
"'" + i + "'",
+ // "false"));
+ statement.execute(
String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "false"));
+ Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "true"));
}
- statement.executeBatch();
- statement.execute("MERGE");
+ // statement.executeBatch();
// prepare BufferWrite cache
for (int i = 9000; i < 10000; i++) {
- statement.addBatch(
+ // statement.addBatch(
+ // String.format(
+ // Locale.ENGLISH, insertTemplate, i, i, i, (double) i,
"'" + i + "'",
+ // "true"));
+ statement.execute(
String.format(
Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "true"));
}
- statement.executeBatch();
+ // statement.executeBatch();
// prepare Overflow cache
for (int i = 2000; i < 2500; i++) {
- statement.addBatch(
+ // statement.addBatch(
+ // String.format(
+ // Locale.ENGLISH, insertTemplate, i, i, i, (double) i,
"'" + i + "'",
+ // "false"));
+ statement.execute(
String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "false"));
+ Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i +
"'", "true"));
}
- statement.executeBatch();
+ // statement.executeBatch();
for (String sql : dataSet3) {
statement.execute(sql);
@@ -1040,21 +988,19 @@ public class IoTDBAggregationIT {
public void timeWasNullTest() throws Exception {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select max_value(temperature),count(status) from
root.ln.wf01.wt01 group by ([0, 600), 100ms);");
- Assert.assertTrue(hasResultSet);
- ResultSet resultSet = statement.getResultSet();
- ResultSetMetaData metaData = resultSet.getMetaData();
- int columnCount = metaData.getColumnCount();
- while (resultSet.next()) {
- for (int i = 1; i <= columnCount; i++) {
- int ct = metaData.getColumnType(i);
- if (ct == Types.TIMESTAMP) {
- if (resultSet.wasNull()) {
- Assert.assertTrue(false);
- } else {
- Assert.assertTrue(true);
+
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select max_value(temperature),count(status) from
root.ln.wf01.wt01 group by ([0, 600), 100ms)")) {
+ ResultSetMetaData metaData = resultSet.getMetaData();
+ int columnCount = metaData.getColumnCount();
+ while (resultSet.next()) {
+ for (int i = 1; i <= columnCount; i++) {
+ int ct = metaData.getColumnType(i);
+ if (ct == Types.TIMESTAMP) {
+ if (resultSet.wasNull()) {
+ fail();
+ }
}
}
}
diff --git
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationLargeDataIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationLargeDataIT.java
similarity index 75%
rename from
integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationLargeDataIT.java
rename to
integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationLargeDataIT.java
index 21aa762d31..01ef6b3cd9 100644
---
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationLargeDataIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationLargeDataIT.java
@@ -17,18 +17,17 @@
* under the License.
*/
-package org.apache.iotdb.db.integration.aggregation;
+package org.apache.iotdb.db.it.aggregation;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
+import org.apache.iotdb.it.env.ConfigFactory;
+import org.apache.iotdb.it.env.EnvFactory;
+import org.apache.iotdb.itbase.category.ClusterIT;
+import org.apache.iotdb.itbase.category.LocalStandaloneIT;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -48,7 +47,9 @@ import static
org.apache.iotdb.db.constant.TestConstant.minValue;
import static org.apache.iotdb.db.constant.TestConstant.sum;
import static org.junit.Assert.fail;
-@Category({LocalStandaloneTest.class, ClusterTest.class})
+// TODO: remove ignore after supporting value filter
+@Ignore
+@Category({LocalStandaloneIT.class, ClusterIT.class})
public class IoTDBAggregationLargeDataIT {
private static final String TIMESTAMP_STR = "Time";
@@ -118,7 +119,7 @@ public class IoTDBAggregationLargeDataIT {
@BeforeClass
public static void setUp() throws Exception {
- prevPartitionInterval =
IoTDBDescriptor.getInstance().getConfig().getPartitionInterval();
+ prevPartitionInterval = ConfigFactory.getConfig().getPartitionInterval();
EnvFactory.getEnv().initBeforeClass();
insertSQL();
}
@@ -135,12 +136,11 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
+
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select
last_value(s0),last_value(s1),last_value(s2),last_value(s3),last_value(s4)"
- + " from root.vehicle.d0 where s1 >= 0");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + " from root.vehicle.d0 where s1 >= 0")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -161,12 +161,10 @@ public class IoTDBAggregationLargeDataIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select
last_value(s0),last_value(s1),last_value(s2),last_value(s3),last_value(s4)"
- + " from root.vehicle.d0 where s1 >= 0 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + " from root.vehicle.d0 where s1 >= 0 order by time desc"))
{
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -199,11 +197,9 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select sum(s0),sum(s1),sum(s2)" + " from root.vehicle.d0 where
s1 >= 0");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select sum(s0),sum(s1),sum(s2) from root.vehicle.d0 where s1 >=
0")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -220,12 +216,10 @@ public class IoTDBAggregationLargeDataIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select sum(s0),sum(s1),sum(s2)"
- + " from root.vehicle.d0 where s1 >= 0 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + " from root.vehicle.d0 where s1 >= 0 order by time desc"))
{
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -254,12 +248,10 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select
first_value(s0),first_value(s1),first_value(s2),first_value(s3),"
- + "first_value(s4) from root.vehicle.d0 where s1 >= 0");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "first_value(s4) from root.vehicle.d0 where s1 >= 0")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -281,12 +273,10 @@ public class IoTDBAggregationLargeDataIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select
first_value(s0),first_value(s1),first_value(s2),first_value(s3),"
- + "first_value(s4) from root.vehicle.d0 where s1 >= 0 order
by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "first_value(s4) from root.vehicle.d0 where s1 >= 0 order
by time desc")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -318,10 +308,9 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute("select avg(s0),avg(s1),avg(s2) from
root.vehicle.d0 where s1 >= 0");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select avg(s0),avg(s1),avg(s2) from root.vehicle.d0 where s1 >=
0")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -338,11 +327,9 @@ public class IoTDBAggregationLargeDataIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
- "select avg(s0),avg(s1),avg(s2) from root.vehicle.d0 where s1 >=
0 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select avg(s0),avg(s1),avg(s2) from root.vehicle.d0 where s1 >=
0 order by time desc")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -371,11 +358,9 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select count(s0),count(s1),count(s2) from root.vehicle.d0 where
s1 >= 0");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(s0),count(s1),count(s2) from root.vehicle.d0 where
s1 >= 0")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -392,11 +377,9 @@ public class IoTDBAggregationLargeDataIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
- "select count(s0),count(s1),count(s2) from root.vehicle.d0 where
s1 >= 0 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(s0),count(s1),count(s2) from root.vehicle.d0 where
s1 >= 0 order by time desc")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -425,14 +408,11 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select
min_time(s0),min_time(s1),min_time(s2),min_time(s3),min_time(s4)"
- + " from root.vehicle.d0 where s1 >= 0");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
-
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select
min_time(s0),min_time(s1),min_time(s2),min_time(s3),min_time(s4)"
+ + " from root.vehicle.d0 where s1 >= 0")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -453,13 +433,11 @@ public class IoTDBAggregationLargeDataIT {
}
// keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
- "select
min_time(s0),min_time(s1),min_time(s2),min_time(s3),min_time(s4)"
- + " from root.vehicle.d0 where s1 >= 0 order by time desc");
- Assert.assertTrue(hasResultSet);
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select
min_time(s0),min_time(s1),min_time(s2),min_time(s3),min_time(s4)"
+ + " from root.vehicle.d0 where s1 >= 0 order by time desc"))
{
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -490,52 +468,45 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select min_value(s0),min_value(s1),min_value(s2) from
root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100");
- if (hasResultSet) {
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(minValue(d0s0))
- + ","
- + resultSet.getString(minValue(d0s1))
- + ","
- + resultSet.getString(minValue(d0s2));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
+ int cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select min_value(s0),min_value(s1),min_value(s2) from
root.vehicle.d0 "
+ + "where s1 < 50000 and s1 != 100")) {
+ while (resultSet.next()) {
+ String ans =
+ resultSet.getString(TIMESTAMP_STR)
+ + ","
+ + resultSet.getString(minValue(d0s0))
+ + ","
+ + resultSet.getString(minValue(d0s1))
+ + ","
+ + resultSet.getString(minValue(d0s2));
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select min_value(s0),min_value(s1),min_value(s2) from
root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100 order by time desc");
-
- if (hasResultSet) {
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(minValue(d0s0))
- + ","
- + resultSet.getString(minValue(d0s1))
- + ","
- + resultSet.getString(minValue(d0s2));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
+ + "where s1 < 50000 and s1 != 100 order by time desc")) {
+ while (resultSet.next()) {
+ String ans =
+ resultSet.getString(TIMESTAMP_STR)
+ + ","
+ + resultSet.getString(minValue(d0s0))
+ + ","
+ + resultSet.getString(minValue(d0s1))
+ + ","
+ + resultSet.getString(minValue(d0s2));
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(1, cnt);
}
} catch (Exception e) {
e.printStackTrace();
@@ -550,52 +521,44 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
+ int cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select max_value(s0),max_value(s1),max_value(s2) from
root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100");
-
- if (hasResultSet) {
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue(d0s0))
- + ","
- + resultSet.getString(maxValue(d0s1))
- + ","
- + resultSet.getString(maxValue(d0s2));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
+ + "where s1 < 50000 and s1 != 100")) {
+ while (resultSet.next()) {
+ String ans =
+ resultSet.getString(TIMESTAMP_STR)
+ + ","
+ + resultSet.getString(maxValue(d0s0))
+ + ","
+ + resultSet.getString(maxValue(d0s1))
+ + ","
+ + resultSet.getString(maxValue(d0s2));
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select max_value(s0),max_value(s1),max_value(s2) from
root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100 order by time desc");
-
- if (hasResultSet) {
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue(d0s0))
- + ","
- + resultSet.getString(maxValue(d0s1))
- + ","
- + resultSet.getString(maxValue(d0s2));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
+ + "where s1 < 50000 and s1 != 100 order by time desc")) {
+ while (resultSet.next()) {
+ String ans =
+ resultSet.getString(TIMESTAMP_STR)
+ + ","
+ + resultSet.getString(maxValue(d0s0))
+ + ","
+ + resultSet.getString(maxValue(d0s1))
+ + ","
+ + resultSet.getString(maxValue(d0s2));
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(1, cnt);
}
} catch (Exception e) {
e.printStackTrace();
@@ -610,54 +573,46 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
+ int cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select extreme(s0),extreme(s1),extreme(s2)"
+ " from root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100");
-
- if (hasResultSet) {
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(extreme(d0s0))
- + ","
- + resultSet.getString(extreme(d0s1))
- + ","
- + resultSet.getString(extreme(d0s2));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
+ + "where s1 < 50000 and s1 != 100")) {
+ while (resultSet.next()) {
+ String ans =
+ resultSet.getString(TIMESTAMP_STR)
+ + ","
+ + resultSet.getString(extreme(d0s0))
+ + ","
+ + resultSet.getString(extreme(d0s1))
+ + ","
+ + resultSet.getString(extreme(d0s2));
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select extreme(s0),extreme(s1),extreme(s2)"
+ " from root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100 order by time desc");
-
- if (hasResultSet) {
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(extreme(d0s0))
- + ","
- + resultSet.getString(extreme(d0s1))
- + ","
- + resultSet.getString(extreme(d0s2));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
+ + "where s1 < 50000 and s1 != 100 order by time desc")) {
+ while (resultSet.next()) {
+ String ans =
+ resultSet.getString(TIMESTAMP_STR)
+ + ","
+ + resultSet.getString(extreme(d0s0))
+ + ","
+ + resultSet.getString(extreme(d0s1))
+ + ","
+ + resultSet.getString(extreme(d0s2));
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(1, cnt);
}
} catch (Exception e) {
e.printStackTrace();
@@ -672,13 +627,11 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select sum(s0),count(s0),avg(s0),avg(s1),"
- + "avg(s2) from root.vehicle.d0 where s1 >= 0 or s2 < 10");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select sum(s0),count(s0),avg(s0),avg(s1),"
+ + "avg(s2) from root.vehicle.d0 where s1 >= 0 or s2 < 10")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -710,12 +663,10 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select sum(s0),sum(s1),sum(s2) from root.vehicle.d0 where s1 >=
0 or s2 < 10");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select sum(s0),sum(s1),sum(s2) from root.vehicle.d0 where s1 >=
0 or s2 < 10")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -731,13 +682,11 @@ public class IoTDBAggregationLargeDataIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
- "select sum(s0),sum(s1),sum(s2) from root.vehicle.d0"
- + " where s1 >= 0 or s2 < 10 order by time desc ");
- Assert.assertTrue(hasResultSet);
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select sum(s0),sum(s1),sum(s2) from root.vehicle.d0"
+ + " where s1 >= 0 or s2 < 10 order by time desc ")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -765,13 +714,11 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
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");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "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")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -792,13 +739,11 @@ public class IoTDBAggregationLargeDataIT {
}
// keep the correctness of `order by time desc`
- 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 order by time desc");
- Assert.assertTrue(hasResultSet);
cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "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 order by time desc")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -830,13 +775,11 @@ public class IoTDBAggregationLargeDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select count(s0),count(s1),count(s2),count(s3),"
- + "count(s4) from root.vehicle.d0 where s1 >= 0 or s2 < 10");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "select count(s0),count(s1),count(s2),count(s3),"
+ + "count(s4) from root.vehicle.d0 where s1 >= 0 or s2 <
10")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -862,21 +805,18 @@ public class IoTDBAggregationLargeDataIT {
}
@Test
- public void maxTimeAggreWithMultiFilterTest() throws ClassNotFoundException {
+ public void maxTimeAggreWithMultiFilterTest() {
String[] retArray = new String[] {"0,3999,3999,3999,3599,100"};
- Class.forName(Config.JDBC_DRIVER_NAME);
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
+ int cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select max_time(s0),max_time(s1),max_time(s2),"
+ "max_time(s3),max_time(s4) from root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100");
- Assert.assertTrue(hasResultSet);
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "where s1 < 50000 and s1 != 100")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -896,14 +836,12 @@ public class IoTDBAggregationLargeDataIT {
Assert.assertEquals(1, cnt);
}
- hasResultSet =
- statement.execute(
+ cnt = 0;
+ try (ResultSet resultSet =
+ statement.executeQuery(
"select max_time(s0),max_time(s1),max_time(s2),"
+ "max_time(s3),max_time(s4) from root.vehicle.d0 "
- + "where s1 < 50000 and s1 != 100 order by time desc");
- Assert.assertTrue(hasResultSet);
- cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "where s1 < 50000 and s1 != 100 order by time desc")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -931,9 +869,6 @@ public class IoTDBAggregationLargeDataIT {
private static String[] stringValue = new String[] {"A", "B", "C", "D", "E"};
public static void insertSQL() throws ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- double d0s0sum = 0.0, d0s1sum = 0.0, d0s2sum = 0.0;
- int cnt = 0;
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
@@ -964,10 +899,6 @@ public class IoTDBAggregationLargeDataIT {
"insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
time, stringValue[time % 5]);
statement.execute(sql);
- cnt++;
- d0s0sum += time % 100;
- d0s1sum += time % 17;
- d0s2sum += time % 22;
}
statement.execute("flush");
@@ -990,14 +921,8 @@ public class IoTDBAggregationLargeDataIT {
String.format(
"insert into root.vehicle.d0(timestamp,s2) values(%s,%s)",
time, time % 123);
statement.execute(sql);
-
- cnt++;
- d0s0sum += time % 70;
- d0s1sum += time % 40;
- d0s2sum += time % 123;
}
- statement.execute("merge");
for (String sql : insertSql) {
statement.execute(sql);
}
diff --git
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationSmallDataIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationSmallDataIT.java
similarity index 82%
rename from
integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationSmallDataIT.java
rename to
integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationSmallDataIT.java
index aaec4be91c..bf173d6643 100644
---
a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBAggregationSmallDataIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/IoTDBAggregationSmallDataIT.java
@@ -17,16 +17,16 @@
* under the License.
*/
-package org.apache.iotdb.db.integration.aggregation;
+package org.apache.iotdb.db.it.aggregation;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.IoTDBSQLException;
+import org.apache.iotdb.it.env.EnvFactory;
+import org.apache.iotdb.itbase.category.ClusterIT;
+import org.apache.iotdb.itbase.category.LocalStandaloneIT;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -47,7 +47,7 @@ import static org.apache.iotdb.db.constant.TestConstant.sum;
import static org.junit.Assert.fail;
/** Multiple aggregation with filter test. */
-@Category({LocalStandaloneTest.class, ClusterTest.class})
+@Category({LocalStandaloneIT.class, ClusterIT.class})
public class IoTDBAggregationSmallDataIT {
private static final String TIMESTAMP_STR = "Time";
@@ -131,13 +131,11 @@ public class IoTDBAggregationSmallDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT count(s0),count(s1),count(s2),count(s3),count(s4) "
- + "FROM root.vehicle.d0 WHERE time >= 3 AND time <= 106");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT count(s0),count(s1),count(s2),count(s3),count(s4) "
+ + "FROM root.vehicle.d0 WHERE time >= 3 AND time <= 106")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -171,13 +169,10 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement()) {
// select count(d0.s0),count(d1.s1),count(d0.s3),count(d0.s4) from
root.vehicle
- boolean hasResultSet =
- statement.execute(
- "SELECT count(d0.s0),count(d1.s1),count(d0.s3),count(d0.s4) FROM
root.vehicle");
-
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT count(d0.s0),count(d1.s1),count(d0.s3),count(d0.s4) FROM
root.vehicle")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -208,21 +203,19 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement()) {
try {
- statement.execute(
+ statement.executeQuery(
"SELECT max_value(d0.s0),max_value(d1.s1),max_value(d0.s3) FROM
root.vehicle");
fail();
- } catch (IoTDBSQLException e) {
+ } catch (Exception e) {
Assert.assertTrue(
e.toString()
.contains(
"Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE,
MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
}
- boolean hasResultSet =
- statement.execute("SELECT max_value(d0.s0),max_value(d1.s1) FROM
root.vehicle");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("SELECT max_value(d0.s0),max_value(d1.s1)
FROM root.vehicle")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -249,20 +242,19 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement()) {
try {
- statement.execute("SELECT extreme(d0.s0),extreme(d1.s1),extreme(d0.s3)
FROM root.vehicle");
+ statement.executeQuery(
+ "SELECT extreme(d0.s0),extreme(d1.s1),extreme(d0.s3) FROM
root.vehicle");
fail();
- } catch (IoTDBSQLException e) {
+ } catch (Exception e) {
Assert.assertTrue(
e.toString()
.contains(
"Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE,
MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
}
- boolean hasResultSet =
- statement.execute("SELECT extreme(d0.s0),extreme(d1.s1) FROM
root.vehicle");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("SELECT extreme(d0.s0),extreme(d1.s1) FROM
root.vehicle")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -289,12 +281,10 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement()) {
// select first_value(d0.s0),first_value(d1.s1),first_value(d0.s3) from
root.vehicle
- boolean hasResultSet =
- statement.execute(
- "SELECT first_value(d0.s0),first_value(d1.s1),first_value(d0.s3)
FROM root.vehicle");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT first_value(d0.s0),first_value(d1.s1),first_value(d0.s3)
FROM root.vehicle")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -323,12 +313,10 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement()) {
// select last_value(d0.s0),last_value(d1.s1),last_value(d0.s3) from
root.vehicle
- boolean hasResultSet =
- statement.execute(
- "SELECT last_value(d0.s0),last_value(d1.s1),last_value(d0.s3)
FROM root.vehicle");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT last_value(d0.s0),last_value(d1.s1),last_value(d0.s3)
FROM root.vehicle")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -357,10 +345,9 @@ public class IoTDBAggregationSmallDataIT {
Statement statement = connection.createStatement()) {
// select sum(d0.s0),sum(d1.s1),sum(d0.s3) from root.vehicle
- boolean hasResultSet = statement.execute("SELECT sum(d0.s0),sum(d1.s1)
FROM root.vehicle");
- Assert.assertTrue(hasResultSet);
int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery("SELECT sum(d0.s0),sum(d1.s1) FROM
root.vehicle")) {
while (resultSet.next()) {
String ans =
resultSet.getString(TIMESTAMP_STR)
@@ -379,17 +366,17 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void lastValueWithSingleValueFilterTest() {
String[] retArray = new String[] {"0,22222,55555"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT last_value(s0),last_value(s1) FROM root.vehicle.d0 WHERE
s2 >= 3.33");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT last_value(s0),last_value(s1) FROM root.vehicle.d0 WHERE
s2 >= 3.33")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -409,17 +396,17 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void firstValueWithSingleValueFilterTest() {
String[] retArray = new String[] {"0,99,180"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT first_value(s0),first_value(s1) FROM root.vehicle.d0
WHERE s2 >= 3.33");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT first_value(s0),first_value(s1) FROM root.vehicle.d0
WHERE s2 >= 3.33")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -439,15 +426,17 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void sumWithSingleValueFilterTest() {
String[] retArray = new String[] {"0,22321.0,55934.0,1029"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute("SELECT sum(s0),sum(s1),sum(s2) FROM
root.vehicle.d0 WHERE s2 >= 3.33");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT sum(s0),sum(s1),sum(s2) FROM root.vehicle.d0 WHERE s2 >=
3.33")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -469,15 +458,17 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void avgWithSingleValueFilterTest() {
String[] retArray = new String[] {"0,11160.5,18645,206"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute("SELECT avg(s0),avg(s1),avg(s2) FROM
root.vehicle.d0 WHERE s2 >= 3.33");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT avg(s0),avg(s1),avg(s2) FROM root.vehicle.d0 WHERE s2 >=
3.33")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -499,18 +490,19 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void countWithSingleValueFilterTest() {
String[] retArray = new String[] {"0,2,3,5,1,0"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
+
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT count(s0),count(s1),count(s2),count(s3),"
- + "count(s4) FROM root.vehicle.d0 WHERE s2 >= 3.33");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "count(s4) FROM root.vehicle.d0 WHERE s2 >= 3.33")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -536,19 +528,19 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void minTimeWithMultiValueFiltersTest() {
String[] retArray = new String[] {"0,104,1,2,101,100"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT min_time(s0),min_time(s1),min_time(s2)"
- + ",min_time(s3),min_time(s4) FROM root.vehicle.d0 WHERE s1
< 50000 AND s1 != 100");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT min_time(s0),min_time(s1),min_time(s2)"
+ + ",min_time(s3),min_time(s4) FROM root.vehicle.d0 WHERE s1
< 50000 AND s1 != 100")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -574,19 +566,19 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void maxTimeWithMultiValueFiltersTest() {
String[] retArray = new String[] {"0,105,105,105,102,100"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT max_time(s0),max_time(s1),max_time(s2)"
- + ",max_time(s3),max_time(s4) FROM root.vehicle.d0 WHERE s1
< 50000 AND s1 != 100");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT max_time(s0),max_time(s1),max_time(s2)"
+ + ",max_time(s3),max_time(s4) FROM root.vehicle.d0 WHERE s1
< 50000 AND s1 != 100")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -612,19 +604,19 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void minValueWithMultiValueFiltersTest() {
String[] retArray = new String[] {"0,90,180,2.22"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT min_value(s0),min_value(s1),min_value(s2) FROM
root.vehicle.d0 "
- + "WHERE s1 < 50000 AND s1 != 100");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT min_value(s0),min_value(s1),min_value(s2) FROM
root.vehicle.d0 "
+ + "WHERE s1 < 50000 AND s1 != 100")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -647,19 +639,19 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void maxValueWithMultiValueFiltersTest() {
String[] retArray = new String[] {"0,99,40000,11.11"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT max_value(s0),max_value(s1),max_value(s2) FROM
root.vehicle.d0 "
- + "WHERE s1 < 50000 AND s1 != 100");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT max_value(s0),max_value(s1),max_value(s2) FROM
root.vehicle.d0 "
+ + "WHERE s1 < 50000 AND s1 != 100")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -681,20 +673,20 @@ public class IoTDBAggregationSmallDataIT {
}
}
+ // TODO: remove ignore after supporting value filter
+ @Ignore
@Test
public void extremeWithMultiValueFiltersTest() throws ClassNotFoundException
{
String[] retArray = new String[] {"0,99,40000,11.11"};
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
+
+ try (ResultSet resultSet =
+ statement.executeQuery(
"SELECT extreme(s0),extreme(s1),extreme(s2)"
+ " FROM root.vehicle.d0 "
- + "WHERE s1 < 50000 AND s1 != 100");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
+ + "WHERE s1 < 50000 AND s1 != 100")) {
int cnt = 0;
while (resultSet.next()) {
String ans =
@@ -741,42 +733,37 @@ public class IoTDBAggregationSmallDataIT {
try (Connection connection = EnvFactory.getEnv().getConnection();
Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("SELECT * FROM root.**");
- if (hasResultSet) {
- try (ResultSet resultSet = statement.getResultSet()) {
- int cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(d0s0)
- + ","
- + resultSet.getString(d0s1)
- + ","
- + resultSet.getString(d0s2)
- + ","
- + resultSet.getString(d0s3)
- + ","
- + resultSet.getString(d1s0);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(17, cnt);
+
+ try (ResultSet resultSet = statement.executeQuery("SELECT * FROM
root.**")) {
+ int cnt = 0;
+ while (resultSet.next()) {
+ String ans =
+ resultSet.getString(TIMESTAMP_STR)
+ + ","
+ + resultSet.getString(d0s0)
+ + ","
+ + resultSet.getString(d0s1)
+ + ","
+ + resultSet.getString(d0s2)
+ + ","
+ + resultSet.getString(d0s3)
+ + ","
+ + resultSet.getString(d1s0);
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(17, cnt);
}
retArray = new String[] {"100,true"};
- hasResultSet = statement.execute("SELECT s4 FROM root.vehicle.d0");
- if (hasResultSet) {
- try (ResultSet resultSet = statement.getResultSet()) {
- int cnt = 0;
- while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," +
resultSet.getString(d0s4);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
+ try (ResultSet resultSet = statement.executeQuery("SELECT s4 FROM
root.vehicle.d0")) {
+ int cnt = 0;
+ while (resultSet.next()) {
+ String ans = resultSet.getString(TIMESTAMP_STR) + "," +
resultSet.getString(d0s4);
+ Assert.assertEquals(retArray[cnt], ans);
+ cnt++;
}
+ Assert.assertEquals(1, cnt);
}
} catch (Exception e) {
e.printStackTrace();
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/env/StandaloneEnvConfig.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/env/StandaloneEnvConfig.java
index d6ffa8cd42..0db4c89bd4 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/env/StandaloneEnvConfig.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/env/StandaloneEnvConfig.java
@@ -61,6 +61,11 @@ public class StandaloneEnvConfig implements BaseConfig {
return this;
}
+ @Override
+ public long getPartitionInterval() {
+ return IoTDBDescriptor.getInstance().getConfig().getPartitionInterval();
+ }
+
@Override
public BaseConfig setCompressor(String compressor) {
TSFileDescriptor.getInstance().getConfig().setCompressor(compressor);
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
index 4314c8faeb..07d0617b1b 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
@@ -41,6 +41,7 @@ import
org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
import org.apache.iotdb.db.mpp.common.schematree.SchemaTree;
import org.apache.iotdb.db.mpp.plan.expression.Expression;
import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FillDescriptor;
import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FilterNullParameter;
import
org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
@@ -442,7 +443,8 @@ public class Analyzer {
analysis.setDataPartitionInfo(dataPartition);
} catch (StatementAnalyzeException e) {
logger.error("Meet error when analyzing the query statement: ", e);
- throw new StatementAnalyzeException("Meet error when analyzing the
query statement");
+ throw new StatementAnalyzeException(
+ "Meet error when analyzing the query statement: " +
e.getMessage());
}
return analysis;
}
@@ -460,7 +462,7 @@ public class Analyzer {
boolean hasAlias = resultColumn.hasAlias();
List<Expression> resultExpressions =
ExpressionAnalyzer.removeWildcardInExpression(resultColumn.getExpression(),
schemaTree);
- if (hasAlias && resultExpressions.size() > 1) {
+ if (hasAlias && !queryStatement.isGroupByLevel() &&
resultExpressions.size() > 1) {
throw new SemanticException(
String.format(
"alias '%s' can only be matched with one time series",
resultColumn.getAlias()));
@@ -479,6 +481,12 @@ public class Analyzer {
: null;
alias = hasAlias ? resultColumn.getAlias() : alias;
outputExpressions.add(new Pair<>(expressionWithoutAlias, alias));
+ if (queryStatement.isGroupByLevel()
+ && resultColumn.getExpression() instanceof FunctionExpression)
{
+ queryStatement
+ .getGroupByLevelComponent()
+ .updateIsCountStar((FunctionExpression)
resultColumn.getExpression());
+ }
ExpressionAnalyzer.updateTypeProvider(expressionWithoutAlias,
typeProvider);
expressionWithoutAlias.inferTypes(typeProvider);
paginationController.consumeLimit();
@@ -680,8 +688,11 @@ public class Analyzer {
GroupByLevelController groupByLevelController =
new GroupByLevelController(
queryStatement.getGroupByLevelComponent().getLevels(),
typeProvider);
- for (Pair<Expression, String> measurementWithAlias : outputExpressions) {
- groupByLevelController.control(measurementWithAlias.left,
measurementWithAlias.right);
+ for (int i = 0; i < outputExpressions.size(); i++) {
+ Pair<Expression, String> measurementWithAlias =
outputExpressions.get(i);
+ boolean isCountStar =
queryStatement.getGroupByLevelComponent().isCountStar(i);
+ groupByLevelController.control(
+ isCountStar, measurementWithAlias.left,
measurementWithAlias.right);
}
Map<Expression, Set<Expression>> rawGroupByLevelExpressions =
groupByLevelController.getGroupedPathMap();
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
index 1cee37386b..0f0c2b2720 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
@@ -289,6 +289,7 @@ public class ExpressionAnalyzer {
// removing all wildcards. We use actualExpressions to collect them.
List<List<Expression>> childExpressionsList = new ArrayList<>();
cartesianProduct(extendedExpressions, childExpressionsList, 0, new
ArrayList<>());
+
return reconstructFunctionExpressions((FunctionExpression) expression,
childExpressionsList);
} else if (expression instanceof TimeSeriesOperand) {
PartialPath path = ((TimeSeriesOperand) expression).getPath();
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java
index 31a1715e06..a583805e33 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java
@@ -74,14 +74,14 @@ public class GroupByLevelController {
this.typeProvider = typeProvider;
}
- public void control(Expression expression, String alias) {
+ public void control(boolean isCountStar, Expression expression, String
alias) {
if (!(expression instanceof FunctionExpression
&& expression.isBuiltInAggregationFunctionExpression())) {
throw new SemanticException(expression + " can't be used in group by
level.");
}
PartialPath rawPath = ((TimeSeriesOperand)
expression.getExpressions().get(0)).getPath();
- PartialPath groupedPath = generatePartialPathByLevel(rawPath.getNodes(),
levels);
+ PartialPath groupedPath = generatePartialPathByLevel(isCountStar,
rawPath.getNodes(), levels);
checkDatatypeConsistency(
groupedPath.getFullPath(), ((FunctionExpression)
expression).getFunctionName(), rawPath);
@@ -178,7 +178,8 @@ public class GroupByLevelController {
*
* @return result partial path
*/
- public PartialPath generatePartialPathByLevel(String[] nodes, int[]
pathLevels) {
+ public PartialPath generatePartialPathByLevel(
+ boolean isCountStar, String[] nodes, int[] pathLevels) {
Set<Integer> levelSet = new HashSet<>();
for (int level : pathLevels) {
levelSet.add(level);
@@ -194,7 +195,11 @@ public class GroupByLevelController {
transformedNodes.add(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD);
}
}
- transformedNodes.add(nodes[nodes.length - 1]);
+ if (isCountStar) {
+ transformedNodes.add(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD);
+ } else {
+ transformedNodes.add(nodes[nodes.length - 1]);
+ }
return new PartialPath(transformedNodes.toArray(new String[0]));
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/GroupByLevelComponent.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/GroupByLevelComponent.java
index fa7192a0fe..33db43633b 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/GroupByLevelComponent.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/GroupByLevelComponent.java
@@ -19,12 +19,17 @@
package org.apache.iotdb.db.mpp.plan.statement.component;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
+import java.util.ArrayList;
+import java.util.List;
+
/** This class maintains information of {@code GROUP BY LEVEL} clause. */
public class GroupByLevelComponent extends StatementNode {
protected int[] levels;
+ protected List<Boolean> isCountStar = new ArrayList<>();
public int[] getLevels() {
return levels;
@@ -33,4 +38,12 @@ public class GroupByLevelComponent extends StatementNode {
public void setLevels(int[] levels) {
this.levels = levels;
}
+
+ public void updateIsCountStar(FunctionExpression rawExpression) {
+ isCountStar.add(rawExpression.isCountStar());
+ }
+
+ public boolean isCountStar(int i) {
+ return isCountStar.get(i);
+ }
}