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 {