Skip to content

Commit 37fb889

Browse files
authored
Fixed the bug that session cannot query minus value when only pass paths (#17389)
* fix * fix * fix * fix * fix
1 parent b4644ba commit 37fb889

10 files changed

Lines changed: 251 additions & 205 deletions

File tree

integration-test/src/test/java/org/apache/iotdb/db/it/aligned/IoTDBAlignedLastQueryIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@ public void selectAllAlignedAndNonAlignedLastTest() {
124124
"40,root.sg1.d2.s2,40,INT32",
125125
"30,root.sg1.d2.s3,30,INT64",
126126
"30,root.sg1.d2.s4,false,BOOLEAN",
127-
"40,root.sg1.d2.s5,non_aligned_test40,TEXT"));
127+
"40,root.sg1.d2.s5,non_aligned_test40,TEXT",
128+
"-40,root.sg1.d2.s6,40.0,DOUBLE"));
128129

129130
try (Connection connection = EnvFactory.getEnv().getConnection();
130131
Statement statement = connection.createStatement()) {

integration-test/src/test/java/org/apache/iotdb/db/it/aligned/IoTDBAlignedSeriesQueryIT.java

Lines changed: 164 additions & 156 deletions
Large diffs are not rendered by default.

integration-test/src/test/java/org/apache/iotdb/db/it/aligned/IoTDBLastQueryWithDeletionIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@ public void selectAllAlignedAndNonAlignedLastTest() {
125125
"40,root.sg1.d2.s2,40,INT32",
126126
"30,root.sg1.d2.s3,30,INT64",
127127
"30,root.sg1.d2.s4,false,BOOLEAN",
128-
"40,root.sg1.d2.s5,non_aligned_test40,TEXT"));
128+
"40,root.sg1.d2.s5,non_aligned_test40,TEXT",
129+
"-40,root.sg1.d2.s6,40.0,DOUBLE"));
129130

130131
try (Connection connection = EnvFactory.getEnv().getConnection();
131132
Statement statement = connection.createStatement();

integration-test/src/test/java/org/apache/iotdb/db/it/aligned/IoTDBLastQueryWithoutLastCacheIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@ public void selectAllAlignedAndNonAlignedLastTest() {
122122
"40,root.sg1.d2.s2,40,INT32",
123123
"30,root.sg1.d2.s3,30,INT64",
124124
"30,root.sg1.d2.s4,false,BOOLEAN",
125-
"40,root.sg1.d2.s5,non_aligned_test40,TEXT"));
125+
"40,root.sg1.d2.s5,non_aligned_test40,TEXT",
126+
"-40,root.sg1.d2.s6,40.0,DOUBLE"));
126127

127128
try (Connection connection = EnvFactory.getEnv().getConnection();
128129
Statement statement = connection.createStatement()) {

integration-test/src/test/java/org/apache/iotdb/db/it/aligned/IoTDBRawQueryWithoutValueFilterWithDeletionIT.java

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -155,46 +155,47 @@ public void selectAllAlignedAndNonAlignedTest() {
155155

156156
String[] retArray =
157157
new String[] {
158-
"1,null,1,true,aligned_test1,1.0,1,1,true,non_aligned_test1",
159-
"2,null,2,null,aligned_test2,2.0,2,2,null,non_aligned_test2",
160-
"3,null,30000,true,aligned_unseq_test3,3.0,null,3,false,non_aligned_test3",
161-
"4,null,null,true,aligned_test4,4.0,4,null,true,non_aligned_test4",
162-
"5,null,null,true,aligned_test5,5.0,5,null,true,non_aligned_test5",
163-
"6,null,6,true,null,6.0,6,6,true,null",
164-
"7,null,7,false,aligned_test7,7.0,7,7,false,non_aligned_test7",
165-
"8,null,8,null,aligned_test8,8.0,8,8,null,non_aligned_test8",
166-
"9,null,9,false,aligned_test9,9.0,9,9,false,non_aligned_test9",
167-
"10,null,10,true,aligned_test10,null,10,10,true,non_aligned_test10",
168-
"11,null,11,null,null,11.0,11,11,null,null",
169-
"12,null,12,null,null,12.0,12,12,null,null",
170-
"13,null,130000,true,aligned_unseq_test13,13.0,13,13,null,null",
171-
"14,null,14,null,null,14.0,14,14,null,null",
172-
"15,null,15,null,null,15.0,15,15,null,null",
173-
"16,null,16,null,null,16.0,16,16,null,null",
174-
"17,null,17,null,null,17.0,17,17,null,null",
175-
"18,null,18,null,null,18.0,18,18,null,null",
176-
"19,null,19,null,null,19.0,19,19,null,null",
177-
"20,null,20,null,null,20.0,20,20,null,null",
178-
"21,null,21,true,null,null,null,21,true,null",
179-
"22,null,22,true,null,null,null,22,true,null",
180-
"23,230000.0,230000,false,null,null,null,23,true,null",
181-
"24,null,24,true,null,null,null,24,true,null",
182-
"25,null,25,true,null,null,null,25,true,null",
183-
"26,null,26,false,null,null,null,26,false,null",
184-
"27,null,27,false,null,null,null,27,false,null",
185-
"28,null,28,false,null,null,null,28,false,null",
186-
"29,null,29,false,null,null,null,29,false,null",
187-
"30,null,30,false,null,null,null,30,false,null",
188-
"31,null,null,null,null,null,31,null,null,non_aligned_test31",
189-
"32,null,null,null,aligned_test32,null,32,null,null,non_aligned_test32",
190-
"33,null,null,null,aligned_test33,null,33,null,null,non_aligned_test33",
191-
"34,null,null,null,aligned_test34,null,34,null,null,non_aligned_test34",
192-
"35,null,null,null,aligned_test35,null,35,null,null,non_aligned_test35",
193-
"36,null,null,null,aligned_test36,null,36,null,null,non_aligned_test36",
194-
"37,null,null,null,aligned_test37,null,37,null,null,non_aligned_test37",
195-
"38,null,null,null,aligned_test38,null,38,null,null,non_aligned_test38",
196-
"39,null,null,null,aligned_test39,null,39,null,null,non_aligned_test39",
197-
"40,null,null,null,aligned_test40,null,40,null,null,non_aligned_test40",
158+
"-40,null,null,null,null,null,null,null,null,null,40.0",
159+
"1,null,1,true,aligned_test1,1.0,1,1,true,non_aligned_test1,null",
160+
"2,null,2,null,aligned_test2,2.0,2,2,null,non_aligned_test2,null",
161+
"3,null,30000,true,aligned_unseq_test3,3.0,null,3,false,non_aligned_test3,null",
162+
"4,null,null,true,aligned_test4,4.0,4,null,true,non_aligned_test4,null",
163+
"5,null,null,true,aligned_test5,5.0,5,null,true,non_aligned_test5,null",
164+
"6,null,6,true,null,6.0,6,6,true,null,null",
165+
"7,null,7,false,aligned_test7,7.0,7,7,false,non_aligned_test7,null",
166+
"8,null,8,null,aligned_test8,8.0,8,8,null,non_aligned_test8,null",
167+
"9,null,9,false,aligned_test9,9.0,9,9,false,non_aligned_test9,null",
168+
"10,null,10,true,aligned_test10,null,10,10,true,non_aligned_test10,null",
169+
"11,null,11,null,null,11.0,11,11,null,null,null",
170+
"12,null,12,null,null,12.0,12,12,null,null,null",
171+
"13,null,130000,true,aligned_unseq_test13,13.0,13,13,null,null,null",
172+
"14,null,14,null,null,14.0,14,14,null,null,null",
173+
"15,null,15,null,null,15.0,15,15,null,null,null",
174+
"16,null,16,null,null,16.0,16,16,null,null,null",
175+
"17,null,17,null,null,17.0,17,17,null,null,null",
176+
"18,null,18,null,null,18.0,18,18,null,null,null",
177+
"19,null,19,null,null,19.0,19,19,null,null,null",
178+
"20,null,20,null,null,20.0,20,20,null,null,null",
179+
"21,null,21,true,null,null,null,21,true,null,null",
180+
"22,null,22,true,null,null,null,22,true,null,null",
181+
"23,230000.0,230000,false,null,null,null,23,true,null,null",
182+
"24,null,24,true,null,null,null,24,true,null,null",
183+
"25,null,25,true,null,null,null,25,true,null,null",
184+
"26,null,26,false,null,null,null,26,false,null,null",
185+
"27,null,27,false,null,null,null,27,false,null,null",
186+
"28,null,28,false,null,null,null,28,false,null,null",
187+
"29,null,29,false,null,null,null,29,false,null,null",
188+
"30,null,30,false,null,null,null,30,false,null,null",
189+
"31,null,null,null,null,null,31,null,null,non_aligned_test31,null",
190+
"32,null,null,null,aligned_test32,null,32,null,null,non_aligned_test32,null",
191+
"33,null,null,null,aligned_test33,null,33,null,null,non_aligned_test33,null",
192+
"34,null,null,null,aligned_test34,null,34,null,null,non_aligned_test34,null",
193+
"35,null,null,null,aligned_test35,null,35,null,null,non_aligned_test35,null",
194+
"36,null,null,null,aligned_test36,null,36,null,null,non_aligned_test36,null",
195+
"37,null,null,null,aligned_test37,null,37,null,null,non_aligned_test37,null",
196+
"38,null,null,null,aligned_test38,null,38,null,null,non_aligned_test38,null",
197+
"39,null,null,null,aligned_test39,null,39,null,null,non_aligned_test39,null",
198+
"40,null,null,null,aligned_test40,null,40,null,null,non_aligned_test40,null",
198199
};
199200

200201
String[] columnNames = {
@@ -206,7 +207,8 @@ public void selectAllAlignedAndNonAlignedTest() {
206207
"root.sg1.d2.s2",
207208
"root.sg1.d2.s3",
208209
"root.sg1.d2.s4",
209-
"root.sg1.d2.s5"
210+
"root.sg1.d2.s5",
211+
"root.sg1.d2.s6"
210212
};
211213

212214
try (Connection connection = EnvFactory.getEnv().getConnection();

integration-test/src/test/java/org/apache/iotdb/db/it/utils/AlignedWriteUtil.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class AlignedWriteUtil {
4444
"create timeseries root.sg1.d2.s3 WITH DATATYPE=INT64",
4545
"create timeseries root.sg1.d2.s4 WITH DATATYPE=BOOLEAN",
4646
"create timeseries root.sg1.d2.s5 WITH DATATYPE=TEXT",
47+
"create timeseries root.sg1.d2.s6 WITH DATATYPE=DOUBLE",
4748
"insert into root.sg1.d1(time, s1, s2, s3, s4, s5) aligned values(1, 1.0, 1, 1, TRUE, 'aligned_test1')",
4849
"insert into root.sg1.d1(time, s1, s2, s3, s5) aligned values(2, 2.0, 2, 2, 'aligned_test2')",
4950
"insert into root.sg1.d1(time, s1, s3, s4, s5) aligned values(3, 3.0, 3, FALSE, 'aligned_test3')",
@@ -130,6 +131,7 @@ public class AlignedWriteUtil {
130131
"insert into root.sg1.d2(time, s2, s5) values(38, 38, 'non_aligned_test38')",
131132
"insert into root.sg1.d2(time, s2, s5) values(39, 39, 'non_aligned_test39')",
132133
"insert into root.sg1.d2(time, s2, s5) values(40, 40, 'non_aligned_test40')",
134+
"insert into root.sg1.d2(time, s6) values(-40, 40)",
133135
};
134136

135137
public static void insertData() {

integration-test/src/test/java/org/apache/iotdb/db/it/utils/TestUtils.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1448,6 +1448,32 @@ public static void assertResultSetEqual(
14481448
}
14491449
}
14501450

1451+
public static void assertResultSetEqual(
1452+
SessionDataSet actualResultSet,
1453+
List<String> expectedColumnNames,
1454+
Set<String> expectedRetArray,
1455+
boolean ignoreTimeStamp) {
1456+
try {
1457+
List<String> actualColumnNames = actualResultSet.getColumnNames();
1458+
if (ignoreTimeStamp) {
1459+
assertEquals(expectedColumnNames, actualColumnNames);
1460+
} else {
1461+
assertEquals(TIMESTAMP_STR, actualColumnNames.get(0));
1462+
assertEquals(expectedColumnNames, actualColumnNames.subList(1, actualColumnNames.size()));
1463+
}
1464+
1465+
int count = 0;
1466+
while (actualResultSet.hasNext()) {
1467+
RowRecord rowRecord = actualResultSet.next();
1468+
assertTrue(expectedRetArray.remove(rowRecord.toString().replace('\t', ',')));
1469+
}
1470+
assertEquals(expectedRetArray.size(), count);
1471+
} catch (IoTDBConnectionException | StatementExecutionException e) {
1472+
e.printStackTrace();
1473+
fail(e.getMessage());
1474+
}
1475+
}
1476+
14511477
public static void createUser(String userName, String password) {
14521478
createUser(EnvFactory.getEnv(), userName, password);
14531479
}

integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/auto/basic/IoTDBPipeDataSinkIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,8 @@ public void testTransferMods() {
589589
Collections.singleton("5,"));
590590

591591
TestUtils.executeNonQueries(
592-
senderEnv, Arrays.asList("drop pipe test_history", "drop pipe test_realtime"));
592+
senderEnv,
593+
Arrays.asList("drop pipe if exists test_history", "drop pipe if exists test_realtime"));
593594

594595
TestUtils.executeNonQuery(receiverEnv, "drop database root.**");
595596

integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionQueryIT.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@
4040
import java.util.ArrayList;
4141
import java.util.Arrays;
4242
import java.util.Collections;
43+
import java.util.HashSet;
4344
import java.util.List;
45+
import java.util.Set;
4446

4547
import static org.apache.iotdb.db.it.utils.TestUtils.assertResultSetEqual;
4648
import static org.junit.Assert.fail;
@@ -149,10 +151,13 @@ public void rawDataQueryWithTimeRangeTest2() throws IoTDBConnectionException {
149151

150152
@Test
151153
public void lastQueryTest() throws IoTDBConnectionException {
152-
String[] retArray = new String[] {"23,root.sg1.d1.s1,230000.0,FLOAT"};
154+
Set<String> retArray =
155+
new HashSet<>(
156+
Arrays.asList("-40,root.sg1.d2.s6,40.0,DOUBLE", "23,root.sg1.d1.s1,230000.0,FLOAT"));
153157

154-
List<String> selectedPaths = Collections.singletonList("root.sg1.d1.s1");
158+
List<String> selectedPaths = Arrays.asList("root.sg1.d1.s1", "root.sg1.d2.s6");
155159

160+
// Does not guarantee sequence
156161
try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
157162
try (SessionDataSet resultSet = session.executeLastDataQuery(selectedPaths)) {
158163
assertResultSetEqual(resultSet, lastQueryColumnNames, retArray, true);

iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,8 +1162,7 @@ public SessionDataSet executeLastDataQuery(List<String> paths, long lastTime, lo
11621162
@Override
11631163
public SessionDataSet executeLastDataQuery(List<String> paths)
11641164
throws StatementExecutionException, IoTDBConnectionException {
1165-
long time = 0L;
1166-
return executeLastDataQuery(paths, time, queryTimeoutInMs);
1165+
return executeLastDataQuery(paths, Long.MIN_VALUE, queryTimeoutInMs);
11671166
}
11681167

11691168
@Override

0 commit comments

Comments
 (0)