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

Alessandro Molina edited comment on ARROW-11780 at 4/16/21, 1:38 PM:
---------------------------------------------------------------------

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}}, 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.

 

 


was (Author: amol-):
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}}, thus the{{ pyarrow_unwrap_array}} 
doesn't deal with them.
{code:python}
<class 'pyarrow.lib.ChunkedArray'> [[1, 2, 3]]

 I'm not sure on the impact over the rest of the codebase, but it seems it 
would be more robust to have 
{code}
{{pyarrow_unwrap_array}}
{code:python}
 (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.{code}
 

 

 

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