- Rename deserialize() -> deserialize_conn() for clarity
- Rename internal _pushdown_operations -> _namespace_client_pushdown_operations
for consistency with the parameter name
- Rename serialized key "pushdown_operations" ->
"namespace_client_pushdown_operations"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
list_namespaces with empty path was going through Rust (ListingDatabase)
which doesn't see namespaces created via the directory namespace client.
Always delegate to _namespace_conn() so create/list are consistent.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Run ruff format on all changed files
- Fix F821 forward reference in _namespace_conn return type
- Update test_local_namespace_operations to verify operations succeed
instead of expecting NotImplementedError (namespace ops now work on
LanceDBConnection via directory namespace delegation)
- Remove test_local_create_namespace_not_supported and
test_local_drop_namespace_not_supported (no longer applicable)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
_create_table_server_side was only passing self.storage_options
(connection-level) to CreateTableRequest, ignoring the user-provided
storage_options parameter. This caused per-table options like
new_table_data_storage_version to be silently dropped.
Fix both sync and async paths to merge user options on top of
connection options.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Only delegate to _namespace_conn() when namespace_path is non-empty.
Root namespace operations (list_namespaces, list_tables with empty
path) still go through the original Rust connection to avoid regression.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the special-cased worker_uri key with a generic mechanism:
any namespace_client_properties key starting with _lancedb_worker_
has the prefix stripped and overrides the corresponding property
when for_worker=True.
e.g. _lancedb_worker_uri overrides uri in worker context.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Instead of reimplementing namespace logic (describe_table, merge
storage_options, etc.) in LanceDBConnection, delegate child namespace
operations to a LanceNamespaceDBConnection via _namespace_conn().
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
LanceDBConnection now:
- Caches namespace_client() result to avoid repeated DirectoryNamespace builds
- Auto-delegates open_table/create_table with non-empty namespace_path
through the directory namespace client
- Routes create_namespace/drop_namespace/describe_namespace/list_namespaces
through the namespace client
- Routes list_tables/drop_table for child namespaces through namespace client
This enables local storage connections to transparently handle child
namespaces like ["__system"] without requiring a separate
LanceNamespaceDBConnection.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add serialization support to DBConnection classes so connections
can be reconstructed in remote workers without tracking namespace
params separately.
- DBConnection.serialize_to_json() base method
- LanceDBConnection: serializes uri, storage_options, read_consistency_interval
- LanceNamespaceDBConnection: stores namespace_client_impl/properties,
serializes all connection params including pushdown_operations
- from_serialized_json() factory with for_worker flag for worker_uri swap
- connect_namespace() now passes impl/properties to connection for serialization
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 12:58:14 -07:00
16 changed files with 16 additions and 16 deletions
description="LanceDB: A serverless, low-latency vector database for AI applications"
license.workspace=true
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.