Я пытаюсь использовать time interval algebra methods для типов событий, которые, в соответствии с документами, должны быть возможны. Сначала я попытался определить некоторые типы событий, используя синтаксис create schema
, как это:Эспер: Использование начальных/конечных временных меток с POJO или определенными типами событий времени
create schema BaseEvent as (time long, name String) starttimestamp time
create schema ExtendedEvent as (moreInfo String) inherits BaseEvent
Если я пишу запрос, как этот
select *
from BaseEvent.std:lastevent() as a, ExtendedEvent.std:lastevent() as b
where a.after(b)
это на самом деле компилируется без ошибок. Но если я пытаюсь использовать шаблон вместо объединения, как этот
select *
from pattern [ every (a = BaseEvent and b = ExtendedEvent) ]
where a.after(b)
он дает мне ошибку:
Date-time enumeration method 'after' requires either a Calendar,
Date or long value as input or events of an event type that
declares a timestamp property
я получаю ту же ошибку, когда я пытаюсь использовать POJO, которые являются производными от базовый тип события, который имеет свойства метки времени as described in the documentation. Хотя он работает, когда я фактически использую базовый тип, кажется странным, что Esper не использует унаследованное свойство времени в этом случае, когда он использует информацию о наследовании в каждом другом случае.
Я что-то не так? Это ошибка? Или, может быть, он просто работает как задумано ...