[
https://issues.apache.org/jira/browse/CASSANDRA-5910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13746044#comment-13746044
]
Jonathan Ellis commented on CASSANDRA-5910:
-------------------------------------------
I don't think turning RTE into IRE is correct -- if it passes validation, it
should execute, and if it doesn't, it's a bug and not an invalid request.
Where does this leave varcharasblob? (Wish we'd gone with textasblob, FTR.)
> Most CQL3 functions should handle null gracefully
> -------------------------------------------------
>
> Key: CASSANDRA-5910
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5910
> Project: Cassandra
> Issue Type: Bug
> Reporter: Sylvain Lebresne
> Assignee: Sylvain Lebresne
> Priority: Minor
> Fix For: 1.2.9
>
> Attachments: 5910.txt
>
>
> Currently, we don't allow null parameters for functions. So
> {noformat}
> UPDATE test SET d=dateOf(null) WHERE k=0
> {noformat}
> is basically an invalid query. Unfortunately, there's at least one case where
> we don't validate correctly, namely if we do:
> {noformat}
> SELECT k, dateOf(t) FROM test
> {noformat}
> In that case, if for any of the row {{t}} is null, we end up with a server
> side NPE. But more importantly, throwing an InvalidException in that case
> would be pretty inconvenient and actually somewhat wrong since the query is
> not invalid in itself. So, at least in that latter case, we want {{dateOf(t)
> == null}} when {{t == null}}. And if we do that, I suggest making it always
> the case (i.e. make the first query valid but assigning {{null}} to {{d}}).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira