-- Introduced special case for processing a path step:    If we have unique iters (every context node returns results) and more    than 1000 items can be shared we apply a memoization technique and    evaluate the path step for each item only once. Afterwards the result    is expanded again to the full result.
-- Introduced special case for processing a path step:
   If we have unique iters (every context node returns results) and more
   than 1000 items can be shared we apply a memoization technique and
   evaluate the path step for each item only once. Afterwards the result
   is expanded again to the full result.

   The number 1000 is chosen to make sure that the two additional mapping
   joins are only introduced when we expect a real performance improvement.

   This special case applies in all element constructors that construct the
   same nodes (more than one) multiple times.

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