[
https://issues.apache.org/jira/browse/ARROW-801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15964505#comment-15964505
]
Jacques Nadeau commented on ARROW-801:
--------------------------------------
Since these are low-level interfaces, i'd prefer to not have to constantly deal
with type casting. (Much like java.lang.Iterator has remove() even if it isn't
always supported).
Using [Fix|Variable]WidthVector interfaces are especially problematic since
they aren't connected to FieldVector. I think the interface hierarchy could be
improved but I'd prefer not to block this work by that (since I think that is a
longer term piece of work).
> [JAVA] Provide direct access to underlying buffer memory addresses in
> consistent way without generating garbage or large amount indirections
> --------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ARROW-801
> URL: https://issues.apache.org/jira/browse/ARROW-801
> Project: Apache Arrow
> Issue Type: Bug
> Components: Java - Vectors
> Reporter: Jacques Nadeau
>
> When working with Arrow vectors recently, we observed a situation where our
> time was dominated by calls to getFieldBuffers() to be able to retrieve
> memory addresses (22s out of 26s total for a piece of code). We should
> provide a direct mechanism to access this data so we can avoid all the extra
> indirection and object creation.
> A proposal:
> getBitAddress();
> getDataAddress();
> getOffsetAddress();
> These interfaces would be made available at the FieldVector interface and
> simply throw UnsupportedOperationException where not supported.
> Unsupported Operations:
> data for list type
> offset for fixed width types
> data and offset for struct type
> data for union type
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)