Emits a join's relation, before its last select (PLAN §8.4). The engine rejects any column name both inputs have, so each positionally identical key is renamed to a temporary name on the side whose value is not kept (both sides for a FULL join, which then merges them with coalesce). The condition compares each pair of keys, with toOne() on the left key when both keys are nullable, so NULL keys never match. The parts carry the node's id: a Join's, or a Difference's, which joins its inputs this way.

The keys must be valid for the input schemas.