search: propagate and simplify expressions dependent on global mode (#26626)

This commit is contained in:
Rijnard van Tonder 2021-10-26 14:31:52 -07:00 committed by GitHub
parent 6040bbcef2
commit ecc377c386
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1482,9 +1482,12 @@ func (r *searchResolver) doResults(ctx context.Context, args *search.TextParamet
args.RepoOptions = r.toRepoOptions(args.Query, resolveRepositoriesOpts{})
// globalSearch controls whether we run a global zoekt search.
globalSearch := args.Mode == search.ZoektGlobalSearch
// performance optimization: call zoekt early, resolve repos concurrently, filter
// search results with resolved repos.
if args.Mode == search.ZoektGlobalSearch {
if globalSearch {
argsIndexed := *args
userID := int32(0)
@ -1522,8 +1525,8 @@ func (r *searchResolver) doResults(ctx context.Context, args *search.TextParamet
ctx, stream, cleanup := streaming.WithLimit(ctx, agg, int(argsIndexed.PatternInfo.FileMatchLimit))
defer cleanup()
globalSearch := argsIndexed.Mode == search.ZoektGlobalSearch
zoektArgs, err := zoekt.NewIndexedSearchRequest(ctx, &argsIndexed, globalSearch, search.TextRequest, zoekt.MissingRepoRevStatus(stream))
// This code path implies global-search (3rd arg is true).
zoektArgs, err := zoekt.NewIndexedSearchRequest(ctx, &argsIndexed, true, search.TextRequest, zoekt.MissingRepoRevStatus(stream))
if err != nil {
agg.Error(err)
return
@ -1623,8 +1626,8 @@ func (r *searchResolver) doResults(ctx context.Context, args *search.TextParamet
ctx, stream, cleanup := streaming.WithLimit(ctx, agg, int(args.PatternInfo.FileMatchLimit))
defer cleanup()
globalSearch := args.Mode == search.ZoektGlobalSearch
zoektArgs, err := zoekt.NewIndexedSearchRequest(ctx, args, globalSearch, search.TextRequest, zoekt.MissingRepoRevStatus(stream))
// This code path implies we've already decided to run global-search (3rd arg is always false).
zoektArgs, err := zoekt.NewIndexedSearchRequest(ctx, args, false, search.TextRequest, zoekt.MissingRepoRevStatus(stream))
if err != nil {
agg.Error(err)
return