DevCenter报告语法错误,但在cqlsh

时间:2015-10-20 18:39:10

标签: cassandra datastax-enterprise

我尝试使用Devcenter创建用户定义函数。

http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateUDF.html

以下示例取自上述链接。

CREATE OR REPLACE FUNCTION fLog (input double) CALLED ON NULL INPUT RETURNS double LANGUAGE java AS 'return Double.valueOf(Math.log(input.doubleValue()));';

它适用于cqlsh但在DevCenter中失败,并出现以下错误。根据我获得响应的速度,我认为DevCenter会进行本地语法检查并中止执行,因为它认为查询错误。

我正在使用Cassandra 2.2.3和DevCenter 1.4.1

enter image description here

2 个答案:

答案 0 :(得分:4)

DevCenter会执行自己的语法语法检查以及语义验证。

这是一个DevCenter错误 - 在此上下文中语法不允许列名“输入”,因为它也是一个在这里被错误地不允许的CQL关键字。

在修复程序可用之前,建议的解决方法是更改​​列的名称,例如“inputValue的”。

答案 1 :(得分:1)

正如它所说的那样“在输入'输入'时没有可行的替代方案”

似乎'input'是Devcenter中的保留关键字,而不是CQLSH中的保留关键字。 尝试使用另一个名称作为变量。