Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-10783

Allow literal value as parameter of UDF & UDA

    Details

      Description

      I have defined the following UDF

      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;
      

      I got the following error message:

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

      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>

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                slebresne Sylvain Lebresne
                Reporter:
                doanduyhai DOAN DuyHai
                Reviewer:
                Benjamin Lerer
              • Votes:
                1 Vote for this issue
                Watchers:
                18 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: