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

Julian Hyde commented on CALCITE-4226:
--------------------------------------

That's exactly the same semantics as {{Map}}; they're both an implementation of 
a [partial function|https://en.wikipedia.org/wiki/Partial_function]. When you 
call {{get}} for a non-existent key you get a null back. But of course when you 
use such a map you make sure to only call it for keys where the function is 
defined, or check that the value is not null before using it.

Do you understand now?

> Mappings#asList might return null for negative ordinals which would result in 
> later NPEs
> ----------------------------------------------------------------------------------------
>
>                 Key: CALCITE-4226
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4226
>             Project: Calcite
>          Issue Type: Sub-task
>          Components: core
>    Affects Versions: 1.25.0
>            Reporter: Vladimir Sitnikov
>            Priority: Major
>
> It looks like none of the uses for Mappings#asList is ready to handle nulls.
> So far there are 6 usages of the method, however, it is puzzling if NPE is 
> expected behavior there.
> I'm inclined to create two variations of the method:
> 1) {{List<@Nullable Integer> asList(...)}} -- keep the current method current 
> one
> 2) {{List<@NonNull Integer> asList(...)}} -- throw exceptions on invalid 
> mappings



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to