]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/DB/Load.pm
fix load_bug failing to strip src: from source packages
[debbugs.git] / Debbugs / DB / Load.pm
index 6f300f96f6690c07beb4764cb4c311141f181607..040e2a77ab491d5f6290278117b47f5a718c7608 100644 (file)
@@ -183,7 +183,9 @@ sub load_bug {
                                          $param{packages},
                                         );
                 $b->set_related_packages('srcpackages',
-                                         [grep {defined $_ and
+                                         [map {s/src://;
+                                                $_}
+                                           grep {defined $_ and
                                                   $_ =~ /^src:/}
                                           make_list($data->{package})],
                                          $param{packages},
@@ -196,7 +198,9 @@ sub load_bug {
                                          $param{packages},
                                         );
                 $b->set_related_packages('affects_srcpackages',
-                                         [grep {defined $_ and
+                                         [map {s/src://;
+                                                $_}
+                                           grep {defined $_ and
                                                   $_ =~ /^src:/}
                                           make_list($data->{affects})],
                                          $param{packages},
@@ -571,8 +575,15 @@ sub load_packages {
     }
     # remove associations for packages not in this suite
     if (@sa_to_del) {
-       $schema->resultset('SrcAssociation')->
-           search_rs({id => \@sa_to_del})->delete();
+        $it = natatime 1000, @sa_to_del;
+        while (my @v = $it->()) {
+            $schema->
+                txn_do(sub {
+                           $schema->resultset('SrcAssociation')->
+                               search_rs({id => \@v})->
+                               delete();
+                       });
+        }
     }
     # update packages in this suite to have a modification time of now
     $schema->resultset('SrcAssociation')->
@@ -635,8 +646,15 @@ sub load_packages {
                   scalar @v) if defined $p;
     }
     if (@bin_to_del) {
-       $schema->resultset('BinAssociation')->
-           search_rs({id => \@bin_to_del})->delete();
+        $it = natatime 1000, @bin_to_del;
+        while (my @v = $it->()) {
+            $schema->
+                txn_do(sub {
+                           $schema->resultset('BinAssociation')->
+                               search_rs({id => \@v})->
+                               delete();
+                       });
+        }
     }
     $schema->resultset('BinAssociation')->
        search_rs({suite => $suite_id})->
@@ -683,3 +701,7 @@ sub load_suite {
 
 
 __END__
+# Local Variables:
+# indent-tabs-mode: nil
+# cperl-indent-level: 4
+# End: