omnigraph/crates/omnigraph/tests
devin-ai-integration[bot] b7f5276ab5
fix(loader): enforce composite @unique(a, b) as a true composite key (#133)
* fix(loader): enforce composite @unique(a, b) as a true composite key

Node/edge composite uniqueness constraints were flattened into a single
list of property names, so @unique(a, b) was enforced as independent
single-field checks @unique(a) AND @unique(b) at intake. Preserve the
constraint grouping and check each group as a composite key, mirroring
the merge-path enforcement. Error messages now name the full composite.

MR-983

* docs: clarify unit-separator comment in composite unique check

* docs: fix separator reference in composite unique comment (merge.rs also uses U+001F)

* fix(merge): align composite @unique key separator with intake (U+001F)

The branch-merge path (update_unique_constraints) joined composite key
columns with '|', while intake joins with U+001F. The same @unique(a, b)
was keyed two different ways, and '|'-join can raise phantom merge
conflicts for values containing '|' (e.g. ('x|y','z') vs ('x','y|z')).

Factor the tuple-join into one shared helper (loader::composite_unique_key)
so the intake and merge paths cannot drift again. Add branching regression
tests for edge @unique(src, dst) on the merge path.

Refs MR-983.

---------

Co-authored-by: Ragnor Comerford <ragnor.comerford@gmail.com>
Co-authored-by: Andrew Altshuler <andrew@collectivelab.io>
2026-06-09 17:17:31 +03:00
..
fixtures Merge pull request #6 from ModernRelay/claude/omnigraph-aggregates-a53rG 2026-04-13 10:26:07 +02:00
helpers fix: optimize publishes compaction; recovery roll-back converges manifest (#141) 2026-06-08 02:50:12 +03:00
aggregation.rs Implement aggregate execution with wide-batch model 2026-04-12 20:59:13 +00:00
branching.rs fix(loader): enforce composite @unique(a, b) as a true composite key (#133) 2026-06-09 17:17:31 +03:00
changes.rs Initial public Omnigraph repository 2026-04-10 20:49:41 +03:00
composite_flow.rs fix: optimize publishes compaction; recovery roll-back converges manifest (#141) 2026-06-08 02:50:12 +03:00
consistency.rs fix(loader): enforce composite @unique(a, b) as a true composite key (#133) 2026-06-09 17:17:31 +03:00
end_to_end.rs fix: optimize publishes compaction; recovery roll-back converges manifest (#141) 2026-06-08 02:50:12 +03:00
export.rs Initial public Omnigraph repository 2026-04-10 20:49:41 +03:00
failpoints.rs fix: optimize publishes compaction; recovery roll-back converges manifest (#141) 2026-06-08 02:50:12 +03:00
forbidden_apis.rs (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
lance_surface_guards.rs fix(maintenance): route uncovered drift through repair (#156) 2026-06-09 14:42:54 +02:00
lance_version_columns.rs Initial public Omnigraph repository 2026-04-10 20:49:41 +03:00
lifecycle.rs (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
maintenance.rs fix(maintenance): route uncovered drift through repair (#156) 2026-06-09 14:42:54 +02:00
merge_truth_table.rs MR-786: merge-pair truth table with exhaustive op-variant matrix (#81) 2026-05-12 22:36:01 +03:00
point_in_time.rs Initial public Omnigraph repository 2026-04-10 20:49:41 +03:00
policy_engine_chassis.rs (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
recovery.rs fix: optimize publishes compaction; recovery roll-back converges manifest (#141) 2026-06-08 02:50:12 +03:00
s3_storage.rs Rename repo terminology to graph (#118) 2026-05-24 16:46:00 +01:00
schema_apply.rs Rename repo terminology to graph (#118) 2026-05-24 16:46:00 +01:00
search.rs chore(lance): bump 4.0.0 → 6.0.1 (DataFusion 52→53, Arrow 57→58) (#111) 2026-05-23 00:42:29 +01:00
staged_writes.rs docs: rename runs.md/runs.rs → writes and repoint all references (#131) 2026-05-30 23:20:56 +02:00
traversal.rs (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
validators.rs (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
writes.rs fix(maintenance): route uncovered drift through repair (#156) 2026-06-09 14:42:54 +02:00