In the join nodes, include NestedLoopJoinNode and PartitionedHashJoinNode, we transfer memory from the left child batches to the output, in case the output batch references the input data. This is not necessary for all join mode, e.g. RIGHT SEMI and RIGHT ANTI joins that only return row data from the right child. This results in unnecessary amounts of memory flowing up the plan tree. It's also a little undesirable in that it makes it unclear why the memory is transferred.