changxue created IOTDB-4929:
-------------------------------
Summary: [UDF] the sliding time window stopped when the keys in
PointCollector are not unique
Key: IOTDB-4929
URL: https://issues.apache.org/jira/browse/IOTDB-4929
Project: Apache IoTDB
Issue Type: Bug
Affects Versions: 0.14.0-SNAPSHOT
Reporter: changxue
Assignee: Yuan Tian
Attachments: image-2022-11-14-17-53-31-312.png,
image-2022-11-14-17-54-27-906.png
the sliding time window stopped when the keys in PointCollector are not unique,
I guess it ignores the exceptions of the source codes in transform method.
reproduction:
{code:java}
create function sum_sec as
"com.timecho.udf.normal.TestSlidingTimeWindowAccessStrategy";CREATE TIMESERIES
root.udf.d1.s1 WITH DATATYPE=int64, ENCODING=PLAIN;
CREATE TIMESERIES root.udf.d1.s2 WITH DATATYPE=int64, ENCODING=PLAIN;
CREATE TIMESERIES root.udf.d1.s3 WITH DATATYPE=int32, ENCODING=PLAIN;
CREATE TIMESERIES root.udf.d1.ss1 WITH DATATYPE=int64, ENCODING=PLAIN;
insert into root.udf.d1 (time, s1, s2) values (1, 1, 2),(2, 3, 4),(3, null,
6),(4, 7, 8),(5, 9, 10),(6, 11, null),(7, 13, 14),(8, 15, 16),(12, 17, 18),(20,
19, 20);
-- notice this
select sum_sec(s1,'interval'=3,'step'=1) from root.udf.d1; {code}
!image-2022-11-14-17-53-31-312.png!
!image-2022-11-14-17-54-27-906.png!
see the screen shot upstairs:
因为时间为3的值是null, 所以,在滑动到第三行时,它取的时间列是第四行,而下一次滑动,它真正滑动到第四个值时,它的时间列还是4, 冲突了。
问题:
1. 该抛异常就应该抛出来,不然静默处理,调试时,都不知道发生了什么
2. PointCollector 如果要求timestamp唯一,那么得给出一个contains或者hasKey方法,不然很容易出现撞车。
--
This message was sent by Atlassian Jira
(v8.20.10#820010)