Sylvain Lebresne created CASSANDRA-7526:
-------------------------------------------

             Summary: Allow defining UDFs directly from CQL
                 Key: CASSANDRA-7526
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7526
             Project: Cassandra
          Issue Type: New Feature
            Reporter: Sylvain Lebresne


In CASSANDRA-7395 we'll introduce the ability to define user functions by 
dropping a java class server side. While this is a good first step and a good 
option to have in any case, it would be nice to provide a simpler way to define 
those functions directly from CQL. And while we probably don't want to 
re-invent a new programming language inside CQL, we can reuse one. Typically, 
with java 8, we could use nashorn. This would allow a syntax along the lines of:
{noformat}
CREATE FUNCTION sum (a bigint, b bigint) bigint AS { return a + b; }
{noformat}
Note that in this, everything before the AS will be parsed by us, which we'll 
probably want because we'll probably need to have the types of arguments/return 
in practice anyway, and it's a good idea to reuse CQL types. The expression 
after the AS will be given to Nashorn however.

Please note that in theory we could ultimately support multiple language after 
the AS. However, I'd like to focus on supporting just one for this ticket and 
I'm keen on using javascript through Nashorn because as it's the one that will 
ship with java from now on, it feels like a safe default.




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to