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