aboutsummaryrefslogtreecommitdiff
path: root/internal/postgres
diff options
context:
space:
mode:
authorBharath Thiruveedula <tbharath91@gmail.com>2020-06-19 10:35:31 -0400
committerJulie Qiu <julie@golang.org>2020-06-29 18:15:37 +0000
commitfbef9da64db31dae662aa4cb857eaaff561ce40e (patch)
treec67d0afde4e898ac64d857c4930fe5decf513c47 /internal/postgres
parentbf0874fd2ae9ce273e4764dec2bd38e2b8444fd8 (diff)
downloadgo-x-pkgsite-fbef9da64db31dae662aa4cb857eaaff561ce40e.tar.xz
internal/postgres: remove module from version_map in DeleteModule
postgres.DeleteModule is updated to delete the corresponding module_path and resolved_version row from the version_map table. Fixes #39633 Change-Id: I9de46b08e535bea52c2ea4dbab1c71a8e1c2c2f7 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/238637 Reviewed-by: Julie Qiu <julie@golang.org>
Diffstat (limited to 'internal/postgres')
-rw-r--r--internal/postgres/insert_module.go5
-rw-r--r--internal/postgres/insert_module_test.go19
2 files changed, 23 insertions, 1 deletions
diff --git a/internal/postgres/insert_module.go b/internal/postgres/insert_module.go
index d2d0a762..7ccc4d7b 100644
--- a/internal/postgres/insert_module.go
+++ b/internal/postgres/insert_module.go
@@ -697,6 +697,11 @@ func (db *DB) DeleteModule(ctx context.Context, modulePath, version string) (err
if _, err := db.db.Exec(ctx, stmt, modulePath, version); err != nil {
return err
}
+
+ if _, err = db.db.Exec(ctx, `DELETE FROM version_map WHERE module_path = $1 AND resolved_version = $2`, modulePath, version); err != nil {
+ return err
+ }
+
var x int
err = db.db.QueryRow(ctx, `SELECT 1 FROM modules WHERE module_path=$1 LIMIT 1`, modulePath).Scan(&x)
if err != sql.ErrNoRows || err == nil {
diff --git a/internal/postgres/insert_module_test.go b/internal/postgres/insert_module_test.go
index 16275a56..4562ac39 100644
--- a/internal/postgres/insert_module_test.go
+++ b/internal/postgres/insert_module_test.go
@@ -291,25 +291,42 @@ func TestDeleteModule(t *testing.T) {
defer ResetTestDB(testDB, t)
v := sample.DefaultModule()
+
if err := testDB.InsertModule(ctx, v); err != nil {
t.Fatal(err)
}
if _, err := testDB.LegacyGetModuleInfo(ctx, v.ModulePath, v.Version); err != nil {
t.Fatal(err)
}
+
+ vm := sample.DefaultVersionMap()
+ if err := testDB.UpsertVersionMap(ctx, vm); err != nil {
+ t.Fatal(err)
+ }
+ if _, err := testDB.GetVersionMap(ctx, v.ModulePath, v.Version); err != nil {
+ t.Fatal(err)
+ }
+
if err := testDB.DeleteModule(ctx, v.ModulePath, v.Version); err != nil {
t.Fatal(err)
}
if _, err := testDB.LegacyGetModuleInfo(ctx, v.ModulePath, v.Version); !errors.Is(err, derrors.NotFound) {
t.Errorf("got %v, want NotFound", err)
}
+
var x int
err := testDB.Underlying().QueryRow(ctx, "SELECT 1 FROM imports_unique WHERE from_module_path = $1",
v.ModulePath).Scan(&x)
if err != sql.ErrNoRows {
t.Errorf("imports_unique: got %v, want ErrNoRows", err)
}
- // TODO(golang/go#39633): check removal from version_map
+ err = testDB.Underlying().QueryRow(
+ ctx,
+ "SELECT 1 FROM version_map WHERE module_path = $1 AND resolved_version = $2",
+ v.ModulePath, v.Version).Scan(&x)
+ if err != sql.ErrNoRows {
+ t.Errorf("version_map: got %v, want ErrNoRows", err)
+ }
}
func TestPostgres_NewerAlternative(t *testing.T) {