From 758f570dbc0f13d4dd3b656b24882154ef218e37 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Mon, 7 Aug 2017 13:10:45 -0700 Subject: [PATCH] delete associations in a transaction by 1000 --- Debbugs/DB/Load.pm | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/Debbugs/DB/Load.pm b/Debbugs/DB/Load.pm index 6f300f9..a85a4ec 100644 --- a/Debbugs/DB/Load.pm +++ b/Debbugs/DB/Load.pm @@ -571,8 +571,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 +642,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 +697,7 @@ sub load_suite { __END__ +# Local Variables: +# indent-tabs-mode: nil +# cperl-indent-level: 4 +# End: -- 2.39.2