diff options
| author | Jonathan Amsterdam <jba@google.com> | 2021-08-18 04:39:12 -0400 |
|---|---|---|
| committer | Jonathan Amsterdam <jba@google.com> | 2021-08-18 14:32:16 +0000 |
| commit | b7d799de23aa0f0fd1e8673da846e5af6cc4e1e6 (patch) | |
| tree | f13220733ac1cd3fefd362bd052959df27837be1 /internal/postgres/insert_module.go | |
| parent | e40e352494029c33224ae8d8ac45df107fcd0d0f (diff) | |
| download | go-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.go | 16 |
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) { |
