Xuanwo opened a new issue, #25145:
URL: https://github.com/apache/datafusion/issues/25145

   ### Is your feature request related to a problem or challenge?
   
   Applications embedding DataFusion with their own `TableProvider` and 
`ExecutionPlan` implementations still pull in `object_store` when DataFusion's 
default features are disabled. These applications may provide their own file 
access and decoding, or use a different `object_store` version in their storage 
layer. They need a way to exclude DataFusion's storage dependency while 
retaining query planning and execution.
   
   ### Describe the solution you'd like
   
   Add a default-enabled `object_store` feature to the existing packages. Users 
should be able to disable default features and select SQL and expression 
features without including any `object_store` package in the enabled dependency 
graph.
   
   The compatibility contract should be:
   
   - Default builds retain existing storage behavior and APIs, including direct 
users of child crates such as `datafusion-execution` and 
`datafusion-physical-plan`.
   - Existing users with `default-features = false` who need storage APIs 
explicitly enable `object_store`. Features that require built-in storage, such 
as `parquet` and `avro`, enable it automatically.
   - Custom providers, in-memory tables, relational query execution, memory 
management, and local spilling remain available without the storage feature.
   - No additional DataFusion packages are required.
   
   Acceptance should use an independent downstream consumer: `cargo tree 
--target all --edges all` must contain no `object_store` package when storage 
is disabled, and a query using a custom provider and execution plan must run 
successfully. Explicitly restoring storage and using default features should 
preserve built-in file operations. Feature unification can still re-enable 
storage when another dependency requests it.
   
   ### Describe alternatives you've considered
   
   Disabling the existing default features does not remove the dependency. 
Aligning `object_store` versions can avoid duplicate versions but does not let 
an application exclude an unused storage implementation.
   
   ### Additional context
   
   Implementation: #25144.
   


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