Skip to content

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 14 Jun 01:49

pgRDF v0.6.4 — deferred unique_term constraint on bulk load

The defer-index path now also defers the dictionary's unique_term UNIQUE
constraint: on a fresh bulk load above pgrdf.bulk_defer_index_min,
load_turtle(…, bulk_load => true) drops it (with the hexastore + dict-hash
indexes), streams the dictionary rows in without the per-row uniqueness check,
then re-adds it after — rebuilding + re-validating uniqueness over the loaded
data in one pass instead of paying it row-by-row.

Safe by construction: the self-assigned-id path de-duplicates terms in Rust,
so the load produces no duplicates; the ADD CONSTRAINT is a fail-loud backstop
(a dedup bug aborts the load, never corrupts the dictionary) and the whole
drop → load → re-add runs in one transaction. The next ingest lever in the
LUBM benchmark (toward ~70s at LUBM-250). Gated by the same
pgrdf.bulk_defer_index_min threshold (default 100000).

Verify the published artifact:

gh attestation verify oci://ghcr.io/styk-tv/pgrdf-bundle:0.6.4 --repo styk-tv/pgRDF

Full changelog: see CHANGELOG.md section [0.6.4].

Full Changelog: v0.6.3...v0.6.4