Skip to content

enable users to add support for LIstingTable / object_store table formats of different types #8345

@tychoish

Description

@tychoish

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions