Repository navigation
v0.5.0
What's Changed
Breaking:
- #88 (Python and Rust): the deprecated
GraphConfigBuilder.with_node_labelandwith_relationshipare removed, and in Rustwith_relationship_endpointstoo. Usenode_table(label, primary_key)andrel_table(rel_type, from_table, to_table, src, dst). - #87 (Rust):
CsrIndexBuilder::add_edge,Adjacency::buildandwith_changes,EdgeChangesandCsrExpandNode::try_newchanged signatures. The Rust API is marked experimental, so expect more changes like this. The Python API is unaffected.
CSR:
- #87: a hop that names its relationship, such as
(a)-[k:KNOWS]->(b), stays on the CSR and fetches only the columns ofkthe query reads. Filters on those columns run inside the expansion.count(r)on a relationship now works. Refresh no longer needs the old dataset version, so compaction followed bycleanup_old_versions()applies as a delta instead of a rebuild. Building the CSR takes about 95 bytes per edge at peak and is about 1.35 times slower. - #94: a hop that fetches a large share of a Lance node table reads the target columns once instead of once per batch. In lazy mode, IC3 and IC9 are about 60% faster than in 0.4.0 (403 → 166 ms, 796 → 310 ms).
- #93:
csr_stats()reportsbase_version(the version of the last full build) andunindexed_edges(live edges outside the base CSR).
Known trade-off: IC5 is about 20% slower in memory mode than in 0.4.0 (79.8 → 95.7 ms), because its named hasMember hop now runs on the CSR. In lazy mode it's within 7% of 0.4.0 (104.0 → 111.1 ms). #92 tracks the fix.
Other: #85 (parallel Python tests), #90 (leaner Rust CI caches), #89 and #91 (Python and Rust tabs in the docs).
Benchmarks: both suites, both modes, against the 0.4.0 wheel from PyPI, on an Apple M5. Every query's answer matched.
PRs
- test(python): run the test suite in parallel with pytest-xdist by @prrao87 in #85
- refactor(config)!: remove deprecated with_node_label and with_relationship by @prrao87 in #88
- docs: add python and rust tabs to the home page example by @prrao87 in #89
- docs: rust tabs for getting started, keeping the csr fresh, sidebar order by @prrao87 in #91
- ci: keep the rust caches lean and stop rebuilding for the example by @prrao87 in #90
- feat(csr)!: keep named relationships on the csr with edge rows by @prrao87 in #87
- feat(csr): report how far the base csr trails the data by @prrao87 in #93
- perf(csr): read target columns once when a hop fetches much of a table by @prrao87 in #94
- chore: bump version 0.4.0 → 0.5.0 by @prrao87 in #95
Full Changelog: v0.4.0...v0.5.0