Skip to main content
server.LogicalVirtualTableBuilder Not exported: an exported type refers to it.

Type parameters

Hierarchy

  • TableDefinition<ReturnType<typeof object>> ↳ LogicalVirtualTableBuilder

Constructors

constructor

• new LogicalVirtualTableBuilder<Fields>(schemaFields)

Type parameters

Parameters

Overrides

TableDefinition&lt;ReturnType&lt;typeof v.object&lt;Fields&gt;&gt;&gt;.constructor

Properties

isSource

• Readonly isSource: false Type-only source ownership, preserved by every builder method.

Inherited from

TableDefinition.isSource

relations

• Readonly relations: Object Type-only declared relations, preserved by every builder method.

Inherited from

TableDefinition.relations

validator

• validator: VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>

Inherited from

TableDefinition.validator

virtualTableDefinition

• Readonly virtualTableDefinition: true

virtualRelations

• Private virtualRelations: VirtualRelations = {}

schemaFields

• Private Readonly schemaFields: Fields

Methods

declarationTarget

▸ Protected declarationTarget(): LogicalVirtualTableBuilder<Fields>

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.declarationTarget

copyDeclarationTo

▸ Protected copyDeclarationTo(target): void

Parameters

Returns

void

Inherited from

TableDefinition.copyDeclarationTo

access

▸ access(definition): LogicalVirtualTableBuilder<Fields> Authorize reads of this complete table or view, without filtering rows or redacting fields. View inputs must independently permit disclosure. The query returns null or the existing positive validity result; throwing refuses access. Declare at most 32 distinct ordinary policy input tables.

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.access ▸ access(definition): LogicalVirtualTableBuilder<Fields> Let the application’s members read and change this table’s rows and files, decided by the application’s member policies. The table must not already declare read access or a governing rule.

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.access ▸ access<R, B>(definition, ...binding): LogicalVirtualTableBuilder<Fields> & AccessTableBinding<R, B> Bind a semantic resource to this table’s storage. defineSchema infers its table identity and parent index, validates the field bindings, and installs the model’s read, write and disclosure policies.

Type parameters

Parameters

Returns

LogicalVirtualTableBuilder<Fields> & AccessTableBinding<R, B>

Inherited from

TableDefinition.access

input

▸ input(...limits): TableInput<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>> The operation arguments of this table’s documents, each file field an upload with its limits: args: reports.input({ files: { maxSize: "10 MB", maxFiles: 2 } }). Select the fields a caller may set with .pick(...) or .omit(...): args: invoices.input().omit("archived").

Parameters

Returns

TableInput<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>>

Inherited from

TableDefinition.input

writers

▸ writers(functions): LogicalVirtualTableBuilder<Fields> & { isWriterOwned: true }

Parameters

Returns

LogicalVirtualTableBuilder<Fields> & { isWriterOwned: true }

Inherited from

TableDefinition.writers

resourceRequests

▸ resourceRequests(options): LogicalVirtualTableBuilder<Fields> Declare the native access-request writer. Attach the access model’s read and original-basis write rules; ordinary mutations cannot change this table. Approval inserts the requested grant and schedules expiry in the decision’s transaction.

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.resourceRequests

retain

▸ retain(options): LogicalVirtualTableBuilder<Fields> Keep derived data in retained custody. A write into this table is not a release: the engine retains the writing transaction’s source read obligations for every custody container the row is in, and every later read of a row in that container must satisfy them under current source policy. by names the containers: _id or a top-level string field that begins a declared index, or several of them (_id first), one container per named field. keys: "registered" declares that the containers are identities this component creates: a row may only enter a container whose name is the identity of a row inserted into a registered table keyed by _id, or that a transaction which read nothing wrote first. Reads confined to one container then carry that container alone, and an unregistered name reveals nothing. The default, keys: "derived", allows a key taken from protected data, with one container field, and decides the absence of a key by every write the table ever received. Removing or rekeying custody requires a migration.

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.retain

erasable

▸ erasable(): LogicalVirtualTableBuilder<Fields> Seal every revision of this table’s rows under a key that belongs to that one record, so ctx.db.erase(id) reaches every retained copy of its content: history, write-ahead logs, database backups and its search index objects. Indexes may cover only top-level v.id fields, because index keys are stored outside the sealed row. Search indexes are allowed: erasing records rebuilds them without those records and destroys the key of the index they replace. Vector indexes, maintained aggregates and retained custody are refused. A table becomes or stops being erasable only while it is empty.

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.erasable

spatialKey

▸ spatialKey(field, source): LogicalVirtualTableBuilder<Fields> Declare that field holds the spatial index key of a location among this table’s other fields: .spatialKey("cell", \{ point: "location", accuracy: "accuracyMeters" \}), \{ longitude: "x", latitude: "y" \} or { shape: "area" }. Every write stores the key the engine derives (wgs84-zorder29-envelope-v1, null without a location), whatever the writer sent, so an ordinary index over field is a spatial index that @bijectionhq/datasets/geoIndex reads. Declare the field v.optional(v.int64()), or v.optional(v.union(v.int64(), v.null())) when a row may have no location, so writes leave it out; every stored row holds it. A source-owned table derives it on each captured row.

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.spatialKey

aggregate

▸ aggregate(name, options): LogicalVirtualTableBuilder<Fields> Maintain exact totals of this table per value of one to four top-level dimensions: a row count and, for each sum field (a required v.int64()), an exact sum. A measure may also be a grouping dimension when totals need equality filters on that measure. The engine updates them in the same commit as every write to the table and rebuilds them from the rows when the declaration first appears or its shape changes, so application summaries grouped by these dimensions — over the whole table, or restricted by equality on declared dimensions — are exact at any size instead of bounded by one read. A view that only scans this table is answered from them too, including one with its own .access() rule, which is then asked the same question as this table’s. Calendar totals. time: { field: "at", unit: "day" } stores a UTC bucket instead of each raw instant for that grouping field. Units are second, minute, hour, day, Monday-based week and calendar month. Compatible finer buckets answer coarser summaries, including quarter and year, only when the requested bucket contains complete stored buckets. Closed-open time ranges must align with the stored unit; put the time dimension immediately after any equality-pinned dimensions. Partial boundaries use the bounded ordinary read. Calendar totals do not provide indexed min/max. Values are milliseconds or exact UTC strings like 2026-03-02T12:34:56.789Z; null and missing stay distinct. Costs. A write adds its change to each group it touches as a new record and reads none, so concurrent writers of one group do not conflict; the engine folds a group’s records into one shortly after. While the totals are being built from existing rows, a writer conflicts only with the build step counting its row and once with the step that completes the build, and summaries use the bounded read until the build completes. One answer reads at most 256 matching non-empty groups and 4,096 unfolded records (compacting past that, until the engine catches up); a view’s grouped lookup reads at most 64 before it evaluates the group from its rows, within the view’s limits. An equality filter on a later dimension is reached by stepping over the distinct values of the unfiltered dimensions before it, at most 256 of them, so put the dimensions a scope filters on first. Once folded, records are one per distinct key, the product of the dimensions’ cardinalities at most. A sum past the int64 range refuses the summaries that serve it (overflow) until the rows fit again; writes are never refused. Extremes. A group’s smallest and largest sum value are not stored: they are read from an ordinary index whose fields are the grouped and filtered dimensions, in any order, then that field, e.g. .index("by_status_amount", ["status", "amount"]) for a summary of amount by status. Two single-row reads per group keep them exact under inserts, updates and deletes; without such an index a summary’s min/max are null and it names the index that would serve them. Visibility. A total covers every row. On a table with .access() it is served only with visibility: "collectionReaders", and the rule is then asked about the whole table (or the rows an equality filter pins) with the aggregated properties and target.covers: true: no row it counts is presented on its own. Protected maintained totals require the native access model, which enforces authority over every counted row. A custom read rule uses bounded row evaluation; declaring collectionReaders does not authorize its maintained totals. A group of a single row is served like any other: under a read rule the answer is fenced at release by the group terms it read, so deleting a counted row restarts it.

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.aggregate

govern

▸ govern(this, definition): LogicalVirtualTableBuilder<Fields> Check every net change to this locally owned table before commit. The query observes the complete tentative transaction. Return one result per change, in order (readAccessResults): null for clock-independent permission, or { validUntil } for bounded permission; throw to reject the changes. A bare result or a missing one refuses. This applies to every writer, including ordinary composed mutations; it is not a mutation wrapper. The object form confines private reads to declared input tables. Use basis: "original" to authorize permission changes from the transaction’s original state; ordinary governing queries retain final-state reads.

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.govern

unrestricted

▸ unrestricted(options): LogicalVirtualTableBuilder<Fields> Declare that application functions read and change this table without table rules, as they do every table of a schema without strict access coverage. A schema with accessCoverage: "strict" requires every table to carry its rules or this declaration, so an open table is a visible, reviewed choice. It removes only table-level authorization: rows still carry the read obligations of the information written into them, and the table’s other declarations still apply. It cannot be combined with .access(...) or .govern(...).

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

Inherited from

TableDefinition.unrestricted
▸ link<Fields, Names>(this, endpoints, names?): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, LinkRelations<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Fields, Names>> Declare a binary association on required typed ID fields. Each bound counts live associations incident on an endpoint. A nonzero minimum applies to every live row in that endpoint’s declared table. Endpoints are immutable; ending and restoring a pair preserves its retained identity. Native identity and commit enforcement are required for admission. One endpoint may name _storage when its minimum is zero and the relationship declares read access and a governing rule. Such attachments require sealed content and preserve the file’s existing source restrictions. Each endpoint is a required reference of the link table, with the same navigation defaults as reference: as reaches the endpoint from a link row, inverse (default: this table’s name) lists an endpoint’s incident link rows, and opposite, when named, lists the endpoints linked to it. A link between two rows of one table needs explicit names for both roles.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, LinkRelations<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Fields, Names>>

Inherited from

TableDefinition.link

reference

▸ reference<Field, Options>(this, field, options?): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, ReferenceRelation<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Field, Options>> Declare a top-level typed ID field as an enforced reference. The deployment keeps it true at every commit, for every writer: the field names a live row of its table, deleting a row still referenced is refused, and the rows naming one target stay within inverse.count (default [0, "many"]; [0, 1] makes it one-to-one, a positive minimum requires every target row to be referenced). The field may be optional; changing it moves the reference, checking both targets. It also names navigation for ctx.db.related and the application: as (default: the field without its _id suffix) reaches the target, and inverse.as (default: this table’s name) lists the rows naming a target. Names are unique among a table’s fields and navigations; a collision is refused, never resolved by order. An undeclared v.id keeps its plain meaning.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, ReferenceRelation<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Field, Options>>

Inherited from

TableDefinition.reference

source

▸ source<S>(this, handle, options?): TableDefinition<VObject<Expand<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }> & HostSourceFields>, Expand<Fields & HostSourceFieldValidators>, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Expand<Fields & HostSourceFieldValidators>[Property][“fieldPaths”]}` }[keyof Expand<Fields & HostSourceFieldValidators>] & string>, {}, {}, {}, true, {}> Bind this table to an integration collection, which then owns its rows. require declares the evidence every query and mutation read of the table requires; see SourceReadRequirement.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }> & HostSourceFields>, Expand<Fields & HostSourceFieldValidators>, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Expand<Fields & HostSourceFieldValidators>[Property][“fieldPaths”]}` }[keyof Expand<Fields & HostSourceFieldValidators>] & string>, {}, {}, {}, true, {}>

Inherited from

TableDefinition.source

isLocalRetained

▸ ** isLocalRetained**(): boolean

Returns

boolean

Inherited from

TableDefinition. isLocalRetained

isLocal

▸ ** isLocal**(): boolean

Returns

boolean

Inherited from

TableDefinition. isLocal

indexes

▸ ** indexes**(): { indexDescriptor: string ; fields: string[] }[] This API is experimental: it may change or disappear. Returns indexes defined on this table. Intended for the advanced use cases of dynamically deciding which index to use for a query. If you think you need this, please chime in on ths issue in the Bijection JS GitHub repo.

Returns

{ indexDescriptor: string ; fields: string[] }[]

Inherited from

TableDefinition.[ indexes](server.TableDefinition.md# indexes)

index

▸ index<IndexName, FirstFieldPath, RestFieldPaths>(name, indexConfig): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Expand<Record<IndexName, [FirstFieldPath, …RestFieldPaths[], "_creationTime"]>>, {}, {}, false, {}> Define an index on this table. Indexes speed up queries by allowing efficient lookups on specific fields. Use .withIndex() in your queries to leverage them. Index fields must be queried in the same order they are defined. If you need to query by field2 then field1, create a separate index with that field order. Example
Best practice: Always include all index fields in the index name (e.g., "by_field1_and_field2"). See https://docs.bijection.com/database/reading-data/indexes

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Expand<Record<IndexName, [FirstFieldPath, …RestFieldPaths[], "_creationTime"]>>, {}, {}, false, {}> A TableDefinition with this index included.

Inherited from

TableDefinition.index ▸ index<IndexName, FirstFieldPath, RestFieldPaths>(name, fields): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Expand<Record<IndexName, [FirstFieldPath, …RestFieldPaths[], "_creationTime"]>>, {}, {}, false, {}> Define an index on this table. To learn about indexes, see Defining Indexes.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, Expand<Record<IndexName, [FirstFieldPath, …RestFieldPaths[], "_creationTime"]>>, {}, {}, false, {}> A TableDefinition with this index included.

Inherited from

TableDefinition.index ▸ index<IndexName, FirstFieldPath, RestFieldPaths>(name, indexConfig): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}> Define a staged index on this table. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true, the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. To learn about indexes, see Defining Indexes.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}> A TableDefinition with this index included.

Inherited from

TableDefinition.index

searchIndex

▸ searchIndex<IndexName, SearchField, FilterFields>(name, indexConfig): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, Expand<Record<IndexName, { searchField: SearchField ; filterFields: FilterFields }>>, {}, false, {}> Define a search index on this table. To learn about search indexes, see Search.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, Expand<Record<IndexName, { searchField: SearchField ; filterFields: FilterFields }>>, {}, false, {}> A TableDefinition with this search index included.

Inherited from

TableDefinition.searchIndex ▸ searchIndex<IndexName, SearchField, FilterFields>(name, indexConfig): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}> Define a staged search index on this table. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true, the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. To learn about search indexes, see Search.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}> A TableDefinition with this search index included.

Inherited from

TableDefinition.searchIndex

vectorIndex

▸ vectorIndex<IndexName, VectorField, FilterFields>(name, indexConfig): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, Expand<Record<IndexName, { vectorField: VectorField ; dimensions: number ; filterFields: FilterFields }>>, false, {}> Define a vector index on this table. To learn about vector indexes, see Vector Search.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, Expand<Record<IndexName, { vectorField: VectorField ; dimensions: number ; filterFields: FilterFields }>>, false, {}> A TableDefinition with this vector index included.

Inherited from

TableDefinition.vectorIndex ▸ vectorIndex<IndexName, VectorField, FilterFields>(name, indexConfig): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}> Define a staged vector index on this table. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true, the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. To learn about vector indexes, see Vector Search.

Type parameters

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}> A TableDefinition with this vector index included.

Inherited from

TableDefinition.vectorIndex

staged

▸ staged(documentSchema): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}>

Parameters

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}>

Inherited from

TableDefinition.staged

self

▸ Protected self(): TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}> Work around for https://github.com/microsoft/TypeScript/issues/57035

Returns

TableDefinition<VObject<Expand<{ [Property in string | number | symbol]?: Exclude<Infer<Fields[Property]>, undefined> } & { [Property in string | number | symbol]: Infer<Fields[Property]> }>, Fields, "required", { [Property in string | number | symbol]: Property | `\{Property & string}.{Fields[Property][“fieldPaths”]}` }[keyof Fields] & string>, {}, {}, {}, false, {}>

Inherited from

TableDefinition.self

[accessStorage]

▸ [accessStorage](): Object

Returns

Object

Inherited from

TableDefinition.[accessStorage]

export

▸ export(): Object

Returns

Object

Inherited from

TableDefinition.export

key

▸ key(...fields): LogicalVirtualTableBuilder<Fields>

Parameters

Returns

LogicalVirtualTableBuilder<Fields>
▸ navigation(name, reference): LogicalVirtualTableBuilder<Fields>

Parameters

Returns

LogicalVirtualTableBuilder<Fields>

virtualTableBinding

▸ virtualTableBinding(): Object

Returns

Object