2012-04-17 2 views
0

time interval algebra methodsをイベントタイプに直接使用しようとしていますが、これはドキュメントによると可能です。Esper: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) 

ようなクエリを記述する場合、それは実際にはエラーなしでコンパイル:私が最初にこのようなcreate schema構文を使用して、いくつかのイベントタイプを定義しようとしました。しかし、私は、パターンを使用しようとする代わりに参加し、この

select * 
    from pattern [ every (a = BaseEvent and b = ExtendedEvent) ] 
    where a.after(b) 

ようにそれは私にエラーを出します:私は由来しているPOJOを使用しようとすると

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 

は、私は同じエラーを取得しますタイムスタンププロパティがas described in the documentationと定義された基本イベントタイプ。実際にベース型を使用しているときには動作しますが、Esperは継承に関する情報を他のすべてのケースで使用する場合、継承されたtimeプロパティを使用しないことは奇妙です。

何か間違っていますか?これはバグですか?

私はここで混乱してしまった二つの問題が実際にあります。または多分それはちょうどそれが実際にバグや「行方不明」機能のようなものだった意図...

答えて

0

として動作します。最初は、Esperの継承がそのように機能しない、つまり派生型がタイムスタンプのプロパティを自動的に継承しないということです。もう1つの問題は、パターンに起因するイベントが、フラグメントと呼ばれ、日時メソッドでサポートされていないということです。

次のバージョンのEsper 4.6.0では、両方の問題が修正されます:ESPER-659ESPER-660です。

関連する問題