У меня есть два непрерывных представления: tikets2
и second_view
CREATE CONTINUOUS VIEW tickets2 AS
SELECT ticketid,
TO_TIMESTAMP(min(event_time)::double precision /1000000) as t0,
keyed_min(event_time, status) as t0_status,
TO_TIMESTAMP(max(event_time)::double precision /1000000) as tc,
keyed_max(event_time, status) as tc_status
FROM tickets_stream2
group by ticketid;
CREATE CONTINUOUS VIEW second_view AS
SELECT (new).tc FROM output_of('tickets2’);
Когда я вставляю данные в tickets_stream2
, я получаю ошибку утверждения.
TRAP: FailedAssertion("!(ActiveSnapshotSet())", Файл: "postgres.c", Строка: 824, PID: 5275, Запрос: ticket2)
Убрав second_view
, вставка данных в tickets_stream2
выполняется без проблем.
Я не могу понять, что мне не хватает.
Обс. Я использую PipelineDB 0.9.7.
РЕДАКТИРОВАТЬ:
Тем временем я пробовал без функции TO_TIMESTAMP(), и никаких исключений не произошло.
CREATE CONTINUOUS VIEW tickets2 AS
SELECT
ticketid,
min(event_time) as t0,
keyed_min(event_time, status) as t0_status,
max(event_time) as tc,
keyed_max(event_time, status) as tc_status
FROM tickets_stream_test_output
GROUP BY ticketid;
РЕДАКТИРОВАТЬ 2, с 0.9.7u3 (может быть полезно для других)
Я тестировал обновленную версию. Я больше не получаю ошибку утверждения, но все же возникает ошибка, когда я вставляю данные в test_version_stream.
CREATE STREAM test_version_stream(event_time bigint, ticketid uuid, status text);
CREATE CONTINUOUS VIEW test_version_view AS
SELECT ticketid,
TO_TIMESTAMP(min(event_time)::double precision /1000000) as t
FROM test_version_stream
GROUP BY ticketid;
CREATE CONTINUOUS VIEW e_test_version_view AS
SELECT (new).t FROM output_of('test_version_view');
Я изменил порядок функций min
и to_timestamp
и все пошло нормально :)