我使用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行爲?
感謝。