Like simplifyƒ
, but eliminates _all_ Let
(and any bound Free
) nodes.
Apply universal, type-oblivious transformations intended to improve the performance of a query regardless of the backend.
Apply universal, type-oblivious transformations intended to improve the performance of a query regardless of the backend. The input is expected to come straight from the SQL^2 compiler or another source of un-optimized queries.
Rewrite joins and subsequent filtering so that: 1) Filtering that is equivalent to an equi-join is rewritten into the join condition.
Rewrite joins and subsequent filtering so that: 1) Filtering that is equivalent to an equi-join is rewritten into the join condition. 2) Filtering that refers to only side of the join is hoisted prior to the join. The input plan must have been simplified already so that the structure is in a canonical form for inspection.
TODO: Separate the combining of filter and join from ...
In rewriteJoins
we maintain the association and nested level of let bindings
by not calling normalizeLets
(as we do in optimize
).
In rewriteJoins
we maintain the association and nested level of let bindings
by not calling normalizeLets
(as we do in optimize
). We would like rewriteJoins
to be identical to optimize
, but can only begin to address this after old mongo
is deleted.