Skip to content

Commit 8f42584

Browse files
committed
controllers/krate/search: Use .contains() fn
This finally fixed the `FIXME` comment that's been around roughly forever :D
1 parent c9d7cbf commit 8f42584

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/controllers/krate/search.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::util::diesel::prelude::*;
55
use axum_extra::json;
66
use axum_extra::response::ErasedJson;
77
use diesel::dsl::{exists, sql, InnerJoinQuerySource, LeftJoinQuerySource};
8-
use diesel::sql_types::{Array, Bool, Text};
8+
use diesel::sql_types::{Bool, Text};
99
use diesel_async::AsyncPgConnection;
1010
use diesel_full_text_search::*;
1111
use http::request::Parts;
@@ -341,16 +341,12 @@ impl<'a> FilterParams<'a> {
341341
.collect();
342342

343343
query = query.filter(
344-
// FIXME: Just use `.contains` in Diesel 2.0
345-
// https://github.com/diesel-rs/diesel/issues/2066
346-
Contains::new(
347-
crates_keywords::table
348-
.inner_join(keywords::table)
349-
.filter(crates_keywords::crate_id.eq(crates::id))
350-
.select(array_agg(keywords::keyword))
351-
.single_value(),
352-
names.into_sql::<Array<Text>>(),
353-
),
344+
crates_keywords::table
345+
.inner_join(keywords::table)
346+
.filter(crates_keywords::crate_id.eq(crates::id))
347+
.select(array_agg(keywords::keyword))
348+
.single_value()
349+
.contains(names),
354350
);
355351
} else if let Some(kw) = self.keyword {
356352
query = query.filter(
@@ -667,5 +663,3 @@ type BoxedCondition<'a> = Box<
667663
dyn BoxableExpression<QuerySource, diesel::pg::Pg, SqlType = diesel::sql_types::Nullable<Bool>>
668664
+ 'a,
669665
>;
670-
671-
diesel::infix_operator!(Contains, "@>");

0 commit comments

Comments
 (0)