From: Don Armstrong Date: Fri, 15 Mar 2013 00:02:23 +0000 (-0700) Subject: cache src_pkgs for a single file as it's highly likely to be the same. X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=089c0fedad70b3702cc81466b58405bce3fcac81;p=debbugs.git cache src_pkgs for a single file as it's highly likely to be the same. --- diff --git a/bin/debbugs-loadsql-versions b/bin/debbugs-loadsql-versions index e1dc36c..8ab9868 100755 --- a/bin/debbugs-loadsql-versions +++ b/bin/debbugs-loadsql-versions @@ -119,6 +119,7 @@ for my $file (@files) { my $fh = IO::File->new($file,'r') or die "Unable to open $file for reading: $!"; my @versions; + my %src_pkgs; while (<$fh>) { chomp; next unless length $_; @@ -128,14 +129,20 @@ for my $file (@files) { } close($fh); my $ancestor_sv; - for my $i (reverse 0..($#versions-1)) { - my $sp = $s->resultset('SrcPkg')->find({pkg => $versions[$i][0]}); + for my $i (reverse 0..($#versions)) { + my $sp; + if (not defined $src_pkgs{$versions[$i][0]}) { + $src_pkgs{$versions[$i][0]} = + $s->resultset('SrcPkg')->find({pkg => $versions[$i][0]}); + } + $sp = $src_pkgs{$versions[$i][0]}; + # There's probably something wrong if the source package + # doesn't exist, but we'll skip it for now next unless defined $sp; my $sv = $s->resultset('SrcVer')->find({src_pkg_id=>$sp->id(), ver => $versions[$i][1], }); if (defined $ancestor_sv and defined $sv and not defined $sv->based_on()) { - print "checking out for $versions[$i][1]\n"; $sv->update({based_on => $ancestor_sv->id()}) } $ancestor_sv = $sv;