From b7d799de23aa0f0fd1e8673da846e5af6cc4e1e6 Mon Sep 17 00:00:00 2001 From: Jonathan Amsterdam Date: Wed, 18 Aug 2021 04:39:12 -0400 Subject: 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 Run-TryBot: Jonathan Amsterdam TryBot-Result: kokoro Reviewed-by: Julie Qiu --- internal/postgres/insert_module.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'internal/postgres/insert_module.go') 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) { -- cgit v1.3-5-g9baa