lidavidm commented on PR #31:
URL: https://github.com/apache/iceberg-cpp/pull/31#issuecomment-2601202575

   Just to make sure @gaborkaszab @wgtmac: are we ok with the Arrow-style type 
representation here? (Types are represented by a class hierarchy, erased behind 
smart pointers; nested types store the fields in the type object, not the field 
object)
   
   The alternatives are:
   - cuDF style: type objects are minimal, just a type ID, and there is no 
hierarchy, just the base `DataType` class which is not type-erased and 
therefore there is no need for a smart pointer. As a trade-off, nested fields 
have to be extracted from the field and the base DataType has to have fields 
for all possible parameterized types
   - arrow-java style: there is still a hierarchy of type objects, but child 
fields are stored on the Field, not the DataType. Avoids a conceptual 
dependency cycle between DataType and Field
   - variant style: like arrow-java, but instead of type erasure and a type 
hierarchy (or conversely, like cuDF but avoids redundant fields), we have a 
`std::variant` with all possibilities. Avoids boxing but the object is larger 
(in e.g. a vector)


-- 
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: issues-unsubscr...@iceberg.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to