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/10/11 08:17:00 UTC

[jira] [Resolved] (ARROW-14500) [C++] Support casting from storage type to extension type

     [ https://issues.apache.org/jira/browse/ARROW-14500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joris Van den Bossche resolved ARROW-14500.
-------------------------------------------
    Resolution: Fixed

Resolved by https://github.com/apache/arrow/pull/14106

> [C++] Support casting from storage type to extension type
> ---------------------------------------------------------
>
>                 Key: ARROW-14500
>                 URL: https://issues.apache.org/jira/browse/ARROW-14500
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Joris Van den Bossche
>            Assignee: Miles Granger
>            Priority: Major
>              Labels: good-first-issue, kernel, pull-request-available
>             Fix For: 10.0.0
>
>
> We already support casting an extension array to its storage type (ARROW-7858):
> {code}
> >>> from pyarrow.tests.test_extension_type import IntegerType
> >>> arr = pa.array([1, 2, 3], pa.int64())
> >>> arr_ext = pa.ExtensionArray.from_storage(IntegerType(), arr)
> >>> arr_ext.cast(arr.type)
> Out[29]: 
> <pyarrow.lib.Int64Array object at 0x7f7b0d4739a0>
> [
>   1,
>   2,
>   3
> ]
> {code}
> but we don't support the cast the other way around from storage type to extension type:
> {code}
> >>> arr.cast(arr_ext.type)
> ...
> ArrowNotImplementedError: Unsupported cast from int64 to extension<arrow.py_extension_type<IntegerType>> (no available cast function for target type)
> ../src/arrow/compute/cast.cc:119  GetCastFunctionInternal(cast_options->to_type, args[0].type().get())
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)