]> git.donarmstrong.com Git - debbugs.git/commitdiff
cache arch because there aren't very many of them
authorDon Armstrong <don@donarmstrong.com>
Fri, 15 Mar 2013 00:03:22 +0000 (17:03 -0700)
committerDon Armstrong <don@donarmstrong.com>
Fri, 15 Mar 2013 00:03:22 +0000 (17:03 -0700)
bin/debbugs-loadsql-debinfo

index 6b3b169f87857aaef537bfead085c2c7896c1298..2d491d9733cbad5bd168c04fb87d0d99c55c137e 100755 (executable)
@@ -117,6 +117,7 @@ my $s = Debbugs::DB->connect('dbi:Pg:service='.$options{service}) or
 
 my @files = @ARGV;
 
+my %arch;
 for my $file (@files) {
     my $fh = IO::File->new($file,'r') or
        die "Unable to open $file for reading: $!";
@@ -135,7 +136,13 @@ for my $file (@files) {
        my $sp = $s->resultset('SrcPkg')->find_or_create({pkg => $srcname});
        my $sv = $s->resultset('SrcVer')->find_or_create({src_pkg_id=>$sp->id(),
                                                          ver => $srcver});
-       my $arch = $s->resultset('Arch')->find_or_create({arch => $binarch});
+        my $arch;
+        if (defined $arch{$binarch}) {
+            $arch = $arch{$binarch};
+        } else {
+            $arch = $s->resultset('Arch')->find_or_create({arch => $binarch});
+            $arch{$binarch} = $arch;
+        }
        my $bp = $s->resultset('BinPkg')->find_or_create({pkg => $binname});
        $s->resultset('BinVer')->find_or_create({bin_pkg_id => $bp->id(),
                                                 src_ver_id => $sv->id(),