internal/{worker,postgres}: remove DeleteOlderVersionFromSearchDocuments

Thanks to the recent change to ReconcileSearch to handle the current
module version being alternative, this is no longer necessary.

Change-Id: I0c1e1fa917de349496c20c4e0bc101c703853490
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/342171
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 a8cb0ca..94d0e23 100644
--- a/internal/postgres/delete.go
+++ b/internal/postgres/delete.go
@@ -10,7 +10,6 @@
 
 	"github.com/Masterminds/squirrel"
 	"github.com/lib/pq"
-	"golang.org/x/mod/semver"
 	"golang.org/x/pkgsite/internal"
 	"golang.org/x/pkgsite/internal/database"
 	"golang.org/x/pkgsite/internal/derrors"
@@ -44,43 +43,6 @@
 	})
 }
 
-// DeleteOlderVersionFromSearchDocuments deletes from search_documents every package with
-// the given module path whose version is older than the given version.
-// It is used when fetching a module with an alternative path. See internal/worker/fetch.go:fetchAndUpdateState.
-func (db *DB) DeleteOlderVersionFromSearchDocuments(ctx context.Context, modulePath, resolvedVersion string) (err error) {
-	defer derrors.WrapStack(&err, "DeleteOlderVersionFromSearchDocuments(ctx, %q, %q)", modulePath, resolvedVersion)
-
-	return db.db.Transact(ctx, sql.LevelDefault, func(tx *database.DB) error {
-		// Collect all package paths in search_documents with the given module path
-		// and an older version. (package_path is the primary key of search_documents.)
-		var ppaths []string
-		query := `
-			SELECT package_path, version
-			FROM search_documents
-			WHERE module_path = $1
-		`
-		err := tx.RunQuery(ctx, query, func(rows *sql.Rows) error {
-			var ppath, v string
-			if err := rows.Scan(&ppath, &v); err != nil {
-				return err
-			}
-			if semver.Compare(v, resolvedVersion) < 0 {
-				ppaths = append(ppaths, ppath)
-			}
-			return nil
-		}, modulePath)
-		if err != nil {
-			return err
-		}
-		if len(ppaths) == 0 {
-			return nil
-		}
-
-		// Delete all of those paths.
-		return deleteModuleOrPackagesInModuleFromSearchDocuments(ctx, tx, modulePath, ppaths)
-	})
-}
-
 // deleteOtherModulePackagesFromSearchDocuments deletes all packages from search
 // documents with the given module that are not in m.
 func deleteOtherModulePackagesFromSearchDocuments(ctx context.Context, tx *database.DB, m *internal.Module) error {
diff --git a/internal/postgres/delete_test.go b/internal/postgres/delete_test.go
index ae15a73..87868f3 100644
--- a/internal/postgres/delete_test.go
+++ b/internal/postgres/delete_test.go
@@ -85,20 +85,6 @@
 		checkSearchDocuments(ctx, t, db, initial[2:])
 	}
 
-	t.Run("DeleteOlderVersionFromSearchDocuments", func(t *testing.T) {
-		testDB, release := acquire(t)
-		defer release()
-		insertInitial(testDB)
-
-		if err := testDB.DeleteOlderVersionFromSearchDocuments(ctx, modulePath, "v1.2.3"); err != nil {
-			t.Fatal(err)
-		}
-
-		checkSearchDocuments(ctx, t, testDB, []searchDocumentRow{
-			{modulePath + "/p4", modulePath, "v1.9.0", 0}, // newer version not deleted
-			{"other.org/p2", "other.org", "v1.1.0", 0},    // other module not deleted
-		})
-	})
 	t.Run("deleteModuleFromSearchDocuments", func(t *testing.T) {
 		// Non-empty list of packages tested above. This tests an empty list.
 		testDB, release := acquire(t)
diff --git a/internal/worker/fetch.go b/internal/worker/fetch.go
index 3dc44d1..6dd9983 100644
--- a/internal/worker/fetch.go
+++ b/internal/worker/fetch.go
@@ -371,25 +371,7 @@
 
 	// Update the latest good version for this module, because deleting this
 	// version may have changed it.
-	if err := db.UpdateLatestGoodVersion(ctx, ft.ModulePath); err != nil {
-		return err
-	}
-
-	// If this was an alternative path (ft.Status == 491) and there is an older
-	// version in search_documents, delete it. This is the case where a module's
-	// canonical path was changed by the addition of a go.mod file. For example,
-	// versions of logrus before it acquired a go.mod file could have the path
-	// github.com/Sirupsen/logrus, but once the go.mod file specifies that the
-	// path is all lower-case, the old versions should not show up in search. We
-	// still leave their pages in the database so users of those old versions
-	// can still view documentation.
-	if ft.Status == derrors.ToStatus(derrors.AlternativeModule) {
-		log.Infof(ctx, "%s@%s: code=491, deleting older version from search", ft.ModulePath, ft.ResolvedVersion)
-		if err := db.DeleteOlderVersionFromSearchDocuments(ctx, ft.ModulePath, ft.ResolvedVersion); err != nil {
-			return err
-		}
-	}
-	return nil
+	return db.UpdateLatestGoodVersion(ctx, ft.ModulePath)
 }
 
 func logTaskResult(ctx context.Context, ft *fetchTask, prefix string) {