andygrove opened a new issue, #6144: URL: https://github.com/apache/datafusion-comet/issues/6144
### What is the problem the feature request solves? The native Iceberg write gate rejects a custom location provider only when the `write.location-provider.impl` table property is set (`CometIcebergNativeWrite.scala:173-175`). A custom `TableOperations` can also supply one directly through `TableOperations.locationProvider()` without that property. The gate admits such a table, and the native writer places files at `<data location>/<partition path>/<file>`, ignoring the provider. FileIO and encryption already get class-based checks (the resolved `io()` class and `table.encryption()`), not only property checks, for exactly this reason. ### Describe the potential solution Resolve `table.locationProvider()` in the gate and decline the native write unless it is one of iceberg-java's built-in providers (`DefaultLocationProvider`; `ObjectStoreLocationProvider` is already declined by the `write.object-storage.enabled` rule), with a reason naming the class. ### Additional context Found in an audit of the native Iceberg write path before enabling it by default. Part of #5649. Related: #5643. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
