Skip to content

Commit 0607ed2

Browse files
committed
use precalculated latest version in search-results
1 parent 077ee97 commit 0607ed2

File tree

1 file changed

+3
-16
lines changed

1 file changed

+3
-16
lines changed

src/web/releases.rs

+3-16
Original file line numberDiff line numberDiff line change
@@ -247,20 +247,7 @@ fn get_search_results(
247247
repositories.stars
248248
249249
FROM crates
250-
INNER JOIN (
251-
--FIXME: this logic will probably move to using crates.latest_version_id when it is fixed.
252-
SELECT releases.id, releases.crate_id
253-
FROM (
254-
SELECT
255-
releases.id,
256-
releases.crate_id,
257-
RANK() OVER (PARTITION BY crate_id ORDER BY release_time DESC) as rank
258-
FROM releases
259-
WHERE releases.rustdoc_status AND NOT releases.yanked
260-
) AS releases
261-
WHERE releases.rank = 1
262-
) AS latest_release ON latest_release.crate_id = crates.id
263-
INNER JOIN releases ON latest_release.id = releases.id
250+
INNER JOIN releases ON crates.latest_version_id = releases.id
264251
INNER JOIN builds ON releases.id = builds.rid
265252
LEFT JOIN repositories ON releases.repository_id = repositories.id
266253
@@ -1054,8 +1041,8 @@ mod tests {
10541041
// * `max_version` from the crates.io search result will be ignored since we
10551042
// might not have it yet, or the doc-build might be in progress.
10561043
// * ranking/order from crates.io result is preserved
1057-
// * version used is the version with the youngest release date
1058-
assert_eq!(links[0], "/some_random_crate/1.0.0/some_random_crate/");
1044+
// * version used is the highest semver following our own "latest version" logic
1045+
assert_eq!(links[0], "/some_random_crate/2.0.0/some_random_crate/");
10591046
assert_eq!(links[1], "/and_another_one/0.0.1/and_another_one/");
10601047
Ok(())
10611048
})

0 commit comments

Comments
 (0)