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]

Reply via email to