File tree Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -418,6 +418,14 @@ fn migrations() -> Vec<Migration> {
418
418
crate_owners_unique_user_per_crate", & [ ] ) ) ;
419
419
Ok ( ( ) )
420
420
} ) ,
421
+ Migration :: new( 20150320174400 , |tx| {
422
+ try!( tx. execute( "CREATE INDEX index_keywords_lower_keyword ON (lower(keyword))" ,
423
+ & [ ] ) ) ;
424
+ Ok ( ( ) )
425
+ } , |_| {
426
+ try!( tx. execute( "DROP INDEX index_keywords_lower_keyword" , & [ ] ) ) ;
427
+ Ok ( ( ) )
428
+ } ) ,
421
429
] ;
422
430
// NOTE: Generate a new id via `date +"%Y%m%d%H%M%S"`
423
431
Original file line number Diff line number Diff line change @@ -460,7 +460,7 @@ pub fn index(req: &mut Request) -> CargoResult<Response> {
460
460
ON crates.id = crates_keywords.crate_id
461
461
INNER JOIN keywords
462
462
ON crates_keywords.keyword_id = keywords.id
463
- WHERE keywords.keyword = $1 " ;
463
+ WHERE lower( keywords.keyword) = lower($1) " ;
464
464
( format ! ( "SELECT crates.* {} {} LIMIT $2 OFFSET $3" , base, sort_sql) ,
465
465
format ! ( "SELECT COUNT(crates.*) {}" , base) )
466
466
} )
Original file line number Diff line number Diff line change @@ -68,7 +68,9 @@ fn index_queries() {
68
68
krate. readme = Some ( "readme" . to_string ( ) ) ;
69
69
krate. description = Some ( "description" . to_string ( ) ) ;
70
70
:: mock_crate ( & mut req, krate) ;
71
- :: mock_crate ( & mut req, :: krate ( "BAR" ) ) ;
71
+ let krate2 = :: krate ( "BAR" ) ;
72
+ krate2. keywords . push ( "KW1" ) ;
73
+ :: mock_crate ( & mut req, krate2) ;
72
74
73
75
let mut response = ok_resp ! ( middle. call( req. with_query( "q=baz" ) ) ) ;
74
76
assert_eq ! ( :: json:: <CrateList >( & mut response) . meta. total, 0 ) ;
@@ -99,7 +101,9 @@ fn index_queries() {
99
101
assert_eq ! ( :: json:: <CrateList >( & mut response) . crates. len( ) , 0 ) ;
100
102
101
103
let mut response = ok_resp ! ( middle. call( req. with_query( "keyword=kw1" ) ) ) ;
102
- assert_eq ! ( :: json:: <CrateList >( & mut response) . crates. len( ) , 1 ) ;
104
+ assert_eq ! ( :: json:: <CrateList >( & mut response) . crates. len( ) , 2 ) ;
105
+ let mut response = ok_resp ! ( middle. call( req. with_query( "keyword=KW1" ) ) ) ;
106
+ assert_eq ! ( :: json:: <CrateList >( & mut response) . crates. len( ) , 2 ) ;
103
107
let mut response = ok_resp ! ( middle. call( req. with_query( "keyword=kw2" ) ) ) ;
104
108
assert_eq ! ( :: json:: <CrateList >( & mut response) . crates. len( ) , 0 ) ;
105
109
}
You can’t perform that action at this time.
0 commit comments