internal/postgres: use paths table in addPackageDataToSearchResults
addPackageDataToSearchResults now reads from paths and doumentation,
instead of packages.
For golang/go#39629
Change-Id: I23c4fec25c7b023c0fc833465f86b4ea5272650b
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/262701
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/search.go b/internal/postgres/search.go
index 5892436..24ba2d9 100644
--- a/internal/postgres/search.go
+++ b/internal/postgres/search.go
@@ -332,22 +332,28 @@
}
query := fmt.Sprintf(`
SELECT
- path,
- name,
- synopsis,
- license_types,
- redistributable
+ p.path,
+ p.name,
+ d.synopsis,
+ p.license_types,
+ p.redistributable
FROM
- packages
+ paths p
+ INNER JOIN
+ modules m
+ ON p.module_id = m.id
+ LEFT JOIN
+ documentation d
+ ON p.id = d.path_id
WHERE
- (path, version, module_path) IN (%s)`, strings.Join(keys, ","))
+ (p.path, m.version, m.module_path) IN (%s)`, strings.Join(keys, ","))
collect := func(rows *sql.Rows) error {
var (
path, name, synopsis string
licenseTypes []string
redist bool
)
- if err := rows.Scan(&path, &name, &synopsis, pq.Array(&licenseTypes), &redist); err != nil {
+ if err := rows.Scan(&path, &name, database.NullIsEmpty(&synopsis), pq.Array(&licenseTypes), &redist); err != nil {
return fmt.Errorf("rows.Scan(): %v", err)
}
r, ok := resultMap[path]