Fixes the join as one change of the query: a Rename spliced in before each input that has a column to rename (one side may have none: a key both sides give as one column keeps its name), on the same port, and the join's keys rewritten when a renamed column was a key. The selection stays where it was. Throws when canFixJoinDuplicates doesn't hold.