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 <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/postgres/symbolsearch.go b/internal/postgres/symbolsearch.go
index 45a096f..5165d94 100644
--- a/internal/postgres/symbolsearch.go
+++ b/internal/postgres/symbolsearch.go
@@ -283,8 +283,8 @@
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 @@
// 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 @@
// 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 2f8c8be..3c75486 100644
--- a/internal/postgres/symbolsearch/type.go
+++ b/internal/postgres/symbolsearch/type.go
@@ -95,3 +95,20 @@
// 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?"
+ }
+}