This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch KeepAllNullRows
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/KeepAllNullRows by this push:
new 2c5edcde4ac Add IT
2c5edcde4ac is described below
commit 2c5edcde4ac009c7e70fc21c3448ae691069cda5
Author: JackieTien97 <[email protected]>
AuthorDate: Thu Sep 12 11:48:58 2024 +0800
Add IT
---
.../it/query/recent/IoTDBNullIdQueryIT.java | 105 +++++++++++++++++++++
1 file changed, 105 insertions(+)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBNullIdQueryIT.java
b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBNullIdQueryIT.java
index b10360ca9f2..7c76e2fac66 100644
---
a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBNullIdQueryIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBNullIdQueryIT.java
@@ -39,6 +39,7 @@ import java.sql.Types;
import static org.apache.iotdb.db.it.utils.TestUtils.defaultFormatDataTime;
import static org.apache.iotdb.db.it.utils.TestUtils.prepareTableData;
+import static org.apache.iotdb.db.it.utils.TestUtils.tableResultSetEqualTest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -53,10 +54,25 @@ public class IoTDBNullIdQueryIT {
"USE " + DATABASE_NAME,
"CREATE TABLE testNullId(id1 STRING ID, id2 STRING ID, s1 INT32
MEASUREMENT, s2 BOOLEAN MEASUREMENT, s3 DOUBLE MEASUREMENT)",
"INSERT INTO testNullId(time,id1,id2,s1,s2,s3) " + "values(1, null,
null, 0, false, 11.1)",
+ "CREATE TABLE table1(device_id STRING ID, s1 INT32 MEASUREMENT, s2
BOOLEAN MEASUREMENT, s3 INT64 MEASUREMENT)",
+ // in seq disk
+ "INSERT INTO table1(time,device_id,s1,s2,s3) " + "values(1, 'd1', 1,
false, 11)",
+ "INSERT INTO table1(time,device_id,s1) " + "values(5, 'd1', 5)",
+ "FLUSH",
+ // in uneq disk
+ "INSERT INTO table1(time,device_id,s1,s2,s3) " + "values(4, 'd1', 4,
true, 44)",
+ "INSERT INTO table1(time,device_id,s1) " + "values(3, 'd1', 3)",
+ "FLUSH",
+ // in seq memtable
+ "INSERT INTO table1(time,device_id,s1,s2,s3) " + "values(7, 'd1', 7,
false, 77)",
+ "INSERT INTO table1(time,device_id,s1) " + "values(6, 'd1', 6)",
+ // in unseq memtable
+ "INSERT INTO table1(time,device_id,s1) " + "values(2, 'd1', 2)",
};
@BeforeClass
public static void setUp() throws Exception {
+
EnvFactory.getEnv().getConfig().getCommonConfig().setEnableCrossSpaceCompaction(false);
EnvFactory.getEnv().initClusterEnvironment();
prepareTableData(createSqls);
}
@@ -204,4 +220,93 @@ public class IoTDBNullIdQueryIT {
assertFalse(resultSet.next());
}
}
+
+ @Test
+ public void nullSelectTest() {
+ String[] expectedHeader = new String[] {"time", "device_id", "s2", "s3"};
+ String[] retArray =
+ new String[] {
+ "1970-01-01T00:00:00.001Z,d1,false,11,",
+ "1970-01-01T00:00:00.002Z,d1,null,null,",
+ "1970-01-01T00:00:00.003Z,d1,null,null,",
+ "1970-01-01T00:00:00.004Z,d1,true,44,",
+ "1970-01-01T00:00:00.005Z,d1,null,null,",
+ "1970-01-01T00:00:00.006Z,d1,null,null,",
+ "1970-01-01T00:00:00.007Z,d1,false,77,"
+ };
+ tableResultSetEqualTest(
+ "select time, device_id, s2, s3 from table1", expectedHeader,
retArray, DATABASE_NAME);
+
+ expectedHeader = new String[] {"time", "device_id", "s2", "s3"};
+ retArray =
+ new String[] {
+ "1970-01-01T00:00:00.002Z,d1,null,null,",
+ "1970-01-01T00:00:00.003Z,d1,null,null,",
+ "1970-01-01T00:00:00.004Z,d1,true,44,",
+ "1970-01-01T00:00:00.005Z,d1,null,null,",
+ "1970-01-01T00:00:00.006Z,d1,null,null,",
+ "1970-01-01T00:00:00.007Z,d1,false,77,"
+ };
+ tableResultSetEqualTest(
+ "select time, device_id, s2, s3 from table1 where time > 1",
+ expectedHeader,
+ retArray,
+ DATABASE_NAME);
+
+ expectedHeader = new String[] {"time", "device_id", "s2", "s3"};
+ retArray =
+ new String[] {
+ "1970-01-01T00:00:00.001Z,d1,false,11,",
+ "1970-01-01T00:00:00.002Z,d1,null,null,",
+ "1970-01-01T00:00:00.003Z,d1,null,null,",
+ "1970-01-01T00:00:00.004Z,d1,true,44,",
+ "1970-01-01T00:00:00.005Z,d1,null,null,",
+ "1970-01-01T00:00:00.006Z,d1,null,null,",
+ };
+ tableResultSetEqualTest(
+ "select time, device_id, s2, s3 from table1 where time < 7",
+ expectedHeader,
+ retArray,
+ DATABASE_NAME);
+
+ expectedHeader = new String[] {"time", "device_id", "s2", "s3"};
+ retArray =
+ new String[] {
+ "1970-01-01T00:00:00.003Z,d1,null,null,",
+ "1970-01-01T00:00:00.004Z,d1,true,44,",
+ "1970-01-01T00:00:00.005Z,d1,null,null,",
+ };
+ tableResultSetEqualTest(
+ "select time, device_id, s2, s3 from table1 where time > 1 and time <
7 and s1 >= 3 and s1 <= 5",
+ expectedHeader,
+ retArray,
+ DATABASE_NAME);
+
+ expectedHeader = new String[] {"time", "device_id", "s2", "s3"};
+ retArray =
+ new String[] {
+ "1970-01-01T00:00:00.002Z,d1,null,null,",
+ "1970-01-01T00:00:00.003Z,d1,null,null,",
+ "1970-01-01T00:00:00.005Z,d1,null,null,",
+ "1970-01-01T00:00:00.006Z,d1,null,null,"
+ };
+ tableResultSetEqualTest(
+ "select time, device_id, s2, s3 from table1 where s2 is NULL",
+ expectedHeader,
+ retArray,
+ DATABASE_NAME);
+
+ expectedHeader = new String[] {"time", "device_id", "s2", "s3"};
+ retArray =
+ new String[] {
+ "1970-01-01T00:00:00.001Z,d1,false,11,",
+ "1970-01-01T00:00:00.004Z,d1,true,44,",
+ "1970-01-01T00:00:00.007Z,d1,false,77,"
+ };
+ tableResultSetEqualTest(
+ "select time, device_id, s2, s3 from table1 where s2 IS NOT NULL OR s3
IS NOT NULL",
+ expectedHeader,
+ retArray,
+ DATABASE_NAME);
+ }
}