You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Robert Stupp (JIRA)" <ji...@apache.org> on 2015/01/03 13:27:35 UTC

[jira] [Commented] (CASSANDRA-8374) Better support of null for UDF

    [ https://issues.apache.org/jira/browse/CASSANDRA-8374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14263515#comment-14263515 ] 

Robert Stupp commented on CASSANDRA-8374:
-----------------------------------------

As a summary - am I right that we
* add syntax options {{RETURNS NULL ON NULL}} and {{CALLED ON NULL INPUT}} to {{CREATE FUNCTION}} statement
* make {{RETURNS NULL ON NULL}} the default
* execute UDFs with {{null}} values only on a UDF with {{CALLED ON NULL INPUT}}
* call aggregate functions according to the last point
* need to declare {{INITCOND}} on aggregates if the state functions is using {{RETURNS NULL ON NULL}}

> Better support of null for UDF
> ------------------------------
>
>                 Key: CASSANDRA-8374
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8374
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Sylvain Lebresne
>            Assignee: Robert Stupp
>             Fix For: 3.0
>
>         Attachments: 8473-1.txt, 8473-2.txt
>
>
> Currently, every function needs to deal with it's argument potentially being {{null}}. There is very many case where that's just annoying, users should be able to define a function like:
> {noformat}
> CREATE FUNCTION addTwo(val int) RETURNS int LANGUAGE JAVA AS 'return val + 2;'
> {noformat}
> without having this crashing as soon as a column it's applied to doesn't a value for some rows (I'll note that this definition apparently cannot be compiled currently, which should be looked into).  
> In fact, I think that by default methods shouldn't have to care about {{null}} values: if the value is {{null}}, we should not call the method at all and return {{null}}. There is still methods that may explicitely want to handle {{null}} (to return a default value for instance), so maybe we can add an {{ALLOW NULLS}} to the creation syntax.



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