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

Alessandro Molina commented on ARROW-11780:
-------------------------------------------

The issue seems to origin from {{pyarrow_unwrap_array}} not recognising the two 
values as arrays.

An empty shared_ptr is returned when unwrapping something that is not an array, 
see 
[https://github.com/apache/arrow/pull/827/files#diff-fd3f36df959d5f57664e7c4ca21a59515d5649679e188e77a220af490ab2b601R126-R132]
 

The two arrays are in fact {{ChunkedArray}}s, thus the {{pyarrow_unwrap_array}} 
doesn't deal with them.

{code:python}
<class 'pyarrow.lib.ChunkedArray'> [[1, 2, 3]]
{code}
 
I'm not sure on the impact over the rest of the codebase, but it seems it would 
be more robust to have {{pyarrow_unwrap_array}} (and similar methods) throwing 
an exception when they face unsupported types instead of returning NULL values 
that might trigger an action at a distance that is then hard to debug.

 

 

 

> [C++][Python] StructArray.from_arrays() crashes Python interpreter
> ------------------------------------------------------------------
>
>                 Key: ARROW-11780
>                 URL: https://issues.apache.org/jira/browse/ARROW-11780
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++, Python
>    Affects Versions: 3.0.0
>            Reporter: ARF
>            Assignee: Weston Pace
>            Priority: Major
>
> {{StructArray.from_arrays()}} crashes the Python interpreter without error 
> message:
> {code:none}
> (test_pyarrow) Z:\test_pyarrow>python
> Python 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: 
> Anaconda, Inc. on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import pyarrow as pa
> >>>
> >>> table = pa.Table.from_pydict({
> ...     'foo': pa.array([1, 2, 3]),
> ...     'bar': pa.array([4, 5, 6])
> ... })
> >>>
> >>> pa.StructArray.from_arrays([table['foo'], table['bar']], ['foo', 'bar'])
> (test_pyarrow) Z:\test_pyarrow>
> {code}



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

Reply via email to