Shape · IDs and hashing

Row Hash

Combines several columns into one fingerprint per row. Compare fingerprints between two loads to spot the rows that changed.

Also known as: Change detection, checksum

How it works

Columns picks what goes into the fingerprint; empty means every column. The values are rendered as text, joined with a separator and hashed with the Algorithm, sha256 by default; NULL and an empty string hash differently. Order-independent (on by default) hashes the columns in name order, so picking them in a different order never changes the result. The fingerprint is appended as row_hash unless you set Output column.

Inputs and outputs

Inputs

  • data — Table

Outputs

  • data — Table

Settings

The Attributes panel of Row Hash, as in the app: the controls work, but nothing runs — there is no data behind it.

The same settings, as the Assistant writes them
{
  columns: string[]
  algorithm: "md5"|"sha1"|"sha256"
  outputColumn: string
  orderIndependent: boolean
}

empty columns = every column; orderIndependent hashes the columns in name order so the pick order never changes the hash; NULL and "" hash differently

Example

Detect changed customer rows between two loads: leave Columns empty so every column counts, algorithm sha256. Fingerprint both loads, then Compare Tables on customer_id with row_hash as the only value column.