internal/postgres: factor out delete from imports_unique

Add a function that deletes a module from imports_unique,
and call it where needed.

Change-Id: I0209d09855bf939e644cac646f1b8918bc48e990
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/341852
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>
diff --git a/internal/postgres/delete.go b/internal/postgres/delete.go
index 4b36663..a8cb0ca 100644
--- a/internal/postgres/delete.go
+++ b/internal/postgres/delete.go
@@ -40,8 +40,7 @@
 			return err
 		}
 		// No versions of this module exist; remove it from imports_unique.
-		_, err = tx.Exec(ctx, `DELETE FROM imports_unique WHERE from_module_path = $1`, modulePath)
-		return err
+		return deleteModuleFromImportsUnique(ctx, tx, modulePath)
 	})
 }
 
@@ -124,6 +123,16 @@
 	return nil
 }
 
+func deleteModuleFromImportsUnique(ctx context.Context, db *database.DB, modulePath string) (err error) {
+	defer derrors.Wrap(&err, "deleteModuleFromImportsUnique(%q)", modulePath)
+
+	_, err = db.Exec(ctx, `
+		DELETE FROM imports_unique
+		WHERE from_module_path = $1
+	`, modulePath)
+	return err
+}
+
 // DeletePseudoversionsExcept deletes all pseudoversions for the module except
 // the provided resolvedVersion.
 func (db *DB) DeletePseudoversionsExcept(ctx context.Context, modulePath, resolvedVersion string) (err error) {
diff --git a/internal/postgres/insert_module.go b/internal/postgres/insert_module.go
index f406ca8..e664f60 100644
--- a/internal/postgres/insert_module.go
+++ b/internal/postgres/insert_module.go
@@ -317,9 +317,7 @@
 
 	// Remove the previous rows for this module. We'll replace them with
 	// new ones below.
-	if _, err := tx.Exec(ctx,
-		`DELETE FROM imports_unique WHERE from_module_path = $1`,
-		m.ModulePath); err != nil {
+	if err := deleteModuleFromImportsUnique(ctx, tx, m.ModulePath); err != nil {
 		return err
 	}
 
@@ -666,10 +664,7 @@
 			if err := deleteModuleOrPackagesInModuleFromSearchDocuments(ctx, tx, modulePath, nil); err != nil {
 				return err
 			}
-			if _, err := tx.Exec(ctx, `
-				DELETE FROM imports_unique
-				WHERE from_module_path = $1
-			`, modulePath); err != nil {
+			if err := deleteModuleFromImportsUnique(ctx, tx, modulePath); err != nil {
 				return err
 			}
 			log.Debugf(ctx, "ReInsertLatestVersion(%q): no good version; removed from search_documents and imports_unique", modulePath)
@@ -736,7 +731,7 @@
 		}
 
 		// Remove old rows from imports_unique.
-		if _, err := tx.Exec(ctx, `DELETE FROM imports_unique WHERE from_module_path = $1`, modulePath); err != nil {
+		if err := deleteModuleFromImportsUnique(ctx, tx, modulePath); err != nil {
 			return err
 		}