You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Joris Van den Bossche (Jira)" <ji...@apache.org> on 2022/01/27 15:01:00 UTC

[jira] [Created] (ARROW-15478) [C++] Creating (or casting to) list array with non-nullable field doesn't check nulls

Joris Van den Bossche created ARROW-15478:
---------------------------------------------

             Summary: [C++] Creating (or casting to) list array with non-nullable field doesn't check nulls
                 Key: ARROW-15478
                 URL: https://issues.apache.org/jira/browse/ARROW-15478
             Project: Apache Arrow
          Issue Type: Improvement
          Components: C++
            Reporter: Joris Van den Bossche


When creating a ListArray where you indicate that the values field is not nullable, you can actually create the array with nulls without this is being validated:

{code:python}
>>> typ = pa.list_(pa.field("element", pa.int64(), nullable=False))
>>> arr = pa.array([[1, 2], [3, 4, None]], typ)
>>> arr
<pyarrow.lib.ListArray object at 0x7f75bdeba760>
[
  [
    1,
    2
  ],
  [
    3,
    4,
    null
  ]
]

>>> arr.type
ListType(list<element: int64 not null>)
{code}

Also explicitly validating it doesn't raise:

{code:python}
>>> arr.validate(full=True)
{code}

Is this something we should check?   
What guarantees do we attach to the nullability of a field of a nested type?





--
This message was sent by Atlassian Jira
(v8.20.1#820001)