Skip to content

Commit

Permalink
Temporarily reenabled old query interpreter to diagnose recent proble…
Browse files Browse the repository at this point in the history
…ms in tests.
  • Loading branch information
mederly committed Jan 12, 2016
1 parent 76ebfc1 commit cd22146
Showing 1 changed file with 39 additions and 1 deletion.
Expand Up @@ -27,8 +27,13 @@
import com.evolveum.midpoint.prism.PrismPropertyDefinition;
import com.evolveum.midpoint.prism.PrismReferenceDefinition;
import com.evolveum.midpoint.prism.parser.XNodeProcessorEvaluationMode;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.ExistsFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectPaging;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.ValueFilter;
import com.evolveum.midpoint.prism.query.Visitor;
import com.evolveum.midpoint.repo.api.RepositoryService;
import com.evolveum.midpoint.repo.sql.ObjectPagingAfterOid;
import com.evolveum.midpoint.repo.sql.SqlRepositoryConfiguration;
Expand All @@ -51,6 +56,7 @@
import com.evolveum.midpoint.schema.SearchResultList;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.util.Holder;
import com.evolveum.midpoint.util.exception.ObjectNotFoundException;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
Expand Down Expand Up @@ -822,8 +828,40 @@ public String executeArbitraryQueryAttempt(String queryString, OperationResult r

private boolean isUseNewQueryInterpreter(ObjectQuery query) {
//return query == null || query.isUseNewQueryInterpreter();
return true;
//return true;
boolean retval = isUseNewQueryInterpreterInternal(query);
LOGGER.debug("isUseNewQueryInterpreter for {} returns {}", query, retval);
return retval;
}

private boolean isUseNewQueryInterpreterInternal(ObjectQuery query) {
if (query == null) {
return false;
}
if (query.getPaging() != null) {
if (query.getPaging().getOrderBy() != null &&
query.getPaging().getOrderBy().size() != 1) {
return true;
}
}
if (query.getFilter() == null) {
return false;
}
final Holder<Boolean> isNewHolder = new Holder<>(false);
query.getFilter().accept(new Visitor() {
@Override
public void visit(ObjectFilter filter) {
if (filter instanceof ExistsFilter) {
isNewHolder.setValue(true);
} else if (filter instanceof ValueFilter) {
ItemPath path = ((ValueFilter) filter).getFullPath();
if (ItemPath.containsSpecialSymbols(path)) {
isNewHolder.setValue(true);
}
}
}
});
return isNewHolder.getValue();
}

}

0 comments on commit cd22146

Please sign in to comment.