You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "DOAN DuyHai (JIRA)" <ji...@apache.org> on 2015/11/28 17:50:10 UTC

[jira] [Created] (CASSANDRA-10783) Allow literal value as parameter of UDF & UDA

DOAN DuyHai created CASSANDRA-10783:
---------------------------------------

             Summary: Allow literal value as parameter of UDF & UDA
                 Key: CASSANDRA-10783
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10783
             Project: Cassandra
          Issue Type: Improvement
          Components: CQL
         Environment: Cassandra 2.2.3
            Reporter: DOAN DuyHai
             Fix For: 2.2.3


I have defined the following UDF

{code:sql}
CREATE OR REPLACE FUNCTION  maxOf(current int, testValue int) RETURNS NULL ON NULL INPUT 
RETURNS int 
LANGUAGE java 
AS  'return Math.max(current,testValue);'

CREATE TABLE maxValue(id int primary key, val int);
INSERT INTO maxValue(id, val) VALUES(1, 100);

SELECT maxOf(val, 101) FROM maxValue WHERE id=1;
{code}

I got the following error message:

{code}
SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:19 no viable alternative at input '101' (SELECT maxOf(val1, [101]...)">
{code}

 It would be nice to allow literal value as parameter of UDF and UDA too.

 I was thinking about an use-case for an UDA groupBy() function where the end user can *inject* at runtime a literal value to select which aggregation he want to display, something similar to GROUP BY ... HAVING <filter clause>



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)