internal/postgres: insert search_documents path ids
The search_documents columns package_path_id and module_path_id are now
populated.
For golang/go#44142
Change-Id: I1833bfc821f3a3ebe5b71a562e616d0c6b2dc20a
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/318490
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 cfcf6bd..7279154 100644
--- a/internal/postgres/search.go
+++ b/internal/postgres/search.go
@@ -457,8 +457,10 @@
var upsertSearchStatement = fmt.Sprintf(`
INSERT INTO search_documents (
package_path,
+ package_path_id,
version,
module_path,
+ module_path_id,
name,
synopsis,
license_types,
@@ -471,9 +473,11 @@
hll_leading_zeros
)
SELECT
- p.path,
+ p1.path,
+ p1.id,
m.version,
m.module_path,
+ p2.id,
u.name,
d.synopsis,
u.license_types,
@@ -487,14 +491,15 @@
SETWEIGHT(TO_TSVECTOR($6), 'C') ||
SETWEIGHT(TO_TSVECTOR($7), 'D')
),
- hll_hash(p.path) & (%d - 1),
- hll_zeros(hll_hash(p.path))
+ hll_hash(p1.path) & (%d - 1),
+ hll_zeros(hll_hash(p1.path))
FROM units u
- INNER JOIN paths p ON p.id = u.path_id
INNER JOIN modules m ON u.module_id = m.id
+ INNER JOIN paths p1 ON p1.id = u.path_id
+ LEFT JOIN paths p2 ON p2.path = m.module_path
LEFT JOIN documentation d ON u.id = d.unit_id
WHERE
- p.path = $1
+ p1.path = $1
AND m.module_path = $2
AND m.version = $3
LIMIT 1 -- could be multiple build contexts