示例#1
0
 private ITupleIterator computeSimpleCartesianProduct(
     ITupleIterator leftTuples, ITupleIterator rightTuples) {
   List<Tuple> result = new ArrayList<Tuple>();
   while (leftTuples.hasNext()) {
     Tuple leftTuple = leftTuples.next();
     if (logger.isDebugEnabled()) logger.debug("Left tuple in cartesian product: " + leftTuple);
     while (rightTuples.hasNext()) {
       Tuple rightTuple = rightTuples.next();
       if (logger.isDebugEnabled())
         logger.debug("Right tuple in cartesian product: " + rightTuple);
       Tuple joinedTuple = joinTuples(leftTuple, rightTuple);
       result.add(joinedTuple);
     }
     rightTuples.reset();
   }
   leftTuples.reset();
   return new ListTupleIterator(result);
 }