Description
Currently Beam SQL joins all go through a single physical operator which has a single PTransform that does all join algorithms based on properties of its input PCollections as well as the relational algebra.
A first step is to make the needed information part of the relational algebra, so it can choose a PTransform based on that, and the PTransforms can be simpler.
Second step is to have separate (physical) relational operators for different join algorithms.