apache / apache/datafusion

Support async creation of schemas and tables in external catalog services

Open
#19,634 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
9.3k
Forks
2.4k
Avg merge
3d 7h
Merged PRs (30d)
344

Description

### Is your feature request related to a problem or challenge?
DDL extensions

### Describe the solution you'd like

Currently, CREATE/DROP schema and table operations in DataFusion are in-memory only(The tutorial said). The CatalogProvider::register_schema and SchemaProvider::register_table APIs allow extending the behavior of these operations—but they are synchronous and they can only build MemTable.

In production scenarios, metadata is typically managed by a metastore or external catalog service. It would be great to support creating and dropping schemas, tables (and even catalogs) via such services. Ideally, these operations should be asynchronous and expose elements that are necessary for building customized TableProvider, SchemaProvider and CatalogProvider.

I’m curious if this has been discussed before—could the community please share any relevant context? Thanks!

### Describe alternatives you've considered
Just use SchemaProvider::register_table to integrate catalog services. However, I think the solution is somehow limited becase the backend table provider is based on memory and can never be refreshed

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reading the CatalogProvider::register_schema and SchemaProvider::register_table APIs, along with the related TableProvider behavior described in the issue. Clarify the scope for asynchronous create/drop operations across schemas, tables, and catalogs, and how external catalog services would refresh providers. Done requires an agreed design and support for the requested external-service workflow.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.