joinKeys

fnDataFrame joinKeys(DataFrame left, DataFrame right, string[] leftOn, string[] rightOn, JoinKind kind = JoinKind.INNER, string suffix = "_right")

The multi-column join (ADR-2026-10-30-03): a row matches only when every key pair holds under the existing per-kind rules; any null component never matches (LEFT keeps the row null-padded, SEMI drops it, ANTI keeps it - the single-key doctrine componentwise). OUTER coalesces every paired key column. Emission stays left-order with right-row order within a left row and the deterministic unmatched-right tail.

Parameters

leftthe left frame
rightthe right frame
leftOnthe left key column names
rightOnthe right key column names (same length)
kindthe join kind
suffixthe collision suffix for non-key right columns

Returns

the joined frame.

Throws

DataFrameException on missing columns, length-mismatched

key arrays, empty keys, dtype/kind violations per pair.