This phase expands inner joins adding the correct aliases so they will function. Unfortunately,
since it introduces aliases into the clauses that don't actually exist in the inner expressions,
it is not technically type-safe but will not result in a Quat error since Quats cannot check
for Ident scoping. For a better implementation, that uses a well-typed FlatMap/FlatJoin cascade, have
a look here:
Better Typed ExpandJoin which uses FlatMap/FlatJoin
The reason the above implementation is not currently used is because ExpandNestedQueries does not
yet use Quat fields for expansion. Once this is changed, using that implementation here
should be reconsidered.
This phase expands inner joins adding the correct aliases so they will function. Unfortunately, since it introduces aliases into the clauses that don't actually exist in the inner expressions, it is not technically type-safe but will not result in a Quat error since Quats cannot check for Ident scoping. For a better implementation, that uses a well-typed FlatMap/FlatJoin cascade, have a look here: Better Typed ExpandJoin which uses FlatMap/FlatJoin
The reason the above implementation is not currently used is because
ExpandNestedQueries
does not yet use Quat fields for expansion. Once this is changed, using that implementation here should be reconsidered.