mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-16 00:32:26 +00:00
The earlier change dropped every statement that a materialized view's
source needs stable row ids, because main no longer requires them. That
holds for the local SDK only. Sophon main creates a view through SQL by
default with the creation checks of its pinned lancedb (00f5dd6f), which
predates #4373 and still rejects a source without stable row ids.
The refresh and management pages now say a local view needs no special
source and a deployment may still require stable row ids, and the
architecture, limits, table and database pages note that requirement.
The summaries say a refresh brings a view up to date instead of saying
it recomputes it, since a deployment may reconcile changes rather than
rebuild.
104 lines
3.6 KiB
Plaintext
104 lines
3.6 KiB
Plaintext
---
|
|
title: "Limits"
|
|
sidebarTitle: "Limits"
|
|
description: "The bounds you can actually hit, in one place."
|
|
icon: ruler
|
|
keywords: ["limits", "maximum", "quota", "constraints", "bounds"]
|
|
---
|
|
|
|
Limits worth designing around, collected so you do not have to find them by
|
|
hitting them. Each one is enforced -- where a value is refused rather than
|
|
clamped, that is stated, because the two fail very differently.
|
|
|
|
This page covers bounds that are the same for everyone. Deployment-specific
|
|
quotas -- storage, throughput, concurrency -- come from your deployment.
|
|
|
|
## Names {#names}
|
|
|
|
| Object | Maximum | |
|
|
| --- | --- | --- |
|
|
| Database | 64 characters | |
|
|
| Namespace | 64 characters | |
|
|
| Table | 128 characters | |
|
|
| Branch | 64 characters | |
|
|
|
|
A name must not be empty, and must not contain `$` or `:` -- both are reserved
|
|
as path delimiters, so a name holding one could not be addressed unambiguously.
|
|
Length is counted in characters, not bytes.
|
|
|
|
## Jobs {#jobs}
|
|
|
|
| | |
|
|
| --- | --- |
|
|
| `job.events()` default | 1,000 rows |
|
|
| `job.events()` maximum | 10,000 rows |
|
|
| `SHOW ERRORS ... LIMIT` | between 1 and 100,000 |
|
|
| Failed jobs scanned by one `SHOW ERRORS` | 32 |
|
|
|
|
<Warning>
|
|
`job.events()` **truncates silently**. A job that emits an event per fragment
|
|
will lose its tail unless you pass `limit` explicitly. This is the limit on this
|
|
page most likely to mislead you, because nothing in the result says it was cut.
|
|
</Warning>
|
|
|
|
`SHOW ERRORS` without `FOR JOB` scans the most recent failed jobs and stops at
|
|
32 of them. Narrow with `FOR JOB` when you need a specific one rather than a
|
|
survey.
|
|
|
|
See [Jobs](/basics/jobs).
|
|
|
|
## Schema and types {#schema}
|
|
|
|
| | |
|
|
| --- | --- |
|
|
| `map` with `keys_sorted = true` | rejected |
|
|
| `IVF_RQ` vector dimensions | must be divisible by 8 |
|
|
| FTS `max_token_length` | 40 by default; longer tokens are dropped |
|
|
|
|
Stable row ids **cannot be enabled after a table exists** -- the one schema
|
|
decision here that is genuinely irreversible. A deployment may require them on a
|
|
[materialized view](/management/materialized-view) source; a local view does
|
|
not.
|
|
|
|
See [Data types](/sql/data-types).
|
|
|
|
## SQL {#sql}
|
|
|
|
<Badge color="red">Enterprise</Badge>
|
|
|
|
| | |
|
|
| --- | --- |
|
|
| `TABLESAMPLE` percentage | 0 to 100, **refused** outside -- not clamped |
|
|
| `TABLESAMPLE (n ROWS)` | whole numbers only |
|
|
| `TABLESAMPLE BUCKET` | not supported |
|
|
| `TABLESAMPLE` on a WAL-backed table | not supported |
|
|
| `CREATE INDEX` | one column, server-chosen name |
|
|
| `REFRESH MATERIALIZED VIEW ... CASCADE` | parsed, not yet implemented |
|
|
|
|
A sampling percentage over 100 is an error rather than a full scan, because a
|
|
query asking for 150 percent has a mistake in it and reading it as 100 would
|
|
hide the mistake. See [Sampling](/sql/dql/sampling).
|
|
|
|
## What is unavailable where {#availability}
|
|
|
|
Not quotas, but the same class of surprise -- things that exist in one place and
|
|
not another.
|
|
|
|
| | |
|
|
| --- | --- |
|
|
| SQL on a local database | unavailable; `execute_query` raises |
|
|
| SQL methods in the TypeScript SDK | none; use a Flight SQL client |
|
|
| Function methods in the TypeScript SDK | none; use Python or SQL |
|
|
| Vector search in SQL | no SQL form; use a query builder |
|
|
| Geospatial `st_*` functions | behind a build feature LanceDB does not ship |
|
|
| `tableExists` / `namespaceExists` in TypeScript | not present |
|
|
| Server-side jobs on a local database | run in-process; `events()` raises |
|
|
|
|
See [SQL](/basics/sql) for why the first two hold.
|
|
|
|
## Nothing here is a quota {#not-quotas}
|
|
|
|
None of the above is a billing or capacity limit. Rows per table, table count,
|
|
storage, and request rate are bounded by your deployment rather than by the
|
|
format -- ask your deployment, not this page.
|