Skip to content

Commit d0ee426

Browse files
committed
Don't unwrap search query
Sometimes people are searching a non ts_query compatible query. This is leading to panic in get_search_results. Because of this check query results instead of unwrap.
1 parent 6c1e332 commit d0ee426

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/web/releases.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -229,21 +229,24 @@ fn get_search_results(conn: &Connection,
229229
let offset = (page - 1) * limit;
230230
let mut packages = Vec::new();
231231

232-
for row in &conn.query("SELECT crates.name, \
232+
let rows = match conn.query("SELECT crates.name, \
233233
releases.version, \
234234
releases.description, \
235235
releases.target_name, \
236236
releases.release_time, \
237237
releases.rustdoc_status, \
238238
ts_rank_cd(crates.content, to_tsquery($1)) AS rank \
239-
FROM crates \
240-
INNER JOIN releases ON crates.latest_version_id = releases.id \
241-
WHERE crates.content @@ to_tsquery($1) \
242-
ORDER BY rank DESC \
243-
LIMIT $2 OFFSET $3",
244-
&[&query, &limit, &offset])
245-
.unwrap() {
239+
FROM crates \
240+
INNER JOIN releases ON crates.latest_version_id = releases.id \
241+
WHERE crates.content @@ to_tsquery($1) \
242+
ORDER BY rank DESC \
243+
LIMIT $2 OFFSET $3",
244+
&[&query, &limit, &offset]) {
245+
Ok(r) => r,
246+
Err(_) => return None,
247+
};
246248

249+
for row in &rows {
247250
let package = Release {
248251
name: row.get(0),
249252
version: row.get(1),

0 commit comments

Comments
 (0)