diff --git a/.meta.json b/.meta.json index 026058e..601652e 100644 --- a/.meta.json +++ b/.meta.json @@ -14,7 +14,7 @@ }, "libraries/DocumentQueries.sysml": { "algorithm": "SHA256", - "value": "7cad8b83772182db5aa917ed36c19feb2e0796ecd6cfbc3b6b1a4c33729b11a7" + "value": "c8f30ccffcc2c98609498c7cef83bbd5fdf74423230591721650bb4d1737f5b0" }, "libraries/IdentityMetadata.sysml": { "algorithm": "SHA256", @@ -69,7 +69,7 @@ "value": "9e00f049209584092dc8bcb398b736c08e6a39b1db667a8a744de3df72a543bf" } }, - "created": "2026-10-29T15:08:48Z", + "created": "2026-10-29T15:36:02Z", "index": { "AnalysisRecords": "libraries/AnalysisRecords.sysml", "DiagramLayout": "libraries/DiagramLayout.sysml", diff --git a/libraries/DocumentQueries.sysml b/libraries/DocumentQueries.sysml index bcdd3f3..16c956b 100644 --- a/libraries/DocumentQueries.sysml +++ b/libraries/DocumentQueries.sysml @@ -423,6 +423,18 @@ library package DocumentQueries { return result : Element[0..*] ordered; } + /* Differ: one row (key, column of left, column of right) per key value present + * in both left and right whose column cells differ — a keyed value comparison; + * keys on one side only are Except's. A key value carried by two rows on one + * side is a model error. */ + calc def Differ { + in left : Element[0..*] ordered; + in right : Element[0..*] ordered; + in key : String[1]; + in column : String[1]; + return result : Element[0..*] ordered; + } + /* Tree: the source rows arranged as a containment tree in pre-order, each * row nested under the nearest row containing it — its nearest owner among * the rows, or the individual whose part it is — at the depth the table