diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java index c05c8f0459..7778626eee 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneChangeIndex.java @@ -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 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 result = Lists.newArrayListWithCapacity(docs.scoreDocs.length); Set 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 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 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 fields, String idFieldName) { ChangeData cd; @@ -602,7 +594,6 @@ public class LuceneChangeIndex implements ChangeIndex { return result; } - @SuppressWarnings("deprecation") private void add(Document doc, Values values) { String name = values.getField().getName(); FieldType type = values.getField().getType(); @@ -610,7 +601,7 @@ public class LuceneChangeIndex implements ChangeIndex { if (useDocValuesForSorting) { FieldDef 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) { diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java index 939c1fbccc..43c681fd57 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/QueryBuilder.java @@ -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 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 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; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeField.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeField.java index 4fa5cd3045..5abb78ef2c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeField.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeField.java @@ -65,18 +65,7 @@ import java.util.Set; * characters. */ public class ChangeField { - @Deprecated /** Legacy change ID. */ - public static final FieldDef LEGACY_ID = - new FieldDef.Single("_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 LEGACY_ID2 = new FieldDef.Single("legacy_id", FieldType.INTEGER, true) { @@ -161,30 +150,6 @@ public class ChangeField { } }; - @Deprecated - /** Topic, a short annotation on the branch. */ - public static final FieldDef LEGACY_TOPIC2 = - new FieldDef.Single( - "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 LEGACY_TOPIC3 = - new FieldDef.Single( - "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 EXACT_TOPIC = new FieldDef.Single( @@ -405,23 +370,6 @@ public class ChangeField { } }; - /** Set true if the change has a non-zero label score. */ - @Deprecated - public static final FieldDef LEGACY_REVIEWED = - new FieldDef.Single( - "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 getPersonParts(PersonIdent person) { if (person == null) { return ImmutableSet.of(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeSchemas.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeSchemas.java index 4789a14a01..4f19f2a543 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeSchemas.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeSchemas.java @@ -30,353 +30,6 @@ import java.util.Map; /** Secondary index schemas for changes. */ public class ChangeSchemas { - @SuppressWarnings("deprecation") - static final Schema 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 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 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 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 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 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 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 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 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 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 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 V25 = schema( ChangeField.LEGACY_ID2, ChangeField.ID, diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java index 92a8218f05..d7c7b04d4d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java @@ -379,8 +379,7 @@ public class ChangeQueryBuilder extends QueryBuilder { @Operator public Predicate 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 { @Operator public Predicate 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 { } 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 { @Operator public Predicate topic(String name) { - return new ExactTopicPredicate(args.getSchema(), name); + return new ExactTopicPredicate(name); } @Operator public Predicate 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 { @Operator public Predicate reviewedby(String who) throws QueryParseException, OrmException { - return IsReviewedPredicate.create(args.getSchema(), parseAccount(who)); + return IsReviewedPredicate.create(parseAccount(who)); } @Operator diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommentPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommentPredicate.java index dd3c3b3753..756715b22e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommentPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommentPredicate.java @@ -33,8 +33,7 @@ class CommentPredicate extends IndexPredicate { public boolean match(ChangeData object) throws OrmException { try { Predicate 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())) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ConflictsPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ConflictsPredicate.java index 3143a07736..3c06198e03 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ConflictsPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ConflictsPredicate.java @@ -77,7 +77,7 @@ class ConflictsPredicate extends OrPredicate { List> 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( diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ExactTopicPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ExactTopicPredicate.java index 6a9d86bfa4..c2a9084be6 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ExactTopicPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ExactTopicPredicate.java @@ -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 { - @SuppressWarnings("deprecation") - static FieldDef topicField(Schema 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 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 diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/FuzzyTopicPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/FuzzyTopicPredicate.java index 5b9b94c4ee..154a659fd0 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/FuzzyTopicPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/FuzzyTopicPredicate.java @@ -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 { private final ChangeIndex index; - @SuppressWarnings("deprecation") - static FieldDef topicField(Schema schema) { - return schema.getField(FUZZY_TOPIC, LEGACY_TOPIC3, LEGACY_TOPIC2).get(); - } - - FuzzyTopicPredicate(Schema 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 { if (t == null) { return false; } - if (getField() == FUZZY_TOPIC || getField() == LEGACY_TOPIC3) { - try { - Predicate thisId = - new LegacyChangeIdPredicate(index.getSchema(), cd.getId()); - Iterable results = - index.getSource(and(thisId, this), QueryOptions.oneResult()).read(); - return !Iterables.isEmpty(results); - } catch (QueryParseException e) { - throw new OrmException(e); - } + try { + Predicate thisId = new LegacyChangeIdPredicate(cd.getId()); + Iterable 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 diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java index ff6f2bcecd..a2b62086df 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/InternalChangeQuery.java @@ -214,7 +214,7 @@ public class InternalChangeQuery { public List byTopicOpen(String topic) throws OrmException { - return query(and(new ExactTopicPredicate(schema(indexes), topic), open())); + return query(and(new ExactTopicPredicate(topic), open())); } public List byCommit(ObjectId id) throws OrmException { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsReviewedPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsReviewedPredicate.java index 645fa4c952..bd8d275d50 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsReviewedPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsReviewedPredicate.java @@ -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 { private static final Account.Id NOT_REVIEWED = new Account.Id(ChangeField.NOT_REVIEWED); - @SuppressWarnings("deprecation") - static Predicate create(Schema schema) { - if (getField(schema) == LEGACY_REVIEWED) { - return new LegacyIsReviewedPredicate(); - } + static Predicate create() { return Predicate.not(new IsReviewedPredicate(NOT_REVIEWED)); } - @SuppressWarnings("deprecation") - static Predicate create(Schema schema, - Collection ids) throws QueryParseException { - if (getField(schema) == LEGACY_REVIEWED) { - throw new QueryParseException("Only is:reviewed is supported"); - } + static Predicate create(Collection ids) { List> predicates = new ArrayList<>(ids.size()); for (Account.Id id : ids) { predicates.add(new IsReviewedPredicate(id)); @@ -58,15 +43,6 @@ class IsReviewedPredicate extends IndexPredicate { return Predicate.or(predicates); } - @SuppressWarnings("deprecation") - private static FieldDef getField(Schema schema) { - Optional> 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) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java index 1ac2729681..a3194a1a65 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java @@ -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 implements return user.toString(); } - private static List> predicates( - Schema schema, Set ids) { + private static List> predicates(Set ids) { List> 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 implements } private IsStarredByPredicate(Arguments args, IdentifiedUser user) { - super(predicates(args.getSchema(), user.getStarredChanges())); + super(predicates(user.getStarredChanges())); this.args = args; this.user = user; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/LegacyChangeIdPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/LegacyChangeIdPredicate.java index bf595533bd..c4fd04eb5b 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/LegacyChangeIdPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/LegacyChangeIdPredicate.java @@ -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 { private final Change.Id id; - @SuppressWarnings("deprecation") - public static FieldDef idField(Schema 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 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; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/LegacyIsReviewedPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/LegacyIsReviewedPredicate.java deleted file mode 100644 index e12e6e0643..0000000000 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/LegacyIsReviewedPredicate.java +++ /dev/null @@ -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 { - @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"; - } -} diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java index cf3140a814..43d7708824 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java @@ -37,8 +37,7 @@ class MessagePredicate extends IndexPredicate { public boolean match(ChangeData object) throws OrmException { try { Predicate 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())) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/RegexTopicPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/RegexTopicPredicate.java index de7005fbcf..35b94ea752 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/RegexTopicPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/RegexTopicPredicate.java @@ -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 { private final RunAutomaton pattern; - RegexTopicPredicate(Schema schema, String re) { - super(FuzzyTopicPredicate.topicField(schema), re); + RegexTopicPredicate(String re) { + super(FUZZY_TOPIC, re); if (re.startsWith("^")) { re = re.substring(1); diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesV14Test.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesV14Test.java deleted file mode 100644 index ed4e52072c..0000000000 --- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesV14Test.java +++ /dev/null @@ -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 = 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); - } -}