From abc4aa3d67d4077d18610af3bb598c535dd4a9d2 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 8 Oct 2021 00:11:52 +0200 Subject: [PATCH 1/2] database/versions: Add generated `version_no_prerelease` column --- .../2021-10-07-220812_add_version_no_prerelease/down.sql | 2 ++ migrations/2021-10-07-220812_add_version_no_prerelease/up.sql | 3 +++ src/tasks/dump_db/dump-db.toml | 1 + 3 files changed, 6 insertions(+) create mode 100644 migrations/2021-10-07-220812_add_version_no_prerelease/down.sql create mode 100644 migrations/2021-10-07-220812_add_version_no_prerelease/up.sql diff --git a/migrations/2021-10-07-220812_add_version_no_prerelease/down.sql b/migrations/2021-10-07-220812_add_version_no_prerelease/down.sql new file mode 100644 index 00000000000..040664f5867 --- /dev/null +++ b/migrations/2021-10-07-220812_add_version_no_prerelease/down.sql @@ -0,0 +1,2 @@ +ALTER TABLE versions + DROP COLUMN version_no_prerelease; diff --git a/migrations/2021-10-07-220812_add_version_no_prerelease/up.sql b/migrations/2021-10-07-220812_add_version_no_prerelease/up.sql new file mode 100644 index 00000000000..e01bf9cc7a4 --- /dev/null +++ b/migrations/2021-10-07-220812_add_version_no_prerelease/up.sql @@ -0,0 +1,3 @@ +ALTER TABLE versions + ADD COLUMN version_no_prerelease semver_triple + GENERATED ALWAYS AS ( to_semver_no_prerelease(num) ) STORED; diff --git a/src/tasks/dump_db/dump-db.toml b/src/tasks/dump_db/dump-db.toml index 8d8b2dd9c23..2f74f9fbae7 100644 --- a/src/tasks/dump_db/dump-db.toml +++ b/src/tasks/dump_db/dump-db.toml @@ -212,6 +212,7 @@ yanked = "public" license = "public" crate_size = "public" published_by = "public" +version_no_prerelease = "private" [versions_published_by.columns] version_id = "private" From cffbb572db0ada6606e1493bdc2c65d80854c1eb Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 8 Oct 2021 00:13:06 +0200 Subject: [PATCH 2/2] reverse-dependencies: Use `version_no_prerelease` column instead of `to_semver_no_prerelease(num)` --- src/models/krate_reverse_dependencies.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/models/krate_reverse_dependencies.sql b/src/models/krate_reverse_dependencies.sql index 787623ed500..1482f2299ac 100644 --- a/src/models/krate_reverse_dependencies.sql +++ b/src/models/krate_reverse_dependencies.sql @@ -12,7 +12,7 @@ SELECT *, COUNT(*) OVER () as total FROM ( SELECT versions.*, row_number() OVER ( PARTITION BY crate_id - ORDER BY to_semver_no_prerelease(num) DESC NULLS LAST + ORDER BY version_no_prerelease DESC NULLS LAST ) rn FROM versions WHERE NOT yanked