wgtmac commented on PR #117:
URL: https://github.com/apache/iceberg-cpp/pull/117#issuecomment-2942987759

   As discussed with @mapleFU offline, we need a good abstraction on `Literal` 
to represent arbitrary nesting structure (e.g. primitive, struct, map, list, 
and even geometry and variant?) and optimize specifically for primitive types.
   
   As far as I know, literal values will be used in the following cases:
   1. Literal value in a predicate.
   2. Partition value in the `DataFile`.
   3. Default value in a `SchemaField` for Iceberg V3.
   4. Input and output values for a transform function.
   
   For expression evaluator, we can directly evaluate the Arrow arrays as all 
file readers support reading into Arrow arrays so we don't pay for any data 
conversion. We can also specialize expression evaluators for `ManifestFile`, 
`Snapshot` and `ContentFile`. We can also provide a visitor to visit Arrow 
arrays to get the literal values of a single row with selected columns to make 
it easy to use.
   
   If literals are all we need, we don't have to implement a `StructLike` in 
https://github.com/apache/iceberg-cpp/pull/77. 
   
   WDYT? @dongxiao1198 @gty404 @lidavidm @zhjwpku (names are sorted 
alphabetically :))
   


-- 
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