Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
363 commits
Select commit Hold shift + click to select a range
c3e115b
feat: add skip_merge for FTS index build (#5570)
BubbleCal Dec 24, 2025
d2d0a6b
feat(java): add full text search api (#5563)
wojiaodoubao Dec 24, 2025
69d23a3
ci: make sure changes in lance-namespace-impls doc is auto-updated (#…
jackye1995 Dec 24, 2025
d77701b
feat: support credentials vending in directory namespace (#5566)
jackye1995 Dec 24, 2025
da5a958
docs: rename RowIdTreeMap to RowAddrTreeMap in rtree.md (#5564)
ddupg Dec 25, 2025
a3bcf15
docs: add docs for DuckDB extension (#5578)
prrao87 Dec 28, 2025
543eb86
ci: don't trigger review on PR updates (#5574)
Xuanwo Dec 28, 2025
4dc9376
docs: add research paper link to the landing page (#5549)
prrao87 Dec 29, 2025
c20415b
feat: optimize rle implementation (#5586)
Xuanwo Dec 30, 2025
768d66a
fix: avoid panic while hitting non-null empty multi-vector (#5588)
Xuanwo Dec 30, 2025
38125f1
docs: add specification for handling indices (#5543)
wjones127 Dec 30, 2025
1bb0d59
feat: upgrade lance-namespace to 0.4.0 (#5568)
jackye1995 Dec 30, 2025
b07572c
perf: reuse zstd compressors in encoding (#5598)
wkalt Dec 30, 2025
4bb435d
ci: fix release notes for release branches (#5597)
wjones127 Dec 30, 2025
5e6a460
fix: filter garbage entries from null maps during encoding (#5591)
wkalt Dec 31, 2025
13785c4
ci: ping lance-namespace-reqwest-client version (#5610)
jackye1995 Jan 1, 2026
d486fbc
refactor: allow switching to bitpack inside RLE (#5595)
Xuanwo Jan 1, 2026
3216350
feat: add dictionary encoding for 64bit types like int64/double (#5594)
Xuanwo Jan 1, 2026
781110a
perf: improve SQ query speed (#5596)
BubbleCal Jan 1, 2026
f20e0a9
perf: compute HNSW level counts after build (#5590)
BubbleCal Jan 1, 2026
bb4a2b7
fix: panic when lance.auto_cleanup.interval is set to 0 (#5571)
majin1102 Jan 1, 2026
3a54c63
feat(python): expose the `distance_range` param in the Python scanner…
xloya Jan 2, 2026
08e3360
feat: support create vector index distributedly (#5117)
chenghao-guo Jan 4, 2026
c641403
test: add regression test for ivf/pq search (#5476)
westonpace Jan 5, 2026
b43a28b
docs: update Lance-DuckDB docs to latest version 0.4.1 (#5613)
prrao87 Jan 5, 2026
80bbe58
feat: allow python tracing / logging to be independently configured (…
westonpace Jan 5, 2026
c58c08b
feat: support when_matched_delete in merge_insert (#4939)
jtuglu1 Jan 5, 2026
b172c19
feat: add parts_searched metrics for FTS (#5627)
BubbleCal Jan 6, 2026
21bac7b
chore: add boolean match plan scaffold (#5635)
BubbleCal Jan 6, 2026
55e8532
feat(java): add builder-style scalar index params (#5581)
wojiaodoubao Jan 7, 2026
5681653
ci: pin maturin to work around Python build issue (#5647)
wjones127 Jan 7, 2026
a526684
feat: support GEO RTree index (#5034)
ddupg Jan 7, 2026
8dbcfd2
feat: merge-insert with primary key dedupe (#5633)
jackye1995 Jan 7, 2026
f41f0c8
feat(java): add detached flag to commitTransaction (#5626)
wojiaodoubao Jan 7, 2026
c44384c
fix: remove imports that are not needed (#5651)
westonpace Jan 7, 2026
18587ea
chore: upgrade datafusion to 51, arrow to 57, pyo3 to 0.26 (#5291)
timsaucer Jan 7, 2026
1beb29a
feat: upgrade lance-namespace to 0.4.5 (#5611)
jackye1995 Jan 7, 2026
f29f6cf
feat: support dropping sub-column of list for struct (#5469)
wojiaodoubao Jan 8, 2026
4f7daa2
perf: improve FTS indexing perf and reduce memory footprint (#5650)
BubbleCal Jan 8, 2026
94d54c5
feat: support FixedSizeList<Struct> (#5593)
wkalt Jan 8, 2026
9438b88
feat(oss): add sts token support for aliyun oss via storage_options (…
hh23485 Jan 9, 2026
f1e398d
feat: support merge_insert with source dedupe on first seen value (#5…
jackye1995 Jan 9, 2026
cdce88f
ci: fix cargo lock not updated (#5669)
Xuanwo Jan 9, 2026
fac74c0
feat: allow configure temp dir size for datafusion exec (#5659)
jackye1995 Jan 9, 2026
1ab6b95
ci: fix accidentally reverted version bump (#5677)
jackye1995 Jan 9, 2026
450ddc2
chore: release beta version 2.0.0-beta.6
Jan 9, 2026
d1ec03c
feat: add order to primary key (#5683)
touch-of-grey Jan 11, 2026
19a30f2
fix: allow nearest applied in default_scan_options (#5666)
chenghao-guo Jan 12, 2026
3566ced
fix: trait Array has been sealed in arrow new version (#5690)
Xuanwo Jan 12, 2026
768f399
perf: tighten WAND block score upper bound (#5668)
BubbleCal Jan 12, 2026
f62041f
chore: release beta version 2.0.0-beta.7
Jan 12, 2026
7504a68
ci: use github large runnr for java build (#5692)
Xuanwo Jan 12, 2026
f49a892
chore: remove .vscode (#5693)
ddupg Jan 12, 2026
8ede664
chore: add FTS alias for inverted index (#5680)
BubbleCal Jan 12, 2026
c2ec6c6
ci: add PyYAML to release env (#5694)
BubbleCal Jan 12, 2026
5bffcfc
chore: release beta version 2.0.0-beta.8
Jan 12, 2026
82c33ba
ci: fix ci failure (#5695)
Xuanwo Jan 12, 2026
1ac488f
fix(python): correct type hint for to_tensor_fn parameter (#5577)
AndreaBozzo Jan 12, 2026
3b8d65e
feat: refactor use of Error::io (#5612)
lichuang Jan 12, 2026
af48840
feat: support truncate table api (#5604)
zhangyue19921010 Jan 12, 2026
db9540e
fix: reduce verbosity of errors due to string conversion (#5600)
wjones127 Jan 13, 2026
eaac54a
feat: support set beigin/end timestamp in cdf (#5378)
zhangyue19921010 Jan 13, 2026
e7540d7
feat(java): add support for optimizing indices (#5663)
majin1102 Jan 13, 2026
f38115e
feat: make OneShotPartitionStream pub (#5672)
timsaucer Jan 13, 2026
89f8d79
ci: switch to use claude API key (#5705)
Xuanwo Jan 13, 2026
6ecb573
fix: project_by_schema now reorders fields inside List<Struct> types …
wjones127 Jan 13, 2026
efadcc6
fix!: check metric compatibility before using vector index (#5609)
wjones127 Jan 13, 2026
f01d5d8
feat: add Error::External variant for preserving user errors (#5606)
wjones127 Jan 13, 2026
cb644f2
feat: use independent region manifest for MemWAL (#5689)
touch-of-grey Jan 13, 2026
845d682
feat: add stats() method to ObjectStoreRegistry (#5706)
wkalt Jan 14, 2026
efd5ecc
fix(java): support FixedSizeList for java LanceField (#5509)
fangbo Jan 14, 2026
54ac7cb
feat!: make v2 manifest default (#5656)
wojiaodoubao Jan 14, 2026
445dd5b
test: add more test cases to improve test coverage for the write func…
lichuang Jan 14, 2026
5528bc5
feat: make on arg optional for merge insert api (#5667)
yanghua Jan 15, 2026
6935a6c
perf: avoid copying tokens while merging (#5661)
BubbleCal Jan 15, 2026
e82da34
perf: use binary search to skip documents (#5636)
BubbleCal Jan 15, 2026
df1462d
fix: allocate too much memory for block max scores (#5718)
BubbleCal Jan 15, 2026
2607397
feat: support dynamic context for lance namespace (#5710)
jackye1995 Jan 15, 2026
768bf30
chore: release beta version 2.0.0-beta.9
Jan 15, 2026
c4d0953
chore: change the FTS benchmark data distribution (#5721)
BubbleCal Jan 15, 2026
7d8d8c5
docs: in dataset.rs, fix comment for get_fragments (#5724)
cmccabe Jan 15, 2026
7428ed4
perf: cache global BM25 idf per query (#5727)
BubbleCal Jan 16, 2026
9dfe8f3
feat: cleanup partial idx files when merging distributed vector index…
yanghua Jan 16, 2026
3692fbe
refactor: improve error handling for environment variable parsing (#5…
XuQianJin-Stars Jan 16, 2026
92f3808
feat: improve the random access file benchmark (#5628)
westonpace Jan 16, 2026
c7f54b0
feat!: define default index name and return IndexMetadata after build…
wjones127 Jan 16, 2026
5454242
refactor!: introduce storage options accessor (#5728)
jackye1995 Jan 16, 2026
fe22a42
feat: support array_contains in LabelList scalar index (#5681)
fenfeng9 Jan 16, 2026
b0f8d23
fix(python): close SQLite connections in BatchUDFCheckpoint (#5733)
wjones127 Jan 16, 2026
1dcc562
perf: use LRU cache for session contexts in get_session_context (#5736)
wjones127 Jan 17, 2026
b65e2cd
fix: remove credential vending features from python and java bindings…
jackye1995 Jan 17, 2026
8948169
chore: release beta version 2.0.0-beta.10
Jan 19, 2026
828919e
test: add f16/f64 coverage to PQ distance table benchmarks (#5745)
fenfeng9 Jan 19, 2026
af8cdfd
feat(java): expose index description and statistics (#5655)
majin1102 Jan 19, 2026
cf8de35
refactor: introduce RowSetOps and refactor RowAddrTreeMap (#5624)
yanghua Jan 20, 2026
277b369
feat: make blob v2 dedicated threshold configurable (#5719)
yanghua Jan 20, 2026
01374ab
perf: merge partitions in stream style (#5754)
BubbleCal Jan 20, 2026
b2d40ee
chore: bump main to 2.1.0-beta.0
Jan 20, 2026
918324b
fix(lance-linalg): check fp16kernels feature before arch-specific cod…
durch Jan 20, 2026
30f035d
fix: skip missing indices in compaction rewrite (#5739)
AndreaBozzo Jan 20, 2026
e87d04d
feat(rust): add datafusion catalog_provider through namespace (#5686)
majin1102 Jan 20, 2026
32f3877
ci: fix version inconsistency and pytorch deprecation warning (#5761)
jackye1995 Jan 21, 2026
9a15693
refactor(python): migrate torch.jit.script to torch.compile (#5759)
wjones127 Jan 21, 2026
e888153
feat: support List and Struct type for KeyValue in inserted_rows.rs (…
wojiaodoubao Jan 21, 2026
ae8add8
feat(java): support building vector index distributively (#5664)
majin1102 Jan 21, 2026
d19def8
feat: add Lance-HF docs to lance.org/integrations/huggingface/ (#5748)
prrao87 Jan 21, 2026
66b127c
feat: support get upsert rows for cdf (#5369)
zhangyue19921010 Jan 21, 2026
e8f173c
perf: don't concat the batches for writing posting lists (#5769)
BubbleCal Jan 21, 2026
6535621
fix: fix deletion when using file-object-store:// (#5760)
cmccabe Jan 21, 2026
8c18429
docs: fix issues in HF integration docs (#5778)
prrao87 Jan 22, 2026
b208c3c
ci: fix broken windows tests (#5787)
Xuanwo Jan 22, 2026
4b7c663
refactor: change reader's get_range result to be a static future (#5755)
westonpace Jan 22, 2026
c2d74fa
test: fix tests broken by pandas 3 release (#5786)
westonpace Jan 22, 2026
a3f46c2
ci: publish windows RCs to fury (not pypi) (#5785)
westonpace Jan 22, 2026
50999bd
ci: try to make tests more stable (#5789)
Xuanwo Jan 22, 2026
60a0e20
test: update doctest to new pandas behavior (#5788)
westonpace Jan 22, 2026
dd55d07
feat: expose blob handling APIs to python (#5790)
Xuanwo Jan 23, 2026
d27cd60
fix: allow unused_unsafe for __cpuid to support both stable and night…
jackye1995 Jan 23, 2026
8f87f08
chore: fix typo (#5796)
Xuanwo Jan 23, 2026
2e6adce
perf: use cpu pool to process all posting lists (#5780)
BubbleCal Jan 23, 2026
2efb090
perf: add vector throughput benchmark (#5644)
westonpace Jan 23, 2026
4472874
perf: add a full text search benchmark (#5665)
westonpace Jan 23, 2026
d8c6385
fix: remove unreasonable nullable check for data types in hash_joiner…
zhangyue19921010 Jan 23, 2026
a902892
ci: fix MSRV check (#5799)
wjones127 Jan 24, 2026
bb361de
feat: add blob handling support for fragment (#5801)
Xuanwo Jan 26, 2026
b2ba977
ci: fix wikipedia benchmark (#5802)
Xuanwo Jan 26, 2026
4d8c51c
feat: add alter column nullable to non-nullable support (#5589)
Xuanwo Jan 26, 2026
f5750c2
fix(java)!: correct spelling of addFiledStatistics to addFieldStatist…
HuaHuaY Jan 26, 2026
62f3a06
feat: introduce MemWAL regional writer and MemTable reader
touch-of-grey Jan 26, 2026
86a9544
Cleanup comments and fix typo
touch-of-grey Jan 26, 2026
a410894
fix: store relative generation folder name in manifest for cross-plat…
touch-of-grey Jan 26, 2026
784a77d
feat(python): support namespace for tensorflow (#5750)
yuqi1129 Jan 26, 2026
d123b36
fix: set JUnit dependency as test scope (#5815)
bryanck Jan 26, 2026
d63fc1b
ci(python): fix test of huggingface dataset (#5816)
wjones127 Jan 27, 2026
3044051
perf: calculate cardinality lazily (#5783)
Xuanwo Jan 27, 2026
b90a430
ci: fix benchmark regress (#5821)
Xuanwo Jan 27, 2026
7f1d16d
feat(java): support json extraction by scanning (#5770)
majin1102 Jan 27, 2026
03b49b7
feat: dictionary index always32 bits (#5011)
yingjianwu98 Jan 28, 2026
d7685f6
feat: evolute all_null_layout to constant layout (#5641)
Xuanwo Jan 28, 2026
5b56431
feat: add RLE support for block (#4937)
yingjianwu98 Jan 28, 2026
b0396c3
docs: fix MkDocs protobuf reference for ConstantLayout (#5833)
Xuanwo Jan 28, 2026
62d878e
feat: abort dictionary encode if not useful (#5055)
yingjianwu98 Jan 28, 2026
cf1bd20
fix: fix remap so that it handles deletions correctly (#5828)
westonpace Jan 28, 2026
37f64ea
fix: support system columns in dataset.take* operations (#5722)
hamersaw Jan 28, 2026
976c847
ci: fix rust release workflow and allow manual publish (#5842)
jackye1995 Jan 29, 2026
641423c
refactor: align blob behavior that write via file format version, rea…
Xuanwo Jan 30, 2026
bdbf80a
fix: fix mini-block dictionary bitpacking panic (#5860)
Xuanwo Jan 30, 2026
93e81d5
test: skip recall test for 4bit PQ (#5861)
BubbleCal Jan 30, 2026
eef9554
fix: fix boolean inline constant decoding (#5862)
Xuanwo Jan 30, 2026
305983c
feat: add plan/execute separation to FilteredReadExec (#5843)
LuQQiu Jan 30, 2026
374bf41
feat: support tencent cos (#5740)
ztorchan Jan 30, 2026
908e0fb
chore: add CODEOWNERS for spec files (#5858)
wjones127 Jan 30, 2026
497ca23
fix(java): panic when reading CreateIndex transaction (#5853)
majin1102 Jan 30, 2026
8fdbd5a
fix: inconsistent transposed pq code and metadata when build ivf_pq i…
yanghua Jan 31, 2026
da3e5dc
fix: flaky test test_ann_prefilter for HNSW (#5870)
BubbleCal Feb 2, 2026
556851b
fix(java): init allocator for new dataset when checkout branch/tag (#…
fangbo Feb 3, 2026
601bd91
feat(compaction): binary copy capability for compaction (#5434)
zhangyue19921010 Feb 3, 2026
824c05f
ci: fix bump version failed (#5879)
majin1102 Feb 3, 2026
efd13ac
ci: remove obsolete advisory and update bytes to 1.11.1 (#5882)
Copilot Feb 3, 2026
62e2ebb
chore: bump to 3.0.0-beta.1 based on breaking change detection
Feb 4, 2026
e8649a9
test: add validation tests for full-text indexes (#5875)
vivek-bharathan Feb 4, 2026
f777697
fix: deduplicate row addresses in take to prevent panic (#5881)
wjones127 Feb 4, 2026
70636f6
perf: add a lightweight scheduler implementation (#5773)
westonpace Feb 4, 2026
41fadef
fix: open additional storage options provider related apis in lance d…
jackye1995 Feb 2, 2026
a286e4b
docs: add documentation for array type support (#5884)
XuQianJin-Stars Feb 5, 2026
0c48dba
fix: avoid panic when repdef serializes empty offsets (#5890)
fenfeng9 Feb 5, 2026
5fb1c70
fix: split index_statistics to reduce rustc query depth (#5894)
Xuanwo Feb 5, 2026
aef1490
fix: avoid bitmap range panic on inverted bounds (#5893)
fenfeng9 Feb 5, 2026
c432eb1
fix: fts flat search drops rows when avg_doc_length < 1.0 (#5897)
wjones127 Feb 5, 2026
97157a5
perf: replace flatmap in build_distance_table (#5898)
wkalt Feb 5, 2026
bcabf1d
chore: release beta version 3.0.0-beta.2
Feb 5, 2026
c9ffc74
fix(java): align version type from i32 to u64 (#5892)
majin1102 Feb 6, 2026
37dfddc
feat: add LSM scanner with point lookup and vector search support (#5…
touch-of-grey Feb 6, 2026
303f58f
feat: add rename table implementations to REST namespaces (#5874)
bryanck Feb 6, 2026
e1489ab
feat: add range to External blob (#5765)
wojiaodoubao Feb 7, 2026
b360da1
feat: support cleanup across branches (#5009)
majin1102 Feb 9, 2026
9551d14
feat: add third party licenses lists (#5922)
jackye1995 Feb 10, 2026
827a59a
fix: handle NULL elements in LABEL_LIST index results and explain_pla…
fenfeng9 Feb 10, 2026
1b38a74
ci: add codex workflows for backport and fixing CI (#5926)
jackye1995 Feb 10, 2026
0471e0e
fix: avoid panic on empty list LABEL_LIST filters (#5914)
fenfeng9 Feb 10, 2026
9e64e0b
refactor: correct panic message typos in OrderableScalarValue::cmp (#…
fenfeng9 Feb 10, 2026
94b0308
feat: spill page metadata to disk during IVF shuffle (#5921)
wkalt Feb 10, 2026
0b2c9e3
perf!: remove shuffle buffer (#5912)
wkalt Feb 10, 2026
aa449e4
fix: don't drop field metadata on merge insert path (#5927)
westonpace Feb 10, 2026
df04df4
perf: build fp16kernels with NEON support on iOS (#5917)
chyyran Feb 10, 2026
65e4815
feat!: support index progress reporting via callbacks (#5910)
wkalt Feb 10, 2026
27f9765
feat: introduce RowIdSet and RowIdMask (#5771)
yanghua Feb 11, 2026
dcb5bd8
fix: apply SchemaAdapter in Updater (#5928)
westonpace Feb 11, 2026
97ca6b9
feat(python): expose search_filter in scanner (#5506)
wojiaodoubao Feb 11, 2026
3d7fb36
fix: correct OR null semantics for nullable masks (#5919)
fenfeng9 Feb 11, 2026
6deadb8
feat(java): support session (#5931)
jackye1995 Feb 11, 2026
3605ce3
docs(governance): introduce incubating subproject concept and update …
jackye1995 Feb 11, 2026
e5e6ce7
ci: bump rust toolchain to 1.91.0 (#5937)
lance-community Feb 11, 2026
eb0e61f
docs: add FTS docs (#5888)
prrao87 Feb 11, 2026
e0301f5
ci: improve codex prompt for backport and ci fix (#5940)
jackye1995 Feb 12, 2026
75622b1
docs: add lance-trino doc (#5943)
jackye1995 Feb 12, 2026
255a7ed
feat(python): expose enable_stable_row_ids in commit() (#5908)
fecet Feb 12, 2026
1932327
fix: correct OR null handling for BlockList|BlockList (#5944)
fenfeng9 Feb 12, 2026
8457062
feat: support aggregate in scanner (#5911)
jackye1995 Feb 13, 2026
1ce6347
feat(java): support creating IVF_RQ index (#5648)
majin1102 Feb 13, 2026
86e5967
feat: add python and java binding for aggregate (#5951)
jackye1995 Feb 13, 2026
e47c345
ci: improve release workflows (#5949)
jackye1995 Feb 13, 2026
e28a556
perf: change Dataset::sample to sort its random indices (#5915)
wkalt Feb 13, 2026
f829eef
fix: remove unnecessary column projection for count aggregate (#5950)
jackye1995 Feb 14, 2026
c878af4
perf: create local writer for efficient local writes (#5939)
wkalt Feb 16, 2026
2704c17
perf: reduce peak memory in nullable training data sampling (#5935)
wkalt Feb 17, 2026
441bd9e
feat: add proto serialization for FilteredReadExec (#5954)
LuQQiu Feb 17, 2026
79b700f
fix: respect fragment restrictions in vector and FTS searches when re…
yingjianwu98 Feb 17, 2026
5b8744d
docs: add schema data types and field IDs documentation (#5925)
dik654 Feb 17, 2026
e419df7
chore: release beta version 3.0.0-beta.3
Feb 17, 2026
d1d1e53
perf: upgrade roaring to 0.11 and improve bitmap/range conversions (#…
LuQQiu Feb 18, 2026
884d18e
feat: create an arrow-scalar crate utilizing arrow-row and arrow-data…
westonpace Feb 18, 2026
832d2e6
refactor: deprecate list_indices and migrate tests to describe_indice…
fenfeng9 Feb 18, 2026
d877e6c
docs: add new maintainers (#5959)
prrao87 Feb 18, 2026
ee1914a
feat: update minimum supported rust version from 1.88 to 1.91 (#5964)
westonpace Feb 18, 2026
af84ea1
feat: add Dataset::with_object_store for request-scoped store overrid…
wkalt Feb 18, 2026
9b0fa9a
feat: add size to object store tracing (#5962)
wjones127 Feb 19, 2026
a1a60f2
fix: invalidate index fragment bitmaps after data replacement and sta…
wjones127 Feb 19, 2026
2c7001a
fix: ensure blob encoding work when using file reader directly (#5193)
rahil-c Feb 20, 2026
9511d6d
feat: support namespace as external manifest store (#5968)
jackye1995 Feb 20, 2026
649b487
chore: release beta version 3.0.0-beta.4
Feb 20, 2026
540e973
feat: serialize storage options in table identifier proto (#5973)
LuQQiu Feb 21, 2026
5916cf8
docs: add docs for branch (#5104)
majin1102 Feb 21, 2026
1c58574
feat: add progress monitoring via callbacks for inverted indexes (#5958)
vivek-bharathan Feb 21, 2026
daeb258
chore: fix test compile error (#5975)
westonpace Feb 21, 2026
e13dbc0
fix: spawn part load in fts training (#5977)
westonpace Feb 22, 2026
3882c20
fix: rest namespace integration with table version apis (#5980)
jackye1995 Feb 23, 2026
c69274b
chore: release beta version 3.0.0-beta.5
Feb 23, 2026
576c055
docs: add lance skills as user guide (#5877)
Xuanwo Feb 23, 2026
c4e78d2
chore(io): remove shellexpand and use std::env::home_dir (#5987)
Xuanwo Feb 23, 2026
3ee410d
ci: fix python datafusion test (#5991)
wjones127 Feb 23, 2026
716b926
fix: respect requested indexed fragment in vector and FTS searches (#…
yingjianwu98 Feb 23, 2026
51a5154
fix: improve error messages in FixedSizeListArrayExt::convert_to_floa…
LuciferYang Feb 23, 2026
d27efcc
perf: improve parallelism of data_stats (#5990)
wkalt Feb 23, 2026
b34c406
feat: make geodatafusion/geoarrow optional via `geo` feature flag (#5…
apoc Feb 23, 2026
90cc6ed
chore: bump main to 3.1.0-beta.0
Feb 23, 2026
50d29f7
fix: various bugs to namespace access (#5996)
jackye1995 Feb 24, 2026
c36a4d9
chore: release beta version 3.1.0-beta.1
Feb 24, 2026
348b4df
fix(encoding): handle empty rows in variable packed struct decode (#5…
Xuanwo Feb 24, 2026
693f394
docs: clarify v2.2 nested drop rollback risk (#5999)
Xuanwo Feb 24, 2026
0e53078
docs: expand the FTS index doc explaining the training process and mu…
westonpace Feb 24, 2026
914e275
feat: add DeleteResult with num_deleted_rows (#6001)
wkalt Feb 24, 2026
4af7726
feat: introduce IncompatibleTransaction error (#6003)
wjones127 Feb 24, 2026
8e86943
fix: set namespace commit handler for LanceDataset.commit (#6002)
jackye1995 Feb 24, 2026
ae3b1f4
chore: release beta version 3.1.0-beta.2
Feb 25, 2026
8a87852
fix: fast_search limits full text search to indexed fragments (#6006)
BubbleCal Feb 25, 2026
7ec1b21
Bump datafusion requirement to 52
timsaucer Feb 25, 2026
a61580f
ruff format
timsaucer Feb 25, 2026
3cec90f
fix: use fields_with_udf for aggregate type coercion (DF52)
wjones127 Feb 25, 2026
17b038d
fix: use OutputBatches metric variant for DF52 compatibility
wjones127 Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion .bumpversion.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tool.bumpversion]
current_version = "1.0.0-beta.16"
current_version = "3.1.0-beta.2"
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)(-(?P<prerelease>(beta|rc))\\.(?P<prerelease_num>\\d+))?"
serialize = [
"{major}.{minor}.{patch}-{prerelease}.{prerelease_num}",
Expand Down Expand Up @@ -90,6 +90,11 @@ filename = "Cargo.toml"
search = 'lance-namespace = {{ version = "={current_version}"'
replace = 'lance-namespace = {{ version = "={new_version}"'

[[tool.bumpversion.files]]
filename = "Cargo.toml"
search = 'lance-namespace-datafusion = {{ version = "={current_version}"'
replace = 'lance-namespace-datafusion = {{ version = "={new_version}"'

[[tool.bumpversion.files]]
filename = "Cargo.toml"
search = 'lance-namespace-impls = {{ version = "={current_version}"'
Expand Down
5 changes: 5 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ debug = true
codegen-units = 16
lto = "thin"

[profile.bench]
inherits = "release"
lto = "thin"
codegen-units = 16

[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "target-cpu=haswell", "-C", "target-feature=+avx2,+fma,+f16c"]

Expand Down
14 changes: 14 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# file specification
protos/file*.proto @file-spec-team
protos/encodings*.proto @file-spec-team
docs/src/format/file/ @file-spec-team

# table specification
protos/table.proto @table-spec-team
protos/rowids.proto @table-spec-team
docs/src/format/table/ @table-spec-team

# index specification
protos/index.proto @index-spec-team
protos/index_old.proto @index-spec-team
docs/src/format/table/index/ @index-spec-team
2 changes: 1 addition & 1 deletion .github/actions/setup-release-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ runs:
- name: Install dependencies
shell: bash
run: |
pip install bump-my-version packaging PyGithub
pip install bump-my-version packaging PyGithub PyYAML

- name: Set up Rust
uses: actions-rs/toolchain@v1
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/approve-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,7 @@ jobs:

if [ -n "${PREVIOUS_TAG}" ]; then
echo "Generating release notes from ${PREVIOUS_TAG} to ${STABLE_TAG}"
NOTES=$(gh api repos/${{ github.repository }}/releases/generate-notes \
-f tag_name="${STABLE_TAG}" \
-f previous_tag_name="${PREVIOUS_TAG}" \
--jq .body)
NOTES=$(python ci/generate_release_notes.py ${PREVIOUS_TAG} ${STABLE_TAG})
else
echo "No previous tag found, using automatic generation"
NOTES=$(gh api repos/${{ github.repository }}/releases/generate-notes \
Expand Down
51 changes: 51 additions & 0 deletions .github/workflows/benchmark-comment-trigger.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# This workflow is used to trigger benchmarks on a PR when a specific comment is added
# to the PR. The workflow runs on all PR comments containing the string 'benchmark'
# and the string '@bench-bot'. The workflow collects some information about the PR
# and then forwards the information to the lance-bench workflow.
#
# The lance-bench repository is a public repository in the lancedb organization which
# runs benchmarks against the Lance repository on a regular basis and stores the results
# in a historical database.

name: Benchmark Comment Trigger

on:
issue_comment:
types: [created]

jobs:
forward-to-bench:
# Only process comments on PRs that mention @bench-bot and contain 'benchmark'
if: |
github.event.issue.pull_request != null &&
contains(github.event.comment.body, '@bench-bot') &&
contains(github.event.comment.body, 'benchmark')
runs-on: ubuntu-latest
steps:
- name: Get PR details
id: pr
uses: actions/github-script@v7
with:
script: |
const pr = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});

core.setOutput('head_sha', pr.data.head.sha);

- name: Forward to lance-bench
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.LANCE_BENCH_DISPATCH_TOKEN }}
repository: lancedb/lance-bench
event-type: pr-comment
client-payload: |
{
"comment_body": ${{ toJson(github.event.comment.body) }},
"comment_user": "${{ github.event.comment.user.login }}",
"pr_number": ${{ github.event.issue.number }},
"pr_head_sha": "${{ steps.pr.outputs.head_sha }}",
"repository": "${{ github.repository }}"
}
8 changes: 8 additions & 0 deletions .github/workflows/build_linux_wheel/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ runs:
shell: bash
run: |
echo "ARM BUILD: ${{ inputs.arm-build }}"
- name: Clean old wheels
shell: bash
run: |
# Ensure no cached pylance wheels linger across cache restores
rm -f python/target/wheels/pylance-*.whl || true
- name: Build x86_64 Manylinux2014 wheel
if: ${{ inputs.arm-build == 'false' && inputs.manylinux == '2_17' }}
uses: PyO3/maturin-action@v1
Expand All @@ -34,6 +39,7 @@ runs:
target: x86_64-unknown-linux-gnu
manylinux: ${{ inputs.manylinux }}
args: ${{ inputs.args }}
maturin-version: "1.10.2"
before-script-linux: |
set -e
yum install -y openssl-devel \
Expand All @@ -52,6 +58,7 @@ runs:
-e CC=clang
-e CXX=clang++
args: ${{ inputs.args }}
maturin-version: "1.10.2"
before-script-linux: |
set -e
yum install -y openssl-devel clang \
Expand All @@ -67,6 +74,7 @@ runs:
target: aarch64-unknown-linux-gnu
manylinux: ${{ inputs.manylinux }}
args: ${{ inputs.args }}
maturin-version: "1.10.2"
before-script-linux: |
set -e
yum install -y openssl-devel clang \
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/cargo-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ on:
description: "Tag to publish (e.g., v1.0.0)"
required: true
type: string
skip_check_repo:
description: "Skip checking if packages have been modified (useful for backfilling missed releases)"
required: false
type: boolean
default: false

env:
# This env var is used by Swatinem/rust-cache@v2 for the cache
Expand All @@ -22,7 +27,7 @@ env:
jobs:
build:
# Needs additional disk space for the full build.
runs-on: ubuntu-2404-8x-x64
runs-on: warp-ubuntu-latest-x64-8x
permissions:
id-token: write
timeout-minutes: 60
Expand Down Expand Up @@ -87,6 +92,7 @@ jobs:
registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
args: "--all-features"
path: .
check-repo: ${{ github.event_name != 'workflow_dispatch' || inputs.skip_check_repo != true }}
report-failure:
name: Report Workflow Failure
runs-on: ubuntu-latest
Expand Down
25 changes: 20 additions & 5 deletions .github/workflows/ci-benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
bench_regress:
timeout-minutes: 30
timeout-minutes: 120
runs-on: warp-custom-gcp-storage-benchmark
env:
# Need up-to-date compilers for kernels
Expand Down Expand Up @@ -44,17 +44,32 @@ jobs:
run: |
python -m venv venv
source venv/bin/activate
pip install maturin duckdb requests pytest pytest-benchmark
maturin develop --locked --release
pip install maturin duckdb requests pytest pytest-benchmark datasets
maturin develop --locked --release --features datagen
- name: Build memtest
run: |
source venv/bin/activate
make -C ../memtest build-release
- name: Generate datasets
run: |
python -m venv venv
source venv/bin/activate
python python/ci_benchmarks/datagen/gen_all.py
- name: Run benchmarks
run: |
python -m venv venv
source venv/bin/activate
bencher run --project weston-lancedb --token ${{ secrets.LANCE_BENCHER_TOKEN }} --adapter python_pytest \
--branch main --testbed google-genoa --err --file results.json "python -mpytest --benchmark-json \
results.json python/ci_benchmarks"
- name: Run IO/memory benchmarks
run: |
source venv/bin/activate
LIB_PATH=$(lance-memtest)
LD_PRELOAD=$LIB_PATH pytest python/ci_benchmarks \
-k "io_mem_" \
--benchmark-stats-json io_mem_stats.json
- name: Upload IO/memory stats to bencher
run: |
source venv/bin/activate
bencher run --project weston-lancedb --token ${{ secrets.LANCE_BENCHER_TOKEN }} \
--adapter json --branch main --testbed google-genoa \
--err --file io_mem_stats.json
67 changes: 67 additions & 0 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Claude Code Review

on:
pull_request_target:
types: [opened]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"

jobs:
claude-review:
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'

runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.CLAUDE_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
prompt: |
REPO: ${{ github.repository }}
PR NUMBER: ${{ github.event.pull_request.number }}

Please review this pull request and provide feedback on:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security concerns
- Test coverage

Please note that the attention of contributors and maintainers is the MOST valuable resource.
Less is more: focus on the most important aspects.

- Your review output SHOULD be concise and clear.
- You SHOULD only highlight P0 and P1 level issues, such as severe bugs, performance degradation, or security concerns.
- You MUST not reiterate detailed changes in your review.
- You MUST not repeat aspects of the PR that are already well done.

Use the repository's CLAUDE.md for more guidance on style and conventions.

Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.

# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://code.claude.com/docs/en/cli-reference for available options
claude_args: |
--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"
--model "claude-opus-4-5"
49 changes: 49 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Claude Code

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.CLAUDE_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}

# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read

# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'

claude_args: |
--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"
--model "claude-opus-4-5"
Loading