diff options
| author | Bharath Thiruveedula <tbharath91@gmail.com> | 2020-06-19 10:35:31 -0400 |
|---|---|---|
| committer | Julie Qiu <julie@golang.org> | 2020-06-29 18:15:37 +0000 |
| commit | fbef9da64db31dae662aa4cb857eaaff561ce40e (patch) | |
| tree | c67d0afde4e898ac64d857c4930fe5decf513c47 /internal/postgres | |
| parent | bf0874fd2ae9ce273e4764dec2bd38e2b8444fd8 (diff) | |
| download | go-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.go | 5 | ||||
| -rw-r--r-- | internal/postgres/insert_module_test.go | 19 |
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) { |
