Shape · Data quality and flow control
Compare Tables
Lines up two versions of a table by key columns and puts each value side by side, flagging every cell that changed. A row on only one side shows blanks for the other.
Also known as: Diff, reconcile
How it works
Wire the baseline into left and the new version into right; both must have the same set of columns or the node stops with the differing names. Key columns identify a row on both sides. Value columns are the ones compared, all non-key columns by default. For each key the output has the key, then per value column c_left, c_right and a boolean c_changed; a row present on one side only has NULLs on the other. Output Differences only keeps rows with a change or present on one side; Full keeps every row. Treat two nulls as equal is on by default; off, a cell that is NULL on both sides counts as changed.
Inputs and outputs
Inputs
left— Tableright— Table
Outputs
data— Table
Settings
The Attributes panel of Compare Tables, as in the app: the controls work, but nothing runs — there is no data behind it.
The same settings, as the Assistant writes them
{
keyColumns: string[]
valueColumns?: string[]
outputMode: "diff_only"|"full"
nullEqual: boolean
}
Example
Yesterday's price list against today's: key columns sku, value columns price, output Differences only.
| sku | price_left | price_right | price_changed |
|---|---|---|---|
| A100 | 9.99 | 10.49 | true |
| B220 | NULL | 4.50 | true |
| C305 | 15.00 | NULL | true |