Files
greptimedb/tests/cases/standalone/common/promql/sub_millisecond_interval.sql
T
Niladri Adhikary 98d9012f00 fix(promql): return no point for zero-interval irate/idelta (#9455)
fix(promql): irate/idelta return no point for a zero-ms sample gap

Signed-off-by: Niladri Adhikary <niladrix719@gmail.com>
(cherry picked from commit 0dde3a7b70)
Signed-off-by: WenyXu <wenymedia@gmail.com>
2026-10-12 12:49:21 +00:00

31 lines
860 B
SQL

-- The last two 'sub_ms' samples are 400ns apart and share one millisecond, which
-- irate and idelta cannot resolve, so they return no point instead of inf.
-- The 'one_ms' samples are 1ms apart and still produce a rate.
CREATE TABLE sub_ms_interval (
job STRING,
`value` DOUBLE,
ts TIMESTAMP(9) TIME INDEX,
PRIMARY KEY(job)
);
INSERT INTO sub_ms_interval VALUES
('sub_ms', 999, 999999900),
('sub_ms', 10, 999999100),
('sub_ms', 13, 999999500),
('one_ms', 10, 998000000),
('one_ms', 13, 999000000);
SELECT * FROM sub_ms_interval ORDER BY job, ts;
TQL EVAL (1, 1, '1s') irate(sub_ms_interval[5s]);
TQL EVAL (1, 1, '1s') idelta(sub_ms_interval[5s]);
ADMIN FLUSH_TABLE('sub_ms_interval');
TQL EVAL (1, 1, '1s') irate(sub_ms_interval[5s]);
TQL EVAL (1, 1, '1s') idelta(sub_ms_interval[5s]);
DROP TABLE sub_ms_interval;