This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch ty/linearfill
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/ty/linearfill by this push:
new 34feb5299df Fix uncorrect implementation in FILL(LINEAR)
34feb5299df is described below
commit 34feb5299df3b65fd1c7f2f410e9a3bc9321300e
Author: JackieTien97 <[email protected]>
AuthorDate: Tue Mar 19 19:37:41 2024 +0800
Fix uncorrect implementation in FILL(LINEAR)
---
.../alignbydevice/IoTDBOrderByLimitOffsetAlignByDeviceIT.java | 2 +-
.../org/apache/iotdb/db/it/query/IoTDBNullValueFillIT.java | 8 ++++----
.../db/storageengine/dataregion/memtable/PlainDeviceID.java | 11 +++++++++++
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBOrderByLimitOffsetAlignByDeviceIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBOrderByLimitOffsetAlignByDeviceIT.java
index e2de3d28ecb..a595c5a96cb 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBOrderByLimitOffsetAlignByDeviceIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBOrderByLimitOffsetAlignByDeviceIT.java
@@ -105,7 +105,7 @@ public class IoTDBOrderByLimitOffsetAlignByDeviceIT {
"1,root.fill.d1,1,null,",
"1,root.fill.d2,2,null,",
"1,root.fill.d3,3,null,",
- "2,root.fill.d1,12,11.0,",
+ "2,root.fill.d1,22,11.0,",
};
resultSetEqualTest(
"select * from root.fill.** order by time fill(linear) limit 4 align
by device;",
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullValueFillIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullValueFillIT.java
index 36cc6918450..3ca0d6bef6b 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullValueFillIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullValueFillIT.java
@@ -234,15 +234,15 @@ public class IoTDBNullValueFillIT {
"3,root.sg1.d1,3,3,3.0,3.0,false,null,",
"4,root.sg1.d1,4,4,4.0,4.0,null,t4,",
"5,root.sg1.d1,5,5,5.0,5.0,false,t5,",
- "6,root.sg1.d1,6,6,6.5,6.0,null,t6,",
+ "6,root.sg1.d1,6,6,6.0,6.0,null,t6,",
"8,root.sg1.d1,8,8,8.0,8.0,true,t8,",
- "9,root.sg1.d1,9,5,9.0,5.0,true,null,",
- "1,root.sg1.d2,1,5,1.0,5.0,true,null,",
+ "9,root.sg1.d1,9,9,9.0,9.0,true,null,",
+ "1,root.sg1.d2,1,1,1.0,1.0,true,null,",
"2,root.sg1.d2,2,2,2.0,2.0,true,t2,",
"3,root.sg1.d2,3,3,3.0,3.0,null,t3,",
"4,root.sg1.d2,4,4,4.0,4.0,false,null,",
"5,root.sg1.d2,5,5,5.0,5.0,false,t5,",
- "6,root.sg1.d2,6,6,6.0,6.5,false,null,",
+ "6,root.sg1.d2,6,6,6.0,6.0,false,null,",
"8,root.sg1.d2,8,8,8.0,8.0,true,t8,",
"9,root.sg1.d2,null,9,null,9.0,null,t9,"
};
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PlainDeviceID.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PlainDeviceID.java
index 92ae51870a3..75963b2b88a 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PlainDeviceID.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PlainDeviceID.java
@@ -19,13 +19,20 @@
package org.apache.iotdb.db.storageengine.dataregion.memtable;
+import org.apache.iotdb.tsfile.utils.RamUsageEstimator;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
import java.nio.ByteBuffer;
import java.util.Objects;
+import static org.apache.iotdb.tsfile.utils.RamUsageEstimator.sizeOfCharArray;
+
/** Using device id path as id. */
public class PlainDeviceID implements IDeviceID {
+
+ private static final long INSTANCE_SIZE =
+ RamUsageEstimator.shallowSizeOfInstance(PlainDeviceID.class)
+ + RamUsageEstimator.shallowSizeOfInstance(String.class);
String deviceID;
public PlainDeviceID(String deviceID) {
@@ -64,6 +71,10 @@ public class PlainDeviceID implements IDeviceID {
ReadWriteIOUtils.write(deviceID, byteBuffer);
}
+ public long getRetainedSizeInBytes() {
+ return INSTANCE_SIZE + sizeOfCharArray(deviceID.length());
+ }
+
public static PlainDeviceID deserialize(ByteBuffer byteBuffer) {
return new PlainDeviceID(ReadWriteIOUtils.readString(byteBuffer));
}