Does calling next() on the left (probe) side while we are in the build phase only need to be done once when we are starting the build phase ?  Once we have the probe side expression for materialization, as long as the schema does not change, we don't need to call next() again on the left side I think.  We should also think about whether there is an alternative way that maybe gives access to the expressions on the build side without the need to fetch the rows.