When we're given a source package to search for, do not bother to load all of
the data related to all binary packages which correspond to that source package.
[For a complicated source package with 5000 binary packages like linux, that
search can take more than 5 seconds.]
+ my @src_packages = keys %src_packages;
my @bin_ver_search;
for my $sp (keys %bin_ver_packages) {
my @bin_ver_search;
for my $sp (keys %bin_ver_packages) {
+ my @bin_packages = keys %bin_packages;
my $packages = {};
sub _default_pkg_info {
return {name => $_[0],
my $packages = {};
sub _default_pkg_info {
return {name => $_[0],
$bp->{$pkg->{bin_pkg}}++;
}
}
$bp->{$pkg->{bin_pkg}}++;
}
}
- if (keys %src_packages) {
my $src_rs = $s->resultset('SrcVer')->
my $src_rs = $s->resultset('SrcVer')->
- search({-or => [-and => {'src_pkg.pkg' => [keys %src_packages],
+ search({-or => [-and => {'src_pkg.pkg' => [@src_packages],
-or => {'suite.codename' => $common_dists,
'suite.suite_name' => $common_dists,
},
-or => {'suite.codename' => $common_dists,
'suite.suite_name' => $common_dists,
},
- if (keys %bin_packages) {
my $bin_assoc_rs =
$s->resultset('BinAssociation')->
my $bin_assoc_rs =
$s->resultset('BinAssociation')->
- search({-and => {'bin_pkg.pkg' => [keys %bin_packages],
+ search({-and => {'bin_pkg.pkg' => [@bin_packages],
-or => {'suite.codename' => $common_dists,
'suite.suite_name' => $common_dists,
},
-or => {'suite.codename' => $common_dists,
'suite.suite_name' => $common_dists,
},