Store the number of unresolved comments in change index
When changes are queried, we want to return the number of unresolved comments with each change. This number should be pre-counted rather than loading all the comments and counting each time. We also add new search operators, which allow user to query by "has:unresolved" and "unresolved:<RELATION><NUMBER>". The 'unresolvedCommentCount' field of 'ChangeData' will be null if 'lazyLoad' is false. Change-Id: I97c6aeb47db48f56f94c5d184dfa36c8d7868cc8
This commit is contained in:
@@ -353,6 +353,7 @@ class ElasticChangeIndex extends AbstractElasticIndex<Change.Id, ChangeData>
|
||||
ChangeField.STORED_SUBMIT_RECORD_LENIENT.getName(),
|
||||
ChangeField.SUBMIT_RULE_OPTIONS_LENIENT,
|
||||
cd);
|
||||
decodeUnresolvedCommentCount(source, ChangeField.UNRESOLVED_COMMENT_COUNT.getName(), cd);
|
||||
|
||||
if (source.get(ChangeField.REF_STATE.getName()) != null) {
|
||||
JsonArray refStates = source.get(ChangeField.REF_STATE.getName()).getAsJsonArray();
|
||||
@@ -381,5 +382,13 @@ class ElasticChangeIndex extends AbstractElasticIndex<Change.Id, ChangeData>
|
||||
opts,
|
||||
out);
|
||||
}
|
||||
|
||||
private void decodeUnresolvedCommentCount(JsonObject doc, String fieldName, ChangeData out) {
|
||||
JsonElement count = doc.get(fieldName);
|
||||
if (count == null) {
|
||||
return;
|
||||
}
|
||||
out.setUnresolvedCommentCount(count.getAsInt());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user