internal/postgres: fix deleteOtherModulePackagesFromSearchDocuments

deleteOtherModulePackagesFromSearchDocuments always calls
deleteModuleOrPackagesInModuleFromSearchDocuments, even when otherPkgs
is nil.

In that case, this causes the module in search_documents to be deleted
unnecessarily.

deleteModuleOrPackagesInModuleFromSearchDocuments is now only called
only when otherPkgs > 0.

Change-Id: I8bffbb80edc28cf1727cada08b4bcceae5aba709
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/342629
Trust: Julie Qiu <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/postgres/delete.go b/internal/postgres/delete.go
index 94d0e23..0af9a18 100644
--- a/internal/postgres/delete.go
+++ b/internal/postgres/delete.go
@@ -62,14 +62,17 @@
 			otherPkgs = append(otherPkgs, p)
 		}
 	}
+	if len(otherPkgs) == 0 {
+		// Nothing to delete.
+		return nil
+	}
 	return deleteModuleOrPackagesInModuleFromSearchDocuments(ctx, tx, m.ModulePath, 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})
+	d := squirrel.Delete("search_documents").Where(squirrel.Eq{"module_path": modulePath})
 	if len(packages) > 0 {
 		d = d.Where("package_path = ANY(?)", pq.Array(packages))
 	}