tychoish opened a new issue, #8345: URL: https://github.com/apache/arrow-datafusion/issues/8345
### Is your feature request related to a problem or challenge? I've been exploring adding new file formats and types to our system (@GlareDB), and have run into the problem where the `FileFormat` trait depends on the `FileType` enum, which means it's impossible to implement entirely new filetypes except from within the package. This is sort of gnarly to unwind as I've dug in, and I don't have a particular solution that I favor. ### Describe the solution you'd like I think collapsing `FileType` into `FileFormat` is maybe my favorite solution conceptually, but I think (more narrowly) removing the references to `FileType` in the `FileFormat` (as in my branch) would be good. ### Describe alternatives you've considered There are a few ways to resolve this: - make the FileType an implementable trait rather than an enum. - remove dependency between the interfaces [I tried to do this here](https://github.com/apache/arrow-datafusion/compare/main...tychoish:arrow-datafusion:file-type-and-format), which I think is a good start, but I think the issue runs even deeper. Having said that, the only casualty here would be the listing code, which is maybe something that can be worked around. - move all properties of "file_type" into the `FileFormat` (which kind of makes sense? I'm not sure that these are actually meaningfully separate abstractions.) ### Additional context _No response_ -- 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]
