Fix status:closed query

There was no rewrite rule matching this so the query processor
helpfully ANDed in status:open. Add one.

Change-Id: Ia9afcf0661d6e89d633588db3d0e7f4f60488477
This commit is contained in:
Dave Borowitz
2013-10-11 10:44:23 -07:00
parent 0f62e836d5
commit 25078217ad
2 changed files with 25 additions and 11 deletions

View File

@@ -557,18 +557,24 @@ public class ChangeQueryBuilder extends QueryBuilder<ChangeData> {
return limit(Integer.parseInt(limit));
}
public Predicate<ChangeData> limit(int limit) {
return new IntPredicate<ChangeData>(FIELD_LIMIT, limit) {
@Override
public boolean match(ChangeData object) {
return true;
}
static class LimitPredicate extends IntPredicate<ChangeData> {
LimitPredicate(int limit) {
super(FIELD_LIMIT, limit);
}
@Override
public int getCost() {
return 0;
}
};
@Override
public boolean match(ChangeData object) {
return true;
}
@Override
public int getCost() {
return 0;
}
}
public Predicate<ChangeData> limit(int limit) {
return new LimitPredicate(limit);
}
@Operator

View File

@@ -23,6 +23,7 @@ import com.google.gerrit.server.query.IntPredicate;
import com.google.gerrit.server.query.Predicate;
import com.google.gerrit.server.query.QueryRewriter;
import com.google.gerrit.server.query.RewritePredicate;
import com.google.gerrit.server.query.change.ChangeQueryBuilder.LimitPredicate;
import com.google.gwtorm.server.OrmException;
import com.google.gwtorm.server.ResultSet;
import com.google.inject.Inject;
@@ -538,6 +539,13 @@ public class SqlRewriterImpl extends BasicChangeRewrites
return or(r30_byReviewerOpen(r), r30_byReviewerClosed(r));
}
@Rewrite("status:closed")
public Predicate<ChangeData> r99_allClosed() {
return r20_byClosedNext(
new SortKeyPredicate.Before(null, dbProvider, "z"),
new LimitPredicate(Integer.MAX_VALUE));
}
@Rewrite("status:submitted")
public Predicate<ChangeData> r99_allSubmitted() {
return new ChangeSource(50) {