Trigger an asynchronous backfill job for a computed column on table id. The column must be a virtual (UDF-backed) column or a computed column declared with an expression binding. Returns a job ID for tracking.
Analyze the query execution plan for a query against table id. Returns detailed statistics and analysis of the query execution plan. REST NAMESPACE ONLY REST namespace returns the response as a plain string instead of the AnalyzeTableQueryPlanResponse JSON object.
Atomically commit a batch of table operations. This is a generalized version of BatchCreateTableVersions that supports mixed operation types within a single atomic transaction at the metadata layer. Supported operation types: - DeclareTable: Declare (reserve) a new table - CreateTableVersion: Create a new version entry for a table - DeleteTableVersions: Delete version ranges from a table - DeregisterTable: Deregister (soft-delete) a table All operations are committed atomically: either all succeed or none are applied.
Atomically create new version entries for multiple tables. This operation is atomic: either all table versions are created successfully, or none are created. If any version creation fails (e.g., due to conflict), the entire batch operation fails. Each entry in the request specifies the table identifier and version details. This supports put_if_not_exists semantics for each version entry.
Delete version metadata records for table id. This operation deletes version tracking records, NOT the actual table data. It supports deleting ranges of versions for efficient bulk cleanup. Special range values: - start_version: 0 with end_version: -1 means delete ALL version records
Count the number of rows in table id REST NAMESPACE ONLY REST namespace returns the response as a plain integer instead of the CountTableRowsResponse JSON object. The REST response maps to the CountTableRowsResponse model as follows: - the integer response body maps to count - response headers map to context via the header. prefix (see the Context schema)
Create table id in the namespace with the given data in Arrow IPC stream. The schema of the Arrow IPC stream is used as the table schema. If the stream is empty, the API creates a new empty table. REST NAMESPACE ONLY REST namespace uses Arrow IPC stream as the request body. It passes in the CreateTableRequest information in the following way: - id: pass through path parameter of the same name - mode: pass through query parameter of the same name - properties: serialize as a single JSON-encoded query parameter such as properties={\"user\":\"alice\",\"team\":\"eng\"}; these are business logic properties managed by the namespace implementation outside Lance context - storage_options: serialize as a single JSON-encoded query parameter such as storage_options={\"aws_region\":\"us-east-1\",\"timeout\":\"30s\"}; these configure write-time overrides for data and metadata written during table creation
Create an index on a table field for faster search operations. Supports vector indexes (IVF_FLAT, IVF_HNSW_SQ, IVF_PQ, etc.) and scalar indexes (BTREE, BITMAP, FTS, etc.). Index creation is handled asynchronously. Use the ListTableIndices and DescribeTableIndexStats operations to monitor index creation progress.
Create a scalar index on a table field for faster filtering operations. Supports scalar indexes (BTREE, BITMAP, LABEL_LIST, FTS, etc.). This is an alias for CreateTableIndex specifically for scalar indexes. Index creation is handled asynchronously. Use the ListTableIndices and DescribeTableIndexStats operations to monitor index creation progress.
Create a new version entry for table id. This operation supports put_if_not_exists semantics. The operation will fail with 409 Conflict if the version already exists.
Declare a table with the given name without touching storage. This is a metadata-only operation that records the table existence and sets up aspects like access control. For DirectoryNamespace implementation, this creates a .lance-reserved file in the table directory to mark the table’s existence without creating actual Lance data files.
Describe the detailed information for table id. REST NAMESPACE ONLY REST namespace passes with_table_uri, load_detailed_metadata, and check_declared as query parameters instead of in the request body.
Drop table id and delete its data. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The DropTableRequest information is passed in the following way: - id: pass through path parameter of the same name
Drop the specified index from table id. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The DropTableIndexRequest information is passed in the following way: - id: pass through path parameter of the same name - index_name: pass through path parameter of the same name
Get the query execution plan for a query against table id. Returns a human-readable explanation of how the query will be executed. REST NAMESPACE ONLY REST namespace returns the response as a plain string instead of the ExplainTableQueryPlanResponse JSON object.
Insert new records into table id. For tables that have been declared but not yet created on storage (is_only_declared=true), this operation will create the table with the provided data. REST NAMESPACE ONLY REST namespace uses Arrow IPC stream as the request body. It passes in the InsertIntoTableRequest information in the following way: - id: pass through path parameter of the same name - mode: pass through query parameter of the same name
List all tables across all namespaces. REST NAMESPACE ONLY REST namespace uses GET to perform this operation without a request body. It passes in the ListAllTablesRequest information in the following way: - page_token: pass through query parameter of the same name - limit: pass through query parameter of the same name - delimiter: pass through query parameter of the same name - include_declared: pass through query parameter of the same name
List all branches that have been created for table id. Returns a map of branch names to their contents. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The ListTableBranchesRequest information is passed in the following way: - id: pass through path parameter of the same name - page_token: pass through query parameter of the same name - limit: pass through query parameter of the same name
List all tags that have been created for table id. Returns a map of tag names to their corresponding version numbers and metadata. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The ListTableTagsRequest information is passed in the following way: - id: pass through path parameter of the same name - page_token: pass through query parameter of the same name - limit: pass through query parameter of the same name
List all versions (commits) of table id with their metadata. Use descending=true to guarantee versions are returned in descending order (latest to oldest). Otherwise, the ordering is implementation-defined. REST NAMESPACE ONLY REST namespace does not use a request body for this operation. The ListTableVersionsRequest information is passed in the following way: - id: pass through path parameter of the same name - page_token: pass through query parameter of the same name - limit: pass through query parameter of the same name - descending: pass through query parameter of the same name
List all child table names of the parent namespace id. REST NAMESPACE ONLY REST namespace uses GET to perform this operation without a request body. It passes in the ListTablesRequest information in the following way: - id: pass through path parameter of the same name - page_token: pass through query parameter of the same name - limit: pass through query parameter of the same name - include_declared: pass through query parameter of the same name
Performs a merge insert (upsert) operation on table id. This operation updates existing rows based on one or more matching columns and inserts new rows that don’t match. It returns the number of rows inserted and updated. For tables that have been declared but not yet created on storage (is_only_declared=true), this operation will create the table with the provided data (since there are no existing rows to merge with). REST NAMESPACE ONLY REST namespace uses Arrow IPC stream as the request body. It passes in the MergeInsertIntoTableRequest information in the following way: - id: pass through path parameter of the same name - on: pass through query parameter of the same name, repeated once per field path - when_matched_update_all: pass through query parameter of the same name - when_matched_update_all_filt: pass through query parameter of the same name - when_not_matched_insert_all: pass through query parameter of the same name - when_not_matched_by_source_delete: pass through query parameter of the same name - when_not_matched_by_source_delete_filt: pass through query parameter of the same name
Query table id with vector search, full text search and optional SQL filtering. Returns results in Arrow IPC file or stream format. REST NAMESPACE ONLY REST namespace returns the response as Arrow IPC file binary data instead of the QueryTableResponse JSON object. The REST response maps to the QueryTableResponse model as follows: - the Arrow IPC file binary body maps to data - response headers map to context via the header. prefix (see the Context schema)
Check if table id exists. This operation should behave exactly like DescribeTable, except it does not contain a response body. REST NAMESPACE ONLY REST namespace conveys the result through the HTTP status code with no response body. The REST response maps to the TableExistsResponse model as follows: - a 200 response means the table exists; a 404 response means it does not - response headers map to context via the header. prefix (see the Context schema) For DirectoryNamespace implementation, a table exists if either: - The table has Lance data versions (regular table created with CreateTable) - A .lance-reserved file exists in the table directory (declared table created with DeclareTable)
Update the Arrow field (column) metadata for table id. Each entry targets a field by path and merges the provided key-value pairs into that field’s existing metadata, or replaces it when replace is true. A null metadata value deletes that key.
Replace the schema metadata for table id with the provided key-value pairs. REST NAMESPACE ONLY REST namespace uses a direct object (map of string to string) as both request and response body instead of the wrapped UpdateTableSchemaMetadataRequest and UpdateTableSchemaMetadataResponse.