Prune old index schema versions and fields
Gerrit 2.12 still needs to support v14-v25 to do the online upgrade from 2.11; now that the release branch has been cut, we no longer need these old schema versions. Change-Id: I3fa2e52814c3a0df45376cf1a90e318b479ed3d8
This commit is contained in:
parent
141c01a4e9
commit
2c3abe28c6
|
@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
|||
import static com.google.common.base.Preconditions.checkState;
|
||||
import static com.google.common.collect.Iterables.getOnlyElement;
|
||||
import static com.google.gerrit.server.git.QueueProvider.QueueType.INTERACTIVE;
|
||||
import static com.google.gerrit.server.index.ChangeField.LEGACY_ID2;
|
||||
import static com.google.gerrit.server.index.IndexRewriter.CLOSED_STATUSES;
|
||||
import static com.google.gerrit.server.index.IndexRewriter.OPEN_STATUSES;
|
||||
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||
|
@ -54,7 +55,6 @@ import com.google.gerrit.server.query.Predicate;
|
|||
import com.google.gerrit.server.query.QueryParseException;
|
||||
import com.google.gerrit.server.query.change.ChangeData;
|
||||
import com.google.gerrit.server.query.change.ChangeDataSource;
|
||||
import com.google.gerrit.server.query.change.LegacyChangeIdPredicate;
|
||||
import com.google.gerrit.server.query.change.QueryOptions;
|
||||
import com.google.gwtorm.protobuf.ProtobufCodec;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
@ -236,7 +236,7 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
this.changeDataFactory = changeDataFactory;
|
||||
this.schema = schema;
|
||||
this.useDocValuesForSorting = schema.getVersion() >= 15;
|
||||
this.idSortField = sortFieldName(LegacyChangeIdPredicate.idField(schema));
|
||||
this.idSortField = sortFieldName(LEGACY_ID2);
|
||||
|
||||
CustomMappingAnalyzer analyzer =
|
||||
new CustomMappingAnalyzer(new StandardAnalyzer(CharArraySet.EMPTY_SET),
|
||||
|
@ -271,9 +271,9 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
if (useDocValuesForSorting) {
|
||||
return new SearcherFactory();
|
||||
}
|
||||
@SuppressWarnings("deprecation")
|
||||
final Map<String, UninvertingReader.Type> mapping = ImmutableMap.of(
|
||||
ChangeField.LEGACY_ID.getName(), UninvertingReader.Type.INTEGER,
|
||||
// TODO(dborowitz): Remove; this is dead code anyway.
|
||||
"_id", UninvertingReader.Type.INTEGER,
|
||||
ChangeField.UPDATED.getName(), UninvertingReader.Type.LONG);
|
||||
return new SearcherFactory() {
|
||||
@Override
|
||||
|
@ -312,7 +312,7 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
|
||||
@Override
|
||||
public void replace(ChangeData cd) throws IOException {
|
||||
Term id = QueryBuilder.idTerm(schema, cd);
|
||||
Term id = QueryBuilder.idTerm(cd);
|
||||
Document doc = toDocument(cd);
|
||||
try {
|
||||
if (cd.change().getStatus().isOpen()) {
|
||||
|
@ -331,7 +331,7 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
|
||||
@Override
|
||||
public void delete(Change.Id id) throws IOException {
|
||||
Term idTerm = QueryBuilder.idTerm(schema, id);
|
||||
Term idTerm = QueryBuilder.idTerm(id);
|
||||
try {
|
||||
Futures.allAsList(
|
||||
openIndex.delete(idTerm),
|
||||
|
@ -367,7 +367,6 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
setReady(sitePaths, schema.getVersion(), ready);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private Sort getSort() {
|
||||
if (useDocValuesForSorting) {
|
||||
return new Sort(
|
||||
|
@ -378,7 +377,8 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
new SortField(
|
||||
ChangeField.UPDATED.getName(), SortField.Type.LONG, true),
|
||||
new SortField(
|
||||
ChangeField.LEGACY_ID.getName(), SortField.Type.INT, true));
|
||||
// TODO(dborowitz): Remove; this is dead code anyway.
|
||||
"_id", SortField.Type.INT, true));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -434,7 +434,7 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
List<ChangeData> result =
|
||||
Lists.newArrayListWithCapacity(docs.scoreDocs.length);
|
||||
Set<String> fields = fields(opts);
|
||||
String idFieldName = idFieldName();
|
||||
String idFieldName = LEGACY_ID2.getName();
|
||||
for (int i = opts.start(); i < docs.scoreDocs.length; i++) {
|
||||
ScoreDoc sd = docs.scoreDocs[i];
|
||||
Document doc = searchers[sd.shardIndex].doc(sd.doc, fields);
|
||||
|
@ -474,16 +474,14 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private Set<String> fields(QueryOptions opts) {
|
||||
if (schemaHasRequestedField(ChangeField.LEGACY_ID2, opts.fields())
|
||||
|| schemaHasRequestedField(ChangeField.CHANGE, opts.fields())
|
||||
|| schemaHasRequestedField(ChangeField.LEGACY_ID, opts.fields())) {
|
||||
|| schemaHasRequestedField(ChangeField.CHANGE, opts.fields())) {
|
||||
return opts.fields();
|
||||
}
|
||||
// Request the numeric ID field even if the caller did not request it,
|
||||
// otherwise we can't actually construct a ChangeData.
|
||||
return Sets.union(opts.fields(), ImmutableSet.of(idFieldName()));
|
||||
return Sets.union(opts.fields(), ImmutableSet.of(LEGACY_ID2.getName()));
|
||||
}
|
||||
|
||||
private boolean schemaHasRequestedField(FieldDef<ChangeData, ?> field,
|
||||
|
@ -491,12 +489,6 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
return schema.hasField(field) && requested.contains(field.getName());
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private String idFieldName() {
|
||||
return schema.getField(ChangeField.LEGACY_ID2, ChangeField.LEGACY_ID).get()
|
||||
.getName();
|
||||
}
|
||||
|
||||
private ChangeData toChangeData(Document doc, Set<String> fields,
|
||||
String idFieldName) {
|
||||
ChangeData cd;
|
||||
|
@ -602,7 +594,6 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
return result;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void add(Document doc, Values<ChangeData> values) {
|
||||
String name = values.getField().getName();
|
||||
FieldType<?> type = values.getField().getType();
|
||||
|
@ -610,7 +601,7 @@ public class LuceneChangeIndex implements ChangeIndex {
|
|||
|
||||
if (useDocValuesForSorting) {
|
||||
FieldDef<ChangeData, ?> f = values.getField();
|
||||
if (f == ChangeField.LEGACY_ID || f == ChangeField.LEGACY_ID2) {
|
||||
if (f == ChangeField.LEGACY_ID2) {
|
||||
int v = (Integer) getOnlyElement(values.getValues());
|
||||
doc.add(new NumericDocValuesField(sortFieldName(f), v));
|
||||
} else if (f == ChangeField.UPDATED) {
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
package com.google.gerrit.lucene;
|
||||
|
||||
import static com.google.gerrit.server.query.change.LegacyChangeIdPredicate.idField;
|
||||
import static com.google.gerrit.server.index.ChangeField.LEGACY_ID2;
|
||||
import static org.apache.lucene.search.BooleanClause.Occur.MUST;
|
||||
import static org.apache.lucene.search.BooleanClause.Occur.MUST_NOT;
|
||||
import static org.apache.lucene.search.BooleanClause.Occur.SHOULD;
|
||||
|
@ -25,7 +25,6 @@ import com.google.gerrit.server.index.FieldType;
|
|||
import com.google.gerrit.server.index.IndexPredicate;
|
||||
import com.google.gerrit.server.index.IntegerRangePredicate;
|
||||
import com.google.gerrit.server.index.RegexPredicate;
|
||||
import com.google.gerrit.server.index.Schema;
|
||||
import com.google.gerrit.server.index.TimestampRangePredicate;
|
||||
import com.google.gerrit.server.query.AndPredicate;
|
||||
import com.google.gerrit.server.query.NotPredicate;
|
||||
|
@ -51,12 +50,12 @@ import java.util.List;
|
|||
|
||||
public class QueryBuilder {
|
||||
|
||||
public static Term idTerm(Schema<ChangeData> schema, ChangeData cd) {
|
||||
return intTerm(idField(schema).getName(), cd.getId().get());
|
||||
public static Term idTerm(ChangeData cd) {
|
||||
return intTerm(LEGACY_ID2.getName(), cd.getId().get());
|
||||
}
|
||||
|
||||
public static Term idTerm(Schema<ChangeData> schema, Change.Id id) {
|
||||
return intTerm(idField(schema).getName(), id.get());
|
||||
public static Term idTerm(Change.Id id) {
|
||||
return intTerm(LEGACY_ID2.getName(), id.get());
|
||||
}
|
||||
|
||||
private final org.apache.lucene.util.QueryBuilder queryBuilder;
|
||||
|
|
|
@ -65,18 +65,7 @@ import java.util.Set;
|
|||
* characters.
|
||||
*/
|
||||
public class ChangeField {
|
||||
@Deprecated
|
||||
/** Legacy change ID. */
|
||||
public static final FieldDef<ChangeData, Integer> LEGACY_ID =
|
||||
new FieldDef.Single<ChangeData, Integer>("_id",
|
||||
FieldType.INTEGER, true) {
|
||||
@Override
|
||||
public Integer get(ChangeData input, FillArgs args) {
|
||||
return input.getId().get();
|
||||
}
|
||||
};
|
||||
|
||||
/** Legacy change ID without underscore prefix. */
|
||||
public static final FieldDef<ChangeData, Integer> LEGACY_ID2 =
|
||||
new FieldDef.Single<ChangeData, Integer>("legacy_id",
|
||||
FieldType.INTEGER, true) {
|
||||
|
@ -161,30 +150,6 @@ public class ChangeField {
|
|||
}
|
||||
};
|
||||
|
||||
@Deprecated
|
||||
/** Topic, a short annotation on the branch. */
|
||||
public static final FieldDef<ChangeData, String> LEGACY_TOPIC2 =
|
||||
new FieldDef.Single<ChangeData, String>(
|
||||
"topic2", FieldType.EXACT, false) {
|
||||
@Override
|
||||
public String get(ChangeData input, FillArgs args)
|
||||
throws OrmException {
|
||||
return getTopic(input);
|
||||
}
|
||||
};
|
||||
|
||||
@Deprecated
|
||||
/** Topic, a short annotation on the branch. */
|
||||
public static final FieldDef<ChangeData, String> LEGACY_TOPIC3 =
|
||||
new FieldDef.Single<ChangeData, String>(
|
||||
"topic3", FieldType.PREFIX, false) {
|
||||
@Override
|
||||
public String get(ChangeData input, FillArgs args)
|
||||
throws OrmException {
|
||||
return getTopic(input);
|
||||
}
|
||||
};
|
||||
|
||||
/** Topic, a short annotation on the branch. */
|
||||
public static final FieldDef<ChangeData, String> EXACT_TOPIC =
|
||||
new FieldDef.Single<ChangeData, String>(
|
||||
|
@ -405,23 +370,6 @@ public class ChangeField {
|
|||
}
|
||||
};
|
||||
|
||||
/** Set true if the change has a non-zero label score. */
|
||||
@Deprecated
|
||||
public static final FieldDef<ChangeData, String> LEGACY_REVIEWED =
|
||||
new FieldDef.Single<ChangeData, String>(
|
||||
"reviewed", FieldType.EXACT, false) {
|
||||
@Override
|
||||
public String get(ChangeData input, FillArgs args)
|
||||
throws OrmException {
|
||||
for (PatchSetApproval a : input.currentApprovals()) {
|
||||
if (a.getValue() != 0) {
|
||||
return "1";
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
private static Set<String> getPersonParts(PersonIdent person) {
|
||||
if (person == null) {
|
||||
return ImmutableSet.of();
|
||||
|
|
|
@ -30,353 +30,6 @@ import java.util.Map;
|
|||
|
||||
/** Secondary index schemas for changes. */
|
||||
public class ChangeSchemas {
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V14 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.LEGACY_TOPIC2,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.LEGACY_REVIEWED,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V15 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.LEGACY_TOPIC2,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.LEGACY_REVIEWED,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V16 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.LEGACY_TOPIC3,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.LEGACY_REVIEWED,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V17 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.LEGACY_TOPIC3,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.LEGACY_REVIEWED,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V18 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.LEGACY_TOPIC3,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.LEGACY_REVIEWED,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET,
|
||||
ChangeField.GROUP);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V19 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.LEGACY_TOPIC3,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.LEGACY_REVIEWED,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET,
|
||||
ChangeField.GROUP,
|
||||
ChangeField.EDITBY);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V20 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.LEGACY_TOPIC3,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET,
|
||||
ChangeField.GROUP,
|
||||
ChangeField.EDITBY,
|
||||
ChangeField.REVIEWEDBY);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static final Schema<ChangeData> V21 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.EXACT_TOPIC,
|
||||
ChangeField.FUZZY_TOPIC,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET,
|
||||
ChangeField.GROUP,
|
||||
ChangeField.EDITBY,
|
||||
ChangeField.REVIEWEDBY);
|
||||
|
||||
@Deprecated
|
||||
static final Schema<ChangeData> V22 = schema(
|
||||
ChangeField.LEGACY_ID,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.EXACT_TOPIC,
|
||||
ChangeField.FUZZY_TOPIC,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET,
|
||||
ChangeField.GROUP,
|
||||
ChangeField.EDITBY,
|
||||
ChangeField.REVIEWEDBY,
|
||||
ChangeField.EXACT_COMMIT);
|
||||
|
||||
@Deprecated
|
||||
static final Schema<ChangeData> V23 = schema(
|
||||
ChangeField.LEGACY_ID2,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.EXACT_TOPIC,
|
||||
ChangeField.FUZZY_TOPIC,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET,
|
||||
ChangeField.GROUP,
|
||||
ChangeField.EDITBY,
|
||||
ChangeField.REVIEWEDBY,
|
||||
ChangeField.EXACT_COMMIT);
|
||||
|
||||
static final Schema<ChangeData> V24 = schema(
|
||||
ChangeField.LEGACY_ID2,
|
||||
ChangeField.ID,
|
||||
ChangeField.STATUS,
|
||||
ChangeField.PROJECT,
|
||||
ChangeField.PROJECTS,
|
||||
ChangeField.REF,
|
||||
ChangeField.EXACT_TOPIC,
|
||||
ChangeField.FUZZY_TOPIC,
|
||||
ChangeField.UPDATED,
|
||||
ChangeField.FILE_PART,
|
||||
ChangeField.PATH,
|
||||
ChangeField.OWNER,
|
||||
ChangeField.REVIEWER,
|
||||
ChangeField.COMMIT,
|
||||
ChangeField.TR,
|
||||
ChangeField.LABEL,
|
||||
ChangeField.COMMIT_MESSAGE,
|
||||
ChangeField.COMMENT,
|
||||
ChangeField.CHANGE,
|
||||
ChangeField.APPROVAL,
|
||||
ChangeField.MERGEABLE,
|
||||
ChangeField.ADDED,
|
||||
ChangeField.DELETED,
|
||||
ChangeField.DELTA,
|
||||
ChangeField.HASHTAG,
|
||||
ChangeField.COMMENTBY,
|
||||
ChangeField.PATCH_SET,
|
||||
ChangeField.GROUP,
|
||||
ChangeField.EDITBY,
|
||||
ChangeField.REVIEWEDBY,
|
||||
ChangeField.EXACT_COMMIT,
|
||||
ChangeField.AUTHOR,
|
||||
ChangeField.COMMITTER);
|
||||
|
||||
static final Schema<ChangeData> V25 = schema(
|
||||
ChangeField.LEGACY_ID2,
|
||||
ChangeField.ID,
|
||||
|
|
|
@ -379,8 +379,7 @@ public class ChangeQueryBuilder extends QueryBuilder<ChangeData> {
|
|||
@Operator
|
||||
public Predicate<ChangeData> change(String query) throws QueryParseException {
|
||||
if (PAT_LEGACY_ID.matcher(query).matches()) {
|
||||
return new LegacyChangeIdPredicate(
|
||||
args.getSchema(), Change.Id.parse(query));
|
||||
return new LegacyChangeIdPredicate(Change.Id.parse(query));
|
||||
} else if (PAT_CHANGE_ID.matcher(query).matches()) {
|
||||
return new ChangeIdPredicate(parseChangeId(query));
|
||||
}
|
||||
|
@ -403,7 +402,7 @@ public class ChangeQueryBuilder extends QueryBuilder<ChangeData> {
|
|||
@Operator
|
||||
public Predicate<ChangeData> status(String statusName) {
|
||||
if ("reviewed".equalsIgnoreCase(statusName)) {
|
||||
return IsReviewedPredicate.create(args.getSchema());
|
||||
return IsReviewedPredicate.create();
|
||||
} else {
|
||||
return ChangeStatusPredicate.parse(statusName);
|
||||
}
|
||||
|
@ -444,7 +443,7 @@ public class ChangeQueryBuilder extends QueryBuilder<ChangeData> {
|
|||
}
|
||||
|
||||
if ("reviewed".equalsIgnoreCase(value)) {
|
||||
return IsReviewedPredicate.create(args.getSchema());
|
||||
return IsReviewedPredicate.create();
|
||||
}
|
||||
|
||||
if ("owner".equalsIgnoreCase(value)) {
|
||||
|
@ -518,18 +517,18 @@ public class ChangeQueryBuilder extends QueryBuilder<ChangeData> {
|
|||
|
||||
@Operator
|
||||
public Predicate<ChangeData> topic(String name) {
|
||||
return new ExactTopicPredicate(args.getSchema(), name);
|
||||
return new ExactTopicPredicate(name);
|
||||
}
|
||||
|
||||
@Operator
|
||||
public Predicate<ChangeData> intopic(String name) {
|
||||
if (name.startsWith("^")) {
|
||||
return new RegexTopicPredicate(args.getSchema(), name);
|
||||
return new RegexTopicPredicate(name);
|
||||
}
|
||||
if (name.isEmpty()) {
|
||||
return new ExactTopicPredicate(args.getSchema(), name);
|
||||
return new ExactTopicPredicate(name);
|
||||
}
|
||||
return new FuzzyTopicPredicate(args.getSchema(), name, args.index);
|
||||
return new FuzzyTopicPredicate(name, args.index);
|
||||
}
|
||||
|
||||
@Operator
|
||||
|
@ -870,7 +869,7 @@ public class ChangeQueryBuilder extends QueryBuilder<ChangeData> {
|
|||
@Operator
|
||||
public Predicate<ChangeData> reviewedby(String who)
|
||||
throws QueryParseException, OrmException {
|
||||
return IsReviewedPredicate.create(args.getSchema(), parseAccount(who));
|
||||
return IsReviewedPredicate.create(parseAccount(who));
|
||||
}
|
||||
|
||||
@Operator
|
||||
|
|
|
@ -33,8 +33,7 @@ class CommentPredicate extends IndexPredicate<ChangeData> {
|
|||
public boolean match(ChangeData object) throws OrmException {
|
||||
try {
|
||||
Predicate<ChangeData> p = Predicate.and(
|
||||
new LegacyChangeIdPredicate(index.getSchema(), object.getId()),
|
||||
this);
|
||||
new LegacyChangeIdPredicate(object.getId()), this);
|
||||
for (ChangeData cData
|
||||
: index.getSource(p, QueryOptions.oneResult()).read()) {
|
||||
if (cData.getId().equals(object.getId())) {
|
||||
|
|
|
@ -77,7 +77,7 @@ class ConflictsPredicate extends OrPredicate<ChangeData> {
|
|||
List<Predicate<ChangeData>> predicatesForOneChange =
|
||||
Lists.newArrayListWithCapacity(5);
|
||||
predicatesForOneChange.add(
|
||||
not(new LegacyChangeIdPredicate(args.getSchema(), c.getId())));
|
||||
not(new LegacyChangeIdPredicate(c.getId())));
|
||||
predicatesForOneChange.add(
|
||||
new ProjectPredicate(c.getProject().get()));
|
||||
predicatesForOneChange.add(
|
||||
|
|
|
@ -17,44 +17,21 @@ package com.google.gerrit.server.query.change;
|
|||
import static com.google.gerrit.server.index.ChangeField.EXACT_TOPIC;
|
||||
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.server.index.ChangeField;
|
||||
import com.google.gerrit.server.index.FieldDef;
|
||||
import com.google.gerrit.server.index.IndexPredicate;
|
||||
import com.google.gerrit.server.index.Schema;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
||||
class ExactTopicPredicate extends IndexPredicate<ChangeData> {
|
||||
@SuppressWarnings("deprecation")
|
||||
static FieldDef<ChangeData, ?> topicField(Schema<ChangeData> schema) {
|
||||
if (schema == null) {
|
||||
return ChangeField.LEGACY_TOPIC2;
|
||||
}
|
||||
if (schema.hasField(EXACT_TOPIC)) {
|
||||
return schema.getFields().get(EXACT_TOPIC.getName());
|
||||
}
|
||||
if (schema.hasField(ChangeField.LEGACY_TOPIC2)) {
|
||||
return schema.getFields().get(ChangeField.LEGACY_TOPIC2.getName());
|
||||
}
|
||||
// Not exact, but we cannot do any better.
|
||||
return schema.getFields().get(ChangeField.LEGACY_TOPIC3.getName());
|
||||
ExactTopicPredicate(String topic) {
|
||||
super(EXACT_TOPIC, topic);
|
||||
}
|
||||
|
||||
ExactTopicPredicate(Schema<ChangeData> schema, String topic) {
|
||||
super(topicField(schema), topic);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public boolean match(final ChangeData object) throws OrmException {
|
||||
Change change = object.change();
|
||||
if (change == null) {
|
||||
return false;
|
||||
}
|
||||
String t = change.getTopic();
|
||||
if (t == null && getField() == ChangeField.LEGACY_TOPIC2) {
|
||||
t = "";
|
||||
}
|
||||
return getValue().equals(t);
|
||||
return getValue().equals(change.getTopic());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,15 +15,11 @@
|
|||
package com.google.gerrit.server.query.change;
|
||||
|
||||
import static com.google.gerrit.server.index.ChangeField.FUZZY_TOPIC;
|
||||
import static com.google.gerrit.server.index.ChangeField.LEGACY_TOPIC2;
|
||||
import static com.google.gerrit.server.index.ChangeField.LEGACY_TOPIC3;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.server.index.ChangeIndex;
|
||||
import com.google.gerrit.server.index.FieldDef;
|
||||
import com.google.gerrit.server.index.IndexPredicate;
|
||||
import com.google.gerrit.server.index.Schema;
|
||||
import com.google.gerrit.server.query.Predicate;
|
||||
import com.google.gerrit.server.query.QueryParseException;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
@ -31,18 +27,11 @@ import com.google.gwtorm.server.OrmException;
|
|||
class FuzzyTopicPredicate extends IndexPredicate<ChangeData> {
|
||||
private final ChangeIndex index;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static FieldDef<ChangeData, ?> topicField(Schema<ChangeData> schema) {
|
||||
return schema.getField(FUZZY_TOPIC, LEGACY_TOPIC3, LEGACY_TOPIC2).get();
|
||||
}
|
||||
|
||||
FuzzyTopicPredicate(Schema<ChangeData> schema, String topic,
|
||||
ChangeIndex index) {
|
||||
super(topicField(schema), topic);
|
||||
FuzzyTopicPredicate(String topic, ChangeIndex index) {
|
||||
super(FUZZY_TOPIC, topic);
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public boolean match(final ChangeData cd) throws OrmException {
|
||||
Change change = cd.change();
|
||||
|
@ -53,21 +42,14 @@ class FuzzyTopicPredicate extends IndexPredicate<ChangeData> {
|
|||
if (t == null) {
|
||||
return false;
|
||||
}
|
||||
if (getField() == FUZZY_TOPIC || getField() == LEGACY_TOPIC3) {
|
||||
try {
|
||||
Predicate<ChangeData> thisId =
|
||||
new LegacyChangeIdPredicate(index.getSchema(), cd.getId());
|
||||
Iterable<ChangeData> results =
|
||||
index.getSource(and(thisId, this), QueryOptions.oneResult()).read();
|
||||
return !Iterables.isEmpty(results);
|
||||
} catch (QueryParseException e) {
|
||||
throw new OrmException(e);
|
||||
}
|
||||
try {
|
||||
Predicate<ChangeData> thisId = new LegacyChangeIdPredicate(cd.getId());
|
||||
Iterable<ChangeData> results =
|
||||
index.getSource(and(thisId, this), QueryOptions.oneResult()).read();
|
||||
return !Iterables.isEmpty(results);
|
||||
} catch (QueryParseException e) {
|
||||
throw new OrmException(e);
|
||||
}
|
||||
if (getField() == LEGACY_TOPIC2) {
|
||||
return t.equals(getValue());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -214,7 +214,7 @@ public class InternalChangeQuery {
|
|||
|
||||
public List<ChangeData> byTopicOpen(String topic)
|
||||
throws OrmException {
|
||||
return query(and(new ExactTopicPredicate(schema(indexes), topic), open()));
|
||||
return query(and(new ExactTopicPredicate(topic), open()));
|
||||
}
|
||||
|
||||
public List<ChangeData> byCommit(ObjectId id) throws OrmException {
|
||||
|
|
|
@ -14,18 +14,12 @@
|
|||
|
||||
package com.google.gerrit.server.query.change;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
import static com.google.gerrit.server.index.ChangeField.LEGACY_REVIEWED;
|
||||
import static com.google.gerrit.server.index.ChangeField.REVIEWEDBY;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.gerrit.reviewdb.client.Account;
|
||||
import com.google.gerrit.server.index.ChangeField;
|
||||
import com.google.gerrit.server.index.FieldDef;
|
||||
import com.google.gerrit.server.index.IndexPredicate;
|
||||
import com.google.gerrit.server.index.Schema;
|
||||
import com.google.gerrit.server.query.Predicate;
|
||||
import com.google.gerrit.server.query.QueryParseException;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -37,20 +31,11 @@ class IsReviewedPredicate extends IndexPredicate<ChangeData> {
|
|||
private static final Account.Id NOT_REVIEWED =
|
||||
new Account.Id(ChangeField.NOT_REVIEWED);
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static Predicate<ChangeData> create(Schema<ChangeData> schema) {
|
||||
if (getField(schema) == LEGACY_REVIEWED) {
|
||||
return new LegacyIsReviewedPredicate();
|
||||
}
|
||||
static Predicate<ChangeData> create() {
|
||||
return Predicate.not(new IsReviewedPredicate(NOT_REVIEWED));
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static Predicate<ChangeData> create(Schema<ChangeData> schema,
|
||||
Collection<Account.Id> ids) throws QueryParseException {
|
||||
if (getField(schema) == LEGACY_REVIEWED) {
|
||||
throw new QueryParseException("Only is:reviewed is supported");
|
||||
}
|
||||
static Predicate<ChangeData> create(Collection<Account.Id> ids) {
|
||||
List<Predicate<ChangeData>> predicates = new ArrayList<>(ids.size());
|
||||
for (Account.Id id : ids) {
|
||||
predicates.add(new IsReviewedPredicate(id));
|
||||
|
@ -58,15 +43,6 @@ class IsReviewedPredicate extends IndexPredicate<ChangeData> {
|
|||
return Predicate.or(predicates);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private static FieldDef<ChangeData, ?> getField(Schema<ChangeData> schema) {
|
||||
Optional<FieldDef<ChangeData, ?>> f =
|
||||
schema.getField(REVIEWEDBY, LEGACY_REVIEWED);
|
||||
checkState(f.isPresent(), "Schema %s missing field %s",
|
||||
schema.getVersion(), REVIEWEDBY.getName());
|
||||
return f.get();
|
||||
}
|
||||
|
||||
private final Account.Id id;
|
||||
|
||||
private IsReviewedPredicate(Account.Id id) {
|
||||
|
|
|
@ -18,7 +18,6 @@ import com.google.common.collect.Lists;
|
|||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.server.CurrentUser;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gerrit.server.index.Schema;
|
||||
import com.google.gerrit.server.query.OrPredicate;
|
||||
import com.google.gerrit.server.query.Predicate;
|
||||
import com.google.gerrit.server.query.QueryParseException;
|
||||
|
@ -38,11 +37,10 @@ class IsStarredByPredicate extends OrPredicate<ChangeData> implements
|
|||
return user.toString();
|
||||
}
|
||||
|
||||
private static List<Predicate<ChangeData>> predicates(
|
||||
Schema<ChangeData> schema, Set<Change.Id> ids) {
|
||||
private static List<Predicate<ChangeData>> predicates(Set<Change.Id> ids) {
|
||||
List<Predicate<ChangeData>> r = Lists.newArrayListWithCapacity(ids.size());
|
||||
for (Change.Id id : ids) {
|
||||
r.add(new LegacyChangeIdPredicate(schema, id));
|
||||
r.add(new LegacyChangeIdPredicate(id));
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
@ -55,7 +53,7 @@ class IsStarredByPredicate extends OrPredicate<ChangeData> implements
|
|||
}
|
||||
|
||||
private IsStarredByPredicate(Arguments args, IdentifiedUser user) {
|
||||
super(predicates(args.getSchema(), user.getStarredChanges()));
|
||||
super(predicates(user.getStarredChanges()));
|
||||
this.args = args;
|
||||
this.user = user;
|
||||
}
|
||||
|
|
|
@ -14,32 +14,17 @@
|
|||
|
||||
package com.google.gerrit.server.query.change;
|
||||
|
||||
import static com.google.gerrit.server.index.ChangeField.LEGACY_ID;
|
||||
import static com.google.gerrit.server.index.ChangeField.LEGACY_ID2;
|
||||
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.server.index.ChangeField;
|
||||
import com.google.gerrit.server.index.FieldDef;
|
||||
import com.google.gerrit.server.index.IndexPredicate;
|
||||
import com.google.gerrit.server.index.Schema;
|
||||
|
||||
/** Predicate over change number (aka legacy ID or Change.Id). */
|
||||
public class LegacyChangeIdPredicate extends IndexPredicate<ChangeData> {
|
||||
private final Change.Id id;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static FieldDef<ChangeData, ?> idField(Schema<ChangeData> schema) {
|
||||
if (schema == null) {
|
||||
return ChangeField.LEGACY_ID2;
|
||||
} else if (schema.hasField(LEGACY_ID2)) {
|
||||
return schema.getFields().get(LEGACY_ID2.getName());
|
||||
} else {
|
||||
return schema.getFields().get(LEGACY_ID.getName());
|
||||
}
|
||||
}
|
||||
|
||||
LegacyChangeIdPredicate(Schema<ChangeData> schema, Change.Id id) {
|
||||
super(idField(schema), ChangeQueryBuilder.FIELD_CHANGE, id.toString());
|
||||
LegacyChangeIdPredicate(Change.Id id) {
|
||||
super(LEGACY_ID2, ChangeQueryBuilder.FIELD_CHANGE, id.toString());
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
// Copyright (C) 2010 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.gerrit.server.query.change;
|
||||
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
||||
import com.google.gerrit.server.index.ChangeField;
|
||||
import com.google.gerrit.server.index.IndexPredicate;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
||||
@Deprecated
|
||||
class LegacyIsReviewedPredicate extends IndexPredicate<ChangeData> {
|
||||
@Deprecated
|
||||
LegacyIsReviewedPredicate() {
|
||||
super(ChangeField.LEGACY_REVIEWED, "1");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean match(final ChangeData object) throws OrmException {
|
||||
Change c = object.change();
|
||||
if (c == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
PatchSet.Id current = c.currentPatchSetId();
|
||||
for (PatchSetApproval p : object.approvals().get(current)) {
|
||||
if (p.getValue() != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCost() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "is:reviewed";
|
||||
}
|
||||
}
|
|
@ -37,8 +37,7 @@ class MessagePredicate extends IndexPredicate<ChangeData> {
|
|||
public boolean match(ChangeData object) throws OrmException {
|
||||
try {
|
||||
Predicate<ChangeData> p = Predicate.and(
|
||||
new LegacyChangeIdPredicate(index.getSchema(), object.getId()),
|
||||
this);
|
||||
new LegacyChangeIdPredicate(object.getId()), this);
|
||||
for (ChangeData cData
|
||||
: index.getSource(p, QueryOptions.oneResult()).read()) {
|
||||
if (cData.getId().equals(object.getId())) {
|
||||
|
|
|
@ -14,9 +14,10 @@
|
|||
|
||||
package com.google.gerrit.server.query.change;
|
||||
|
||||
import static com.google.gerrit.server.index.ChangeField.FUZZY_TOPIC;
|
||||
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.server.index.RegexPredicate;
|
||||
import com.google.gerrit.server.index.Schema;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
||||
import dk.brics.automaton.RegExp;
|
||||
|
@ -25,8 +26,8 @@ import dk.brics.automaton.RunAutomaton;
|
|||
class RegexTopicPredicate extends RegexPredicate<ChangeData> {
|
||||
private final RunAutomaton pattern;
|
||||
|
||||
RegexTopicPredicate(Schema<ChangeData> schema, String re) {
|
||||
super(FuzzyTopicPredicate.topicField(schema), re);
|
||||
RegexTopicPredicate(String re) {
|
||||
super(FUZZY_TOPIC, re);
|
||||
|
||||
if (re.startsWith("^")) {
|
||||
re = re.substring(1);
|
||||
|
|
|
@ -1,123 +0,0 @@
|
|||
// Copyright (C) 2015 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.gerrit.server.query.change;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static java.util.concurrent.TimeUnit.MINUTES;
|
||||
|
||||
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
||||
import com.google.gerrit.reviewdb.client.Account;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.server.account.AuthRequest;
|
||||
import com.google.gerrit.testutil.InMemoryModule;
|
||||
import com.google.gerrit.testutil.InMemoryRepositoryManager.Repo;
|
||||
import com.google.gerrit.testutil.TestTimeUtil;
|
||||
import com.google.inject.Guice;
|
||||
import com.google.inject.Injector;
|
||||
|
||||
import org.eclipse.jgit.junit.TestRepository;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
public class LuceneQueryChangesV14Test extends LuceneQueryChangesTest {
|
||||
@Override
|
||||
protected Injector createInjector() {
|
||||
Config luceneConfig = new Config(config);
|
||||
InMemoryModule.setDefaults(luceneConfig);
|
||||
// Latest version with a Lucene 4 index.
|
||||
luceneConfig.setInt("index", "lucene", "testVersion", 14);
|
||||
return Guice.createInjector(new InMemoryModule(luceneConfig));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Ignore
|
||||
@Test
|
||||
public void byCommentBy() {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
@Ignore
|
||||
@Test
|
||||
public void byFrom() {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
@Ignore
|
||||
@Test
|
||||
public void byTopic() {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
@Ignore
|
||||
@Test
|
||||
public void reviewedBy() throws Exception {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
@Ignore
|
||||
@Test
|
||||
public void prepopulatedFields() throws Exception {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
@Ignore
|
||||
@Test
|
||||
public void prepopulateOnlyRequestedFields() throws Exception {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isReviewed() throws Exception {
|
||||
TestTimeUtil.resetWithClockStep(2, MINUTES);
|
||||
TestRepository<Repo> repo = createProject("repo");
|
||||
Change change1 = insert(newChange(repo, null, null, null, null));
|
||||
Change change2 = insert(newChange(repo, null, null, null, null));
|
||||
Change change3 = insert(newChange(repo, null, null, null, null));
|
||||
|
||||
gApi.changes()
|
||||
.id(change1.getId().get())
|
||||
.current()
|
||||
.review(new ReviewInput().message("comment"));
|
||||
|
||||
Account.Id user2 = accountManager
|
||||
.authenticate(AuthRequest.forUser("anotheruser"))
|
||||
.getAccountId();
|
||||
requestContext.setContext(newRequestContext(user2));
|
||||
|
||||
gApi.changes()
|
||||
.id(change2.getId().get())
|
||||
.current()
|
||||
.review(ReviewInput.recommend());
|
||||
|
||||
PatchSet.Id ps3_1 = change3.currentPatchSetId();
|
||||
change3 = newPatchSet(repo, change3);
|
||||
assertThat(change3.currentPatchSetId()).isNotEqualTo(ps3_1);
|
||||
// Nonzero score on previous patch set does not count.
|
||||
gApi.changes()
|
||||
.id(change3.getId().get())
|
||||
.revision(ps3_1.get())
|
||||
.review(ReviewInput.recommend());
|
||||
|
||||
assertQuery("is:reviewed", change2);
|
||||
assertQuery("-is:reviewed", change3, change1);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue