docs: use Enterprise terminology across website and SDK documentation (#4787)

Use “LanceDB Enterprise” throughout the staged website guides, SDK
reference sources, generated API pages, and user-facing SDK messages. A
separate branded “LanceDB Distributed” name adds terminology without
clarifying behavior; describe where operations run directly.

- Update `docs/web`, including the architecture diagram title and alt
text. Use Enterprise in headings, table labels, and prose; simplify
redundant product/execution-model wording and name the product only once
in the diagram alt text.
- Update Python docstrings and the Python/Java reference pages,
TypeScript comments and native declaration comments, and Rust API
documentation. Regenerate the TypeScript reference, including 24
replacements across six pages.
- Update SDK warnings/errors and existing test expectations to match,
along with contributor guidance and Vale rules. Remove the obsolete rule
distinguishing Enterprise from Distributed.
- Keep lowercase “distributed” for technical descriptions. API
identifiers, anchors, asset paths, and execution behavior are unchanged.
No branded-name exceptions are proposed.

Validation:
- Python and Node native builds succeeded; focused Python tests passed
(36 passed, 4 skipped), and focused Node tests passed (14).
- TypeDoc generation and the complete MkDocs reference build passed.
MkDocs retains an existing unresolved
`lancedb.functions.SecretReference` cross-reference.
- Rust formatting, Node lint/format, changed-file Python lint/format, 32
Vale tests, and whitespace checks passed. Repository-wide Python lint
has 48 existing findings in six untouched files.
- Combined documentation assembly passed. Mintlify validation and
link/anchor/redirect checks previously passed for both site builds; no
code snippets changed.

Companion PRs: [saved editions, terminology guide, and shared
rules](https://github.com/lancedb/docs/pull/413), [Enterprise overview
and writing rules](https://github.com/lancedb/sophon/pull/9511).

---------

Co-authored-by: Brendan Clement <brendan.clement@lancedb.com>
This commit is contained in:
Taylor
2026-11-02 10:25:14 -08:00
committed by GitHub
co-authored by Brendan Clement
parent 2d86532de9
commit 9e65bd2c27
59 changed files with 301 additions and 311 deletions
+2 -2
View File
@@ -300,11 +300,11 @@ def connect(
raise ValueError(f"Unknown keyword arguments: {unknown_kwargs}")
if session is not None:
raise NotImplementedError(
"session is not supported for LanceDB Distributed connections"
"session is not supported for LanceDB Enterprise connections"
)
if manifest_enabled:
raise NotImplementedError(
"manifest_enabled is not supported for LanceDB Distributed connections"
"manifest_enabled is not supported for LanceDB Enterprise connections"
)
if api_key is None:
api_key = os.environ.get("LANCEDB_API_KEY")
+15 -15
View File
@@ -682,7 +682,7 @@ class DBConnection(EnforceOverrides):
LanceDB Embedded creation and refresh require a source build with the
``experimental-functions`` Cargo feature. Published packages leave it
disabled; LanceDB Distributed operations remain available.
disabled; LanceDB Enterprise operations remain available.
The view is populated before creation returns. Pass
``with_no_data=True`` to create only its definition and empty backing
@@ -706,11 +706,11 @@ class DBConnection(EnforceOverrides):
with_no_data: bool, default False
Skip the initial refresh and leave the backing table empty.
auto_refresh_enabled: bool, optional
Enable or disable automatic refresh in LanceDB Distributed.
Enable or disable automatic refresh in LanceDB Enterprise.
When omitted, the server determines whether automatic refresh is enabled.
LanceDB Embedded does not support automatic refresh.
auto_refresh_interval_seconds: float, optional
Positive, finite refresh interval in seconds in LanceDB Distributed.
Positive, finite refresh interval in seconds in LanceDB Enterprise.
When omitted, the server determines when to refresh.
Returns
@@ -736,7 +736,7 @@ class DBConnection(EnforceOverrides):
"""Submit materialized-view creation and return its job.
The job may already be complete in LanceDB Embedded. In LanceDB
Distributed, creation
Enterprise, creation
submits CREATE MATERIALIZED VIEW through the SQL server. Its job has
``job_type == "query"`` and ``id`` identifies the connection-scoped
query. Registry event history is unavailable.
@@ -776,7 +776,7 @@ class DBConnection(EnforceOverrides):
) -> None:
"""Drop a materialized view.
In LanceDB Distributed, drops wait for the SQL command to remove the
In LanceDB Enterprise, drops wait for the SQL command to remove the
catalog binding.
Physical cleanup continues in the background.
"""
@@ -790,7 +790,7 @@ class DBConnection(EnforceOverrides):
"""Start dropping a materialized view and return its job.
The job may already be complete in LanceDB Embedded. In LanceDB
Distributed, jobs have
Enterprise, jobs have
type ``query`` and use the SQL query ID as ``id``. Waiting confirms
catalog removal; physical cleanup continues in the background.
"""
@@ -1356,7 +1356,7 @@ class DBConnection(EnforceOverrides):
memory, per-worker GPU limit, and CPU, memory, and ephemeral-storage
limits. This describes configured hardware, not current free capacity.
LanceDB Distributed only; the principal needs System Usage permission.
LanceDB Enterprise only; the principal needs System Usage permission.
Raises ``NotImplementedError`` when the server predates
``GET /v1/gpu/classes``.
"""
@@ -1937,7 +1937,7 @@ class LanceDBConnection(DBConnection):
LanceDB Embedded creation and refresh require a source build with the
``experimental-functions`` Cargo feature. Published packages leave it
disabled; LanceDB Distributed operations remain available.
disabled; LanceDB Enterprise operations remain available.
See
[DBConnection.create_materialized_view][lancedb.DBConnection.create_materialized_view].
@@ -2557,12 +2557,12 @@ class AsyncConnection(object):
To obtain a connection you can use the [connect_async][lancedb.connect_async]
function.
This could be a LanceDB Embedded connection (using lance) or a LanceDB Distributed
connection (e.g. for connecting to LanceDB Enterprise)
This could be a LanceDB Embedded connection (using Lance) or a connection
to LanceDB Enterprise.
Embedded connections do not currently hold any open resources but they may do so in
the future (for example, for shared cache or connections to catalog services)
Distributed connections represent an open connection to the server. The
Enterprise connections represent an open connection to the server. The
[close][lancedb.db.AsyncConnection.close] method can be used to release any
underlying resources eagerly. The connection can also be used as a context manager.
@@ -3199,7 +3199,7 @@ class AsyncConnection(object):
LanceDB Embedded creation and refresh require a source build with the
``experimental-functions`` Cargo feature. Published packages leave it
disabled; LanceDB Distributed operations remain available.
disabled; LanceDB Enterprise operations remain available.
See
[DBConnection.create_materialized_view][lancedb.DBConnection.create_materialized_view].
"""
@@ -3234,7 +3234,7 @@ class AsyncConnection(object):
"""Submit materialized-view creation and return its job.
Wait for the returned job before opening or querying the view. In LanceDB
Distributed, creation uses SQL; ``job_type`` is ``"query"`` and ``id``
Enterprise, creation uses SQL; ``job_type`` is ``"query"`` and ``id``
identifies that query on this connection.
"""
source, native_options = await self._materialized_view_source(
@@ -3288,7 +3288,7 @@ class AsyncConnection(object):
) -> None:
"""Drop a materialized view.
In LanceDB Distributed, drops wait for the SQL command to remove the
In LanceDB Enterprise, drops wait for the SQL command to remove the
catalog binding.
Physical cleanup continues in the background.
"""
@@ -3304,7 +3304,7 @@ class AsyncConnection(object):
) -> AsyncJob[None]:
"""Start dropping a materialized view and return its job.
In LanceDB Distributed, the job has type ``query`` and its ID identifies
In LanceDB Enterprise, the job has type ``query`` and its ID identifies
the SQL query. Await :meth:`AsyncJob.wait` for catalog removal; physical
cleanup continues in the background.
"""
+1 -1
View File
@@ -691,7 +691,7 @@ class FunctionBinding(_RemoteValue):
class RefreshColumnResult(_RemoteValue):
"""Terminal result of an expression-backed or Function-backed refresh Job.
LanceDB Embedded jobs produce this value in process. LanceDB Distributed
LanceDB Embedded jobs produce this value in process. LanceDB Enterprise
decodes the same value from the durable server-job terminal payload.
"""
+3 -3
View File
@@ -167,7 +167,7 @@ class FTS:
Lance tokenizer can panic on malformed triples; see
https://github.com/lance-format/lance/issues/8812.
LanceDB Distributed uses the same ``FTS()`` configuration and requires a
LanceDB Enterprise uses the same ``FTS()`` configuration and requires a
server that supports JSON FTS. Wait for ``table.wait_for_index(["doc_idx"])``
before searching a newly created index there with its default name.
@@ -236,12 +236,12 @@ class FTS:
memory_limit : int, optional
The total memory limit in MiB for the local FTS build stage. The limit
is divided evenly among indexing workers. This build-only setting is
not persisted with the index and does not apply to LanceDB Distributed.
not persisted with the index and does not apply to LanceDB Enterprise.
num_workers : int, optional
The number of workers for a local FTS build. By default Lance uses
roughly half of the available CPU cores. The effective value is
limited by the available compute capacity. This build-only setting is
not persisted with the index and does not apply to LanceDB Distributed.
not persisted with the index and does not apply to LanceDB Enterprise.
document_granularity : DocumentGranularity, default ROW
``ROW`` treats the selected text in one table row as one document.
``LIST_ELEMENT`` treats each element of the deepest list on the indexed
+5 -5
View File
@@ -6,7 +6,7 @@ maintained by refresh. See ``DBConnection.create_materialized_view``.
LanceDB Embedded creation and refresh require the ``experimental-functions``
Cargo feature in a source build. Published packages disable it. Opening, reading,
listing and dropping existing views and LanceDB Distributed operations remain
listing and dropping existing views and LanceDB Enterprise operations remain
available.
"""
@@ -189,12 +189,12 @@ class AsyncMaterializedView:
) -> "RefreshMaterializedViewResult":
"""Recompute the view from its source.
In LanceDB Distributed, ``full=True`` forces a rebuild; otherwise the
In LanceDB Enterprise, ``full=True`` forces a rebuild; otherwise the
server chooses the refresh mode. LanceDB Embedded views always rebuild,
and ``source_version`` selects a source version instead of the latest.
LanceDB Distributed SQL refreshes do not support source-version pinning.
LanceDB Enterprise SQL refreshes do not support source-version pinning.
LanceDB Distributed results leave ``mode``, ``rows_written``, and
LanceDB Enterprise results leave ``mode``, ``rows_written``, and
``source_version`` as ``None`` because the SQL job adapter does not expose
these metrics.
"""
@@ -208,7 +208,7 @@ class AsyncMaterializedView:
"""Submit a refresh and return its job without waiting.
The job may already be complete in LanceDB Embedded. In LanceDB
Distributed, refreshes are submitted through the SQL service. Options and
Enterprise, refreshes are submitted through the SQL service. Options and
result metrics follow
[refresh][lancedb.materialized_view.AsyncMaterializedView.refresh].
"""
+1 -1
View File
@@ -548,7 +548,7 @@ class Permutation:
picklable classes implementing ``__call__``. Lambdas and closures over
local variables don't pickle with the default protocol.
A factory is optional for normal LanceDB Embedded and Distributed connections:
A factory is optional for normal LanceDB Embedded and Enterprise connections:
if not set, ``__getstate__`` captures the table's own picklable reopen
state. Use a factory when that default state is not enough, for example
when credentials should be loaded from the worker environment instead
+5 -5
View File
@@ -204,7 +204,7 @@ def _supports_local_blob_fetch(
def _blob_bytes_without_snapshot_error() -> NotImplementedError:
return NotImplementedError(
"blob_mode='bytes' cannot safely materialize blob columns without a "
"stable table snapshot. LanceDB Distributed and namespace QueryTable pushdown "
"stable table snapshot. LanceDB Enterprise and namespace QueryTable pushdown "
"run the query on a server, so the blob fetch could read another table "
"version. Use blob_mode='descriptions'."
)
@@ -1263,7 +1263,7 @@ class LanceQueryBuilder(ABC):
mode and for legacy blob columns. Other local blob v2
queries return descriptors in ``"lazy"`` and ``"descriptions"``
modes, or payloads in ``"bytes"`` mode, through :meth:`to_arrow`.
LanceDB Distributed blob queries support only ``"descriptions"`` until a
LanceDB Enterprise blob queries support only ``"descriptions"`` until a
stable
table snapshot can bind the query and blob fetches.
**kwargs
@@ -3603,7 +3603,7 @@ class AsyncQueryBase(object):
``fetch_blobs`` reads. ``"descriptions"`` returns them without it.
``"bytes"`` returns payload bytes and raises for legacy blob columns
and blobs inside lists.
LanceDB Distributed and namespace query pushdown refuse ``"bytes"``.
LanceDB Enterprise and namespace query pushdown refuse ``"bytes"``.
"""
blob_sources = await self._validated_blob_sources(blob_mode)
batch_iter = await self.to_batches(timeout=timeout)
@@ -3682,7 +3682,7 @@ class AsyncQueryBase(object):
mode and for legacy blob columns. Other local blob v2
queries return descriptors in ``"lazy"`` and ``"descriptions"``
modes, or payloads in ``"bytes"`` mode, through :meth:`to_arrow`.
LanceDB Distributed blob queries support only ``"descriptions"`` until a
LanceDB Enterprise blob queries support only ``"descriptions"`` until a
stable
table snapshot can bind the query and blob fetches.
**kwargs
@@ -4331,7 +4331,7 @@ class AsyncVectorQueryBase:
you the desired recall.
LanceDB retains this as `nprobes` through LanceDB Embedded and LanceDB
Distributed request construction. Lance sets both probe bounds to this
Enterprise request construction. Lance sets both probe bounds to this
value. Explicit minimum or maximum settings can override their respective
bounds.
"""
+10 -10
View File
@@ -104,7 +104,7 @@ def _tls_config_to_dict(config: Optional[TlsConfig]) -> Optional[dict[str, Any]]
def _client_config_to_dict(config: ClientConfig) -> dict[str, Any]:
if config.header_provider is not None:
raise ValueError(
"Cannot serialize a LanceDB Distributed connection with a header_provider. "
"Cannot serialize a LanceDB Enterprise connection with a header_provider. "
"Use static api_key/extra_headers or provide a worker-side "
"connection factory instead."
)
@@ -249,16 +249,16 @@ class RemoteDBConnection(DBConnection):
@property
def session(self) -> Optional["Session"]:
"""LanceDB Distributed connections do not expose a local cache session."""
"""LanceDB Enterprise connections do not expose a local cache session."""
raise NotImplementedError(
"session is not supported by LanceDB Distributed connections"
"session is not supported by LanceDB Enterprise connections"
)
@property
def read_consistency_interval(self) -> Optional[timedelta]:
"""LanceDB Distributed connections do not expose a read consistency interval."""
"""LanceDB Enterprise connections do not expose a read consistency interval."""
raise NotImplementedError(
"read_consistency_interval is not supported by LanceDB Distributed "
"read_consistency_interval is not supported by LanceDB Enterprise "
"connections"
)
@@ -667,11 +667,11 @@ class RemoteDBConnection(DBConnection):
The embedding functions to store in the table schema and use to
generate vectors when creating the table or adding data.
storage_options: dict, optional
Not supported in LanceDB Distributed. Raises NotImplementedError.
Not supported in LanceDB Enterprise. Raises NotImplementedError.
data_storage_version: str, optional
Not supported in LanceDB Distributed. Raises NotImplementedError.
Not supported in LanceDB Enterprise. Raises NotImplementedError.
enable_v2_manifest_paths: bool, optional
Not supported in LanceDB Distributed. Raises NotImplementedError.
Not supported in LanceDB Enterprise. Raises NotImplementedError.
Returns
-------
@@ -745,7 +745,7 @@ class RemoteDBConnection(DBConnection):
if value is not None:
raise NotImplementedError(
f"{option} is not supported for table creation in "
"LanceDB Distributed"
"LanceDB Enterprise"
)
if exist_ok:
if mode == "create":
@@ -1313,7 +1313,7 @@ class RemoteDBConnection(DBConnection):
default_namespace_path: Optional[List[str]] = None,
parameters: Optional[QueryParameters] = None,
) -> SqlQuery:
"""Start executing SQL through this LanceDB Distributed connection.
"""Start executing SQL through this LanceDB Enterprise connection.
Unqualified tables use this connection's database and the
``["public"]`` namespace by default. Fully qualified table names may
+18 -18
View File
@@ -126,7 +126,7 @@ class RemoteTable(Table):
def _serialized_connection_state(self) -> str:
if self._connection_state is None:
raise RuntimeError(
"Cannot reopen this LanceDB Distributed table because it does not "
"Cannot reopen this LanceDB Enterprise table because it does not "
"carry serialized connection state"
)
if callable(self._connection_state):
@@ -273,23 +273,23 @@ class RemoteTable(Table):
return LOOP.run(self._table.list_versions())
def to_arrow(self, *, blob_mode: BlobMode = "lazy") -> pa.Table:
"""to_arrow() is not supported in LanceDB Distributed."""
"""to_arrow() is not supported in LanceDB Enterprise."""
validate_blob_mode(blob_mode)
raise NotImplementedError(
"to_arrow() is not supported in LanceDB Distributed. "
"to_arrow() is not supported in LanceDB Enterprise. "
"Use table.search().to_arrow() instead."
)
def to_pandas(self, blob_mode: BlobMode = "lazy", **kwargs):
"""to_pandas() is not supported in LanceDB Distributed."""
"""to_pandas() is not supported in LanceDB Enterprise."""
validate_blob_mode(blob_mode)
raise NotImplementedError(
"to_pandas() is not supported in LanceDB Distributed. "
"to_pandas() is not supported in LanceDB Enterprise. "
"Use table.search().to_pandas() instead."
)
def to_lance(self, **kwargs) -> "lance.LanceDataset":
"""Direct Lance dataset access is not supported in LanceDB Distributed.
"""Direct Lance dataset access is not supported in LanceDB Enterprise.
Use ``table.search().to_arrow()`` to read query results through the server.
"""
@@ -298,7 +298,7 @@ class RemoteTable(Table):
def to_polars(self, batch_size=None) -> "pl.LazyFrame":
"""Use ``table.search().to_polars()`` to read query results."""
raise NotImplementedError(
"to_polars() is not supported in LanceDB Distributed. "
"to_polars() is not supported in LanceDB Enterprise. "
"Use table.search().to_polars() instead."
)
@@ -331,7 +331,7 @@ class RemoteTable(Table):
"""Tokenize a query using the tokenizer configured on an FTS index.
Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are
rebuilt in the client process from index metadata. In LanceDB Distributed,
rebuilt in the client process from index metadata. In LanceDB Enterprise,
this means the same tokenizer model files must also exist locally
(under ``LANCE_LANGUAGE_MODEL_HOME``) and must match the files the
server uses. A mismatch cannot be detected: the returned tokens may
@@ -638,7 +638,7 @@ class RemoteTable(Table):
if accelerator is not None:
logging.warning(
"GPU accelerator is not supported in LanceDB Distributed "
"GPU accelerator is not supported in LanceDB Enterprise "
"and will be ignored."
)
@@ -743,7 +743,7 @@ class RemoteTable(Table):
capped at the number of CPU cores. Lower this if bulk ingestion is
using too much memory.
allow_external_blob_outside_bases: bool, default False
Not supported in LanceDB Distributed. Setting this raises.
Not supported in LanceDB Enterprise. Setting this raises.
Returns
-------
@@ -1048,20 +1048,20 @@ class RemoteTable(Table):
delete_unverified: bool = False,
):
"""
cleanup_old_versions() is a no-op in LanceDB Distributed.
cleanup_old_versions() is a no-op in LanceDB Enterprise.
"""
warnings.warn(
"cleanup_old_versions() is a no-op in LanceDB Distributed.",
"cleanup_old_versions() is a no-op in LanceDB Enterprise.",
stacklevel=2,
)
pass
def compact_files(self, *args, **kwargs):
"""
compact_files() is a no-op in LanceDB Distributed.
compact_files() is a no-op in LanceDB Enterprise.
"""
warnings.warn(
"compact_files() is a no-op in LanceDB Distributed.",
"compact_files() is a no-op in LanceDB Enterprise.",
stacklevel=2,
)
pass
@@ -1074,7 +1074,7 @@ class RemoteTable(Table):
retrain: bool = False,
compaction_options: Optional[CompactionOptions] = None,
):
"""optimize() is not supported in LanceDB Distributed."""
"""optimize() is not supported in LanceDB Enterprise."""
return LOOP.run(
self._table.optimize(
cleanup_older_than=cleanup_older_than,
@@ -1226,7 +1226,7 @@ class RemoteTable(Table):
)
def close_rte_writers(self) -> None:
"""No-op in LanceDB Distributed (no local shard writers)."""
"""No-op in LanceDB Enterprise (no local shard writers)."""
return LOOP.run(self._table.close_rte_writers())
@_deprecated_keyword("index_name", "name")
@@ -1255,7 +1255,7 @@ class RemoteTable(Table):
This is a hint to the database that the given columns will be accessed
in the future and the database should prefetch the data if possible.
Currently only supported in LanceDB Distributed.
Currently only supported in LanceDB Enterprise.
This call initiates prewarming and returns once the request is accepted.
It is idempotent and safe to call from multiple clients concurrently.
@@ -1284,7 +1284,7 @@ class RemoteTable(Table):
def uri(self) -> str:
"""The table URI (storage location).
In LanceDB Distributed, this fetches the location from the server via describe.
In LanceDB Enterprise, this fetches the location from the server via describe.
"""
return LOOP.run(self._table.uri())
+1 -1
View File
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright The LanceDB Authors
"""Handles to SQL queries running on a LanceDB Distributed database."""
"""Handles to SQL queries running on a LanceDB Enterprise database."""
from typing import Any, Mapping, Optional, Sequence, Union
from uuid import UUID
+33 -33
View File
@@ -1577,7 +1577,7 @@ class Table(ABC):
def to_lance(self, **kwargs) -> lance.LanceDataset:
"""Return a LanceDB Embedded table as a lance.LanceDataset.
LanceDB Distributed tables cannot be opened as Lance datasets by the
LanceDB Enterprise tables cannot be opened as Lance datasets by the
client. Use
``table.search().to_arrow()`` to read them through the server.
@@ -1590,7 +1590,7 @@ class Table(ABC):
def to_polars(self, batch_size=None) -> "pl.LazyFrame":
"""Return the table as a Polars LazyFrame.
In LanceDB Distributed, use ``table.search().to_polars()`` to convert query
In LanceDB Enterprise, use ``table.search().to_polars()`` to convert query
results to a Polars DataFrame.
Parameters
@@ -2571,7 +2571,7 @@ class Table(ABC):
Blobs inside lists cannot be fetched by row id yet.
LanceDB Distributed limits each request to 1024 row IDs and 64 MiB of blob
LanceDB Enterprise limits each request to 1024 row IDs and 64 MiB of blob
bytes. The client splits requests automatically and reads an individual
larger blob through the Range route. This method still materializes all
bytes in memory; for large values use :meth:`fetch_blob_files`.
@@ -2598,7 +2598,7 @@ class Table(ABC):
results are returned.
Row IDs can be obtained from a query with ``with_row_id(True)``.
LanceDB Distributed reads the requested ranges through version-pinned blob
LanceDB Enterprise reads the requested ranges through version-pinned blob
handles using HTTP byte-range requests.
"""
@@ -2615,7 +2615,7 @@ class Table(ABC):
a ``list[int]``, an integer Arrow array or chunked array, or a query
``pyarrow.Table`` carrying row identity via ``_rowid`` or a
``_lance_row_id`` field on the blob descriptor. Null blob values return
``None``. LanceDB Distributed requires server version 0.5.0 or newer.
``None``. LanceDB Enterprise requires server version 0.5.0 or newer.
``_rowid`` values stay valid after compaction when the table has stable
row ids.
@@ -2852,7 +2852,7 @@ class Table(ABC):
Notes
-----
This function is not available in LanceDB Distributed, which manages
This function is not available in LanceDB Enterprise, which manages
cleanup for you automatically.
"""
@@ -2874,7 +2874,7 @@ class Table(ABC):
Notes
-----
This function is not available in LanceDB Distributed, which manages
This function is not available in LanceDB Enterprise, which manages
compaction for you automatically.
"""
@@ -2961,7 +2961,7 @@ class Table(ABC):
Specify exactly one of ``column`` or ``index_name``.
Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are
rebuilt in the client process from index metadata. In LanceDB Distributed,
rebuilt in the client process from index metadata. In LanceDB Enterprise,
this means the same tokenizer model files must also exist locally
(under ``LANCE_LANGUAGE_MODEL_HOME``) and must match the files the
server uses. A mismatch cannot be detected: the returned tokens may
@@ -3018,11 +3018,11 @@ class Table(ABC):
named-struct application expands its ordered result fields as one
atomic binding; aliases come from ``rename(columns=...)``.
Function columns are supported only in LanceDB
Distributed.
Enterprise.
computed: Dict[str, str], optional
LanceDB Embedded declaration and refresh require a source build with the
``experimental-functions`` Cargo feature, which published packages
do not enable. LanceDB Distributed operations remain available.
do not enable. LanceDB Enterprise operations remain available.
A mapping from output column names to SQL expressions derives each
output field from its expression. A direct projection of a Blob v2
@@ -3041,7 +3041,7 @@ class Table(ABC):
While a declaration reads a column, that column cannot be renamed,
retyped or dropped.
In LanceDB Distributed the expression is planned by the
In LanceDB Enterprise the expression is planned by the
server, and the refresh runs as a server job -- see
[`refresh_column_async`][lancedb.table.Table.refresh_column_async].
Cannot be combined with ``transforms``.
@@ -3112,10 +3112,10 @@ class Table(ABC):
GPU class for Function workers. Must be a lowercase name of 1-63
letters, digits, or hyphens, without a leading or trailing hyphen.
None keeps the Function's registered class or the deployment
default. LanceDB Distributed only.
default. LanceDB Enterprise only.
gpu_count: int, optional
Positive aggregate GPU budget for Function workers. None leaves
the server's configured budget unchanged. LanceDB Distributed
the server's configured budget unchanged. LanceDB Enterprise
only.
Returns
@@ -3160,10 +3160,10 @@ class Table(ABC):
GPU class for Function workers. Must be a lowercase name of 1-63
letters, digits, or hyphens, without a leading or trailing hyphen.
None keeps the Function's registered class or the deployment
default. LanceDB Distributed only.
default. LanceDB Enterprise only.
gpu_count: int, optional
Positive aggregate GPU budget for Function workers. None leaves
the server's configured budget unchanged. LanceDB Distributed
the server's configured budget unchanged. LanceDB Enterprise
only.
Returns
@@ -3200,7 +3200,7 @@ class Table(ABC):
A refresh running under a skip policy records each row it skipped
with the input that failed and the error. This lists those records,
newest job first, plus a summary for any fragment whose per-row
detail was capped. LanceDB Distributed only; reading errors
detail was capped. LanceDB Enterprise only; reading errors
needs read access to the table, since a message carries the value
that failed.
@@ -4287,7 +4287,7 @@ class LanceTable(Table):
This is a hint to the database that the given columns will be accessed
in the future and the database should prefetch the data if possible.
Currently only supported in LanceDB Distributed.
Currently only supported in LanceDB Enterprise.
This call initiates prewarming and returns once the request is accepted.
It is idempotent and safe to call from multiple clients concurrently.
@@ -5178,7 +5178,7 @@ class LanceTable(Table):
Specify exactly one of ``column`` or ``index_name``.
Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are
rebuilt in the client process from index metadata. In LanceDB Distributed,
rebuilt in the client process from index metadata. In LanceDB Enterprise,
this means the same tokenizer model files must also exist locally
(under ``LANCE_LANGUAGE_MODEL_HOME``) and must match the files the
server uses. A mismatch cannot be detected: the returned tokens may
@@ -6266,7 +6266,7 @@ class AsyncTable:
async def to_lance(self, **kwargs) -> lance.LanceDataset:
"""Return the Lance dataset backing a LanceDB Embedded table.
LanceDB Distributed tables cannot be opened as Lance datasets by the
LanceDB Enterprise tables cannot be opened as Lance datasets by the
client. Use
[to_arrow][lancedb.table.AsyncTable.to_arrow] or
[query][lancedb.table.AsyncTable.query] to read them through the server.
@@ -6288,7 +6288,7 @@ class AsyncTable:
"""
if not self._inner._is_native():
raise NotImplementedError(
"to_lance() is not supported in LanceDB Distributed; "
"to_lance() is not supported in LanceDB Enterprise; "
"query the server instead"
)
@@ -6321,7 +6321,7 @@ class AsyncTable:
Parameters
----------
blob_mode: str, default "lazy"
Controls how Lance blob columns are returned. LanceDB Distributed supports
Controls how Lance blob columns are returned. LanceDB Enterprise supports
"descriptions"; "bytes" and "lazy" are not yet supported.
**kwargs
Forwarded to PyArrow / Lance pandas conversion.
@@ -6568,7 +6568,7 @@ class AsyncTable:
This is a hint to the database that the given columns will be accessed
in the future and the database should prefetch the data if possible.
Currently only supported in LanceDB Distributed.
Currently only supported in LanceDB Enterprise.
This call initiates prewarming and returns once the request is accepted.
It is idempotent and safe to call from multiple clients concurrently.
@@ -6612,7 +6612,7 @@ class AsyncTable:
"""
Get the table URI (storage location).
In LanceDB Distributed, this fetches the location from the server via describe.
In LanceDB Enterprise, this fetches the location from the server via describe.
In LanceDB Embedded, this returns the dataset URI.
Returns
@@ -7405,11 +7405,11 @@ class AsyncTable:
named-struct application expands its ordered result fields as one
atomic binding; aliases come from ``rename(columns=...)``.
Function columns are supported only in LanceDB
Distributed.
Enterprise.
computed: Dict[str, str], optional
LanceDB Embedded declaration and refresh require a source build with the
``experimental-functions`` Cargo feature, which published packages
do not enable. LanceDB Distributed operations remain available.
do not enable. LanceDB Enterprise operations remain available.
A mapping from output column names to SQL expressions derives each
output field from its expression. A direct projection of a Blob v2
@@ -7427,13 +7427,13 @@ class AsyncTable:
While a declaration reads a column, that column cannot be renamed,
retyped or dropped.
In LanceDB Distributed the expression is planned by
In LanceDB Enterprise the expression is planned by
the server. Cannot be combined with ``transforms``.
auto_refresh_enabled: bool, optional
Enable automatic refresh for each computed output declared by this
call. Defaults to True. LanceDB Embedded stores the setting; automatic
scheduling requires LanceDB Distributed.
scheduling requires LanceDB Enterprise.
auto_refresh_interval_seconds: int, optional
Positive minimum seconds after a successful refresh before another
automatic refresh is eligible. When omitted, the server determines when
@@ -7561,10 +7561,10 @@ class AsyncTable:
GPU class for Function workers. Must be a lowercase name of 1-63
letters, digits, or hyphens, without a leading or trailing hyphen.
None keeps the Function's registered class or the deployment
default. LanceDB Distributed only.
default. LanceDB Enterprise only.
gpu_count: int, optional
Positive aggregate GPU budget for Function workers. None leaves
the server's configured budget unchanged. LanceDB Distributed
the server's configured budget unchanged. LanceDB Enterprise
only.
Returns
@@ -7591,7 +7591,7 @@ class AsyncTable:
A refresh running under a skip policy records each row it skipped
with the input that failed and the error. This lists those records,
newest job first, plus a summary for any fragment whose per-row
detail was capped. LanceDB Distributed only; reading errors
detail was capped. LanceDB Enterprise only; reading errors
needs read access to the table, since a message carries the value
that failed.
@@ -7680,10 +7680,10 @@ class AsyncTable:
GPU class for Function workers. Must be a lowercase name of 1-63
letters, digits, or hyphens, without a leading or trailing hyphen.
None keeps the Function's registered class or the deployment
default. LanceDB Distributed only.
default. LanceDB Enterprise only.
gpu_count: int, optional
Positive aggregate GPU budget for Function workers. None leaves
the server's configured budget unchanged. LanceDB Distributed
the server's configured budget unchanged. LanceDB Enterprise
only.
Returns
@@ -8110,7 +8110,7 @@ class AsyncTable:
Specify exactly one of ``column`` or ``index_name``.
Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are
rebuilt in the client process from index metadata. In LanceDB Distributed,
rebuilt in the client process from index metadata. In LanceDB Enterprise,
this means the same tokenizer model files must also exist locally
(under ``LANCE_LANGUAGE_MODEL_HOME``) and must match the files the
server uses. A mismatch cannot be detected: the returned tokens may
@@ -725,7 +725,7 @@ def test_embedded_create_refuses_automatic_refresh_before_creating_view(
tmp_path, options
):
db = make_db(tmp_path)
with pytest.raises(NotImplementedError, match="requires LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="requires LanceDB Enterprise"):
db.create_materialized_view("adults", "people", **options)
assert "adults" not in db.table_names()
@@ -742,7 +742,7 @@ def test_remote_create_rejects_invalid_interval_without_request(seconds):
@pytest.mark.experimental_functions
def test_namespace_forwards_automatic_refresh_request(tmp_path):
db = lancedb.connect_namespace("dir", {"root": str(tmp_path)})
with pytest.raises(NotImplementedError, match="requires LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="requires LanceDB Enterprise"):
db.create_materialized_view("mv", "source", auto_refresh_enabled=True)
@@ -750,7 +750,7 @@ def test_namespace_forwards_automatic_refresh_request(tmp_path):
@pytest.mark.asyncio
async def test_async_namespace_forwards_automatic_refresh_request(tmp_path):
db = lancedb.connect_namespace_async("dir", {"root": str(tmp_path)})
with pytest.raises(NotImplementedError, match="requires LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="requires LanceDB Enterprise"):
await db.create_materialized_view("mv", "source", auto_refresh_enabled=True)
+9 -9
View File
@@ -1196,7 +1196,7 @@ def test_table_unimplemented_functions():
message = str(exc_info.value)
assert method in message
assert "not" in message and "supported" in message
assert "LanceDB Distributed" in message
assert "LanceDB Enterprise" in message
assert "cloud" not in message.lower()
assert f"search().{method}()" in message
@@ -1263,7 +1263,7 @@ async def test_remote_to_lance_rejection(
await table.to_lance(**options)
assert requests == opened_requests
assert "to_lance() is not supported in LanceDB Distributed" in str(sync_error.value)
assert "to_lance() is not supported in LanceDB Enterprise" in str(sync_error.value)
assert "query the server" in str(sync_error.value)
assert str(sync_error.value) == str(async_error.value)
@@ -2158,7 +2158,7 @@ def test_remote_create_index_new_api(caplog, rq_kwargs):
assert received_requests[5]["replace"] is False
assert "replace is not supported" not in caplog.text
assert caplog.messages == [
"GPU accelerator is not supported in LanceDB Distributed "
"GPU accelerator is not supported in LanceDB Enterprise "
"and will be ignored."
]
@@ -2217,7 +2217,7 @@ def test_remote_unsupported_operations_sync(method, args, kwargs, operation):
with pytest.raises(NotImplementedError) as error:
getattr(table, method)(*args, **kwargs)
expected = f"LanceDBError: not supported: {operation} is not supported "
expected += "in LanceDB Distributed."
expected += "in LanceDB Enterprise."
if operation == "IVF_HNSW_PQ":
expected += " Please use IVF_HNSW_SQ instead."
assert str(error.value) == expected
@@ -2235,7 +2235,7 @@ async def test_remote_unsupported_operations_async(method, args, kwargs, operati
with pytest.raises(NotImplementedError) as error:
await getattr(table, method)(*args, **kwargs)
expected = f"LanceDBError: not supported: {operation} is not supported "
expected += "in LanceDB Distributed."
expected += "in LanceDB Enterprise."
if operation == "IVF_HNSW_PQ":
expected += " Please use IVF_HNSW_SQ instead."
assert str(error.value) == expected
@@ -2247,7 +2247,7 @@ def test_remote_unsupported_legacy_hnsw_pq():
with pytest.warns(DeprecationWarning, match="create_index"):
with pytest.raises(
NotImplementedError,
match="IVF_HNSW_PQ is not supported in LanceDB Distributed. "
match="IVF_HNSW_PQ is not supported in LanceDB Enterprise. "
"Please use IVF_HNSW_SQ instead.",
):
table.create_index(
@@ -2265,7 +2265,7 @@ def test_remote_python_only_messages():
with pytest.raises(NotImplementedError) as error:
getattr(table, method)()
assert str(error.value) == (
f"{method}() is not supported in LanceDB Distributed. "
f"{method}() is not supported in LanceDB Enterprise. "
f"Use table.search().{method}() instead."
)
for method in ["compact_files", "cleanup_old_versions"]:
@@ -2273,7 +2273,7 @@ def test_remote_python_only_messages():
getattr(table, method)()
assert (
str(warning[0].message)
== f"{method}() is a no-op in LanceDB Distributed."
== f"{method}() is a no-op in LanceDB Enterprise."
)
@@ -4469,7 +4469,7 @@ async def test_async_remote_to_lance_rejects_storage_access(monkeypatch):
raise AssertionError("remote table URI must not be requested")
monkeypatch.setattr(table, "uri", fail_uri)
with pytest.raises(NotImplementedError, match="LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="LanceDB Enterprise"):
await table.to_lance()
+5 -5
View File
@@ -87,7 +87,7 @@ async def test_remote_create_rejects_write_options(storage_options, empty):
kwargs["data"] = [{"value": 1}]
async with mock_lancedb_connection_async(handler) as db:
with pytest.raises(
NotImplementedError, match="write_options.*LanceDB Distributed"
NotImplementedError, match="write_options.*LanceDB Enterprise"
):
await db.create_table("t", storage_options=storage_options, **kwargs)
assert requests == []
@@ -110,7 +110,7 @@ def test_sync_remote_create_rejects_write_options(options):
request.end_headers()
with mock_lancedb_connection(handler) as db:
with pytest.raises(NotImplementedError, match="LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="LanceDB Enterprise"):
db.create_table("t", [{"value": 1}], **options)
assert requests == []
@@ -131,11 +131,11 @@ async def test_remote_open_rejects_local_options(options, asynchronous):
if asynchronous:
async with mock_lancedb_connection_async(handler) as db:
with pytest.raises(NotImplementedError, match="LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="LanceDB Enterprise"):
await db.open_table("t", **options)
else:
with mock_lancedb_connection(handler) as db:
with pytest.raises(NotImplementedError, match="LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="LanceDB Enterprise"):
db.open_table("t", **options)
assert requests == []
@@ -151,6 +151,6 @@ async def test_remote_open_rejects_location():
request.wfile.write(b'{"version": 1, "schema": {"fields": []}}')
async with mock_lancedb_connection_async(handler) as db:
with pytest.raises(NotImplementedError, match="location.*LanceDB Distributed"):
with pytest.raises(NotImplementedError, match="location.*LanceDB Enterprise"):
await db.open_table("t", location="/tmp/zzz")
assert requests == []
+1 -1
View File
@@ -5637,7 +5637,7 @@ def test_function_errors_are_remote_only(tmp_path):
db = lancedb.connect(tmp_path)
table = db.create_table("t", [{"x": 1}])
with pytest.raises(
NotImplementedError, match="recorded only in LanceDB Distributed"
NotImplementedError, match="recorded only in LanceDB Enterprise"
):
table.function_errors()
+2 -2
View File
@@ -2016,7 +2016,7 @@ impl Table {
inner
.as_native()
.ok_or_else(|| lancedb::Error::NotSupported {
message: "uses_v2_manifest_paths is not supported in LanceDB Distributed."
message: "uses_v2_manifest_paths is not supported in LanceDB Enterprise."
.into(),
})
.infer_error()?
@@ -2032,7 +2032,7 @@ impl Table {
inner
.as_native()
.ok_or_else(|| lancedb::Error::NotSupported {
message: "migrate_manifest_paths_v2 is not supported in LanceDB Distributed."
message: "migrate_manifest_paths_v2 is not supported in LanceDB Enterprise."
.into(),
})
.infer_error()?