code: @Override
  	public long blocksAccessed() {
  		// this guesses at the # of chunks
  		int avail = tx.bufferMgr().available();
  		long size = new MaterializePlan(rhs, tx).blocksAccessed();
  		long numchunks = size / avail;
  		return rhs.blocksAccessed() + (lhs.blocksAccessed() * numchunks);
  	}
docs: Returns an estimate of the number of block accesses required to execute
  the query. The formula is:
  
  <pre>
  B(product(p1, p2)) = B(p2) + B(p1) * C(p2)
  </pre>
  
  where C(p2) is the number of chunks of p2. The method uses the current
  number of available buffers to calculate C(p2), and so this value may
  differ when the query scan is opened.
  
  @see Plan#blocksAccessed()