Given a query, it builds another query with more data.
a condition if it's an inner join
Makes the tree fit a certain schema by changing the projected columns or adding a new Project node if there is no projection.
Makes the tree fit a certain schema by changing the projected columns or adding a new Project node if there is no projection.
fields to project
new node adapted to the given schema
Returns whether the tree contains any projection nodes.
left node
right node
Transforms the tree from the outermost node to the innermost until a single node is transformed, then stops.
Join between two nodes.
left node
right node
a condition if it's an inner join