-- Fix in proxy generation:    Some optimizations based on proxies rely on the fact that an input column    of a proxy returns a column with the same name (if it returns the column).
-- Fix in proxy generation:
   Some optimizations based on proxies rely on the fact that an input column
   of a proxy returns a column with the same name (if it returns the column).

   The renaming inside the proxy that achieves the correct naming is based
   on unique column names and has problems if the proxies input contains
   two columns with identical unique names twice.

   The solution is to introduce a projection before the proxy that throws
   all duplicate columns (with identical unique names).

   (A similar projection at the top of the proxy body ensures that identical
    output columns are returned more than once.)


-- Made optimization based on two adjacent proxies more restrictive
   (It does not rewrite if a descdendant along a number-projection chain
    is a cross product.)

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