我试图使用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

cassandra - DevCenter报告语法错误,但相同的CQL在cqlsh上运行-LMLPHP

最佳答案

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

这是一个DevCenter错误-在这种情况下,语法不允许列名“输入”,因为它也是一个CQL关键字,此处不正确地不允许使用。

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

关于cassandra - DevCenter报告语法错误,但相同的CQL在cqlsh上运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33244348/

10-11 15:27