kylebarron opened a new pull request, #8222:
URL: https://github.com/apache/arrow-rs/pull/8222

   This is a pretty early draft to start discussion. It is not ready to merge.
   
   # Which issue does this PR close?
   
   - Closes https://github.com/apache/arrow-rs/issues/7240, closes 
https://github.com/apache/arrow-rs/issues/7799.
   
   # Rationale for this change
   
   Bare-bones support for reading and writing Parquet geometry/geography data.
   
   # What changes are included in this PR?
   
   This is lightly modeled after https://github.com/apache/arrow-rs/pull/7404, 
but that was an early draft of variant support. It looks like progress has gone 
on in `parquet-variant`, but it's hard to understand how that crate is intended 
to be used.
   
   - **Breaking**: changes `parquet::basic::LogicalType` because we need to 
maintain the type-level information of `Geometry`/`Geography` that exists on 
[`parquet::format::LogicalType`](https://docs.rs/parquet/latest/parquet/format/enum.LogicalType.html#variant.GEOMETRY).
   - Defines new `Geometry` and `Geography` arrow logical types, which each 
implement `arrow_schema::extension::ExtensionType`. This PR currently puts 
those in `arrow-schema`, but it's not clear that they should live there. If we 
created a new `parquet-geometry` crate, then at first glance I'd put `Geometry` 
and `Geography` there, but that's an issue assuming that `parquet` won't depend 
on `parquet-geometry`.
   - Those `Geometry` and `Geography` arrow logical types are currently 
feature-gated behind `arrow_canonical_extension_types`, while these types 
aren't actually canonical yet. Should we create a new `geometry` feature flag 
for the `parquet` crate?
   
   Perhaps we'll create a separate `parquet-geometry` crate for the builders 
that maintain a bounding box when writing geometry data.
   
   # Are these changes tested?
   
   Not yet, I first want to put the PR up to get some initial discussion.
   
   # Are there any user-facing changes?
   
   > If there are any breaking changes to public APIs, please call them out.
   
   Unfortunately, I think this _requires_ a breaking change to 
`parquet::basic::LogicalType` because we need to maintain the type-level 
information of `Geometry`/`Geography` that exists on 
[`parquet::format::LogicalType`](https://docs.rs/parquet/latest/parquet/format/enum.LogicalType.html#variant.GEOMETRY).
   


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