public List<Object> query(final String indexName, final IndexQuery query, final BackendTransaction tx) {
Preconditions.checkArgument(indexes.containsKey(indexName), "Index unknown or unconfigured: %s", indexName);
if (isStandardIndex(indexName)) {
Preconditions.checkArgument(query.getOrder().isEmpty(), "Standard index does not support ordering");
List<Object> results = null;
final ElementType resultType = getElementType(query.getStore());
final Condition<?> condition = query.getCondition();
if (condition instanceof And) {
List<QueryUtil.IndexCall<Object>> retrievals = new ArrayList<QueryUtil.IndexCall<Object>>(condition.numChildren());
for (final Condition<?> subcond : ((And<?>) condition).getChildren()) {