From 8d68f29196eb82c1934c77a10ea3d80d6b0b44c2 Mon Sep 17 00:00:00 2001 From: Julie Qiu Date: Thu, 12 Aug 2021 11:06:03 -0400 Subject: internal/postgres/symbolsearch: add SearchType.String SearchType.String is added to provide a human readable name for the search type in error messages and stats. For golang/go#44142 Change-Id: I1f23de03d046a5361fb3a58471e0169a25365485 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/341669 Trust: Julie Qiu Run-TryBot: Julie Qiu TryBot-Result: kokoro Reviewed-by: Jonathan Amsterdam --- internal/postgres/symbolsearch.go | 12 ++++++------ internal/postgres/symbolsearch/type.go | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) (limited to 'internal/postgres') diff --git a/internal/postgres/symbolsearch.go b/internal/postgres/symbolsearch.go index 45a096f8..5165d943 100644 --- a/internal/postgres/symbolsearch.go +++ b/internal/postgres/symbolsearch.go @@ -283,8 +283,8 @@ func runSymbolSearchOneDot(ctx context.Context, ddb *database.DB, q string, limi func runSymbolSearch(ctx context.Context, ddb *database.DB, st symbolsearch.SearchType, q string, limit int, args ...interface{}) (_ []*SearchResult, err error) { - defer derrors.Wrap(&err, "runSymbolSearch(ctx, ddb, query, %q, %d)", q, limit) - defer middleware.ElapsedStat(ctx, "runSymbolSearch")() + defer derrors.Wrap(&err, "runSymbolSearch(ctx, ddb, %q, %q, %d, %v)", st, q, limit, args) + defer middleware.ElapsedStat(ctx, fmt.Sprintf("%s-runSymbolSearch", st))() ids, err := fetchMatchingSymbolIDs(ctx, ddb, st, q) if err != nil { @@ -301,8 +301,8 @@ func runSymbolSearch(ctx context.Context, ddb *database.DB, // symbolsearch.MatchingSymbolIDsQuery. The ids returned will be used by in // runSymbolSearch. func fetchMatchingSymbolIDs(ctx context.Context, ddb *database.DB, st symbolsearch.SearchType, q string) (_ []int, err error) { - defer derrors.Wrap(&err, "fetchMatchingSymbolIDs(ctx, ddb, %d, %q)", st, q) - defer middleware.ElapsedStat(ctx, "fetchMatchingSymbolIDs")() + defer derrors.Wrap(&err, "fetchMatchingSymbolIDs(ctx, ddb, %q, %q)", st, q) + defer middleware.ElapsedStat(ctx, fmt.Sprintf("%s-fetchMatchingSymbolIDs", st))() var ids []int collect := func(rows *sql.Rows) error { @@ -327,8 +327,8 @@ func fetchMatchingSymbolIDs(ctx context.Context, ddb *database.DB, st symbolsear // symbolsearch.SearchType and args. func fetchSymbolSearchResults(ctx context.Context, ddb *database.DB, st symbolsearch.SearchType, ids []int, limit int, args ...interface{}) (results []*SearchResult, err error) { - defer derrors.Wrap(&err, "fetchSymbolSearchResults(ctx, ddb, st: %d, ids: %v, limit: %d, args: %v)", st, ids, limit, args) - defer middleware.ElapsedStat(ctx, "fetchSymbolSearchResults")() + defer derrors.Wrap(&err, "fetchSymbolSearchResults(ctx, ddb, %q, ids: %v, limit: %d, args: %v)", st.String(), ids, limit, args) + defer middleware.ElapsedStat(ctx, fmt.Sprintf("%s-fetchSymbolSearchResults", st))() collect := func(rows *sql.Rows) error { var r SearchResult diff --git a/internal/postgres/symbolsearch/type.go b/internal/postgres/symbolsearch/type.go index 2f8c8be8..3c754861 100644 --- a/internal/postgres/symbolsearch/type.go +++ b/internal/postgres/symbolsearch/type.go @@ -95,3 +95,20 @@ const ( // and the results are combined. SearchTypeMultiWordExact ) + +// String returns the name of the search type as a string. +func (st SearchType) String() string { + switch st { + case SearchTypeSymbol: + return "SearchTypeSymbol" + case SearchTypePackageDotSymbol: + return "SearchTypePackageDotSymbol" + case SearchTypeMultiWordOr: + return "SearchTypeMultiWordOr" + case SearchTypeMultiWordExact: + return "SearchTypeMultiWordExact" + default: + // This should never happen. + return "?unknown?" + } +} -- cgit v1.3-5-g9baa