From c99c725289bcb3dc414e78bb97f8f3454b184dd5 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sun, 13 Oct 2024 13:38:19 +0200 Subject: [PATCH 1/2] index: Inline `Crate::by_exact_name()` fn call --- src/index.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/index.rs b/src/index.rs index c3d9a0770d2..d057f68f06b 100644 --- a/src/index.rs +++ b/src/index.rs @@ -13,7 +13,13 @@ use sentry::Level; #[instrument(skip_all, fields(krate.name = ?name))] pub fn get_index_data(name: &str, conn: &mut impl Conn) -> anyhow::Result> { debug!("Looking up crate by name"); - let Some(krate): Option = Crate::by_exact_name(name).first(conn).optional()? else { + let krate = crates::table + .select(Crate::as_select()) + .filter(crates::name.eq(name)) + .first::(conn) + .optional(); + + let Some(krate) = krate? else { return Ok(None); }; From 161c00378a9bf2cee51f1042719d89a041b05c91 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sun, 13 Oct 2024 14:05:15 +0200 Subject: [PATCH 2/2] index: Convert `get_index_data()` fn to async --- src/index.rs | 34 ++++++++++++++++++++++------------ src/worker/jobs/index/sync.rs | 22 ++++++++++------------ 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/index.rs b/src/index.rs index d057f68f06b..0ee06a62d24 100644 --- a/src/index.rs +++ b/src/index.rs @@ -4,19 +4,23 @@ use crate::models::{Crate, CrateVersions, Dependency, Version}; use crate::schema::{crates, dependencies}; -use crate::util::diesel::Conn; use anyhow::Context; use crates_io_index::features::split_features; use diesel::prelude::*; +use diesel_async::{AsyncPgConnection, RunQueryDsl}; use sentry::Level; #[instrument(skip_all, fields(krate.name = ?name))] -pub fn get_index_data(name: &str, conn: &mut impl Conn) -> anyhow::Result> { +pub async fn get_index_data( + name: &str, + conn: &mut AsyncPgConnection, +) -> anyhow::Result> { debug!("Looking up crate by name"); let krate = crates::table .select(Crate::as_select()) .filter(crates::name.eq(name)) .first::(conn) + .await .optional(); let Some(krate) = krate? else { @@ -24,7 +28,9 @@ pub fn get_index_data(name: &str, conn: &mut impl Conn) -> anyhow::Result