diff options
Diffstat (limited to 'java/com/google/gerrit/server/query/group/GroupQueryProcessor.java')
-rw-r--r-- | java/com/google/gerrit/server/query/group/GroupQueryProcessor.java | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/java/com/google/gerrit/server/query/group/GroupQueryProcessor.java b/java/com/google/gerrit/server/query/group/GroupQueryProcessor.java index 9e56807d94..c6683faa87 100644 --- a/java/com/google/gerrit/server/query/group/GroupQueryProcessor.java +++ b/java/com/google/gerrit/server/query/group/GroupQueryProcessor.java @@ -30,6 +30,7 @@ import com.google.gerrit.server.account.GroupControl; import com.google.gerrit.server.index.group.GroupIndexCollection; import com.google.gerrit.server.index.group.GroupIndexRewriter; import com.google.gerrit.server.index.group.GroupSchemaDefinitions; +import com.google.gerrit.server.notedb.Sequences; import com.google.inject.Inject; import com.google.inject.Provider; @@ -42,6 +43,8 @@ import com.google.inject.Provider; public class GroupQueryProcessor extends QueryProcessor<InternalGroup> { private final Provider<CurrentUser> userProvider; private final GroupControl.GenericFactory groupControlFactory; + private final Sequences sequences; + private final IndexConfig indexConfig; static { // It is assumed that basic rewrites do not touch visibleto predicates. @@ -58,7 +61,8 @@ public class GroupQueryProcessor extends QueryProcessor<InternalGroup> { IndexConfig indexConfig, GroupIndexCollection indexes, GroupIndexRewriter rewriter, - GroupControl.GenericFactory groupControlFactory) { + GroupControl.GenericFactory groupControlFactory, + Sequences sequences) { super( metricMaker, GroupSchemaDefinitions.INSTANCE, @@ -69,16 +73,31 @@ public class GroupQueryProcessor extends QueryProcessor<InternalGroup> { () -> limitsFactory.create(userProvider.get()).getQueryLimit()); this.userProvider = userProvider; this.groupControlFactory = groupControlFactory; + this.sequences = sequences; + this.indexConfig = indexConfig; } @Override protected Predicate<InternalGroup> enforceVisibility(Predicate<InternalGroup> pred) { return new AndSource<>( - pred, new GroupIsVisibleToPredicate(groupControlFactory, userProvider.get()), start); + pred, + new GroupIsVisibleToPredicate(groupControlFactory, userProvider.get()), + start, + indexConfig); } @Override protected String formatForLogging(InternalGroup internalGroup) { return internalGroup.getGroupUUID().get(); } + + @Override + protected int getIndexSize() { + return sequences.lastGroupId(); + } + + @Override + protected int getBatchSize() { + return sequences.groupBatchSize(); + } } |