This release includes 2 breaking changes for platform teams planning a safe upgrade.
Published 24d
Vector Databases
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
approximate-nearest-neighbor-search
image-search
nearest-neighbor-search
recommender-system
search-engine
semantic-search
+2 more
similarity-search
vector-db
Affected surfaces
auth
Summary
AI summaryBroad release touches 🎉 New Features, 🐛 Bug Fixes, python, and feat. Breaking: Removed unused loss field from IndexStatistics
Full changelog
🛠 Breaking Changes
- refactor!: drop unused loss field from IndexStatistics by @wjones127 in https://github.com/lancedb/lancedb/pull/3496
- fix!: combine repeated where filters with AND instead of replacing by @wjones127 in https://github.com/lancedb/lancedb/pull/3585
🎉 New Features
- feat(python): unify sync create_index API to match async API by @wjones127 in https://github.com/lancedb/lancedb/pull/2882
- feat(table): route merge_insert through the MemWAL LSM write path by @touch-of-grey in https://github.com/lancedb/lancedb/pull/3354
- feat(python): support remote tables in PyTorch dataloaders by @Xuanwo in https://github.com/lancedb/lancedb/pull/3432
- feat: add update_field_metadata to edit per-field metadata by @brendanclement in https://github.com/lancedb/lancedb/pull/3482
- feat: deprecate replace_field_metadata for update_field_metadata by @brendanclement in https://github.com/lancedb/lancedb/pull/3484
- feat(python): support blob modes in query to_pandas by @BubbleCal in https://github.com/lancedb/lancedb/pull/3487
- feat(rust): support datafusion expressions for merge insert predicates by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3444
- feat(remote): implement set/unset_lsm_write_spec REST variant by @hamersaw in https://github.com/lancedb/lancedb/pull/3501
- feat: add table branch support by @brendanclement in https://github.com/lancedb/lancedb/pull/3490
- feat: support checking out a version on a branch by @brendanclement in https://github.com/lancedb/lancedb/pull/3504
- feat: support FM-Index scalar index for substring search by @jackye1995 in https://github.com/lancedb/lancedb/pull/3532
- feat: adds isin support to the 'Expr' builder by @stumpylog in https://github.com/lancedb/lancedb/pull/3523
- feat: expand IndexConfig with rich per-index metadata by @wjones127 in https://github.com/lancedb/lancedb/pull/3497
- feat(python): accept Expr in Table.delete and merge when_not_matched_by_source_delete by @stumpylog in https://github.com/lancedb/lancedb/pull/3524
- feat: support rename_table on LanceNamespaceDatabase by @nuthalapativarun in https://github.com/lancedb/lancedb/pull/3520
- feat(bindings): expose new IndexConfig fields in Python and Node.js by @wjones127 in https://github.com/lancedb/lancedb/pull/3534
- feat: skills to connect and update column metadata by @dantasse in https://github.com/lancedb/lancedb/pull/3541
- feat: add table branch support to remote tables and Python/TS bindings by @brendanclement in https://github.com/lancedb/lancedb/pull/3540
- feat(query): add approx mode to vector queries by @BubbleCal in https://github.com/lancedb/lancedb/pull/3549
- feat: send read-freshness signal on the lance-namespace path by @brendanclement in https://github.com/lancedb/lancedb/pull/3551
- feat(rust): add blob v2 schema declaration and write path by @geruh in https://github.com/lancedb/lancedb/pull/3528
- feat(rust): add blob read and materialization APIs by @geruh in https://github.com/lancedb/lancedb/pull/3562
- feat(rust): add OAuth header provider by @jackye1995 in https://github.com/lancedb/lancedb/pull/3579
- feat(python): expose OAuth connection config by @jackye1995 in https://github.com/lancedb/lancedb/pull/3586
- feat(node): expose OAuth connection config by @jackye1995 in https://github.com/lancedb/lancedb/pull/3587
- feat: add skill to work with branches better by @dantasse in https://github.com/lancedb/lancedb/pull/3596
- feat: add polars dataframe integration by @westonpace in https://github.com/lancedb/lancedb/pull/3584
- feat(remote): monotonic reads via x-lancedb-min-read-version watermark by @jackye1995 in https://github.com/lancedb/lancedb/pull/3597
- feat(rust): re-export arrow and datafusion crates from lancedb by @wjones127 in https://github.com/lancedb/lancedb/pull/3576
🐛 Bug Fixes
- feat(python): support blob modes in query to_pandas by @BubbleCal in https://github.com/lancedb/lancedb/pull/3487
- fix(rerankers/mrr): raise ValueError on empty vector_results list by @devteamaegis in https://github.com/lancedb/lancedb/pull/3469
- fix(rerankers): guard against empty vector_results in RRFReranker.rerank_multivector by @devteamaegis in https://github.com/lancedb/lancedb/pull/3467
- fix(python): route blob query pandas through scanner by @BubbleCal in https://github.com/lancedb/lancedb/pull/3491
- fix(python): make LanceDBClientError pickleable by @hashwnath in https://github.com/lancedb/lancedb/pull/3470
- fix(python): run AsyncTable.search embeddings on a dedicated executor by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3459
- fix(python): push down namespace full reads by @BubbleCal in https://github.com/lancedb/lancedb/pull/3516
- fix(util): convert numpy scalars in value_to_sql by @devteamaegis in https://github.com/lancedb/lancedb/pull/3522
- fix(nodejs): treat NAPI_RS_FORCE_WASI as truthy only when set to 'true' by @nuthalapativarun in https://github.com/lancedb/lancedb/pull/3519
- fix: support LargeList label list indexes by @Xuanwo in https://github.com/lancedb/lancedb/pull/3529
- fix(python): raise clear TypeError for bare List/Tuple in pydantic schema conversion by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3511
- fix(rust): report local write progress bytes from Lance by @GHX5T-SOL in https://github.com/lancedb/lancedb/pull/3422
- fix(util): escape single quotes in struct field names in value_to_sql by @JSap0914 in https://github.com/lancedb/lancedb/pull/3548
- fix(python): clarify single dictionary input error by @whitewooood in https://github.com/lancedb/lancedb/pull/3537
- fix(rust): return typed errors instead of panicking in Bedrock embedding path by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3512
- fix(ci): allow shell pre-commit hooks in bumpversion configs by @wjones127 in https://github.com/lancedb/lancedb/pull/3554
- fix: overflow using sys.maxsize for k in query with namespace connection by @rpgreen in https://github.com/lancedb/lancedb/pull/3561
- fix: parse RFC 3339 created_at and improve IndexConfig repr by @wjones127 in https://github.com/lancedb/lancedb/pull/3558
- fix: add missing stacklevel=2 to warnings.warn() and fix broken message concatenation (Fixes #3563) by @rtmalikian in https://github.com/lancedb/lancedb/pull/3564
- fix(remote): omit empty api key header by @jackye1995 in https://github.com/lancedb/lancedb/pull/3573
- fix(remote): support namespace clients with dynamic headers by @jackye1995 in https://github.com/lancedb/lancedb/pull/3574
- fix: ensure read freshness provider is built into namespace client by @rpgreen in https://github.com/lancedb/lancedb/pull/3571
- fix(python): raise clear error when permutation API is used on remote tables (Fixes #2934) by @rtmalikian in https://github.com/lancedb/lancedb/pull/3591
- fix: add missing stacklevel=2 to warnings.warn() calls (Fixes #3589) by @rtmalikian in https://github.com/lancedb/lancedb/pull/3590
- fix(python): route sync namespace connections through rust by @jackye1995 in https://github.com/lancedb/lancedb/pull/3598
- fix(python): route async namespace connections through rust by @jackye1995 in https://github.com/lancedb/lancedb/pull/3603
- fix!: combine repeated where filters with AND instead of replacing by @wjones127 in https://github.com/lancedb/lancedb/pull/3585
- fix(python): average MRR reciprocal ranks over all rankings by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3599
📚 Documentation
- docs: add cross-SDK parity guidance for code review by @brendanclement in https://github.com/lancedb/lancedb/pull/3464
- docs(python): add missing parameter documentation for when_matched_update_all by @Neo-X7 in https://github.com/lancedb/lancedb/pull/3536
🚀 Performance Improvements
- perf: migrate list_indices to use Lance's describe_indices by @wjones127 in https://github.com/lancedb/lancedb/pull/3108
- perf: drop N+1 in RemoteTable::list_indices by @wjones127 in https://github.com/lancedb/lancedb/pull/3535
Other Changes
- refactor: extract create_index module from table.rs by @wirybeaver in https://github.com/lancedb/lancedb/pull/3521
🔧 Build and CI
- ci: fix pypi publish on mac/windows/arm by @wjones127 in https://github.com/lancedb/lancedb/pull/3449
- ci: drop manylinux2_17 wheel builds by @wjones127 in https://github.com/lancedb/lancedb/pull/3455
- ci: move Lance dependency bump flow into skill by @Xuanwo in https://github.com/lancedb/lancedb/pull/3475
- ci: update python lockfile weekly by @wjones127 in https://github.com/lancedb/lancedb/pull/3498
- ci: update deprecated GitHub Actions to latest versions (Fixes #3577) by @rtmalikian in https://github.com/lancedb/lancedb/pull/3608
Breaking Changes
- Removed unused `loss` field from `IndexStatistics`
- Combined repeated `where` filters using AND instead of replacing them
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About lancedb
Developer-friendly OSS embedded retrieval library for multimodal AI. Search More; Manage Less.
Related context
Earlier breaking changes
- vpython-v0.35.0-beta.0 Aligns `Permutation.with_format(
- vpython-v0.35.0-beta.0 breaks `Permutation.with_format("torch")` alignment with HuggingFace `set_format("torch")`
- v0.32.0-beta.0 breaks `Permutation.with_format(
- v0.30.0-beta.0 Fixes nested field paths support in native index creation
- vpython-v0.32.0 Namespace naming and enterprise integration refactored with breaking changes
Beta — feedback welcome: [email protected]