]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/DB/ResultSet/BugStatusCache.pm
switch all uses of MoreUtils to AllUtils
[debbugs.git] / Debbugs / DB / ResultSet / BugStatusCache.pm
index 264e0a917a47d9d5f15b176aca97ff85033752c7..7ad8f0e3a04e706c0f497e3573da66ee6fc463e6 100644 (file)
@@ -23,11 +23,10 @@ use strict;
 use warnings;
 
 use base 'DBIx::Class::ResultSet';
-__PACKAGE__->load_components('Helper::ResultSet');
 
 use Debbugs::DB::Util qw(select_one);
 
-use List::MoreUtils qw(natatime);
+use List::AllUtils qw(natatime);
 
 
 =over
@@ -51,10 +50,12 @@ sub update_bug_status {
        dbh_do(sub {
                   my ($s,$dbh,$bug,$suite,$arch,$status,$modified,$asof) = @_;
                   select_one($dbh,<<'SQL',$bug,$suite,$arch,$status,$status);
-INSERT INTO bug_status_cache (bug,suite,arch,status,modified,asof)
+INSERT INTO bug_status_cache AS bsc
+(bug,suite,arch,status,modified,asof)
 VALUES (?,?,?,?,NOW(),NOW())
-ON CONFLICT (bug,suite,arch) DO 
-UPDATE SET asof=NOW(),modified=CASE WHEN status=? THEN modified ELSE NOW() END
+ON CONFLICT (bug,COALESCE(suite,0),COALESCE(arch,0)) DO
+UPDATE
+ SET asof=NOW(),modified=CASE WHEN bsc.status=? THEN bsc.modified ELSE NOW() END
 RETURNING status;
 SQL
               },