繁体   English   中英

Cassandra UDF:检查空值时出错

[英]Cassandra UDF: getting error on checking null values


我写了一个如下的UDF:
 CREATE FUNCTION myspace.getValue(lng bigint, dbl double, etc double) RETURNS NULL ON NULL INPUT RETURNS double LANGUAGE java AS 'if (lng != null) {return (double)lng;} else if (dbl != null) { return dbl;} else return etc;';

我得到这个错误:

InvalidRequest:来自服务器的错误:code=2200 [Invalid query] message="Java 源编译失败:
第 1 行:运算符 != 未定义参数类型 long、null
第 1 行:运算符 != 未定义参数类型 double、null"

虽然在手册中这些比较似乎没问题(例如这里)。 我正在使用 Cassandra 4.0.3(通过其 docker 映像)。

我发现了问题。 我将RETURNS NULL ON NULL INPUT更改为CALLED ON NULL INPUT ,现在可以了,可以按我的预期工作:)

这实际上是一个 Java 问题,而不是 Cassandra 问题。

doublelong都是原始 Java 数据类型,如果未初始化(分别为0L0.0d ),则为其分配一个默认值,因此它们不能为null

有关更多信息,请参阅Java 原始数据类型 干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM