diff mbox series

[OSSTEST,52/60] sg-report-job-history: Cache the per-flight revisions

Message ID 20200814172205.9624-53-ian.jackson@eu.citrix.com (mailing list archive)
State New, archived
Headers show
Series Speed up sg-report-job-history | expand

Commit Message

Ian Jackson Aug. 14, 2020, 5:21 p.m. UTC
This involves changing %revisions to %$revisions in the code which
uses the value.

No logical change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-job-history | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)
diff mbox series

Patch

diff --git a/sg-report-job-history b/sg-report-job-history
index 9f1216a6..39ebe024 100755
--- a/sg-report-job-history
+++ b/sg-report-job-history
@@ -172,25 +172,29 @@  END
 	    \%hosts;
 	});
 
-        my %revisions;
-        add_revisions(\%revisions, $f->{flight}, $f->{job}, '');
+	my $revisions = cacheable_fn($f, 'r', sub {
+            my %revisions;
+	    add_revisions(\%revisions, $f->{flight}, $f->{job}, '');
         
-        $buildsq->execute($f->{flight}, $f->{job});
-        while (my $bld= $buildsq->fetchrow_hashref()) {
-            my $bn= $bld->{name};
-            $bn =~ s/buildjob$//;
-            my ($oflight,$ojob) = flight_otherjob($f->{flight}, $bld->{val});
-            add_revisions(\%revisions, $oflight, $ojob, " ($bn)");
-        }
+	    $buildsq->execute($f->{flight}, $f->{job});
+	    while (my $bld= $buildsq->fetchrow_hashref()) {
+		my $bn= $bld->{name};
+		$bn =~ s/buildjob$//;
+		my ($oflight,$ojob) =
+		  flight_otherjob($f->{flight}, $bld->{val});
+		add_revisions(\%revisions, $oflight, $ojob, " ($bn)");
+	    }
+	    \%revisions;
+	});
         my @rev_cols;
-        foreach my $revk (sort keys %revisions) {
+        foreach my $revk (sort keys %$revisions) {
             my $col= $rev_grid_col{$revk};
             if (!defined $col) {
                 $col= @rev_grid_cols;
                 push @rev_grid_cols, $revk;
                 $rev_grid_col{$revk}= $col;
             }
-            $rev_cols[$col]= $revisions{$revk};
+            $rev_cols[$col]= $$revisions{$revk};
         }
         $ri->{Revisions}= \@rev_cols;
         $ri->{Flight}= $f;