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