Search tr/bug operators using ChangeIndex
Change-Id: Ie08fe8f4038dd7d79fbdfa7de51090fd24eb6d92
This commit is contained in:
@@ -19,6 +19,7 @@ import com.google.common.collect.Maps;
|
|||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
||||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||||
|
import com.google.gerrit.reviewdb.client.TrackingId;
|
||||||
import com.google.gerrit.server.ChangeUtil;
|
import com.google.gerrit.server.ChangeUtil;
|
||||||
import com.google.gerrit.server.query.change.ChangeData;
|
import com.google.gerrit.server.query.change.ChangeData;
|
||||||
import com.google.gerrit.server.query.change.ChangeQueryBuilder;
|
import com.google.gerrit.server.query.change.ChangeQueryBuilder;
|
||||||
@@ -44,7 +45,7 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
public class ChangeField {
|
public class ChangeField {
|
||||||
/** Increment whenever making schema changes. */
|
/** Increment whenever making schema changes. */
|
||||||
public static final int SCHEMA_VERSION = 8;
|
public static final int SCHEMA_VERSION = 9;
|
||||||
|
|
||||||
/** Legacy change ID. */
|
/** Legacy change ID. */
|
||||||
public static final FieldDef<ChangeData, Integer> LEGACY_ID =
|
public static final FieldDef<ChangeData, Integer> LEGACY_ID =
|
||||||
@@ -187,6 +188,21 @@ public class ChangeField {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Tracking id extracted from a footer. */
|
||||||
|
public static final FieldDef<ChangeData, Iterable<String>> TR =
|
||||||
|
new FieldDef.Repeatable<ChangeData, String>(
|
||||||
|
ChangeQueryBuilder.FIELD_TR, FieldType.EXACT, false) {
|
||||||
|
@Override
|
||||||
|
public Iterable<String> get(ChangeData input, FillArgs args)
|
||||||
|
throws OrmException {
|
||||||
|
Set<String> r = Sets.newHashSet();
|
||||||
|
for (TrackingId id : input.trackingIds(args.db)) {
|
||||||
|
r.add(id.getTrackingId());
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static final ImmutableMap<String, FieldDef<ChangeData, ?>> ALL;
|
public static final ImmutableMap<String, FieldDef<ChangeData, ?>> ALL;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ package com.google.gerrit.server.query.change;
|
|||||||
import com.google.gerrit.reviewdb.client.Change;
|
import com.google.gerrit.reviewdb.client.Change;
|
||||||
import com.google.gerrit.reviewdb.client.TrackingId;
|
import com.google.gerrit.reviewdb.client.TrackingId;
|
||||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||||
import com.google.gerrit.server.query.OperatorPredicate;
|
import com.google.gerrit.server.index.ChangeField;
|
||||||
|
import com.google.gerrit.server.index.IndexPredicate;
|
||||||
import com.google.gwtorm.server.ListResultSet;
|
import com.google.gwtorm.server.ListResultSet;
|
||||||
import com.google.gwtorm.server.OrmException;
|
import com.google.gwtorm.server.OrmException;
|
||||||
import com.google.gwtorm.server.ResultSet;
|
import com.google.gwtorm.server.ResultSet;
|
||||||
@@ -26,12 +27,12 @@ import com.google.inject.Provider;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
class TrackingIdPredicate extends OperatorPredicate<ChangeData> implements
|
class TrackingIdPredicate extends IndexPredicate<ChangeData> implements
|
||||||
ChangeDataSource {
|
ChangeDataSource {
|
||||||
private final Provider<ReviewDb> db;
|
private final Provider<ReviewDb> db;
|
||||||
|
|
||||||
TrackingIdPredicate(Provider<ReviewDb> db, String trackingId) {
|
TrackingIdPredicate(Provider<ReviewDb> db, String trackingId) {
|
||||||
super(ChangeQueryBuilder.FIELD_TR, trackingId);
|
super(ChangeField.TR, trackingId);
|
||||||
this.db = db;
|
this.db = db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user