Skip to content

Epic: partitioned namespace #5741

@wojiaodoubao

Description

@wojiaodoubao

Code Design

Image

1. ManifestNamespace

  • The ManifestNamespace will introduce an extended_properties feature, which supports storing specified properties as __manifest columns. These properties can be specified during create/describe table or namespace operations and are then set to or read from __manifest extended columns.
  • ManifestNamespace provides a public insert_into_manifest method to facilitate transactional commits for PartitionedNamespace.

2. PartitionedNamespace
PartitionedNamespace is an impl of trait LanceNamespace, and has a member of ManifestNamespace. PartitionedNamespace exposes two categories of APIs:

  • The first category inherits methods from LanceNamespace. All of their implementations directly delegate to ManifestNamespace.
  • The second category consists of methods with partition semantics, such as plan_scan and resolve_or_create_partition_table. These methods encapsulate partition-related logic and are exposed to upper-layer engines for integration via public APIs.

Step by Step

After PartitionedNamespace is implemented, we can start integrating with engines.

Related Links

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions