Skip to content

Conversation

@wojiaodoubao
Copy link
Contributor

@wojiaodoubao wojiaodoubao commented Jan 6, 2026

Draft

This is based on lance-format/lance-namespace#279

Overview
PartitionedNamespace is an impl of LanceNamespace. It is a kind of DirectoryNamespace, containing a field member in type DirectoryNamespace.

Methods
There are 3 kinds of methods of PartitionedNamespace:

  • Read and Write (for Engine)
    • plan_scan
    • resolve_or_create_partition_table
    • commit
  • Partitioning
    • schema
    • tables
    • partitioning
    • update_partition_spec
    • add_column
    • drop_column
    • rename_column
    • type_promotion
  • Create Partitioned Namespace
    • create_partitioned_namespace

@wojiaodoubao wojiaodoubao marked this pull request as draft January 6, 2026 13:53
@github-actions github-actions bot added the enhancement New feature or request label Jan 6, 2026
@wojiaodoubao wojiaodoubao force-pushed the partitioned-namespace branch from c62d87b to 8dce784 Compare January 6, 2026 13:55
@codecov
Copy link

codecov bot commented Jan 6, 2026

Codecov Report

❌ Patch coverage is 0% with 138 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
rust/lance-namespace-impls/src/dir/partition.rs 0.00% 138 Missing ⚠️

📢 Thoughts on this report? Let us know!

@wojiaodoubao wojiaodoubao force-pushed the partitioned-namespace branch from 8dce784 to 51ca004 Compare January 7, 2026 02:50
@wojiaodoubao
Copy link
Contributor Author

Hi @jackye1995 , I think may be we can push forward partitioning by first discussing the behavior of PartitionedNamespace, using this pr.

After the PartitionedNamespace design is done, we can split partitioning into more sub-tasks and start integrate engines.

Looking forward to your thoughts!

@jackye1995 jackye1995 self-requested a review January 7, 2026 07:40
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JsonPartitionField {
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: since it's a part of the namespace spec, I think we can add this as a part of the OpenAPI definition, so it is codegened and has all the serde aspects handled automatically.

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 this should be parallel to dir.rs, not within it, because it's a separated thing, it's dependent on dir.rs but not a sub-part of it.

@xloya
Copy link
Contributor

xloya commented Jan 8, 2026

Draft

This is based on lance-format/lance-namespace#279

Overview PartitionedNamespace is an impl of LanceNamespace. It is a kind of DirectoryNamespace, containing a field member in type DirectoryNamespace.

Methods There are 3 kinds of methods of PartitionedNamespace:

  • Read and Write (for Engine)

    • plan_scan
    • resolve_or_create_partition_table
    • commit
  • Partitioning

    • schema
    • tables
    • partitioning
    • update_partition_spec
    • add_column
    • drop_column
    • rename_column
    • type_promotion
  • Create Partitioned Namespace

    • create_partitioned_namespace

Draft

This is based on lance-format/lance-namespace#279

Overview PartitionedNamespace is an impl of LanceNamespace. It is a kind of DirectoryNamespace, containing a field member in type DirectoryNamespace.

Methods There are 3 kinds of methods of PartitionedNamespace:

  • Read and Write (for Engine)

    • plan_scan
    • resolve_or_create_partition_table
    • commit
  • Partitioning

    • schema
    • tables
    • partitioning
    • update_partition_spec
    • add_column
    • drop_column
    • rename_column
    • type_promotion
  • Create Partitioned Namespace

    • create_partitioned_namespace

Hi, I've only recently come across this discussion. Currently, it seems that a partition table is defined as a special type of Directory Namespace. My question is whether partition tables can be extended to also be applicable to REST Namespace Impl, thus adapting to a wider range of scenarios?

My question stems from our scenario having a centralized metadata service, where we'd prefer to manage both non-partitioned and partitioned tables uniformly using REST Namespaces.

Looking forward to your reply, thanks!

@wojiaodoubao
Copy link
Contributor Author

My question stems from our scenario having a centralized metadata service, where we'd prefer to manage both non-partitioned and partitioned tables uniformly using REST Namespaces.

Hi @xloya , thanks your suggestion. One good feature of partitioned namespace is: it transforms a directory as a partitioned table. It means you can register a partitioned namespace uri to your centralized metadata service, just like normal lance table. Does is work for you?

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants