PipeLinedB:连续视图输出流意外显示相同的(旧)和(新)值



我正在使用PipelinedB 0.9.7U3

我播放了一些连续的视图输出流,以找出是否可以使用一些更新来获得新的连续视图。

这是我的测试案例。

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;" open"

select * from cv_test_upin;

" t2" ;;"; 190;"待处理"

" t1" ;;"; 124;" open"

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;

" t2" ;;"; 190;"待处理"

" t1" ;;"; 124;" open"

" t2"; 190;"待处理"; 160;"等待"

" t1"; 124;" open"; 100;"待处理"

select * from cv_test_up;

" t2"; 190;"待处理"; 160;"等待"

" t1"; 124;" open"; 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;" spam"

" t3" ;;"; 140;" open"

" t1"; 80;"封闭"; 80;"封闭"

我期望最后一个" t1"为 "t1";100;"pending";80;"closed"

错误或预期行为?

谢谢。

挖掘出来后,您确实发现了一些意外的行为,很可能是一个错误。我们将尽快解决,这是一个问题:

https://github.com/pipelinedb/pipelinedb/issues/1797

解决后,我们将发布更新的版本。

最新更新