aboutsummaryrefslogtreecommitdiff
path: root/internal/postgres
diff options
context:
space:
mode:
authorJulie Qiu <julie@golang.org>2021-08-12 11:06:03 -0400
committerJulie Qiu <julie@golang.org>2021-08-13 14:39:40 +0000
commit8d68f29196eb82c1934c77a10ea3d80d6b0b44c2 (patch)
tree00258e7e214d404c844d915a623248269b4307fa /internal/postgres
parent9fbc345bc1d5060c60a92768e295bdec804ed428 (diff)
downloadgo-x-pkgsite-8d68f29196eb82c1934c77a10ea3d80d6b0b44c2.tar.xz
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>
Diffstat (limited to 'internal/postgres')
-rw-r--r--internal/postgres/symbolsearch.go12
-rw-r--r--internal/postgres/symbolsearch/type.go17
2 files changed, 23 insertions, 6 deletions
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?"
+ }
+}