You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2017/08/23 14:21:00 UTC
[jira] [Comment Edited] (ARROW-229) [C++] Implement safe casts for
primitive types
[ https://issues.apache.org/jira/browse/ARROW-229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16138406#comment-16138406 ]
Wes McKinney edited comment on ARROW-229 at 8/23/17 2:20 PM:
-------------------------------------------------------------
Thank you for your patch. The scope of what I am intending here is fairly large. I am expecting to add a new public API:
{code}
Status SafeCast(const Array& input, const std::shared_ptr<DataType>& target_type,
MemoryPool* pool,
std::shared_ptr<Array>* out);
{code}
This will mean some dynamic dispatch work and significantly more testing to check casts that would cause data loss.
was (Author: wesmckinn):
Thank you for your patch. The scope of what I am intending here is fairly large. I am expecting to add a new public API:
{code}
Status CastSafe(const Array& input, const std::shared_ptr<DataType>& target_type,
std::shared_ptr<Array>* out);
{code}
This will mean some dynamic dispatch work and significantly more testing to check casts that would cause data loss.
> [C++] Implement safe casts for primitive types
> ----------------------------------------------
>
> Key: ARROW-229
> URL: https://issues.apache.org/jira/browse/ARROW-229
> Project: Apache Arrow
> Issue Type: New Feature
> Components: C++
> Reporter: Uwe L. Korn
> Fix For: 0.7.0
>
>
> In some situations, you want to cast the data in a PrimitiveArray to a different (but similar) data type, e.g. from {{uint32_t}} to {{int32_t}} or {{uint32_t}} to {{uint8_t}}. This can either be done by reinterpreting the data or needs to involve a copy if the size of the underlying type changes. There is already an implementation for this in {{parquet-cpp}} that could be pulled out into Arrow: https://github.com/apache/parquet-cpp/blob/9a0407e684c0a6299d0e6ab98c11c1162915c0ee/src/parquet/arrow/writer.cc#L71
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)