v0.34.0
What's Changed
Breaking Changes 馃洜
- refactor!: rename stable row id feature flag by @yanghua in #4481
- feat!: support shallow_clone in dataset by @majin1102 in #4257
New Features 馃帀
- feat(java): java transaction supports DataReplacement operation by @majin1102 in #4454
- feat: add contains_tokens udf by @wojiaodoubao in #4420
- feat: add retry-based conflict resolution for delete operations (#4159) by @wjones127 in #4292
- feat: add fuzz tests for encoding by @Xuanwo in #4480
- feat: implement large read io split in format 2.1 by @Xuanwo in #4462
- feat(python): expose diff_meta for pylance by @yanghua in #4502
- feat: add automatic conflict resolution support for delete operations by @wjones127 in #4407
- feat: add a cycle_bool data generator by @westonpace in #4507
- feat: allow reading the _rowoffset by @westonpace in #4478
- feat: add zonemap filter support to Lance at table level by @HaochengLIU in #4244
- feat(rust): support update stable row id for merge insert without index by @yanghua in #4450
- fix: handle parsing sql_cast_expr to datafusion expr properly by @imededin in #4541
- feat: provide feature flag for shallow cloning by @majin1102 in #4552
- feat: add lance file version 2.2 by @Xuanwo in #4568
- feat: add more metrics for FTS queries by @BubbleCal in #4560
Bug Fixes 馃悰
- fix: lance failed to encode 1025 rep/def values by @Xuanwo in #4467
- fix: ensure transaction rebase happens in ascending order by @jackye1995 in #4486
- fix: posting lists cache conflicts across partitions by @BubbleCal in #4490
- fix: the elapsed_time is not correct for IvfSubIndex Node by @BubbleCal in #4491
- fix: skip rebasing for strict overwrite by @HubertY in #4377
- fix: use LanceBuffer::borrow_to_typed_slice for safe slice cast by @Xuanwo in #4493
- fix: avoid column name collision in merge_insert by using __action by @wjones127 in #4499
- fix: remove data files with only tombstoned fields by @wjones127 in #4497
- fix: address fuzz test #4492 by @Xuanwo in #4503
- fix: shrink_to_fit after copy_from_bytes to ensure memory size is correct by @Xuanwo in #4515
- fix: fix FTS index cache underutilization due to DeepSizeOf overestimation by @LuQQiu in #4513
- fix: full text search BM25 score is not accurate by @BubbleCal in #4525
- fix: use java/lang/String to get DeletionFileType value by @fangbo in #4526
- fix: incorrect logic for logical or of RowIdMask by @westonpace in #4531
- fix: fix spelling in comment in dataset.rs by @cmccabe in #4554
- fix: restore behavior of projection plans from schema by @westonpace in #4562
- fix: get rust-benchmark.yml working again by @cmccabe in #4567
- fix(doc): fix take_blobs python doc wrong parameters format by @yanghua in #4569
Documentation 馃摎
- docs: fix inverted index default values in pydoc by @chenghao-guo in #4565
Performance Improvements 馃殌
- perf: use heap to maintain topk results by @BubbleCal in #4505
- perf: remove tracing instrumentation from FTS hot paths by @LuQQiu in #4536
- perf: fallback to brute force FTS if filters matching fewer rows by @BubbleCal in #4551
- perf: skip more documents in FTS flat search by @BubbleCal in #4570
Other Changes
- refactor: remove owned LanceBuffer to eliminate runtime try_clone checks by @Xuanwo in #4460
- refactor: reduce lance-encoding compile times by @westonpace in #4474
- refactor: remove special case in can_cast_types by @cmccabe in #4549
- refactor: remove Ray integration from Lance core by @jackye1995 in #4563
New Contributors
Full Changelog: v0.33.0...v0.34.0