Is your feature request related to a problem or challenge?
Currently, applications can inject a custom GeoStatsAccumulator by calling init_geo_stats_accumulator_factory(). Such global state, which can only be initalized once per process, is not ideal from a design perspective. In particular, it makes it difficult to write libraries that produce a geospatial Parquet file under the hood; multiple libraries may want to register their own accumulator, but they can’t because the state is global. Admittedly this is a somewhat theoretical problem.
Describe the solution you'd like
Proposal:
- Add
geo_stats_accumulator_factory to WriterProperties (and its builder), gated on the geospatial feature flag.
- Mark the current
init_geo_stats_accumulator_factory() as deprecated, and remove it at some later point.
Is your feature request related to a problem or challenge?
Currently, applications can inject a custom GeoStatsAccumulator by calling
init_geo_stats_accumulator_factory(). Such global state, which can only be initalized once per process, is not ideal from a design perspective. In particular, it makes it difficult to write libraries that produce a geospatial Parquet file under the hood; multiple libraries may want to register their own accumulator, but they can’t because the state is global. Admittedly this is a somewhat theoretical problem.Describe the solution you'd like
Proposal:
geo_stats_accumulator_factoryto WriterProperties (and its builder), gated on thegeospatialfeature flag.init_geo_stats_accumulator_factory()as deprecated, and remove it at some later point.