aboutsummaryrefslogtreecommitdiff
path: root/internal/postgres/insert_module.go
diff options
context:
space:
mode:
authorJonathan Amsterdam <jba@google.com>2021-08-18 04:39:12 -0400
committerJonathan Amsterdam <jba@google.com>2021-08-18 14:32:16 +0000
commitb7d799de23aa0f0fd1e8673da846e5af6cc4e1e6 (patch)
treef13220733ac1cd3fefd362bd052959df27837be1 /internal/postgres/insert_module.go
parente40e352494029c33224ae8d8ac45df107fcd0d0f (diff)
downloadgo-x-pkgsite-b7d799de23aa0f0fd1e8673da846e5af6cc4e1e6.tar.xz
internal/postgres: delete other packages from search during reconciliation
When reconciling search to match the latest good version, delete from search_documents any packages in the module that are not in the good version. Change-Id: I654eda3d3066bb82963fc98ca537d4b3761ad6eb Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/343189 Trust: Jonathan Amsterdam <jba@google.com> Run-TryBot: Jonathan Amsterdam <jba@google.com> TryBot-Result: kokoro <noreply+kokoro@google.com> Reviewed-by: Julie Qiu <julie@golang.org>
Diffstat (limited to 'internal/postgres/insert_module.go')
-rw-r--r--internal/postgres/insert_module.go16
1 files changed, 14 insertions, 2 deletions
diff --git a/internal/postgres/insert_module.go b/internal/postgres/insert_module.go
index 542354f6..c253e99d 100644
--- a/internal/postgres/insert_module.go
+++ b/internal/postgres/insert_module.go
@@ -144,12 +144,15 @@ func (db *DB) saveModule(ctx context.Context, m *internal.Module, lmv *internal.
}
// Here, this module is the latest good version.
-
if err := insertImportsUnique(ctx, tx, m); err != nil {
return err
}
- if err := deleteOtherModulePackagesFromSearchDocuments(ctx, tx, m); err != nil {
+ var pkgPaths []string
+ for _, u := range m.Packages() {
+ pkgPaths = append(pkgPaths, u.Path)
+ }
+ if err := deleteOtherModulePackagesFromSearchDocuments(ctx, tx, m.ModulePath, pkgPaths); err != nil {
return err
}
@@ -718,6 +721,15 @@ func (db *DB) ReconcileSearch(ctx context.Context, modulePath, version string, s
return err
}
+ // Delete packages not in this version.
+ var pkgPaths []string
+ for _, pkg := range pkgMetas {
+ pkgPaths = append(pkgPaths, pkg.Path)
+ }
+ if err := deleteOtherModulePackagesFromSearchDocuments(ctx, tx, modulePath, pkgPaths); err != nil {
+ return err
+ }
+
// Insert into search_documents.
for _, pkg := range pkgMetas {
if isInternalPackage(pkg.Path) {