Skip to content

Commit 0adfb6d

Browse files
committed
admin/delete_crate: Replace raw SQL with diesel subquery builder
1 parent a488180 commit 0adfb6d

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/bin/crates-admin/delete_crate.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ use crates_io::models::{NewDeletedCrate, User};
66
use crates_io::schema::{crate_downloads, deleted_crates};
77
use crates_io::worker::jobs;
88
use crates_io::{db, schema::crates};
9+
use crates_io_database::schema::dependencies;
910
use crates_io_worker::BackgroundJob;
10-
use diesel::dsl::sql;
11+
use diesel::dsl::{count_star, sql};
1112
use diesel::expression::SqlLiteral;
1213
use diesel::prelude::*;
13-
use diesel::sql_types::{Array, BigInt, Text};
14+
use diesel::sql_types::{Array, Text};
1415
use diesel_async::scoped_futures::ScopedFutureExt;
1516
use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl};
1617
use std::fmt::Display;
@@ -199,12 +200,10 @@ fn owners_subquery() -> SqlLiteral<Array<Text>> {
199200
/// "default version" per crate. However, it's good enough for our
200201
/// purposes here.
201202
#[diesel::dsl::auto_type]
202-
fn rev_deps_subquery() -> SqlLiteral<BigInt> {
203-
sql(r#"
204-
(
205-
SELECT COUNT(*)
206-
FROM dependencies
207-
WHERE dependencies.crate_id = crates.id
208-
)
209-
"#)
203+
fn rev_deps_subquery() -> _ {
204+
dependencies::table
205+
.select(count_star())
206+
.filter(dependencies::crate_id.eq(crates::id))
207+
.single_value()
208+
.assume_not_null()
210209
}

0 commit comments

Comments
 (0)