Skip to content

feat: add partitioned namespace#5896

Draft
wojiaodoubao wants to merge 1 commit intolance-format:mainfrom
wojiaodoubao:partitioned-namespace-new
Draft

feat: add partitioned namespace#5896
wojiaodoubao wants to merge 1 commit intolance-format:mainfrom
wojiaodoubao:partitioned-namespace-new

Conversation

@wojiaodoubao
Copy link
Contributor

This is a sub-task of the partitioned namespace

@github-actions github-actions bot added enhancement New feature or request python java labels Feb 5, 2026
@wojiaodoubao wojiaodoubao mentioned this pull request Feb 5, 2026
4 tasks
lance-io = { path = "../../rust/lance-io" }
lance-namespace = { path = "../../rust/lance-namespace" }
lance-namespace-impls = { path = "../../rust/lance-namespace-impls", features = ["rest", "rest-adapter"] }
lance-namespace-reqwest-client = { git = "https://github.com/wojiaodoubao/lance-namespace", branch = "rest-table-properties" }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After lance-format/lance-namespace#299 is merged, update it.

@wojiaodoubao wojiaodoubao force-pushed the partitioned-namespace-new branch from 23d594c to b61565e Compare February 5, 2026 13:44
@wojiaodoubao wojiaodoubao marked this pull request as draft February 5, 2026 14:49
@wojiaodoubao wojiaodoubao force-pushed the partitioned-namespace-new branch from b61565e to dc95f18 Compare February 5, 2026 15:45
@jackye1995 jackye1995 self-requested a review February 6, 2026 05:02

/// Request for creating multiple namespaces with a single merge insert.
#[derive(Debug, Clone)]
pub struct CreateMultiNamespacesRequest {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need this? I thought we only need creating multiple tables in a namespace

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh I see nvm because we want to create the namespaces that represent partition values.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add these as a part of the Lance Namespace operations, introduce BatchCreateNamespaces, BatchCreateTables, etc., those operations can be useful anyway even outside the context of partitioned namespace.

And then you don't need a dedicated extension just for manifest namespace to make it work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add these as a part of the Lance Namespace operations, introduce BatchCreateNamespaces, BatchCreateTables, etc.

Agree, we can do this.

}

#[derive(Debug, Default, Clone)]
pub struct CreateMultiNamespacesRequestBuilder {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just to create a separated thread. I am starting to think, is there real benefit in creating the sub-namespace structures? It seems purely for the purpose that it is cool to list namespaces in this way, but it does not serve any practical purposes since all the pruning are done directly against the table's partition column values in __manifest. Would it make more sense to just not have those nested namespace structures?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, having a table is sufficient for partition creation and pruning. The reason for retaining the namespace is that PartitionedNamespace is a type of DirectoryNamespace that follows to the partition spec standard. If we only keep the table part, PartitionedNamespace can no longer be treated as a normal DirectoryNamespace.

I think from a consistency perspective, it would be better to retain it. Shall we retain it, or remove it for simplicity?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request java python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants