logan-keede commented on issue #14444:
URL: https://github.com/apache/datafusion/issues/14444#issuecomment-2773359489

   I think we have got most if not all low hanging fruits with #15459 .
   
   I was thinking about how to make progress and here is what I though of so 
far:-
   
   Originally, `get_file_format_factory` method needed to be moved to `Session` 
to remove downcast to `SessionState` at some places and move them out, but it 
has become apparent(unless I am missing something) that will not be possible 
without extreme measures.
   
   So, I thought we could make another trait on `datasource` level to handle 
some of the `SessionState` stuff that inherits from Session.
   That probably would not have been possible but since rust 1.86.0 rust 
supports trait_upcasting that means following syntax is now valid.
   
   ```rust
   trait A { ... }
   
   trait B: A {...}
   
   ...
   
   let some_a_object: &dyn A = &some_b_object; // originally &dyn B now 
upcasted to &dyn A
   ```
   here is PoC for that:-
   
https://github.com/logan-keede/datafusion/compare/move_memtable...logan-keede:datafusion:explore_session
   
   I think we can not use this for sometime because of minimum rust 
compatibility commitments(AFAIK).
   let me know If this makes sense, or if anybody has some other 
implementation/approach in mind.


-- 
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...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to