diff mbox

[OSSTEST,v1,3/5] mg-show-flight-runvars: calculate @colsw from @rows not via SQL

Message ID 1454336912-28503-3-git-send-email-ian.campbell@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ian Campbell Feb. 1, 2016, 2:28 p.m. UTC
This will work even once @rows is not all collected by the same SQL
statement.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
 mg-show-flight-runvars | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

Comments

Ian Jackson Feb. 1, 2016, 2:56 p.m. UTC | #1
Ian Campbell writes ("[PATCH OSSTEST v1 3/5] mg-show-flight-runvars: calculate @colsw from @rows not via SQL"):
> This will work even once @rows is not all collected by the same SQL
> statement.

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
diff mbox

Patch

diff --git a/mg-show-flight-runvars b/mg-show-flight-runvars
index 0995430..0cf4e13 100755
--- a/mg-show-flight-runvars
+++ b/mg-show-flight-runvars
@@ -46,7 +46,6 @@  die unless @ARGV==1 && $ARGV[0] =~ m/^\w+$/;
 
 our @cols = qw(job name val);
 our @rows;
-our @colws;
 
 sub collect ($) {
     my ($flight) = @_;
@@ -54,9 +53,6 @@  sub collect ($) {
     $flight =~ m/^\d+/ or $flight = "'$flight'";
     my $qfrom = "FROM runvars WHERE flight=$flight AND $synthcond";
 
-    @colws = $dbh_tests->selectrow_array
-	("SELECT ".(join ',', map { "max(length($_))" } @cols)." $qfrom");
-
     my $q = $dbh_tests->prepare
 	("SELECT synth, ".(join ',', @cols)." $qfrom ORDER BY synth, name, job");
     $q->execute();
@@ -68,10 +64,15 @@  sub collect ($) {
     }
 }
 
-$colws[1] += length $synthsufx;
-
 collect($ARGV[0]);
 
+our @colws;
+sub max ($$) { $_[$_[0] < $_[1]] }
+foreach my $row (@rows) {
+    @colws = map { max($colws[$_]//0,length($row->[$_])) } qw(0 1 2)
+}
+$colws[1] += length $synthsufx;
+
 foreach my $row (@rows) {
     printf "%-*s %-*s %-*s\n", map { $colws[$_], $row->[$_] } qw(0 1 2)
         or die $!;