From: ajt <> Date: Tue, 20 Feb 2001 17:12:30 +0000 (-0800) Subject: [project @ 2001-02-20 09:12:30 by ajt] X-Git-Tag: release/2.6.0~1153 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=05047143deb19f91fbc0f6fef0e03eb65c1a92aa;p=debbugs.git [project @ 2001-02-20 09:12:30 by ajt] first pass at using by-.idx indexes to speed up pkgreport.cgi don't getmaintainers for by submitter listings, since they're not used --- diff --git a/cgi/common.pl b/cgi/common.pl index 11517de2..eb837e59 100644 --- a/cgi/common.pl +++ b/cgi/common.pl @@ -292,28 +292,40 @@ sub countbugs { sub getbugs { my $bugfunc = shift; + my $opt = shift; - if ( $common_archive ) { - open I, "<$debbugs::gSpoolDir/index.archive" or &quit("bugindex: $!"); - } else { - open I, "<$debbugs::gSpoolDir/index.db" or &quit("bugindex: $!"); - } - my @result = (); -print STDERR "here start getbugs\n" if ($debug); - while() + + if (!$common_archive && defined $opt && + -e "$debbugs::gSpoolDir/by-$opt.idx") { - if (m/^(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+\[\s*([^]]*)\s*\]\s+(\w+)\s+(.*)$/) { - if ($bugfunc->(pkg => $1, bug => $2, status => $4, submitter => $5, - severity => $6, tags => $7)) - { - push (@result, $2); - #last if (@result > 400); + tie my %lookup, DB_File => "$debbugs::gSpoolDir/by-$opt.idx", O_RDONLY + or die "$0: can't open $debbugs::gSpoolDir/by-$opt.idx ($!)\n"; + while ($key = shift) { + my $bugs = $lookup{$key}; + if (defined $bugs) { + push @result, (unpack 'N*', $bugs); + } + } + } else { + if ( $common_archive ) { + open I, "<$debbugs::gSpoolDir/index.archive" + or &quit("bugindex: $!"); + } else { + open I, "<$debbugs::gSpoolDir/index.db" + or &quit("bugindex: $!"); + } + while() { + if (m/^(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+\[\s*([^]]*)\s*\]\s+(\w+)\s+(.*)$/) { + if ($bugfunc->(pkg => $1, bug => $2, status => $4, + submitter => $5, severity => $6, tags => $7)) + { + push (@result, $2); + } } - } + } + close I; } - close I; -print STDERR "here end getbugs\n" if ($debug); return sort {$a <=> $b} @result; } diff --git a/cgi/pkgreport.cgi b/cgi/pkgreport.cgi index 876e1dee..ddf6f01a 100755 --- a/cgi/pkgreport.cgi +++ b/cgi/pkgreport.cgi @@ -37,7 +37,6 @@ my $Archived = $archive ? "Archived" : ""; my $this = ""; my %indexentry; -my %maintainers = getmaintainers(); my %strings = (); $ENV{"TZ"} = 'UTC'; @@ -59,8 +58,9 @@ my $tag; my @bugs; if (defined $pkg) { $tag = "package $pkg"; - @bugs = getbugs(sub {my %d=@_; return $pkg eq $d{"pkg"}}); + @bugs = getbugs(sub {my %d=@_; return $pkg eq $d{"pkg"}}, 'package', $pkg); } elsif (defined $maint) { + my %maintainers = getmaintainers(); $tag = "maintainer $maint"; @bugs = getbugs(sub {my %d=@_; my $me; ($me = $maintainers{$d{"pkg"}}||"") =~ s/\s*\(.*\)\s*//; @@ -68,6 +68,7 @@ if (defined $pkg) { return $me eq $maint; }) } elsif (defined $maintenc) { + my %maintainers = getmaintainers(); $tag = "encoded maintainer $maintenc"; @bugs = getbugs(sub {my %d=@_; return maintencoded($maintainers{$d{"pkg"}} || "") @@ -79,7 +80,7 @@ if (defined $pkg) { ($se = $d{"submitter"} || "") =~ s/\s*\(.*\)\s*//; $se = $1 if ($se =~ m/<(.*)>/); return $se eq $submitter; - }); + }, 'submitter', $submitter); } elsif (defined $severity) { $tag = "$status $severity bugs"; @bugs = getbugs(sub {my %d=@_; @@ -102,6 +103,7 @@ print "

" . "$debbugs::gProject $Archived $debbugs::gBug report logs: $tag" . "

\n"; if (defined $pkg) { + my %maintainers = getmaintainers(); if (defined $maintainers{$pkg}) { print "

Maintainer for $pkg is "