internal/postgres: delete LegacyGetTaggedVersions* and LegacyGetPseudoVersions*
For golang/go#39629
Change-Id: Ie498e9c8b1de83185b33b8a0fbb9af82d96911fc
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/258296
Trust: Julie Qiu <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
diff --git a/internal/postgres/version.go b/internal/postgres/version.go
index cf71fdb..46ff82b 100644
--- a/internal/postgres/version.go
+++ b/internal/postgres/version.go
@@ -16,141 +16,6 @@
"golang.org/x/pkgsite/internal/version"
)
-// LegacyGetTaggedVersionsForPackageSeries returns a list of tagged versions sorted in
-// descending semver order. This list includes tagged versions of packages that
-// have the same v1path.
-func (db *DB) LegacyGetTaggedVersionsForPackageSeries(ctx context.Context, pkgPath string) ([]*internal.ModuleInfo, error) {
- return getPackageVersions(ctx, db, pkgPath, []version.Type{version.TypeRelease, version.TypePrerelease})
-}
-
-// LegacyGetPsuedoVersionsForPackageSeries returns the 10 most recent from a list of
-// pseudo-versions sorted in descending semver order. This list includes
-// pseudo-versions of packages that have the same v1path.
-func (db *DB) LegacyGetPsuedoVersionsForPackageSeries(ctx context.Context, pkgPath string) ([]*internal.ModuleInfo, error) {
- return getPackageVersions(ctx, db, pkgPath, []version.Type{version.TypePseudo})
-}
-
-// getPackageVersions returns a list of versions sorted in descending semver
-// order. The version types included in the list are specified by a list of
-// VersionTypes.
-func getPackageVersions(ctx context.Context, db *DB, pkgPath string, versionTypes []version.Type) (_ []*internal.ModuleInfo, err error) {
- defer derrors.Wrap(&err, "DB.getPackageVersions(ctx, db, %q, %v)", pkgPath, versionTypes)
-
- baseQuery := `
- SELECT
- p.module_path,
- p.version,
- m.commit_time
- FROM
- packages p
- INNER JOIN
- modules m
- ON
- p.module_path = m.module_path
- AND p.version = m.version
- WHERE
- p.v1_path = (
- SELECT v1_path
- FROM packages
- WHERE path = $1
- LIMIT 1
- )
- AND version_type in (%s)
- ORDER BY
- m.incompatible,
- m.sort_version DESC %s`
- queryEnd := `;`
- if len(versionTypes) == 0 {
- return nil, fmt.Errorf("error: must specify at least one version type")
- } else if len(versionTypes) == 1 && versionTypes[0] == version.TypePseudo {
- queryEnd = `LIMIT 10;`
- }
- query := fmt.Sprintf(baseQuery, versionTypeExpr(versionTypes), queryEnd)
-
- rows, err := db.db.Query(ctx, query, pkgPath)
- if err != nil {
- return nil, err
- }
- defer rows.Close()
-
- var versionHistory []*internal.ModuleInfo
- for rows.Next() {
- var mi internal.ModuleInfo
- if err := rows.Scan(&mi.ModulePath, &mi.Version, &mi.CommitTime); err != nil {
- return nil, fmt.Errorf("row.Scan(): %v", err)
- }
- versionHistory = append(versionHistory, &mi)
- }
-
- if err := rows.Err(); err != nil {
- return nil, fmt.Errorf("rows.Err(): %v", err)
- }
-
- return versionHistory, nil
-}
-
-// versionTypeExpr returns a comma-separated list of version types,
-// for use in a clause like "WHERE version_type IN (%s)"
-func versionTypeExpr(vts []version.Type) string {
- var vs []string
- for _, vt := range vts {
- vs = append(vs, fmt.Sprintf("'%s'", vt.String()))
- }
- return strings.Join(vs, ", ")
-}
-
-// LegacyGetTaggedVersionsForModule returns a list of tagged versions sorted in
-// descending semver order.
-func (db *DB) LegacyGetTaggedVersionsForModule(ctx context.Context, modulePath string) ([]*internal.ModuleInfo, error) {
- return getModuleVersions(ctx, db, modulePath, []version.Type{version.TypeRelease, version.TypePrerelease})
-}
-
-// LegacyGetPsuedoVersionsForModule returns the 10 most recent from a list of
-// pseudo-versions sorted in descending semver order.
-func (db *DB) LegacyGetPsuedoVersionsForModule(ctx context.Context, modulePath string) ([]*internal.ModuleInfo, error) {
- return getModuleVersions(ctx, db, modulePath, []version.Type{version.TypePseudo})
-}
-
-// getModuleVersions returns a list of versions sorted in descending semver
-// order. The version types included in the list are specified by a list of
-// VersionTypes.
-func getModuleVersions(ctx context.Context, db *DB, modulePath string, versionTypes []version.Type) (_ []*internal.ModuleInfo, err error) {
- defer derrors.Wrap(&err, "getModuleVersions(ctx, db, %q, %v)", modulePath, versionTypes)
-
- baseQuery := `
- SELECT
- module_path, version, commit_time
- FROM
- modules
- WHERE
- series_path = $1
- AND version_type in (%s)
- ORDER BY
- incompatible,
- sort_version DESC %s`
-
- queryEnd := `;`
- if len(versionTypes) == 0 {
- return nil, fmt.Errorf("error: must specify at least one version type")
- } else if len(versionTypes) == 1 && versionTypes[0] == version.TypePseudo {
- queryEnd = `LIMIT 10;`
- }
- query := fmt.Sprintf(baseQuery, versionTypeExpr(versionTypes), queryEnd)
- var vinfos []*internal.ModuleInfo
- collect := func(rows *sql.Rows) error {
- var mi internal.ModuleInfo
- if err := rows.Scan(&mi.ModulePath, &mi.Version, &mi.CommitTime); err != nil {
- return err
- }
- vinfos = append(vinfos, &mi)
- return nil
- }
- if err := db.db.RunQuery(ctx, query, collect, internal.SeriesPathForModule(modulePath)); err != nil {
- return nil, err
- }
- return vinfos, nil
-}
-
// GetVersionsForPath returns a list of tagged versions sorted in
// descending semver order if any exist. If none, it returns the 10 most
// recent from a list of pseudo-versions sorted in descending semver order.
@@ -223,6 +88,16 @@
return versions, nil
}
+// versionTypeExpr returns a comma-separated list of version types,
+// for use in a clause like "WHERE version_type IN (%s)"
+func versionTypeExpr(vts []version.Type) string {
+ var vs []string
+ for _, vt := range vts {
+ vs = append(vs, fmt.Sprintf("'%s'", vt.String()))
+ }
+ return strings.Join(vs, ", ")
+}
+
// GetLatestMajorVersion returns the latest major version string of a module
// path. For example, in the module path "github.com/casbin/casbin", there
// is another path with a greater major version
diff --git a/internal/postgres/version_test.go b/internal/postgres/version_test.go
index bbe9bea..47b34ec 100644
--- a/internal/postgres/version_test.go
+++ b/internal/postgres/version_test.go
@@ -18,142 +18,6 @@
"golang.org/x/pkgsite/internal/testing/sample"
)
-func TestPostgres_GetTaggedAndPseudoVersions(t *testing.T) {
- ctx, cancel := context.WithTimeout(context.Background(), testTimeout*2)
- defer cancel()
-
- var (
- modulePath1 = "path.to/foo"
- modulePath2 = "path.to/foo/v2"
- modulePath3 = "path.to/some/thing"
- testModules = []*internal.Module{
- sample.Module(modulePath3, "v3.0.0", "else"),
- sample.Module(modulePath1, "v2.0.0+incompatible", "bar"),
- sample.Module(modulePath1, "v1.0.0-alpha.1", "bar"),
- sample.Module(modulePath1, "v1.0.0", "bar"),
- sample.Module(modulePath2, "v2.0.1-beta", "bar"),
- sample.Module(modulePath2, "v2.1.0", "bar"),
- }
- )
-
- testCases := []struct {
- name, path, modulePath string
- numPseudo int
- modules []*internal.Module
- wantTaggedVersions []*internal.ModuleInfo
- }{
- {
- name: "want_releases_and_prereleases_only",
- path: "path.to/foo/bar",
- modulePath: modulePath1,
- numPseudo: 12,
- modules: testModules,
- wantTaggedVersions: []*internal.ModuleInfo{
- {
- ModulePath: modulePath2,
- Version: "v2.1.0",
- CommitTime: sample.CommitTime,
- },
- {
- ModulePath: modulePath2,
- Version: "v2.0.1-beta",
- CommitTime: sample.CommitTime,
- },
- {
- ModulePath: modulePath1,
- Version: "v1.0.0",
- CommitTime: sample.CommitTime,
- },
- {
- ModulePath: modulePath1,
- Version: "v1.0.0-alpha.1",
- CommitTime: sample.CommitTime,
- },
- {
- ModulePath: modulePath1,
- Version: "v2.0.0+incompatible",
- CommitTime: sample.CommitTime,
- },
- },
- },
- {
- name: "want_zero_results_in_non_empty_db",
- path: "not.a/real/path",
- modulePath: "not.a/real/path",
- modules: testModules,
- },
- {
- name: "want_zero_results_in_empty_db",
- path: "not.a/real/path",
- modulePath: "not.a/real/path",
- },
- }
-
- for _, tc := range testCases {
- t.Run(tc.name, func(t *testing.T) {
- defer ResetTestDB(testDB, t)
-
- var wantPseudoVersions []*internal.ModuleInfo
- for i := 0; i < tc.numPseudo; i++ {
-
- pseudo := fmt.Sprintf("v0.0.0-201806111833%02d-d8887717615a", i+1)
- m := sample.Module(modulePath1, pseudo, "bar")
- if err := testDB.InsertModule(ctx, m); err != nil {
- t.Fatal(err)
- }
-
- // LegacyGetPsuedoVersions should only return the 10 most recent pseudo versions,
- // if there are more than 10 in the database
- if i < 10 {
- wantPseudoVersions = append(wantPseudoVersions, &internal.ModuleInfo{
- ModulePath: modulePath1,
- Version: fmt.Sprintf("v0.0.0-201806111833%02d-d8887717615a", tc.numPseudo-i),
- CommitTime: sample.CommitTime,
- })
- }
- }
-
- for _, m := range tc.modules {
- if err := testDB.InsertModule(ctx, m); err != nil {
- t.Fatal(err)
- }
- }
-
- got, err := testDB.LegacyGetPsuedoVersionsForPackageSeries(ctx, tc.path)
- if err != nil {
- t.Fatal(err)
- }
- if diff := cmp.Diff(wantPseudoVersions, got, cmp.AllowUnexported(source.Info{})); diff != "" {
- t.Errorf("testDB.LegacyGetPsuedoVersionsForPackageSeries(%q) mismatch (-want +got):\n%s", tc.path, diff)
- }
-
- got, err = testDB.LegacyGetTaggedVersionsForPackageSeries(ctx, tc.path)
- if err != nil {
- t.Fatal(err)
- }
- if diff := cmp.Diff(tc.wantTaggedVersions, got, cmp.AllowUnexported(source.Info{})); diff != "" {
- t.Errorf("testDB.LegacyGetTaggedVersionsForPackageSeries(%q) mismatch (-want +got):\n%s", tc.path, diff)
- }
-
- got, err = testDB.LegacyGetPsuedoVersionsForModule(ctx, tc.modulePath)
- if err != nil {
- t.Fatal(err)
- }
- if diff := cmp.Diff(wantPseudoVersions, got, cmp.AllowUnexported(source.Info{})); diff != "" {
- t.Errorf("testDB.LegacyGetPsuedoVersionsForModule(%q) mismatch (-want +got):\n%s", tc.path, diff)
- }
-
- got, err = testDB.LegacyGetTaggedVersionsForModule(ctx, tc.modulePath)
- if err != nil {
- t.Fatal(err)
- }
- if diff := cmp.Diff(tc.wantTaggedVersions, got, cmp.AllowUnexported(source.Info{})); diff != "" {
- t.Errorf("testDB.LegacyGetTaggedVersionsForModule(%q) mismatch (-want +got):\n%s", tc.path, diff)
- }
- })
- }
-}
-
func TestGetVersions(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
defer cancel()