Create an empty 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.
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 - location: pass through header x-lance-table-location - properties: pass through header x-lance-table-properties
Create an index on a table column 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.
Insert new records into table id. 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 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 uses GET to perform this operation without a request body. It passes in the ListTableTagsRequest 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
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
Performs a merge insert (upsert) operation on table id. This operation updates existing rows based on a matching column and inserts new rows that don’t match. It returns the number of rows inserted and updated. 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 - 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
Check if table id exists. This operation should behave exactly like DescribeTable, except it does not contain a response body. 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 (empty table created with CreateEmptyTable)