@wesm Brian is right, _most_ of the internal buffers are zero-copy sliced up 
front in the ArrayData internals. This is mostly a performance 
optimization/complexity reduction, since it allows us to index into those 
TypedArrays starting from zero in most cases. Notable exceptions are when the 
indexing is dependent on other buffers (e.g. we _do_ slice the valueOffsets 
buffer of a Utf8Vector, but not the data buffer), or when multiple values are 
packed into < 1 byte like the validity bitmap or BoolVector's data buffer. So 
we still need to track the logical `offset` internally, but only use it in 
those special cases.

[ Full content available at: https://github.com/apache/arrow/pull/2638 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to