-- Extended proxy detection with another phase that finds    adjacent proxies that are independent of each other.
-- Extended proxy detection with another phase that finds
   adjacent proxies that are independent of each other.

   Such a detected new 'proxy' pattern is used to unnest
   the two proxies. A join on their common context connects
   the independently evaluated proxies.

In comparison to our mvd optimization we split up expressions
that have a common context. Instead of a cross product we
introduce an equi-join that maps both back to their common
context.
The resulting patterns are however similar we have a selection
operator followed by a comparison and a cross product/equi-join.

(See http://www-db.in.tum.de/~rittinge/files/q04.pdf for the pattern.)

In MIL however there is one small difference: While the pattern
with the cross product results in a theta-join, the pattern with
the equi-join on the other side would require a theta-join with two
conditions to avoid large (and unnecessary) intermediate results.

zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb