File tree Expand file tree Collapse file tree 1 file changed +23
-6
lines changed Expand file tree Collapse file tree 1 file changed +23
-6
lines changed Original file line number Diff line number Diff line change @@ -343,18 +343,15 @@ fn add_keywords_into_database(
343
343
conn. execute ( & insert_keyword_query, & [ & name, & slug] ) ?;
344
344
}
345
345
346
- let affected_rows = conn. execute (
346
+ conn. execute (
347
347
"INSERT INTO keyword_rels (rid, kid)
348
348
SELECT $1 as rid, id as kid
349
349
FROM keywords
350
- WHERE slug = ANY($2)" ,
350
+ WHERE slug = ANY($2)
351
+ ON CONFLICT DO NOTHING;" ,
351
352
& [ & release_id, & wanted_keywords. keys ( ) . collect :: < Vec < _ > > ( ) ] ,
352
353
) ?;
353
354
354
- if affected_rows != pkg. keywords . len ( ) as u64 {
355
- failure:: bail!( "not all keywords added to database" ) ;
356
- }
357
-
358
355
Ok ( ( ) )
359
356
}
360
357
@@ -486,6 +483,26 @@ mod test {
486
483
} )
487
484
}
488
485
486
+ #[ test]
487
+ fn keyword_conflict_when_rebuilding_release ( ) {
488
+ wrapper ( |env| {
489
+ env. fake_release ( )
490
+ . name ( "dummy" )
491
+ . version ( "0.13.0" )
492
+ . keywords ( vec ! [ "kw 3" . into( ) , "kw 4" . into( ) ] )
493
+ . create ( ) ?;
494
+
495
+ // same version so we have the same release
496
+ env. fake_release ( )
497
+ . name ( "dummy" )
498
+ . version ( "0.13.0" )
499
+ . keywords ( vec ! [ "kw 3" . into( ) , "kw 4" . into( ) ] )
500
+ . create ( ) ?;
501
+
502
+ Ok ( ( ) )
503
+ } )
504
+ }
505
+
489
506
#[ test]
490
507
fn updated_keywords ( ) {
491
508
wrapper ( |env| {
You can’t perform that action at this time.
0 commit comments