不能在where子句中使用用户定义的函数返回值

时间:2017-01-25 22:30:10

标签: esper nesper

我在Esper中有一个UDF,它返回一个int

getVal(int val){
//doing stuff
return val;
}

如果我这样做

select getVal(eventAttribute) from Event

它返回

{getVal(eventAttribute)= 3} // 3示例可以是任何

但是,如果我指定

select getVal(eventAttribute) from Event WHERE getVal(eventAttribute) = 3

听众不会更新

有谁知道为什么?我是否必须在Event类中设置属性?因为它从select子句更新但使用WHERE子句,即使它返回int = 3

编辑:

insert into Stream select getVal(attribute) as value

select value from Stream where value > 3

这很有效。

1 个答案:

答案 0 :(得分:0)

你确定“getVal”总是为给定的“eventAttribute”返回相同的值,而“eventAttribute”是不可变的吗?如果是,提供一些测试代码来重现?