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

Tyler Hobbs commented on CASSANDRA-8374:
----------------------------------------

bq. However, I am rather strongly in favor of having RETURNS NULL ON NULL INPUT 
the default, because it's just a pain to have to deal with null for all types 
like int, varint, etc...

A few points on that:
* It's not a pain in javascript (or the other scripting languages), just Java.  
And it's mostly a pain due to a lack of autoboxing in javassist, which could 
conceivably change in the future.
* It's not a pain for other types like Strings and UUIDs
* Defaulting to {{RETURNS NULL ON NULL INPUT}} is surprising behavior, both 
from a programming languages perspective and a database perspective
* It's not hard to add {{RETURNS NULL ON NULL INPUT}} when you're dealing with 
ints in Java.

So, I think the downside of defaulting to {{CALLED ON NULL INPUT}} is limited 
enough in scope and easy enough to change that we shouldn't make surprising 
behavior the default just to avoid it.  (Additionally, I'm totally in favor of 
mentioning the impact on autoboxing of Java primitives in the docs on the 
options.)

> 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)

Reply via email to