private PreSortingIterator(BackendQueryHolder<B> backendQueryHolder) {
List<R> all = Lists.newArrayList(executor.execute(query,
backendQueryHolder.getBackendQuery().updateLimit(MAX_SORT_ITERATION),
backendQueryHolder.getExecutionInfo()));
if (all.size() >= MAX_SORT_ITERATION)
throw new QueryException("Could not execute query since pre-sorting requires fetching more than " +
MAX_SORT_ITERATION + " elements. Consider rewriting the query to exploit sort orders");
Collections.sort(all, query.getSortOrder());
iter = all.iterator();
}