To be used by backends that require collections to contain Obj, this
looks at type checks on Read
then either eliminates them if they are
trivial, leaves them if they check field contents, or errors if they are
incompatible.
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.