mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-14 06:36:54 +00:00
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:
co-authored by
Brendan Clement
parent
2d86532de9
commit
9e65bd2c27
@@ -4,10 +4,11 @@
|
||||
come from the `LanceDB.zip` asset of `lancedb/docs` release
|
||||
`vale-lancedb-v0.1.0`, whose archive SHA-256 is
|
||||
`0730a43e919774121068811d5687c61dfc7a0421cff78e1393f5e565b622cb0f`.
|
||||
`ProductNames` no longer swaps in "LanceDB OSS".
|
||||
`ProductNames` no longer swaps in "LanceDB OSS" and now recommends
|
||||
"LanceDB Enterprise" for the retired "LanceDB Distributed" name.
|
||||
|
||||
The product-terminology rules were added here: `EmbeddedName`,
|
||||
`RemoteExecution`, `OSSProduct`, `DistributedEnterprise`, `InternalNames`
|
||||
`RemoteExecution`, `OSSProduct`, `InternalNames`
|
||||
(warnings) and `LegacyCloud` (suggestion). They enforce the names in the
|
||||
docs repository's `STYLE.md#names`. Run every rule's tests from
|
||||
`.github/vale` with `vale test --coverage styles`.
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
extends: existence
|
||||
message: "'%s' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both."
|
||||
link: https://github.com/lancedb/docs/blob/main/STYLE.md#names
|
||||
level: warning
|
||||
ignorecase: false
|
||||
tokens:
|
||||
- 'Distributed(?:\s+(?:and|or)\s+|\s*/\s*)(?:LanceDB\s+)?Enterprise'
|
||||
- 'Enterprise(?:\s+(?:and|or)\s+|\s*/\s*)(?:LanceDB\s+)?Distributed'
|
||||
tests:
|
||||
- name: flags Distributed and Enterprise side by side
|
||||
input: Choose Distributed or Enterprise. LanceDB Enterprise and LanceDB Distributed differ, and so does Distributed/Enterprise.
|
||||
want: |
|
||||
1:8:LanceDB.DistributedEnterprise:'Distributed or Enterprise' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both.
|
||||
1:43:LanceDB.DistributedEnterprise:'Enterprise and LanceDB Distributed' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both.
|
||||
1:98:LanceDB.DistributedEnterprise:'Distributed/Enterprise' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both.
|
||||
- name: leaves the defining sentence and the Embedded pair alone
|
||||
input: |
|
||||
LanceDB Enterprise runs LanceDB Distributed. Compare Embedded and Distributed execution. Distributed search and enterprise teams are fine.
|
||||
want: ''
|
||||
@@ -1,5 +1,5 @@
|
||||
extends: existence
|
||||
message: "'%s' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise' or 'LanceDB Distributed'."
|
||||
message: "'%s' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise'."
|
||||
link: https://github.com/lancedb/docs/blob/main/STYLE.md#names
|
||||
level: suggestion
|
||||
ignorecase: false
|
||||
@@ -13,8 +13,8 @@ tests:
|
||||
- name: suggests checking each LanceDB Cloud mention
|
||||
input: Connect to LanceDB Cloud with an API key. Cloud/Enterprise users get the cache.
|
||||
want: |
|
||||
1:12:LanceDB.LegacyCloud:'LanceDB Cloud' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise' or 'LanceDB Distributed'.
|
||||
1:43:LanceDB.LegacyCloud:'Cloud/Enterprise' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise' or 'LanceDB Distributed'.
|
||||
1:12:LanceDB.LegacyCloud:'LanceDB Cloud' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise'.
|
||||
1:43:LanceDB.LegacyCloud:'Cloud/Enterprise' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise'.
|
||||
- name: leaves other clouds and code alone
|
||||
input: |
|
||||
Deploy into your own cloud account on Google Cloud. Pass `LanceDB Cloud` as a literal.
|
||||
|
||||
@@ -9,6 +9,7 @@ swap:
|
||||
'(?:Lancedb|LanceDb|lanceDB|LANCEDB|Lance DB)': LanceDB
|
||||
'LanceDB (?:cloud|CLOUD)': LanceDB Cloud
|
||||
'LanceDB (?:enterprise|ENTERPRISE)': LanceDB Enterprise
|
||||
'LanceDB\s+Distributed': LanceDB Enterprise
|
||||
'(?:HuggingFace|Huggingface|Hugging face)': Hugging Face
|
||||
Langchain: LangChain
|
||||
Typescript: TypeScript
|
||||
@@ -31,3 +32,11 @@ tests:
|
||||
input: |
|
||||
The lancedb package exposes `HuggingFaceEmbeddings` and LanceDBConnection; see `Typescript` in code.
|
||||
want: ''
|
||||
- name: uses Enterprise for the product and its execution model
|
||||
input: Connect to LanceDB Distributed.
|
||||
want: |
|
||||
1:12:LanceDB.ProductNames:Use 'LanceDB Enterprise' instead of 'LanceDB Distributed'.
|
||||
- name: keeps technical descriptions and API identifiers
|
||||
input: |
|
||||
LanceDB Enterprise supports distributed search. Compare Embedded and Enterprise. Distributed training uses workers. `LanceDB Distributed` and `RemoteTable` are literal code.
|
||||
want: ''
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
extends: existence
|
||||
message: "Avoid '%s'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product."
|
||||
message: "Avoid '%s'. Write 'LanceDB Enterprise' and describe where the operation runs directly."
|
||||
link: https://github.com/lancedb/docs/blob/main/STYLE.md#names
|
||||
level: warning
|
||||
ignorecase: false
|
||||
@@ -11,18 +11,18 @@ tests:
|
||||
- name: flags remote as the execution model
|
||||
input: In remote mode, a remote table is opened through a remote connection.
|
||||
want: |
|
||||
1:4:LanceDB.RemoteExecution:Avoid 'remote mode'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product.
|
||||
1:19:LanceDB.RemoteExecution:Avoid 'remote table'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product.
|
||||
1:52:LanceDB.RemoteExecution:Avoid 'remote connection'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product.
|
||||
1:4:LanceDB.RemoteExecution:Avoid 'remote mode'. Write 'LanceDB Enterprise' and describe where the operation runs directly.
|
||||
1:19:LanceDB.RemoteExecution:Avoid 'remote table'. Write 'LanceDB Enterprise' and describe where the operation runs directly.
|
||||
1:52:LanceDB.RemoteExecution:Avoid 'remote connection'. Write 'LanceDB Enterprise' and describe where the operation runs directly.
|
||||
- name: flags plurals and a heading
|
||||
input: |
|
||||
## Remote tables
|
||||
|
||||
Remote databases hold remote tables.
|
||||
want: |
|
||||
1:4:LanceDB.RemoteExecution:Avoid 'Remote tables'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product.
|
||||
3:1:LanceDB.RemoteExecution:Avoid 'Remote databases'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product.
|
||||
3:23:LanceDB.RemoteExecution:Avoid 'remote tables'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product.
|
||||
1:4:LanceDB.RemoteExecution:Avoid 'Remote tables'. Write 'LanceDB Enterprise' and describe where the operation runs directly.
|
||||
3:1:LanceDB.RemoteExecution:Avoid 'Remote databases'. Write 'LanceDB Enterprise' and describe where the operation runs directly.
|
||||
3:23:LanceDB.RemoteExecution:Avoid 'remote tables'. Write 'LanceDB Enterprise' and describe where the operation runs directly.
|
||||
- name: leaves other remotes and code alone
|
||||
input: |
|
||||
Push to the git remote, read remote storage and fetch a remote URL. `open_table` returns a `RemoteTable`; see `remote table` in the API.
|
||||
|
||||
+3
-3
@@ -72,7 +72,7 @@ are wrappers around the Rust library.
|
||||
* `node`: **Deprecated** Typescript package source code
|
||||
* `java`: Java package source code
|
||||
* `docs/src`: SDK reference, built with mkdocs
|
||||
* `docs/web`: website guides for LanceDB Embedded and the APIs used by both Embedded and Distributed
|
||||
* `docs/web`: website guides for LanceDB Embedded and the APIs used by both Embedded and Enterprise
|
||||
* `docs/web-tests`: the tests the documentation's code examples are extracted from
|
||||
|
||||
## Documentation
|
||||
@@ -84,13 +84,13 @@ it is ready for readers.
|
||||
### Choose the right place
|
||||
|
||||
- `docs/web/` holds website guides for LanceDB Embedded and the APIs used by both
|
||||
Embedded and Distributed.
|
||||
Embedded and Enterprise.
|
||||
- `docs/src/` holds the SDK reference. See [docs/README.md](docs/README.md) for
|
||||
its build and API-generation instructions.
|
||||
- `docs/web-tests/` and `rust/lancedb/tests/` hold tests used to generate the
|
||||
website's code examples.
|
||||
|
||||
Document SDK APIs here, and explain which operations work in Embedded and Distributed.
|
||||
Document SDK APIs here, and explain which operations work in Embedded and Enterprise.
|
||||
Put Enterprise-specific deployment and operating instructions in the Enterprise
|
||||
documentation.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
The LanceDB Java SDK provides a convenient way to interact with LanceDB Enterprise deployments using the Lance REST Namespace API.
|
||||
|
||||
!!! note
|
||||
The Java SDK currently only works with LanceDB Distributed, connecting to LanceDB Enterprise or LanceDB Cloud (legacy).
|
||||
The Java SDK currently only connects to LanceDB Enterprise or LanceDB Cloud (legacy).
|
||||
LanceDB Embedded support is a work in progress. Check [LANCEDB-2848](https://github.com/lancedb/lancedb/issues/2848) for the latest progress.
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -182,7 +182,7 @@ Define a materialized view named `name` over the table `source`.
|
||||
|
||||
LanceDB Embedded creation and refresh require a source build with the
|
||||
`experimental-functions` Cargo feature, disabled in published packages.
|
||||
LanceDB Distributed operations do not require this feature.
|
||||
LanceDB Enterprise operations do not require this feature.
|
||||
|
||||
The view is populated before creation returns. Set `withNoData` to create
|
||||
only its definition and empty backing table. The view is a normal table:
|
||||
@@ -826,7 +826,7 @@ abstract renameTable(
|
||||
|
||||
Rename a table.
|
||||
|
||||
Supported in LanceDB Distributed and by namespace backends that implement
|
||||
Supported in LanceDB Enterprise and by namespace backends that implement
|
||||
renaming. Directory namespaces support renaming tables resolved through their
|
||||
manifest, including tables within or across child namespaces. LanceDB Embedded
|
||||
connections and directory-listing root tables reject with a "not supported" error.
|
||||
|
||||
@@ -71,7 +71,7 @@ Add new columns with defined values.
|
||||
|
||||
LanceDB Embedded computed-column declaration and refresh require a source
|
||||
build with the `experimental-functions` Cargo feature. Published packages
|
||||
disable it; LanceDB Distributed operations remain available.
|
||||
disable it; LanceDB Enterprise operations remain available.
|
||||
|
||||
The `{ computed }` form stores the expression rather than evaluating it
|
||||
now: the column is committed with no values, and rows get them from
|
||||
@@ -83,7 +83,7 @@ computed, so a mutated input is reflected by the next refresh. 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
|
||||
[Table#refreshColumnAsync](Table.md#refreshcolumnasync).
|
||||
|
||||
@@ -686,7 +686,7 @@ The per-row errors Function refreshes recorded on this table.
|
||||
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 needs read
|
||||
capped. LanceDB Enterprise only; reading errors needs read
|
||||
access to the table, since a message carries the value that failed.
|
||||
|
||||
#### Parameters
|
||||
@@ -939,7 +939,7 @@ Prewarm one or more columns of data in the table.
|
||||
Prewarming is generally useful for columns used in filters or projections.
|
||||
Large columns (e.g. high-dimensional vectors or binary data) may not be
|
||||
practical to prewarm.
|
||||
This feature is currently only supported in LanceDB Distributed.
|
||||
This feature is currently only supported in LanceDB Enterprise.
|
||||
|
||||
#### Returns
|
||||
|
||||
@@ -1051,7 +1051,7 @@ Local refresh requires a source build with `experimental-functions`.
|
||||
Rows appended since the last refresh are filled by the next one, and
|
||||
rows whose inputs changed since they were computed are recomputed;
|
||||
everything else is left as it is. LanceDB Embedded only: in LanceDB
|
||||
Distributed a refresh runs as a server job, through [Table#refreshColumnAsync](Table.md#refreshcolumnasync).
|
||||
Enterprise a refresh runs as a server job, through [Table#refreshColumnAsync](Table.md#refreshcolumnasync).
|
||||
|
||||
#### Parameters
|
||||
|
||||
@@ -1076,14 +1076,14 @@ abstract refreshColumnAsync(column): Promise<Job>
|
||||
Like [Table#refreshColumn](Table.md#refreshcolumn), but returns a handle to the refresh
|
||||
job instead of blocking until it completes.
|
||||
LanceDB Embedded refresh requires a source build with
|
||||
`experimental-functions`. LanceDB Distributed jobs do not require this
|
||||
`experimental-functions`. LanceDB Enterprise jobs do not require this
|
||||
feature.
|
||||
|
||||
The job may already be complete when returned; callers must not assume
|
||||
the column is filled until [Job.wait](Job.md#wait) resolves. Invalid input --
|
||||
an unknown column, or one that is not computed -- rejects here rather
|
||||
than failing the job. In LanceDB Embedded the job runs in-process; in
|
||||
LanceDB Distributed it is the server's backfill job.
|
||||
LanceDB Enterprise it is the server's backfill job.
|
||||
|
||||
#### Parameters
|
||||
|
||||
@@ -1312,7 +1312,7 @@ Tokenize a full-text search query using the tokenizer configured on an FTS index
|
||||
Specify exactly one of `column` or `indexName`.
|
||||
|
||||
Model-backed tokenizers such as `jieba/*` and `lindera/*` are rebuilt in
|
||||
the client process from index metadata. In LanceDB Distributed, this means the
|
||||
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 differ from what the
|
||||
|
||||
@@ -19,7 +19,7 @@ optional allowExternalBlobOutsideBases: boolean;
|
||||
Whether blob URIs outside registered external bases may be written.
|
||||
|
||||
Defaults to `false`. This option is supported only in LanceDB Embedded;
|
||||
LanceDB Distributed returns an error when it is enabled. An enabled write
|
||||
LanceDB Enterprise returns an error when it is enabled. An enabled write
|
||||
stores the absolute URI reference without registering a base or copying
|
||||
the external object into the database. The object must remain accessible
|
||||
when the blob is read later.
|
||||
|
||||
@@ -31,7 +31,7 @@ optional createdAt: Date;
|
||||
|
||||
When the index was created.
|
||||
|
||||
`undefined` in LanceDB Distributed or indices created before timestamps were tracked.
|
||||
`undefined` in LanceDB Enterprise or indices created before timestamps were tracked.
|
||||
|
||||
***
|
||||
|
||||
@@ -44,7 +44,7 @@ optional indexDetails: any;
|
||||
Index-type-specific details parsed as a JavaScript object.
|
||||
|
||||
Falls back to a raw string if JSON parsing fails. `undefined` in
|
||||
LanceDB Distributed or when details are unavailable.
|
||||
LanceDB Enterprise or when details are unavailable.
|
||||
|
||||
***
|
||||
|
||||
@@ -66,7 +66,7 @@ optional indexUuid: string;
|
||||
|
||||
The UUID of the first segment of the index.
|
||||
|
||||
`undefined` in LanceDB Distributed, which does not yet surface this.
|
||||
`undefined` in LanceDB Enterprise, which does not yet surface this.
|
||||
|
||||
***
|
||||
|
||||
@@ -78,7 +78,7 @@ optional indexVersion: number;
|
||||
|
||||
The on-disk index format version.
|
||||
|
||||
`undefined` in LanceDB Distributed.
|
||||
`undefined` in LanceDB Enterprise.
|
||||
|
||||
***
|
||||
|
||||
@@ -100,7 +100,7 @@ optional numIndexedRows: number;
|
||||
|
||||
The number of rows indexed, across all segments.
|
||||
|
||||
May be `undefined` in LanceDB Distributed if the server does not report it.
|
||||
May be `undefined` in LanceDB Enterprise if the server does not report it.
|
||||
|
||||
***
|
||||
|
||||
@@ -112,7 +112,7 @@ optional numSegments: number;
|
||||
|
||||
The number of segments that make up the index.
|
||||
|
||||
`undefined` in LanceDB Distributed.
|
||||
`undefined` in LanceDB Enterprise.
|
||||
|
||||
***
|
||||
|
||||
@@ -124,7 +124,7 @@ optional numUnindexedRows: number;
|
||||
|
||||
The number of rows not yet covered by this index.
|
||||
|
||||
May be `undefined` in LanceDB Distributed if the server does not report it.
|
||||
May be `undefined` in LanceDB Enterprise if the server does not report it.
|
||||
|
||||
***
|
||||
|
||||
@@ -136,7 +136,7 @@ optional sizeBytes: number;
|
||||
|
||||
The total size in bytes of all index files across all segments.
|
||||
|
||||
`undefined` in LanceDB Distributed or indices without size tracking.
|
||||
`undefined` in LanceDB Enterprise or indices without size tracking.
|
||||
|
||||
***
|
||||
|
||||
@@ -148,4 +148,4 @@ optional typeUrl: string;
|
||||
|
||||
The protobuf type URL, a precise type identifier for the index.
|
||||
|
||||
`undefined` in LanceDB Distributed.
|
||||
`undefined` in LanceDB Enterprise.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
optional mode: string;
|
||||
```
|
||||
|
||||
How the view was brought up to date: "rebuild", or absent for LanceDB Distributed SQL refreshes.
|
||||
How the view was brought up to date: "rebuild", or absent for LanceDB Enterprise SQL refreshes.
|
||||
|
||||
***
|
||||
|
||||
@@ -24,7 +24,7 @@ How the view was brought up to date: "rebuild", or absent for LanceDB Distribute
|
||||
optional rowsWritten: number;
|
||||
```
|
||||
|
||||
Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes.
|
||||
Rows written by this refresh, or absent for LanceDB Enterprise SQL refreshes.
|
||||
|
||||
***
|
||||
|
||||
@@ -34,7 +34,7 @@ Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes.
|
||||
optional sourceVersion: number;
|
||||
```
|
||||
|
||||
Source version refreshed to, or absent for LanceDB Distributed SQL refreshes.
|
||||
Source version refreshed to, or absent for LanceDB Enterprise SQL refreshes.
|
||||
|
||||
***
|
||||
|
||||
|
||||
@@ -21,4 +21,4 @@ optional signal: AbortSignal;
|
||||
```
|
||||
|
||||
Cancels the read. The call rejects with `signal.reason`, and the native
|
||||
read stops, including in-flight requests to a LanceDB Distributed table.
|
||||
read stops, including in-flight requests to a LanceDB Enterprise table.
|
||||
|
||||
+11
-11
@@ -27,7 +27,7 @@ connect, per-table storage and write options on create, and `index_cache_size`,
|
||||
Omit these options to use server-managed storage and caching. Connection-level
|
||||
`storage_options` supported by an Enterprise deployment remain available.
|
||||
|
||||
The synchronous LanceDB Distributed `create_table` uses the same positional order as the
|
||||
The synchronous LanceDB Enterprise `create_table` uses the same positional order as the
|
||||
LanceDB Embedded API: `name, data, schema, mode, exist_ok, on_bad_vectors, fill_value,
|
||||
embedding_functions`. Prefer keyword arguments for optional parameters.
|
||||
|
||||
@@ -259,7 +259,7 @@ async for entry in catalog.authz.list_acls(subject=Subject.role("reader")):
|
||||
|
||||
## Remote SQL
|
||||
|
||||
Submit SQL against a LanceDB Distributed database through the connection.
|
||||
Submit SQL against a LanceDB Enterprise database through the connection.
|
||||
The connected database and `default_namespace_path=["public"]` are used for
|
||||
unqualified tables. Fully qualified references can still query other databases
|
||||
and namespaces available to the same deployment. `execute_query` returns a
|
||||
@@ -340,24 +340,24 @@ listing a storage directory.
|
||||
|
||||
## Tables (Synchronous)
|
||||
|
||||
LanceDB Embedded and LanceDB Distributed tables use the same arguments for index creation, deletion,
|
||||
LanceDB Embedded and LanceDB Enterprise tables use the same arguments for index creation, deletion,
|
||||
index statistics, and search. For example, `table.delete(where="id = 1")`,
|
||||
`table.create_index("cosine", 2)` (the deprecated vector API), and
|
||||
`table.search([1.0, 1.0], fast_search=True)` work with either backend.
|
||||
`fast_search=True` excludes rows that have not been indexed.
|
||||
|
||||
`create_scalar_index` defaults to `replace=True` on both backends. Both scalar
|
||||
and full-text index creation accept `wait_timeout`. LanceDB Distributed maintenance methods
|
||||
and full-text index creation accept `wait_timeout`. LanceDB Enterprise maintenance methods
|
||||
accept the LanceDB Embedded options: cleanup and compaction warn that they are no-ops,
|
||||
while `optimize` reports an unsupported operation. Removed Tantivy options
|
||||
produce the same explanatory errors on both backends.
|
||||
|
||||
The old LanceDB Distributed keyword names `predicate` for `delete`, `index_name` for
|
||||
The old LanceDB Enterprise keyword names `predicate` for `delete`, `index_name` for
|
||||
`drop_index`, `index_uuid` for `index_stats`, and `column` for `create_fts_index`
|
||||
remain available with deprecation warnings. Use `where`, `name`, `index_name`,
|
||||
and `field_names`, respectively. For positional calls, use the argument order
|
||||
documented by `Table` below; specify index options by keyword when migrating
|
||||
code that used the former LanceDB Distributed-only argument order.
|
||||
code that used the former LanceDB Enterprise-only argument order.
|
||||
|
||||
::: lancedb.table.Table
|
||||
|
||||
@@ -466,11 +466,11 @@ scoped to each invocation and support `read`, `readinto`, `seek`, `tell`,
|
||||
In the 0.41 SDK release, LanceDB Embedded materialized-view creation and refresh require a
|
||||
source build with the `experimental-functions` Cargo feature. Published Python
|
||||
packages leave it disabled. Opening, reading, listing and dropping existing views
|
||||
remain available, as do LanceDB Distributed operations. The same feature
|
||||
remain available, as do LanceDB Enterprise operations. The same feature
|
||||
requirement applies to LanceDB Embedded SQL computed-column declaration and refresh; ordinary
|
||||
eager `add_columns` transforms remain available.
|
||||
|
||||
In LanceDB Distributed, creation accepts `auto_refresh_enabled` and
|
||||
In LanceDB Enterprise, creation accepts `auto_refresh_enabled` and
|
||||
`auto_refresh_interval_seconds`:
|
||||
|
||||
```python
|
||||
@@ -676,7 +676,7 @@ For external blob references, construct the descriptor struct described by
|
||||
[blob][lancedb.schema.blob], then wrap it with `pa.ExtensionArray.from_storage`.
|
||||
Inline `data` and external `uri` representations are mutually exclusive.
|
||||
|
||||
LanceDB Distributed SQL returns blob bytes by default. Select `blob_descriptor(video)` to
|
||||
LanceDB Enterprise SQL returns blob bytes by default. Select `blob_descriptor(video)` to
|
||||
return an openable reference instead, then use
|
||||
[`open_blob_file`][lancedb.table.Table.open_blob_file] or the lazy iterable
|
||||
[`open_blob_files`][lancedb.table.Table.open_blob_files]:
|
||||
@@ -693,7 +693,7 @@ for row in rows.to_pylist():
|
||||
frame = extract_frame(video, row["timestamp"])
|
||||
```
|
||||
|
||||
This example uses a LanceDB Distributed SQL connection that produces source-bearing
|
||||
This example uses a LanceDB Enterprise SQL connection that produces source-bearing
|
||||
descriptors. The descriptor contains `kind`, `position`, `size`, `blob_id`,
|
||||
`blob_uri`, and a `source` struct with `uri`, `version`, `committed_at_micros`,
|
||||
`branch`, `column`, `row_reference`, and `row_is_address`. The opener verifies
|
||||
@@ -725,7 +725,7 @@ async for video in async_videos.open_blob_files(rows["video"]):
|
||||
```
|
||||
|
||||
Payload bytes load on reads. Opening an external blob with unspecified size
|
||||
can issue a metadata-only HEAD request. LanceDB Distributed reads use authenticated range
|
||||
can issue a metadata-only HEAD request. LanceDB Enterprise reads use authenticated range
|
||||
requests that validate the captured URI and commit timestamp.
|
||||
|
||||
Blobs inside lists can be written and queried as descriptors. They are omitted
|
||||
|
||||
@@ -189,7 +189,7 @@ def test_function_version_binds_a_column(tmp_path):
|
||||
table = lancedb.connect(tmp_path).create_table("t", [{"value": 1.0}])
|
||||
with pytest.raises(
|
||||
NotImplementedError,
|
||||
match="Function columns are supported only in LanceDB Distributed",
|
||||
match="Function columns are supported only in LanceDB Enterprise",
|
||||
):
|
||||
table.add_columns({"doubled": application})
|
||||
|
||||
|
||||
@@ -97,10 +97,10 @@ Event responses have [row limits](/basics/limits#jobs). An explicit limit can
|
||||
request more than the default, but it does not guarantee a complete event
|
||||
history.
|
||||
|
||||
## Embedded and Distributed execution {#in-process}
|
||||
## Embedded and Enterprise execution {#in-process}
|
||||
|
||||
The following table describes LanceDB Embedded operations and registry jobs on
|
||||
LanceDB Distributed (provided by LanceDB Enterprise).
|
||||
LanceDB Enterprise.
|
||||
SQL-backed job handles follow the query lifecycle described below.
|
||||
|
||||
| | Embedded | Enterprise registry job |
|
||||
|
||||
@@ -9,9 +9,9 @@ keywords: ["python", "typescript", "rust", "java", "sdk", "rest", "api reference
|
||||
Use a LanceDB SDK to create tables, add data, build indexes and run searches
|
||||
from your application. Python, TypeScript and Rust work with both LanceDB
|
||||
Embedded and LanceDB Enterprise. LanceDB Embedded runs in your application's
|
||||
process; your data can live on local disk or in object storage. LanceDB
|
||||
Enterprise runs LanceDB Distributed: query execution, indexing and maintenance
|
||||
run on the Enterprise service, outside your application.
|
||||
process; your data can live on local disk or in object storage. In LanceDB
|
||||
Enterprise, query execution, indexing and maintenance run on the service,
|
||||
outside your application.
|
||||
|
||||
The [quickstart](/quickstart) includes installation instructions and complete
|
||||
examples in all three languages. For connection settings, see
|
||||
|
||||
+1
-1
@@ -102,7 +102,7 @@ and background work sized and scaled as separate components. A control plane gov
|
||||
and cluster lifecycle, separately from the data-plane components in the diagram below. See
|
||||
[Distributed search](/enterprise/distributed-search) for how query nodes and plan executors divide a request.
|
||||
|
||||

|
||||

|
||||
|
||||
Teams choose Enterprise to:
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ objects, and configure how your application reaches the data.
|
||||
| --- | --- | --- |
|
||||
| `./.lancedb` | LanceDB Embedded, with local storage | In your application |
|
||||
| `s3://bucket/path`, `gs://bucket/path`, `az://container/path` | LanceDB Embedded, with object storage | In your application |
|
||||
| `db://my-database` | LanceDB Enterprise | On the Enterprise service (LanceDB Distributed) |
|
||||
| `db://my-database` | LanceDB Enterprise | On the Enterprise service |
|
||||
|
||||
[Connect to LanceDB](/basics/catalog) has examples for each connection type.
|
||||
A connection to object storage still uses the embedded library: your process
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 1.3 MiB |
@@ -27,7 +27,7 @@ In **LanceDB Embedded**, a table handle sees its own committed writes. By defaul
|
||||
not automatically check for changes made through other handles or processes.
|
||||
Use a read consistency interval or `checkout_latest()` to pick up those changes.
|
||||
|
||||
In **LanceDB Distributed** (provided by LanceDB Enterprise), readers use the
|
||||
In **LanceDB Enterprise**, readers use the
|
||||
service's configured freshness policy.
|
||||
A connection can request fresher data. When a read must include a completed
|
||||
write, use a zero interval or call `checkout_latest()` after the write, with a
|
||||
@@ -38,13 +38,13 @@ client and server that support these freshness controls.
|
||||
Set `read_consistency_interval` when connecting. This controls when reads
|
||||
pick up newer table versions; it does not change how writes commit.
|
||||
|
||||
| Setting | Embedded | Distributed |
|
||||
| Setting | Embedded | Enterprise |
|
||||
| --- | --- | --- |
|
||||
| **Unset** | Keep the open table version until explicitly refreshed or changed by that handle. | Use the service's configured freshness policy. |
|
||||
| **Zero** | Check for the latest committed version on every read. | Request the latest committed version on every read. |
|
||||
| **Non-zero interval** | Check for updates on a read once the interval since the last check has elapsed. | Request data no older than the interval allows; the service may return fresher data. |
|
||||
|
||||
`checkout_latest()` explicitly refreshes an Embedded table handle. On Distributed it
|
||||
`checkout_latest()` explicitly refreshes an Embedded table handle. On Enterprise it
|
||||
asks subsequent reads on that handle to reflect data at least as recent as the
|
||||
refresh request. To read a fixed historical version instead, use
|
||||
[table versioning](/management/table#versioning).
|
||||
|
||||
@@ -115,14 +115,14 @@ describe("remote connection", () => {
|
||||
...options,
|
||||
mode: "overwrite",
|
||||
}),
|
||||
).rejects.toThrow(/write_options.*LanceDB Distributed/);
|
||||
).rejects.toThrow(/write_options.*LanceDB Enterprise/);
|
||||
await expect(
|
||||
db.createEmptyTable(
|
||||
"test",
|
||||
new Schema([new Field("value", new Int64(), true)]),
|
||||
options,
|
||||
),
|
||||
).rejects.toThrow(/write_options.*LanceDB Distributed/);
|
||||
).rejects.toThrow(/write_options.*LanceDB Enterprise/);
|
||||
},
|
||||
);
|
||||
expect(requests).toEqual([]);
|
||||
@@ -141,7 +141,7 @@ describe("remote connection", () => {
|
||||
await expect(
|
||||
db.openTable("test", undefined, options),
|
||||
).rejects.toThrow(
|
||||
/not supported for table access in LanceDB Distributed/,
|
||||
/not supported for table access in LanceDB Enterprise/,
|
||||
);
|
||||
},
|
||||
);
|
||||
@@ -318,7 +318,7 @@ describe("remote connection", () => {
|
||||
],
|
||||
];
|
||||
for (const [run, operation] of cases) {
|
||||
let message = `LanceDBError: not supported: ${operation} is not supported in LanceDB Distributed.`;
|
||||
let message = `LanceDBError: not supported: ${operation} is not supported in LanceDB Enterprise.`;
|
||||
if (operation === "IVF_HNSW_PQ") {
|
||||
message += " Please use IVF_HNSW_SQ instead.";
|
||||
}
|
||||
|
||||
@@ -4559,14 +4559,14 @@ describe.each(arrowVersions)(
|
||||
];
|
||||
const table = await db.createTable("prewarm_data_test", data);
|
||||
|
||||
// prewarmData is only supported in LanceDB Distributed. We verify the call
|
||||
// prewarmData is only supported in LanceDB Enterprise. We verify the call
|
||||
// is wired through napi and surfaces the expected error for both
|
||||
// arg shapes (undefined and string[]).
|
||||
await expect(table.prewarmData()).rejects.toThrow(
|
||||
"prewarm_data is currently only supported in LanceDB Distributed",
|
||||
"prewarm_data is currently only supported in LanceDB Enterprise",
|
||||
);
|
||||
await expect(table.prewarmData(["text"])).rejects.toThrow(
|
||||
"prewarm_data is currently only supported in LanceDB Distributed",
|
||||
"prewarm_data is currently only supported in LanceDB Enterprise",
|
||||
);
|
||||
});
|
||||
|
||||
@@ -5577,7 +5577,7 @@ describe("computed columns", () => {
|
||||
const db = await connect(tmpDir.name);
|
||||
const table = await db.createTable("errors_local", [{ x: 1 }]);
|
||||
await expect(table.functionErrors()).rejects.toThrow(
|
||||
"recorded only in LanceDB Distributed",
|
||||
"recorded only in LanceDB Enterprise",
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -274,7 +274,7 @@ export class BlobFile {
|
||||
export type BlobReadOptions = {
|
||||
/**
|
||||
* Cancels the read. The call rejects with `signal.reason`, and the native
|
||||
* read stops, including in-flight requests to a LanceDB Distributed table.
|
||||
* read stops, including in-flight requests to a LanceDB Enterprise table.
|
||||
*/
|
||||
signal?: AbortSignal;
|
||||
};
|
||||
|
||||
@@ -272,7 +272,7 @@ export abstract class Connection {
|
||||
*
|
||||
* LanceDB Embedded creation and refresh require a source build with the
|
||||
* `experimental-functions` Cargo feature, disabled in published packages.
|
||||
* LanceDB Distributed operations do not require this feature.
|
||||
* LanceDB Enterprise operations do not require this feature.
|
||||
*
|
||||
* The view is populated before creation returns. Set `withNoData` to create
|
||||
* only its definition and empty backing table. The view is a normal table:
|
||||
@@ -558,7 +558,7 @@ export abstract class Connection {
|
||||
/**
|
||||
* Rename a table.
|
||||
*
|
||||
* Supported in LanceDB Distributed and by namespace backends that implement
|
||||
* Supported in LanceDB Enterprise and by namespace backends that implement
|
||||
* renaming. Directory namespaces support renaming tables resolved through their
|
||||
* manifest, including tables within or across child namespaces. LanceDB Embedded
|
||||
* connections and directory-listing root tables reject with a "not supported" error.
|
||||
|
||||
@@ -129,7 +129,7 @@ export interface AddDataOptions {
|
||||
* Whether blob URIs outside registered external bases may be written.
|
||||
*
|
||||
* Defaults to `false`. This option is supported only in LanceDB Embedded;
|
||||
* LanceDB Distributed returns an error when it is enabled. An enabled write
|
||||
* LanceDB Enterprise returns an error when it is enabled. An enabled write
|
||||
* stores the absolute URI reference without registering a base or copying
|
||||
* the external object into the database. The object must remain accessible
|
||||
* when the blob is read later.
|
||||
@@ -443,7 +443,7 @@ export abstract class Table {
|
||||
* Large columns (e.g. high-dimensional vectors or binary data) may not be
|
||||
* practical to prewarm.
|
||||
*
|
||||
* This feature is currently only supported in LanceDB Distributed.
|
||||
* This feature is currently only supported in LanceDB Enterprise.
|
||||
*/
|
||||
abstract prewarmData(columns?: string[]): Promise<void>;
|
||||
|
||||
@@ -601,7 +601,7 @@ export abstract class Table {
|
||||
*
|
||||
* LanceDB Embedded computed-column declaration and refresh require a source
|
||||
* build with the `experimental-functions` Cargo feature. Published packages
|
||||
* disable it; LanceDB Distributed operations remain available.
|
||||
* disable it; LanceDB Enterprise operations remain available.
|
||||
*
|
||||
* The `{ computed }` form stores the expression rather than evaluating it
|
||||
* now: the column is committed with no values, and rows get them from
|
||||
@@ -613,7 +613,7 @@ export abstract class Table {
|
||||
* 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
|
||||
* {@link Table#refreshColumnAsync}.
|
||||
* @param {AddColumnsSql[] | Field | Field[] | Schema} newColumnTransforms Either:
|
||||
@@ -646,7 +646,7 @@ export abstract class Table {
|
||||
* Rows appended since the last refresh are filled by the next one, and
|
||||
* rows whose inputs changed since they were computed are recomputed;
|
||||
* everything else is left as it is. LanceDB Embedded only: in LanceDB
|
||||
* Distributed a refresh runs as a server job, through {@link Table#refreshColumnAsync}.
|
||||
* Enterprise a refresh runs as a server job, through {@link Table#refreshColumnAsync}.
|
||||
* @param {string} column The name of the computed column to fill.
|
||||
* @returns {Promise<RefreshColumnResult>} A promise that resolves to the
|
||||
* number of rows filled and the new version number of the table.
|
||||
@@ -657,14 +657,14 @@ export abstract class Table {
|
||||
* Like {@link Table#refreshColumn}, but returns a handle to the refresh
|
||||
* job instead of blocking until it completes.
|
||||
* LanceDB Embedded refresh requires a source build with
|
||||
* `experimental-functions`. LanceDB Distributed jobs do not require this
|
||||
* `experimental-functions`. LanceDB Enterprise jobs do not require this
|
||||
* feature.
|
||||
*
|
||||
* The job may already be complete when returned; callers must not assume
|
||||
* the column is filled until {@link Job.wait} resolves. Invalid input --
|
||||
* an unknown column, or one that is not computed -- rejects here rather
|
||||
* than failing the job. In LanceDB Embedded the job runs in-process; in
|
||||
* LanceDB Distributed it is the server's backfill job.
|
||||
* LanceDB Enterprise it is the server's backfill job.
|
||||
* @param {string} column The name of the computed column to fill.
|
||||
* @example
|
||||
* ```ts
|
||||
@@ -681,7 +681,7 @@ export abstract class Table {
|
||||
* 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 needs read
|
||||
* capped. LanceDB Enterprise only; reading errors needs read
|
||||
* access to the table, since a message carries the value that failed.
|
||||
* @param {FunctionErrorsOptions} options Optional filters: `jobId`,
|
||||
* `column`, and `limit` (server default 10000, cap 100000).
|
||||
@@ -1000,7 +1000,7 @@ export abstract class Table {
|
||||
* Specify exactly one of `column` or `indexName`.
|
||||
*
|
||||
* Model-backed tokenizers such as `jieba/*` and `lindera/*` are rebuilt in
|
||||
* the client process from index metadata. In LanceDB Distributed, this means the
|
||||
* 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 differ from what the
|
||||
|
||||
+14
-15
@@ -831,7 +831,7 @@ impl Table {
|
||||
self.inner_ref()?
|
||||
.as_native()
|
||||
.ok_or_else(|| lancedb::Error::NotSupported {
|
||||
message: "uses_v2_manifest_paths is not supported in LanceDB Distributed.".into(),
|
||||
message: "uses_v2_manifest_paths is not supported in LanceDB Enterprise.".into(),
|
||||
})
|
||||
.default_error()?
|
||||
.uses_v2_manifest_paths()
|
||||
@@ -844,8 +844,7 @@ impl Table {
|
||||
self.inner_ref()?
|
||||
.as_native()
|
||||
.ok_or_else(|| lancedb::Error::NotSupported {
|
||||
message: "migrate_manifest_paths_v2 is not supported in LanceDB Distributed."
|
||||
.into(),
|
||||
message: "migrate_manifest_paths_v2 is not supported in LanceDB Enterprise.".into(),
|
||||
})
|
||||
.default_error()?
|
||||
.migrate_manifest_paths_v2()
|
||||
@@ -868,40 +867,40 @@ pub struct IndexConfig {
|
||||
pub columns: Vec<String>,
|
||||
/// The UUID of the first segment of the index.
|
||||
///
|
||||
/// `undefined` in LanceDB Distributed, which does not yet surface this.
|
||||
/// `undefined` in LanceDB Enterprise, which does not yet surface this.
|
||||
pub index_uuid: Option<String>,
|
||||
/// The protobuf type URL, a precise type identifier for the index.
|
||||
///
|
||||
/// `undefined` in LanceDB Distributed.
|
||||
/// `undefined` in LanceDB Enterprise.
|
||||
pub type_url: Option<String>,
|
||||
/// When the index was created.
|
||||
///
|
||||
/// `undefined` in LanceDB Distributed or indices created before timestamps were tracked.
|
||||
/// `undefined` in LanceDB Enterprise or indices created before timestamps were tracked.
|
||||
pub created_at: Option<DateTime<Utc>>,
|
||||
/// The number of rows indexed, across all segments.
|
||||
///
|
||||
/// May be `undefined` in LanceDB Distributed if the server does not report it.
|
||||
/// May be `undefined` in LanceDB Enterprise if the server does not report it.
|
||||
pub num_indexed_rows: Option<i64>,
|
||||
/// The number of rows not yet covered by this index.
|
||||
///
|
||||
/// May be `undefined` in LanceDB Distributed if the server does not report it.
|
||||
/// May be `undefined` in LanceDB Enterprise if the server does not report it.
|
||||
pub num_unindexed_rows: Option<i64>,
|
||||
/// The total size in bytes of all index files across all segments.
|
||||
///
|
||||
/// `undefined` in LanceDB Distributed or indices without size tracking.
|
||||
/// `undefined` in LanceDB Enterprise or indices without size tracking.
|
||||
pub size_bytes: Option<i64>,
|
||||
/// The number of segments that make up the index.
|
||||
///
|
||||
/// `undefined` in LanceDB Distributed.
|
||||
/// `undefined` in LanceDB Enterprise.
|
||||
pub num_segments: Option<i32>,
|
||||
/// The on-disk index format version.
|
||||
///
|
||||
/// `undefined` in LanceDB Distributed.
|
||||
/// `undefined` in LanceDB Enterprise.
|
||||
pub index_version: Option<i32>,
|
||||
/// Index-type-specific details parsed as a JavaScript object.
|
||||
///
|
||||
/// Falls back to a raw string if JSON parsing fails. `undefined` in
|
||||
/// LanceDB Distributed or when details are unavailable.
|
||||
/// LanceDB Enterprise or when details are unavailable.
|
||||
pub index_details: Option<serde_json::Value>,
|
||||
}
|
||||
|
||||
@@ -1617,11 +1616,11 @@ impl From<lancedb::function::FunctionErrors> for FunctionErrors {
|
||||
|
||||
#[napi(object)]
|
||||
pub struct RefreshMaterializedViewResult {
|
||||
/// How the view was brought up to date: "rebuild", or absent for LanceDB Distributed SQL refreshes.
|
||||
/// How the view was brought up to date: "rebuild", or absent for LanceDB Enterprise SQL refreshes.
|
||||
pub mode: Option<String>,
|
||||
/// Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes.
|
||||
/// Rows written by this refresh, or absent for LanceDB Enterprise SQL refreshes.
|
||||
pub rows_written: Option<i64>,
|
||||
/// Source version refreshed to, or absent for LanceDB Distributed SQL refreshes.
|
||||
/// Source version refreshed to, or absent for LanceDB Enterprise SQL refreshes.
|
||||
pub source_version: Option<i64>,
|
||||
pub version: i64,
|
||||
}
|
||||
|
||||
@@ -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
@@ -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.
|
||||
"""
|
||||
|
||||
@@ -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.
|
||||
"""
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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].
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
|
||||
@@ -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 == []
|
||||
|
||||
@@ -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
@@ -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()?
|
||||
|
||||
@@ -288,7 +288,7 @@ impl BlobFile {
|
||||
}
|
||||
}
|
||||
|
||||
/// Physical byte offset in the data file. `None` on LanceDB Distributed handles. The
|
||||
/// Physical byte offset in the data file. `None` on LanceDB Enterprise handles. The
|
||||
/// server's byte-range route does not expose storage layout.
|
||||
pub fn position(&self) -> Option<u64> {
|
||||
match &self.inner {
|
||||
@@ -298,7 +298,7 @@ impl BlobFile {
|
||||
}
|
||||
}
|
||||
|
||||
/// Path of the data file holding the blob. `None` on LanceDB Distributed handles. The
|
||||
/// Path of the data file holding the blob. `None` on LanceDB Enterprise handles. The
|
||||
/// server's byte-range route does not expose storage layout.
|
||||
pub fn data_path(&self) -> Option<&Path> {
|
||||
match &self.inner {
|
||||
@@ -308,7 +308,7 @@ impl BlobFile {
|
||||
}
|
||||
}
|
||||
|
||||
/// Native storage layout. `None` on LanceDB Distributed handles. The server's
|
||||
/// Native storage layout. `None` on LanceDB Enterprise handles. The server's
|
||||
/// byte-range route does not expose layout.
|
||||
pub fn kind(&self) -> Option<lance_core::datatypes::BlobKind> {
|
||||
match &self.inner {
|
||||
@@ -318,7 +318,7 @@ impl BlobFile {
|
||||
}
|
||||
}
|
||||
|
||||
/// External URI for native handles. LanceDB Distributed handles do not expose storage URIs.
|
||||
/// External URI for native handles. LanceDB Enterprise handles do not expose storage URIs.
|
||||
pub fn uri(&self) -> Option<&str> {
|
||||
match &self.inner {
|
||||
BlobFileInner::Native(file) => file.uri(),
|
||||
|
||||
@@ -179,7 +179,7 @@ impl OpenTableBuilder {
|
||||
|
||||
/// Advanced parameters that can be used to customize table reads
|
||||
///
|
||||
/// LanceDB Distributed connections reject these parameters with [`Error::NotSupported`].
|
||||
/// LanceDB Enterprise connections reject these parameters with [`Error::NotSupported`].
|
||||
///
|
||||
/// If set, these will take precedence over any overlapping `OpenTableOptions` options
|
||||
pub fn lance_read_params(mut self, params: ReadParams) -> Self {
|
||||
@@ -338,7 +338,7 @@ pub struct CloneTableBuilder {
|
||||
request: CloneTableRequest,
|
||||
}
|
||||
|
||||
/// Builder for asynchronously executing a SQL statement on a LanceDB Distributed database.
|
||||
/// Builder for asynchronously executing a SQL statement on a LanceDB Enterprise database.
|
||||
pub struct ExecuteQueryAsyncBuilder {
|
||||
parent: Arc<dyn Database>,
|
||||
request: ExecuteQueryRequest,
|
||||
@@ -502,7 +502,7 @@ impl Connection {
|
||||
&self.internal
|
||||
}
|
||||
|
||||
/// Start executing SQL on a LanceDB Distributed database.
|
||||
/// Start executing SQL on a LanceDB Enterprise database.
|
||||
///
|
||||
/// The query can reference tables in other databases with SQL dot notation.
|
||||
/// Use [`ExecuteQueryAsyncBuilder::default_namespace_path`] to avoid qualifying
|
||||
@@ -1192,7 +1192,7 @@ impl Connection {
|
||||
|
||||
/// Rename a table in the database.
|
||||
///
|
||||
/// Supported in LanceDB Distributed and by namespace backends that implement
|
||||
/// Supported in LanceDB Enterprise and by namespace backends that implement
|
||||
/// renaming. Directory namespaces support renaming tables resolved through
|
||||
/// their manifest, including tables within or across child namespaces.
|
||||
/// Directory-listing root tables cannot be renamed.
|
||||
@@ -1252,7 +1252,7 @@ impl Connection {
|
||||
///
|
||||
/// The result describes configured hardware, not current free capacity.
|
||||
/// The principal needs System Usage permission. LanceDB Embedded and
|
||||
/// older Distributed servers without `GET /v1/gpu/classes` return
|
||||
/// older Enterprise servers without `GET /v1/gpu/classes` return
|
||||
/// [`Error::NotSupported`].
|
||||
pub async fn list_gpu_classes(&self) -> Result<Vec<GpuClass>> {
|
||||
self.database().list_gpu_classes().await
|
||||
@@ -1409,7 +1409,7 @@ impl Connection {
|
||||
/// For ListingDatabase, it is the equivalent DirectoryNamespace.
|
||||
/// For RemoteDatabase, it is the equivalent RestNamespace.
|
||||
///
|
||||
/// LanceDB Distributed connections using dynamic headers forward them through the
|
||||
/// LanceDB Enterprise connections using dynamic headers forward them through the
|
||||
/// namespace client's per-request context provider.
|
||||
pub async fn namespace_client(&self) -> Result<Arc<dyn lance_namespace::LanceNamespace>> {
|
||||
self.internal.namespace_client().await
|
||||
@@ -1420,7 +1420,7 @@ impl Connection {
|
||||
/// - impl_type: "dir" for DirectoryNamespace, "rest" for RestNamespace
|
||||
/// - properties: configuration properties for the namespace
|
||||
///
|
||||
/// LanceDB Distributed connections using dynamic headers cannot be exported because the
|
||||
/// LanceDB Enterprise connections using dynamic headers cannot be exported because the
|
||||
/// namespace client config only carries static headers.
|
||||
pub async fn namespace_client_config(
|
||||
&self,
|
||||
@@ -1747,7 +1747,7 @@ impl ConnectBuilder {
|
||||
|
||||
/// Enable or disable manifest-backed directory namespace mode for local
|
||||
/// native connections.
|
||||
/// LanceDB Distributed connections reject enabling this option with [`Error::NotSupported`].
|
||||
/// LanceDB Enterprise connections reject enabling this option with [`Error::NotSupported`].
|
||||
///
|
||||
/// When enabled, the connection uses the directory namespace database
|
||||
/// directly for all table operations and forces
|
||||
@@ -1783,7 +1783,7 @@ impl ConnectBuilder {
|
||||
}
|
||||
|
||||
/// Set a custom session for object stores and caching.
|
||||
/// LanceDB Distributed connections reject this option with [`Error::NotSupported`].
|
||||
/// LanceDB Enterprise connections reject this option with [`Error::NotSupported`].
|
||||
///
|
||||
/// By default, a new session with default configuration will be created.
|
||||
/// This method allows you to provide a custom session with your own
|
||||
@@ -1826,7 +1826,7 @@ impl ConnectBuilder {
|
||||
if provided {
|
||||
return Err(Error::NotSupported {
|
||||
message: format!(
|
||||
"{option} is not supported for LanceDB Distributed connections"
|
||||
"{option} is not supported for LanceDB Enterprise connections"
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ impl CreateTableBuilder {
|
||||
|
||||
/// Apply the given write options when writing the initial data
|
||||
///
|
||||
/// LanceDB Distributed connections reject explicit Lance write parameters with
|
||||
/// LanceDB Enterprise connections reject explicit Lance write parameters with
|
||||
/// [`Error::NotSupported`] instead of silently using server defaults.
|
||||
pub fn write_options(mut self, write_options: WriteOptions) -> Self {
|
||||
self.request.write_options = write_options;
|
||||
@@ -73,7 +73,7 @@ impl CreateTableBuilder {
|
||||
|
||||
/// Set multiple options for the storage layer.
|
||||
///
|
||||
/// Table-level storage options are not supported by LanceDB Distributed connections.
|
||||
/// Table-level storage options are not supported by LanceDB Enterprise connections.
|
||||
///
|
||||
/// Options already set on the connection will be inherited by the table,
|
||||
/// but can be overridden here.
|
||||
|
||||
@@ -194,7 +194,7 @@ impl CloneTableRequest {
|
||||
}
|
||||
}
|
||||
|
||||
/// A request to start a SQL statement on a LanceDB Distributed database.
|
||||
/// A request to start a SQL statement on a LanceDB Enterprise database.
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct ExecuteQueryRequest {
|
||||
/// The SQL text.
|
||||
@@ -308,7 +308,7 @@ fn function_catalog_not_supported<T>() -> Result<T> {
|
||||
|
||||
fn gpu_class_catalog_not_supported<T>() -> Result<T> {
|
||||
Err(crate::error::Error::NotSupported {
|
||||
message: "GPU class discovery is supported only by LanceDB Distributed".to_string(),
|
||||
message: "GPU class discovery is supported only by LanceDB Enterprise".to_string(),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -680,7 +680,7 @@ pub trait Database:
|
||||
message: "SQL is not supported by this database".into(),
|
||||
})
|
||||
}
|
||||
/// Start executing a SQL statement on a LanceDB Distributed database.
|
||||
/// Start executing a SQL statement on a LanceDB Enterprise database.
|
||||
async fn execute_query_async(
|
||||
&self,
|
||||
_request: ExecuteQueryRequest,
|
||||
|
||||
@@ -877,7 +877,7 @@ impl_json!(FunctionBinding);
|
||||
/// refresh [`crate::Job`].
|
||||
///
|
||||
/// LanceDB Embedded refresh jobs produce this value in process. LanceDB
|
||||
/// Distributed decodes the same value from the durable job's terminal payload.
|
||||
/// Enterprise decodes the same value from the durable job's terminal payload.
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct RefreshColumnResult {
|
||||
/// Rows assigned a value by this refresh.
|
||||
|
||||
@@ -482,47 +482,47 @@ pub struct IndexConfig {
|
||||
///
|
||||
/// An index may be made up of multiple segments, each with their own UUID.
|
||||
/// This is the UUID of the first segment. `None` if it could not be
|
||||
/// determined (e.g. in LanceDB Distributed, which does not yet surface this).
|
||||
/// determined (e.g. in LanceDB Enterprise, which does not yet surface this).
|
||||
pub index_uuid: Option<String>,
|
||||
/// The protobuf type URL, a precise type identifier for the index.
|
||||
///
|
||||
/// `None` if unavailable (e.g. in LanceDB Distributed).
|
||||
/// `None` if unavailable (e.g. in LanceDB Enterprise).
|
||||
pub type_url: Option<String>,
|
||||
/// When the index was created, taken as the minimum creation time across
|
||||
/// all segments.
|
||||
///
|
||||
/// `None` if unavailable, such as for indices created before creation
|
||||
/// timestamps were tracked, or in LanceDB Distributed.
|
||||
/// timestamps were tracked, or in LanceDB Enterprise.
|
||||
pub created_at: Option<DateTime<Utc>>,
|
||||
/// The number of rows indexed, across all segments.
|
||||
///
|
||||
/// This is approximate and may include rows that have since been deleted.
|
||||
/// `None` if unavailable (e.g. in LanceDB Distributed when the server
|
||||
/// `None` if unavailable (e.g. in LanceDB Enterprise when the server
|
||||
/// does not report it).
|
||||
pub num_indexed_rows: Option<u64>,
|
||||
/// The number of rows in the table that are not yet covered by this index.
|
||||
///
|
||||
/// Computed as the table's total row count minus [`Self::num_indexed_rows`].
|
||||
/// Optimizing the index will fold these rows into it. `None` if unavailable
|
||||
/// (e.g. in LanceDB Distributed when the server does not report it).
|
||||
/// (e.g. in LanceDB Enterprise when the server does not report it).
|
||||
pub num_unindexed_rows: Option<u64>,
|
||||
/// The total size in bytes of all index files across all segments.
|
||||
///
|
||||
/// `None` if size information is unavailable, such as for indices created
|
||||
/// before file sizes were tracked, or in LanceDB Distributed.
|
||||
/// before file sizes were tracked, or in LanceDB Enterprise.
|
||||
pub size_bytes: Option<u64>,
|
||||
/// The number of segments that make up the index.
|
||||
///
|
||||
/// `None` if unavailable (e.g. in LanceDB Distributed).
|
||||
/// `None` if unavailable (e.g. in LanceDB Enterprise).
|
||||
pub num_segments: Option<u32>,
|
||||
/// The on-disk index format version, taken from the first segment.
|
||||
///
|
||||
/// `None` if unavailable (e.g. in LanceDB Distributed).
|
||||
/// `None` if unavailable (e.g. in LanceDB Enterprise).
|
||||
pub index_version: Option<i32>,
|
||||
/// Index-type-specific details, serialized as JSON.
|
||||
///
|
||||
/// The shape of this JSON varies by index type. `None` if the details
|
||||
/// could not be produced (e.g. no plugin available) or in LanceDB Distributed.
|
||||
/// could not be produced (e.g. no plugin available) or in LanceDB Enterprise.
|
||||
pub index_details: Option<String>,
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
//! - `experimental-functions` - Opt in to local SQL computed-column declarations
|
||||
//! and refresh, and local materialized-view creation and refresh. Disabled by
|
||||
//! default, including in published Python and TypeScript packages. LanceDB
|
||||
//! Distributed operations, reading existing data, metadata protections,
|
||||
//! Enterprise operations, reading existing data, metadata protections,
|
||||
//! and ordinary eager `add_columns` transforms do not require this feature.
|
||||
//! - `huggingface` - Enable HuggingFace Hub integration for loading datasets from the Hub.
|
||||
//! - `fp16kernels` - Enable FP16 kernels for faster vector search on CPU.
|
||||
|
||||
@@ -171,7 +171,7 @@ pub(crate) fn physical_unnest(
|
||||
return Err(Error::NotSupported {
|
||||
message: format!(
|
||||
"'{name}' in FROM position is a Function; views over Function rows are \
|
||||
supported only in LanceDB Distributed"
|
||||
supported only in LanceDB Enterprise"
|
||||
),
|
||||
});
|
||||
}
|
||||
@@ -1665,7 +1665,7 @@ impl CreateMaterializedViewBuilder {
|
||||
self
|
||||
}
|
||||
|
||||
/// 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.
|
||||
pub fn auto_refresh_enabled(mut self, enabled: bool) -> Self {
|
||||
@@ -1673,7 +1673,7 @@ impl CreateMaterializedViewBuilder {
|
||||
self
|
||||
}
|
||||
|
||||
/// Set a positive, finite refresh interval in seconds in LanceDB Distributed.
|
||||
/// Set a positive, finite refresh interval in seconds in LanceDB Enterprise.
|
||||
/// When omitted, the server determines when to refresh.
|
||||
///
|
||||
/// ```no_run
|
||||
@@ -1766,7 +1766,7 @@ impl CreateMaterializedViewBuilder {
|
||||
crate::require_experimental_functions()?;
|
||||
if self.auto_refresh_enabled == Some(true) || self.auto_refresh_interval_seconds.is_some() {
|
||||
return Err(Error::NotSupported {
|
||||
message: "automatic materialized-view refresh requires LanceDB Distributed"
|
||||
message: "automatic materialized-view refresh requires LanceDB Enterprise"
|
||||
.to_string(),
|
||||
});
|
||||
}
|
||||
@@ -2015,7 +2015,7 @@ impl Connection {
|
||||
/// Start dropping a materialized view and return its job.
|
||||
///
|
||||
/// This validates that the named resource is a materialized view rather
|
||||
/// than an ordinary table. In LanceDB Distributed the job has type `query`
|
||||
/// than an ordinary table. In LanceDB Enterprise the job has type `query`
|
||||
/// and its ID identifies the SQL query. Waiting completes once the catalog
|
||||
/// binding is removed; physical cleanup continues in the background.
|
||||
///
|
||||
|
||||
@@ -444,8 +444,8 @@ pub trait QueryBase {
|
||||
/// # }
|
||||
/// ```
|
||||
///
|
||||
/// Note: Expression filters are not supported for LanceDB Distributed queries.
|
||||
/// Use [`QueryBase::only_if`] with SQL strings in LanceDB Distributed.
|
||||
/// Note: Expression filters are not supported for LanceDB Enterprise queries.
|
||||
/// Use [`QueryBase::only_if`] with SQL strings in LanceDB Enterprise.
|
||||
///
|
||||
/// Calling this multiple times combines the expressions with a logical AND
|
||||
/// rather than replacing the previous filter.
|
||||
@@ -1025,7 +1025,7 @@ impl Query {
|
||||
/// By default, there is no embedding model, and the input should be
|
||||
/// vector/slice of floats.
|
||||
/// NaN and infinite components are rejected with [`Error::InvalidInput`]
|
||||
/// after conversion to Float32, in both LanceDB Embedded and LanceDB Distributed.
|
||||
/// after conversion to Float32, in both LanceDB Embedded and LanceDB Enterprise.
|
||||
///
|
||||
/// If there is only one vector column (a column whose data type is a
|
||||
/// fixed size list of floats) then the column does not need to be specified.
|
||||
@@ -1269,7 +1269,7 @@ impl VectorQuery {
|
||||
/// result.
|
||||
///
|
||||
/// NaN and infinite components are rejected with [`Error::InvalidInput`]
|
||||
/// after conversion to Float32, in both LanceDB Embedded and LanceDB Distributed.
|
||||
/// after conversion to Float32, in both LanceDB Embedded and LanceDB Enterprise.
|
||||
pub fn add_query_vector(mut self, vector: impl IntoQueryVector) -> Result<Self> {
|
||||
self.request.add_query_vector(vector)?;
|
||||
Ok(self)
|
||||
|
||||
@@ -725,7 +725,7 @@ impl<S: HttpSend> Database for RemoteDatabase<S> {
|
||||
|
||||
async fn read_consistency(&self) -> Result<ReadConsistency> {
|
||||
Err(Error::NotSupported {
|
||||
message: "Getting the read consistency is not yet supported in LanceDB Distributed"
|
||||
message: "Getting the read consistency is not yet supported in LanceDB Enterprise"
|
||||
.to_string(),
|
||||
})
|
||||
}
|
||||
@@ -737,7 +737,7 @@ impl<S: HttpSend> Database for RemoteDatabase<S> {
|
||||
if request.with_no_data {
|
||||
return Err(Error::NotSupported {
|
||||
message:
|
||||
"materialized views in LanceDB Distributed must be populated during creation"
|
||||
"materialized views in LanceDB Enterprise must be populated during creation"
|
||||
.to_string(),
|
||||
});
|
||||
}
|
||||
@@ -1400,7 +1400,7 @@ impl<S: HttpSend> Database for RemoteDatabase<S> {
|
||||
if provided {
|
||||
return Err(Error::NotSupported {
|
||||
message: format!(
|
||||
"{option} is not supported for table creation in LanceDB Distributed"
|
||||
"{option} is not supported for table creation in LanceDB Enterprise"
|
||||
),
|
||||
});
|
||||
}
|
||||
@@ -1545,7 +1545,7 @@ impl<S: HttpSend> Database for RemoteDatabase<S> {
|
||||
if provided {
|
||||
return Err(Error::NotSupported {
|
||||
message: format!(
|
||||
"{option} is not supported for table access in LanceDB Distributed"
|
||||
"{option} is not supported for table access in LanceDB Enterprise"
|
||||
),
|
||||
});
|
||||
}
|
||||
@@ -2529,7 +2529,7 @@ mod tests {
|
||||
.execute()
|
||||
.await;
|
||||
assert!(matches!(result, Err(Error::NotSupported { message })
|
||||
if message.contains("write_options") && message.contains("LanceDB Distributed")));
|
||||
if message.contains("write_options") && message.contains("LanceDB Enterprise")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2602,7 +2602,7 @@ mod tests {
|
||||
] {
|
||||
let result = builder.execute().await;
|
||||
assert!(matches!(result, Err(Error::NotSupported { message })
|
||||
if message.contains(option) && message.contains("LanceDB Distributed")));
|
||||
if message.contains(option) && message.contains("LanceDB Enterprise")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2620,7 +2620,7 @@ mod tests {
|
||||
] {
|
||||
let result = builder.api_key("fake").region("us-east-1").execute().await;
|
||||
assert!(matches!(result, Err(Error::NotSupported { message })
|
||||
if message.contains(option) && message.contains("LanceDB Distributed")));
|
||||
if message.contains(option) && message.contains("LanceDB Enterprise")));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -612,7 +612,7 @@ impl<S: HttpSend> RemoteTable<S> {
|
||||
// Warn if train=false is specified since it's not meaningful
|
||||
if !index.train {
|
||||
log::warn!(
|
||||
"train=false has no effect in LanceDB Distributed. The index will be created empty and automatically populated in the background."
|
||||
"train=false has no effect in LanceDB Enterprise. The index will be created empty and automatically populated in the background."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -666,7 +666,7 @@ impl<S: HttpSend> RemoteTable<S> {
|
||||
}
|
||||
Index::IvfHnswPq(_) => {
|
||||
return Err(Error::NotSupported {
|
||||
message: "IVF_HNSW_PQ is not supported in LanceDB Distributed. Please use IVF_HNSW_SQ instead.".into(),
|
||||
message: "IVF_HNSW_PQ is not supported in LanceDB Enterprise. Please use IVF_HNSW_SQ instead.".into(),
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -1113,7 +1113,7 @@ impl<S: HttpSend> RemoteTable<S> {
|
||||
QueryFilter::Datafusion(expr) => expr_to_sql_string(expr)?,
|
||||
QueryFilter::Substrait(_) => {
|
||||
return Err(Error::NotSupported {
|
||||
message: "Substrait filters are not supported in LanceDB Distributed"
|
||||
message: "Substrait filters are not supported in LanceDB Enterprise"
|
||||
.to_string(),
|
||||
});
|
||||
}
|
||||
@@ -1163,7 +1163,7 @@ impl<S: HttpSend> RemoteTable<S> {
|
||||
if let Some(full_text_search) = ¶ms.full_text_search {
|
||||
if full_text_search.wand_factor.is_some() {
|
||||
return Err(Error::NotSupported {
|
||||
message: "Wand factor is not supported in LanceDB Distributed.".into(),
|
||||
message: "Wand factor is not supported in LanceDB Enterprise.".into(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3562,7 +3562,7 @@ impl<S: HttpSend> BaseTable for RemoteTable<S> {
|
||||
async fn optimize(&self, _action: OptimizeAction) -> Result<OptimizeStats> {
|
||||
self.check_mutable().await?;
|
||||
Err(Error::NotSupported {
|
||||
message: "optimize is not supported in LanceDB Distributed.".into(),
|
||||
message: "optimize is not supported in LanceDB Enterprise.".into(),
|
||||
})
|
||||
}
|
||||
async fn add_columns(
|
||||
@@ -6709,7 +6709,7 @@ mod tests {
|
||||
match result.unwrap_err() {
|
||||
Error::NotSupported { message } => assert_eq!(
|
||||
message,
|
||||
format!("{operation} is not supported in LanceDB Distributed.")
|
||||
format!("{operation} is not supported in LanceDB Enterprise.")
|
||||
),
|
||||
error => panic!("expected not-supported error, got {error}"),
|
||||
}
|
||||
@@ -6737,7 +6737,7 @@ mod tests {
|
||||
.unwrap_err();
|
||||
assert_not_supported_error(
|
||||
error,
|
||||
"IVF_HNSW_PQ is not supported in LanceDB Distributed. Please use IVF_HNSW_SQ instead.",
|
||||
"IVF_HNSW_PQ is not supported in LanceDB Enterprise. Please use IVF_HNSW_SQ instead.",
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
use std::{fmt, sync::Arc};
|
||||
|
||||
|
||||
+20
-20
@@ -653,7 +653,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync {
|
||||
async fn prewarm_index(&self, name: &str) -> Result<()>;
|
||||
/// Prewarm data for the table.
|
||||
///
|
||||
/// Currently only supported in LanceDB Distributed.
|
||||
/// Currently only supported in LanceDB Enterprise.
|
||||
/// If `columns` is `None`, all columns are prewarmed.
|
||||
async fn prewarm_data(&self, columns: Option<Vec<String>>) -> Result<()>;
|
||||
/// Get statistics about the index.
|
||||
@@ -848,7 +848,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync {
|
||||
/// Declare computed columns, each defined by a SQL expression.
|
||||
///
|
||||
/// Where the declaration is planned depends on the backend: a LanceDB Embedded
|
||||
/// table validates and types the expression itself, while a LanceDB Distributed
|
||||
/// table validates and types the expression itself, while a LanceDB Enterprise
|
||||
/// table sends the expression for the server to plan.
|
||||
async fn add_computed_columns(
|
||||
&self,
|
||||
@@ -867,7 +867,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync {
|
||||
_options: computed_columns::ComputedColumnOptions,
|
||||
) -> Result<AddColumnsResult> {
|
||||
Err(Error::NotSupported {
|
||||
message: "Function columns are supported only in LanceDB Distributed".into(),
|
||||
message: "Function columns are supported only in LanceDB Enterprise".into(),
|
||||
})
|
||||
}
|
||||
/// Fill a computed column's unfilled rows and recompute those whose
|
||||
@@ -915,7 +915,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync {
|
||||
_request: &crate::function::FunctionErrorsRequest,
|
||||
) -> Result<crate::function::FunctionErrors> {
|
||||
Err(Error::NotSupported {
|
||||
message: "per-row Function errors are recorded only in LanceDB Distributed".into(),
|
||||
message: "per-row Function errors are recorded only in LanceDB Enterprise".into(),
|
||||
})
|
||||
}
|
||||
/// Alter columns in the table.
|
||||
@@ -1042,7 +1042,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync {
|
||||
/// [`FieldMetadataUpdate::remove`] deletes a key and
|
||||
/// [`FieldMetadataUpdate::replace`] swaps the field's whole map.
|
||||
///
|
||||
/// The default returns `NotSupported`; Lance-backed and LanceDB Distributed tables override it.
|
||||
/// The default returns `NotSupported`; Lance-backed and LanceDB Enterprise tables override it.
|
||||
async fn update_field_metadata(
|
||||
&self,
|
||||
_updates: &[FieldMetadataUpdate],
|
||||
@@ -1313,7 +1313,7 @@ impl Table {
|
||||
///
|
||||
/// Native tables support both legacy blob v1 and blob v2 columns.
|
||||
/// Output matches `row_ids` in length and order. Null blobs are null;
|
||||
/// valid empty blobs contain empty byte strings. LanceDB Distributed limits individual
|
||||
/// valid empty blobs contain empty byte strings. LanceDB Enterprise limits individual
|
||||
/// requests to 1024 row ids and 64 MiB of blob bytes; the client
|
||||
/// splits requests and reads a single larger blob through the Range route.
|
||||
/// This method still materializes all bytes in memory, so prefer
|
||||
@@ -1365,7 +1365,7 @@ impl Table {
|
||||
/// ranges for the same blob. The output has the same length and order as
|
||||
/// the requests. Null blobs produce null output slots; empty ranges on
|
||||
/// non-null blobs produce empty byte strings.
|
||||
/// LanceDB Distributed tables read through version-pinned [`BlobFile`] handles using
|
||||
/// LanceDB Enterprise tables read through version-pinned [`BlobFile`] handles using
|
||||
/// HTTP byte-range requests.
|
||||
///
|
||||
/// `_rowid` values stay valid after compaction when the table has stable
|
||||
@@ -1624,7 +1624,7 @@ impl Table {
|
||||
}
|
||||
|
||||
/// See [Table::create_index]
|
||||
/// In LanceDB Distributed, this allows an optional wait_timeout to poll until asynchronous indexing is complete
|
||||
/// In LanceDB Enterprise, this allows an optional wait_timeout to poll until asynchronous indexing is complete
|
||||
pub fn create_index_with_timeout(
|
||||
&self,
|
||||
columns: &[impl AsRef<str>],
|
||||
@@ -1910,7 +1910,7 @@ impl Table {
|
||||
error_if_tagged_old_versions: Option<bool>,
|
||||
) -> Result<OptimizeStats> {
|
||||
let native = self.as_native().ok_or_else(|| Error::NotSupported {
|
||||
message: "optimize is not supported in LanceDB Distributed.".into(),
|
||||
message: "optimize is not supported in LanceDB Enterprise.".into(),
|
||||
})?;
|
||||
let prune = optimize::cleanup_old_versions_before(
|
||||
native,
|
||||
@@ -1940,7 +1940,7 @@ impl Table {
|
||||
/// [`freshness`](crate::table::freshness)); everything else is left as
|
||||
/// it is.
|
||||
///
|
||||
/// LanceDB Embedded only: in LanceDB Distributed a refresh runs as a server job, through
|
||||
/// LanceDB Embedded only: in LanceDB Enterprise a refresh runs as a server job, through
|
||||
/// [`Table::refresh_column_async`].
|
||||
///
|
||||
/// ```
|
||||
@@ -1958,7 +1958,7 @@ impl Table {
|
||||
/// Like [`Table::refresh_column`], with explicit refresh options.
|
||||
///
|
||||
/// [`RefreshColumnOptions::batch_size()`] caps rows per Function call in
|
||||
/// LanceDB Distributed and must be greater than zero when set.
|
||||
/// LanceDB Enterprise and must be greater than zero when set.
|
||||
/// [`RefreshColumnOptions::gpu_class()`] selects a GPU pool and
|
||||
/// [`RefreshColumnOptions::gpu_count()`] sets the aggregate GPU budget.
|
||||
/// These options have no effect on expression-backed columns in LanceDB
|
||||
@@ -1994,7 +1994,7 @@ impl Table {
|
||||
/// both expression-backed and Function-backed columns. Invalid input
|
||||
/// -- an unknown column, or one that is not computed -- is reported by
|
||||
/// this call rather than by the job. In LanceDB Embedded the job runs as an
|
||||
/// in-process task; in LanceDB Distributed it is the server's
|
||||
/// in-process task; in LanceDB Enterprise it is the server's
|
||||
/// backfill job.
|
||||
///
|
||||
/// ```
|
||||
@@ -2056,7 +2056,7 @@ impl Table {
|
||||
/// capped. Filter by job or column through the request; a listing that
|
||||
/// hit its limit reports [`FunctionErrors::truncated`].
|
||||
///
|
||||
/// LanceDB Distributed only, and the caller needs read access
|
||||
/// LanceDB Enterprise only, and the caller needs read access
|
||||
/// to the table, since a message carries the value that failed.
|
||||
///
|
||||
/// ```
|
||||
@@ -2436,7 +2436,7 @@ impl Table {
|
||||
/// Tokenize a full-text search 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, this means the
|
||||
/// the client process from index metadata. In LanceDB Enterprise, this means the
|
||||
/// same tokenizer model files must also exist locally, and must match the
|
||||
/// files the server uses: the client cannot detect a mismatch, so it may
|
||||
/// return tokens the server's index never produces. If the model files are
|
||||
@@ -2474,7 +2474,7 @@ impl Table {
|
||||
///
|
||||
/// The column must have exactly one FTS index. Model-backed tokenizers such
|
||||
/// as `jieba/*` and `lindera/*` are rebuilt in the client process from
|
||||
/// index metadata. In LanceDB Distributed, this means the same tokenizer model
|
||||
/// index metadata. In LanceDB Enterprise, this means the same tokenizer model
|
||||
/// files must also exist locally, and must match the files the server uses
|
||||
/// (see [`Self::tokenize`]).
|
||||
pub async fn tokenize_with_column(&self, query: &str, column: &str) -> Result<Vec<FtsToken>> {
|
||||
@@ -2563,7 +2563,7 @@ impl Table {
|
||||
/// Get the table URI (storage location)
|
||||
///
|
||||
/// Returns the full storage location of the table (e.g., S3/GCS path).
|
||||
/// In LanceDB Distributed, this fetches the location from the server via describe.
|
||||
/// In LanceDB Enterprise, this fetches the location from the server via describe.
|
||||
pub async fn uri(&self) -> Result<String> {
|
||||
self.inner.uri().await
|
||||
}
|
||||
@@ -2608,7 +2608,7 @@ impl Table {
|
||||
|
||||
/// Drop an index from the table.
|
||||
///
|
||||
/// Note: This is not yet available in LanceDB Distributed.
|
||||
/// Note: This is not yet available in LanceDB Enterprise.
|
||||
///
|
||||
/// This does not delete the index from disk, it just removes it from the table.
|
||||
/// To delete the index, run [`Self::optimize()`] after dropping the index.
|
||||
@@ -2641,7 +2641,7 @@ impl 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. This
|
||||
/// can reduce cold-start latency for subsequent queries. Currently only
|
||||
/// supported in LanceDB Distributed.
|
||||
/// 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 —
|
||||
@@ -3838,7 +3838,7 @@ impl BaseTable for NativeTable {
|
||||
|
||||
async fn prewarm_data(&self, _columns: Option<Vec<String>>) -> Result<()> {
|
||||
Err(Error::NotSupported {
|
||||
message: "prewarm_data is currently only supported in LanceDB Distributed.".into(),
|
||||
message: "prewarm_data is currently only supported in LanceDB Enterprise.".into(),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -4476,7 +4476,7 @@ mod tests {
|
||||
.await
|
||||
.unwrap_err();
|
||||
assert!(
|
||||
matches!(&err, Error::NotSupported { message } if message.contains("LanceDB Distributed")),
|
||||
matches!(&err, Error::NotSupported { message } if message.contains("LanceDB Enterprise")),
|
||||
"{err:?}"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -70,9 +70,9 @@ impl AddColumnsBuilder {
|
||||
/// expression names it.
|
||||
///
|
||||
/// LanceDB Embedded declaration and refresh require the `experimental-functions`
|
||||
/// Cargo feature. LanceDB Distributed operations do not require this feature.
|
||||
/// Cargo feature. LanceDB Enterprise operations do not require this feature.
|
||||
///
|
||||
/// 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
|
||||
/// [`Table::refresh_column_async`](super::Table::refresh_column_async).
|
||||
///
|
||||
|
||||
@@ -61,7 +61,7 @@ pub const AUTO_REFRESH_ENABLED_META_KEY: &str = "computed_column.auto_refresh_en
|
||||
pub const AUTO_REFRESH_INTERVAL_META_KEY: &str = "computed_column.auto_refresh_interval_seconds";
|
||||
|
||||
/// Scheduling settings persisted on each computed output. LanceDB Embedded
|
||||
/// stores these settings; automatic scheduling requires LanceDB Distributed.
|
||||
/// stores these settings; automatic scheduling requires LanceDB Enterprise.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
|
||||
#[serde(default, deny_unknown_fields)]
|
||||
pub struct ComputedColumnOptions {
|
||||
|
||||
@@ -59,18 +59,18 @@ use crate::{Error, Result};
|
||||
#[derive(Debug, Clone, Default)]
|
||||
#[non_exhaustive]
|
||||
pub struct RefreshColumnOptions {
|
||||
/// Maximum rows per Function call in LanceDB Distributed.
|
||||
/// Maximum rows per Function call in LanceDB Enterprise.
|
||||
///
|
||||
/// Must be greater than zero. `None` uses the server default. This has no
|
||||
/// effect on expression-backed columns in LanceDB Embedded.
|
||||
pub batch_size: Option<usize>,
|
||||
/// GPU class for Function workers in LanceDB Distributed.
|
||||
/// GPU class for Function workers in LanceDB Enterprise.
|
||||
///
|
||||
/// `None` keeps the Function's registered class, or the deployment default
|
||||
/// when the Function does not declare one.
|
||||
pub gpu_class: Option<String>,
|
||||
/// Positive aggregate GPU budget for Function workers in LanceDB
|
||||
/// Distributed.
|
||||
/// Enterprise.
|
||||
///
|
||||
/// `None` leaves the server's configured budget unchanged.
|
||||
pub gpu_count: Option<u32>,
|
||||
@@ -428,7 +428,7 @@ fn declared_expression(dataset: &Dataset, column: &str) -> Result<String> {
|
||||
match declaration.kind {
|
||||
ComputedColumnKind::Sql { expression } => Ok(expression),
|
||||
ComputedColumnKind::Function { .. } => Err(Error::NotSupported {
|
||||
message: "registered Function columns are refreshed only by a LanceDB Distributed job"
|
||||
message: "registered Function columns are refreshed only by a LanceDB Enterprise job"
|
||||
.into(),
|
||||
}),
|
||||
ComputedColumnKind::Unrecognized { kind } => Err(Error::NotSupported {
|
||||
|
||||
Reference in New Issue
Block a user