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

Antoine Pitrou commented on ARROW-602:
--------------------------------------

There will be an API and code organization aspect to this.

* API question: there are no typed subclasses for {{ChunkedArray}}, so we need 
another solution than simply putting {{begin()}} and {{end()}} methods on 
ChunkedArray
* code organization issue: we don't want {{chunked_array.h}} to imply the 
inclusion of all type-specific array declarations, so probably need another 
solution

My proposal would be to add a generic function {{Iterate<Type>}} in 
{{stl_iterator.h}}:
{code:c++}
template <Type>
<some return type> Iterate(const Array&) { ... }

template <Type>
<some return type> Iterate(const ChunkedArray&) { ... }
{code}

Writing the implementation should be reasonably easy.

> [C++] Provide iterator access to primitive elements inside a 
> Column/ChunkedArray
> --------------------------------------------------------------------------------
>
>                 Key: ARROW-602
>                 URL: https://issues.apache.org/jira/browse/ARROW-602
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Uwe Korn
>            Priority: Major
>              Labels: beginner, good-first-issue, newbie
>             Fix For: 7.0.0
>
>
> Given a ChunkedArray, an Arrow user must currently iterate over all its 
> chunks and then cast them to their types to extract the primitive memory 
> regions to access the values. A convenient way to access the underlying 
> values would be to offer a function that takes a ChunkedArray and returns a 
> C++ iterator over all elements.
> While this may not be the most performant way to access the underlying data, 
> it should have sufficient performance and adds a convenience layer for new 
> users.



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

Reply via email to