internal/postgres: split deleteModuleOrPackagesInModuleFromSearchDocuments
deleteModuleOrPackagesInModuleFromSearchDocuments is split into
deleteModuleFromSearchDocuments and
deletePackagesInModuleFromSearchDocuments to reduce confusion as to
which query is being executed.
Change-Id: I4559d812f54401857a153aa52166c12f228f6354
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/342631
Trust: Julie Qiu <julie@golang.org>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/postgres/delete.go b/internal/postgres/delete.go
index 0af9a18..806d83b 100644
--- a/internal/postgres/delete.go
+++ b/internal/postgres/delete.go
@@ -66,16 +66,13 @@
// Nothing to delete.
return nil
}
- return deleteModuleOrPackagesInModuleFromSearchDocuments(ctx, tx, m.ModulePath, otherPkgs)
+ return deletePackagesInModuleFromSearchDocuments(ctx, tx, otherPkgs)
}
-// deleteModuleOrPackagesInModuleFromSearchDocuments deletes module_path from
-// search_documents. If packages is non-empty, it only deletes those packages.
-func deleteModuleOrPackagesInModuleFromSearchDocuments(ctx context.Context, tx *database.DB, modulePath string, packages []string) error {
- d := squirrel.Delete("search_documents").Where(squirrel.Eq{"module_path": modulePath})
- if len(packages) > 0 {
- d = d.Where("package_path = ANY(?)", pq.Array(packages))
- }
+// deleteModuleFromSearchDocuments deletes module_path from search_documents.
+func deleteModuleFromSearchDocuments(ctx context.Context, tx *database.DB, modulePath string) error {
+ d := squirrel.Delete("search_documents").
+ Where(squirrel.Eq{"module_path": modulePath})
q, args, err := d.PlaceholderFormat(squirrel.Dollar).ToSql()
if err != nil {
return err
@@ -88,6 +85,22 @@
return nil
}
+// deletePackagesInModuleFromSearchDocuments deletes packages from search_documents.
+func deletePackagesInModuleFromSearchDocuments(ctx context.Context, tx *database.DB, pkgPaths []string) error {
+ d := squirrel.Delete("search_documents").
+ Where("package_path = ANY(?)", pq.Array(pkgPaths))
+ q, args, err := d.PlaceholderFormat(squirrel.Dollar).ToSql()
+ if err != nil {
+ return err
+ }
+ n, err := tx.Exec(ctx, q, args...)
+ if err != nil {
+ return err
+ }
+ log.Infof(ctx, "deleted %d rows from search_documents: %v", n, pkgPaths)
+ return nil
+}
+
func deleteModuleFromImportsUnique(ctx context.Context, db *database.DB, modulePath string) (err error) {
defer derrors.Wrap(&err, "deleteModuleFromImportsUnique(%q)", modulePath)
diff --git a/internal/postgres/delete_test.go b/internal/postgres/delete_test.go
index 87868f3..fdd080b 100644
--- a/internal/postgres/delete_test.go
+++ b/internal/postgres/delete_test.go
@@ -91,7 +91,7 @@
defer release()
insertInitial(testDB)
- if err := deleteModuleOrPackagesInModuleFromSearchDocuments(ctx, testDB.db, modulePath, nil); err != nil {
+ if err := deleteModuleFromSearchDocuments(ctx, testDB.db, modulePath); err != nil {
t.Fatal(err)
}
checkSearchDocuments(ctx, t, testDB, []searchDocumentRow{
diff --git a/internal/postgres/insert_module.go b/internal/postgres/insert_module.go
index d977141..542354f 100644
--- a/internal/postgres/insert_module.go
+++ b/internal/postgres/insert_module.go
@@ -677,7 +677,7 @@
// A missing GoodVersion means that there are no good versions
// remaining. In that case, or if this is an alternative module, we
// should remove the module from search.
- if err := deleteModuleOrPackagesInModuleFromSearchDocuments(ctx, tx, modulePath, nil); err != nil {
+ if err := deleteModuleFromSearchDocuments(ctx, tx, modulePath); err != nil {
return err
}
if err := deleteModuleFromImportsUnique(ctx, tx, modulePath); err != nil {