我使用PipelineDB 0.9.7u3PipelineDB:鉴于连续输出流意外显示相同的(旧)和(新)值
我打了继续观看输出流一点点地发现,如果我能得到一个新的连续查看一些更新。
这是我的测试用例。
CREATE STREAM stream_test(ticketid text, val int, status text);
-- simple continuous view on stream_test
CREATE CONTINUOUS VIEW cv_test AS
SELECT
ticketid,
min(val) as v0,
keyed_min(val, status) as v0_status
FROM stream_test
GROUP BY ticketid;
-- continuous view to keep cv_test's updates and insertions
CREATE CONTINUOUS VIEW cv_test_upin AS
SELECT
(new).ticketid,
(old).v0 as oldV0,
(old).v0_status as oldV0Status,
(new).v0 as newV0,
(new).v0_status as newV0Status
FROM output_of('cv_test')
-- continuous view to keep just some cv_test's updates
CREATE CONTINUOUS VIEW cv_test_up AS
SELECT
(new).ticketid,
(old).v0 as oldV0,
(old).v0_status as oldV0Status,
(new).v0 as newV0,
(new).v0_status as newV0Status
FROM output_of('cv_test')
WHERE (old).v0 != (new).v0;
让我们把一些数据。
INSERT INTO stream_test VALUES
('t1', 124, 'open'),
('t2', 190, 'pending')
和预期的一样:
select * from cv_test;
“T2”; 190; “待定”
“T1”; 124; “开放”
select * from cv_test_upin;
“t2”;;“” ; 190; “待定”
“T1” ;; “”; 124; “开放”
select * from cv_test_up;
然后,一些更新。
INSERT INTO stream_test VALUES
('t2', 160, 'waiting'),
('t1', 100, 'pending')
和预期的一样:
select * from cv_test;
“T2”; 160; “等待”
“T1”; 100; “待定”
select * from cv_test_upin;
“t 2 “;;” “; 190;” 待定”
“T1” ;; “”; 124; “开放”
“T2”; 190; “待定”; 160; “等待”
“T1”; 124; “开放”; 100; “待定”
select * from cv_test_up;
“T2”; 190; “待定”; 160; “等待”
“T1” ; 124;“打开”; 100;“未决”
现在,一些新的数据和一些更新。
INSERT INTO stream_test VALUES
('t2', 90, 'spam'),
('t3', 140, 'open'),
('t1', 80, 'closed')
select * from cv_test;
返回预期,但select * from cv_test_upin;
没有。
...
“T2”; 160; “等待”; 90; “垃圾邮件”
“T3” ;; “”; 140; “开放”
“ T1 “; 80,” 关闭 “; 80,” 封闭”
我希望最后的 “T1” 是"t1";100;"pending";80;"closed"
错误或EXP行为?
感谢。