WillAyd commented on code in PR #710:
URL: https://github.com/apache/arrow-nanoarrow/pull/710#discussion_r1953137338


##########
src/nanoarrow/common/inline_types.h:
##########
@@ -864,6 +871,9 @@ struct ArrowArrayPrivateData {
 
   // Size of each variadic buffer in bytes
   int64_t* variadic_buffer_sizes;
+
+  // The current offset used to build list views
+  int64_t list_view_offset;

Review Comment:
   What we need to keep track of somehow is the last valid offset preceding the 
value currently being appended, so we can calculate the `current_child_length - 
previous_child_length` to get the size of the current element.
   
   The private data is necessary in the current implementation because we 
aren't keeping track of the most recently valid offset when Null/Empty data is 
being appended. Those types of data are currently inserting an offset and size 
of 0 for simplicity.
   
   We can certainly change that append to keep repeating the most recently 
valid offset value with a size of 0 for empty elements, but I think that would 
either still require us to use private data OR backtrack to the last element 
contained within a `NANOARROW_BUFFER_TYPE_VIEW_OFFSET` during 
`_ArrowArrayAppendEmptyInternal`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to