diff options
author | Shawn O. Pearce <sop@google.com> | 2010-08-04 15:04:09 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2010-08-04 15:04:09 -0700 |
commit | f76fb4f82c65afcad3607b4c19fe2cf7a923ae34 (patch) | |
tree | 6b50dde98ce31998e3295263f0272ebd6b9aabf9 /gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java | |
parent | 6cbee9cb644753ece51e33d59aaf17ccc1ac8497 (diff) |
Fix owner: search operator substring regressionv2.1.4-rc3
In prior releases the owner: and reviewer: operators performed
substring searching to locate user accounts that match the argument,
and find all changes relevant to those accounts. Fix the operators
to perform that multiple-account searching again.
Bug: issue 646
Change-Id: Ie0d67ad15ddffa7d2d774466c42f84dc1a760f25
Signed-off-by: Shawn O. Pearce <sop@google.com>
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java index 98b12f75d7..904bc3cb70 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryRewriter.java @@ -38,8 +38,7 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { new ChangeQueryBuilder.Arguments( // new InvalidProvider<ReviewDb>(), // new InvalidProvider<ChangeQueryRewriter>(), // - null, null, null, null, null, null, null, null, null), - null)); + null, null, null, null, null, null, null, null, null), null)); private final Provider<ReviewDb> dbProvider; @@ -287,11 +286,16 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { }; } + @SuppressWarnings("unchecked") @Rewrite("status:merged S=(sortkey_after:*) L=(limit:*)") public Predicate<ChangeData> r20_byMergedPrev( @Named("S") final SortKeyPredicate.After s, @Named("L") final IntPredicate<ChangeData> l) { return new PaginatedSource(50000, s.getValue(), l.intValue()) { + { + init("r20_byMergedPrev", s, l); + } + @Override ResultSet<Change> scan(ChangeAccess a, String key, int limit) throws OrmException { @@ -306,11 +310,16 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { }; } + @SuppressWarnings("unchecked") @Rewrite("status:merged S=(sortkey_before:*) L=(limit:*)") public Predicate<ChangeData> r20_byMergedNext( @Named("S") final SortKeyPredicate.Before s, @Named("L") final IntPredicate<ChangeData> l) { return new PaginatedSource(50000, s.getValue(), l.intValue()) { + { + init("r20_byMergedNext", s, l); + } + @Override ResultSet<Change> scan(ChangeAccess a, String key, int limit) throws OrmException { @@ -325,11 +334,16 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { }; } + @SuppressWarnings("unchecked") @Rewrite("status:abandoned S=(sortkey_after:*) L=(limit:*)") public Predicate<ChangeData> r20_byAbandonedPrev( @Named("S") final SortKeyPredicate.After s, @Named("L") final IntPredicate<ChangeData> l) { return new PaginatedSource(50000, s.getValue(), l.intValue()) { + { + init("r20_byAbandonedPrev", s, l); + } + @Override ResultSet<Change> scan(ChangeAccess a, String key, int limit) throws OrmException { @@ -344,11 +358,16 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { }; } + @SuppressWarnings("unchecked") @Rewrite("status:abandoned S=(sortkey_before:*) L=(limit:*)") public Predicate<ChangeData> r20_byAbandonedNext( @Named("S") final SortKeyPredicate.Before s, @Named("L") final IntPredicate<ChangeData> l) { return new PaginatedSource(50000, s.getValue(), l.intValue()) { + { + init("r20_byAbandonedNext", s, l); + } + @Override ResultSet<Change> scan(ChangeAccess a, String key, int limit) throws OrmException { @@ -379,10 +398,15 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { return or(r20_byMergedNext(s, l), r20_byAbandonedNext(s, l)); } + @SuppressWarnings("unchecked") @Rewrite("status:open O=(owner:*)") public Predicate<ChangeData> r25_byOwnerOpen( @Named("O") final OwnerPredicate o) { return new ChangeSource(50) { + { + init("r25_byOwnerOpen", o); + } + @Override ResultSet<Change> scan(ChangeAccess a) throws OrmException { return a.byOwnerOpen(o.getAccountId()); @@ -395,10 +419,15 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { }; } + @SuppressWarnings("unchecked") @Rewrite("status:closed O=(owner:*)") public Predicate<ChangeData> r25_byOwnerClosed( @Named("O") final OwnerPredicate o) { return new ChangeSource(5000) { + { + init("r25_byOwnerClosed", o); + } + @Override ResultSet<Change> scan(ChangeAccess a) throws OrmException { return a.byOwnerClosedAll(o.getAccountId()); @@ -417,10 +446,15 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { return or(r25_byOwnerOpen(o), r25_byOwnerClosed(o)); } + @SuppressWarnings("unchecked") @Rewrite("status:open R=(reviewer:*)") public Predicate<ChangeData> r30_byReviewerOpen( @Named("R") final ReviewerPredicate r) { return new Source() { + { + init("r30_byReviewerOpen", r); + } + @Override public ResultSet<ChangeData> read() throws OrmException { return ChangeDataResultSet.patchSetApproval(dbProvider.get() @@ -445,10 +479,15 @@ public class ChangeQueryRewriter extends QueryRewriter<ChangeData> { }; } + @SuppressWarnings("unchecked") @Rewrite("status:closed R=(reviewer:*)") public Predicate<ChangeData> r30_byReviewerClosed( @Named("R") final ReviewerPredicate r) { return new Source() { + { + init("r30_byReviewerClosed", r); + } + @Override public ResultSet<ChangeData> read() throws OrmException { return ChangeDataResultSet.patchSetApproval(dbProvider.get() |