package jeql.engine.query;
import java.util.Set;
import java.util.TreeSet;
import jeql.api.row.ArrayRowList;
import jeql.api.row.Row;
import jeql.api.row.RowComparator;
import jeql.api.row.RowIterator;
import jeql.api.row.RowList;
public class DistinctEvaluator
implements QueryOp
{
private RowList rowStr;
private Set distinctRows;
public DistinctEvaluator(RowList rowStr) {
this.rowStr = rowStr;
}
public RowList eval()
{
distinctRows = new TreeSet(new RowComparator());
RowIterator it = rowStr.iterator();
while (true) {
Row row = it.next();
if (row == null) break;
distinctRows.add(row);
}
return new ArrayRowList(rowStr.getSchema(), distinctRows);
}
}