[ https://issues.apache.org/jira/browse/ARROW-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15236631#comment-15236631 ]
Micah Kornfield commented on ARROW-60: -------------------------------------- Hi Kai, I had a chance to think this through and wanted to know what you thought about the following: I think the implementation of the builder should actually be pretty straightforward. You should be able to extend ArrayBuilder (https://github.com/apache/arrow/blob/master/cpp/src/arrow/builder.h). You can likely have two constructors: 1. One that takes a list of builders and generated the type for the ArrayBuilder class on the fly 2. One that takes the type (a struct) and generates the builders on the fly (https://github.com/apache/arrow/blob/master/cpp/src/arrow/types/construct.h would be useful for this. I think it might pay to add a version of the method that takes a unique_ptr as an output parameter to make it easier for this use-case.) For additional methods: Add an Append method modeled after (https://github.com/apache/arrow/blob/master/cpp/src/arrow/types/list.h#L144). It would be be slightly different since you don't need to keep track of offsets. It would be nice if appending a null value also appended a null to each of the child builders, but that would require a new virtual method "AppendNull" on ArrayBuilder. I think its worth it as it would make client code a little bit more concise, but I think there might be some debate due to performance and API consistency. I don't think a "vectorized" append is needed yet, unless you can think of a use-case for one. Have you made any progress? How does this align with your thinking? > C++: Struct type builder API > ----------------------------- > > Key: ARROW-60 > URL: https://issues.apache.org/jira/browse/ARROW-60 > Project: Apache Arrow > Issue Type: New Feature > Components: C++ > Reporter: Wes McKinney > Assignee: Kai Zheng > > At the moment, we are able to represent struct metadata but not actually > build struct-type arrays. -- This message was sent by Atlassian JIRA (v6.3.4#6332)