mirror of
https://github.com/lancedb/lancedb.git
synced 2026-07-09 05:50:44 +00:00
### Description
Adds first-class support for table branches across the Rust core and the
Python and TypeScript SDKs.
Rust
```rust
use lance::dataset::refs::Ref;
// Create a branch from main and write to it — main is untouched.
let exp = table.create_branch("exp", Ref::Version(None, None)).await?;
exp.add(batches).await?;
// Reopen the branch later: check out from a table, or open it directly.
let exp = table.checkout_branch("exp").await?;
let exp = db.open_table("items").branch("exp").execute().await?;
let branches = table.list_branches().await?;
table.delete_branch("exp").await?;
```
Python
```python
# Create a branch from main and write to it
branch = await table.branches.create("exp", from_ref="main")
await branch.add(data)
# Reopen the branch later: check out from a table, or open it directly.
branch = await table.branches.checkout("exp")
branch = await db.open_table("items", branch="exp")
await table.branches.list()
await table.branches.delete("exp")
```
TypeScript
```typescript
const branches = await table.branches();
// Create a branch from main and write to it
const branch = await branches.create("exp");
await branch.add(data);
// Reopen the branch later: check out from a table, or open it directly.
const checkedOut = await branches.checkout("exp");
const opened = await db.openTable("items", undefined, { branch: "exp" });
await branches.list();
await branches.delete("exp");
```
### Testing
- Added unit tests
- ran smoke tests against python and typescript sdks on local machine
### Next steps
- Add RemoteTable support
- Add Branch Comparison support
- Merge Branching support
5.4 KiB
5.4 KiB
@lancedb/lancedb • Docs
@lancedb/lancedb
Namespaces
Enumerations
Classes
- BooleanQuery
- BoostQuery
- BranchContents
- Branches
- Connection
- HeaderProvider
- Index
- MakeArrowTableOptions
- MatchQuery
- MergeInsertBuilder
- MultiMatchQuery
- NativeJsHeaderProvider
- OAuthHeaderProvider
- PermutationBuilder
- PhraseQuery
- Query
- QueryBase
- Scannable
- Session
- StaticHeaderProvider
- Table
- TagContents
- Tags
- TakeQuery
- VectorColumnOptions
- VectorQuery
Interfaces
- AddColumnsResult
- AddColumnsSql
- AddDataOptions
- AddResult
- AlterColumnsResult
- ClientConfig
- ColumnAlteration
- ColumnOrdering
- CompactionStats
- ConnectNamespaceOptions
- ConnectionOptions
- CreateNamespaceOptions
- CreateNamespaceResponse
- CreateTableOptions
- DeleteResult
- DescribeNamespaceResponse
- DirNamespaceConfig
- DropColumnsResult
- DropNamespaceOptions
- DropNamespaceResponse
- ExecutableQuery
- FieldMetadataUpdate
- FragmentStatistics
- FragmentSummaryStats
- FtsOptions
- FullTextQuery
- FullTextSearchOptions
- HnswPqOptions
- HnswSqOptions
- IndexConfig
- IndexOptions
- IndexStatistics
- IvfFlatOptions
- IvfPqOptions
- IvfRqOptions
- ListNamespacesOptions
- ListNamespacesResponse
- LsmWriteSpec
- MergeResult
- OpenTableOptions
- OptimizeOptions
- OptimizeStats
- QueryExecutionOptions
- RemovalStats
- RenameTableOptions
- RestNamespaceConfig
- RetryConfig
- ScannableOptions
- ShuffleOptions
- SplitCalculatedOptions
- SplitHashOptions
- SplitRandomOptions
- SplitSequentialOptions
- TableNamesOptions
- TableStatistics
- TimeoutConfig
- TlsConfig
- TokenResponse
- UpdateFieldMetadataResult
- UpdateOptions
- UpdateResult
- Version
- WriteExecutionOptions
- WriteProgress