Code Design
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
Code Design
1. ManifestNamespace
ManifestNamespacewill 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.2. PartitionedNamespace
PartitionedNamespaceis an impl of traitLanceNamespace, and has a member ofManifestNamespace.PartitionedNamespaceexposes two categories of APIs:Step by Step
After PartitionedNamespace is implemented, we can start integrating with engines.
Related Links