@Override public Iterator<Tuple> iterator() { try { this.reset(); } catch (Exception e) { // should not happen as this is second load e.printStackTrace(); } if (getLimit() > 0 || getOffset() > 0 || getColOffset() > 0 || getColLimit() > 0) { return new TupleIterator(csv, getLimit(), getOffset(), getColLimit(), getColOffset()); } return csv.iterator(); }