From: Ian Campbell <ian.campbell@citrix.com>
To: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [OSSTEST PATCH 2/2] sg-report-job-history: Show which host test ran on
Date: Mon, 9 Feb 2015 23:43:37 +0000 [thread overview]
Message-ID: <1423525417.4508.32.camel@citrix.com> (raw)
In-Reply-To: <1423505233-9957-2-git-send-email-ian.jackson@eu.citrix.com>
On Mon, 2015-02-09 at 18:07 +0000, Ian Jackson wrote:
> Add a column
Did you mean row? (looks to be in the HTML, as opposed to the email)
> listing the host(s) used. We first find the relevant set
> of host runvars (with a SELECT DISTINCT) and then look up each var for
> each actual flight.
>
> We do the pattern-matching on runvar names in perl to avoid giving the
> postgresql optimiser a chance to turn this query into a full table
> scan of the runvars table. (A previous iteration of this patch
> searched, in the per-flight loop, for all runvars whose name was
> appropriately LIKE, with appalling performance.)
>
> Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
> ---
> sg-report-job-history | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/sg-report-job-history b/sg-report-job-history
> index 479e347..3e4b0ef 100755
> --- a/sg-report-job-history
> +++ b/sg-report-job-history
> @@ -172,9 +172,34 @@ END
> END
> $flightsq->execute(@params);
>
> + my $hostsq= $dbh_tests->prepare(<<END);
> + SELECT DISTINCT name
> + FROM runvars
> + JOIN flights USING (flight)
> + WHERE ($cond)
> + ORDER BY name;
> +END
> + $hostsq->execute(@params);
> + my @hostvarcols;
> + while (my ($hostvar) = $hostsq->fetchrow_array()) {
> + next unless $hostvar =~ m/(^|_)host$/;
> + push @hostvarcols, $hostvar;
> + }
> +
> + my $hostq= $dbh_tests->prepare(<<END);
> + SELECT val FROM runvars WHERE flight=? AND job=? AND name=?
> +END
> +
> while (my $f= $flightsq->fetchrow_hashref()) {
> my $ri= run_getinfo($f);
>
> + $ri->{Hosts} = [ ];
> + foreach my $hostvar (@hostvarcols) {
> + $hostq->execute($f->{flight}, $f->{job}, $hostvar);
> + my ($host) = $hostq->fetchrow_array();
> + push @{ $ri->{Hosts} }, ($host // "-");
> + }
> +
> my %revisions;
> add_revisions(\%revisions, $f->{flight}, $f->{job}, '');
>
> @@ -217,6 +242,7 @@ END
> print H "<h1>$title</h1>\n";
> print H "<table rules=all>";
> print H "<tr><th>flight</th><th>branch</th><th>failure</th>\n";
> + print H "<th>", (join ", ", @hostvarcols), "</th>\n";
> foreach my $c (@rev_grid_cols) {
> print H "<th>".encode_entities($c)."</th>\n";
> }
> @@ -236,6 +262,8 @@ END
> print H "<td $colour><a href=\"$url\">".
> encode_entities($r->{Summary})."</a></td>\n";
> my $lastrev;
> + my $hosts = join ", ", map { $_ // "-" } @{ $r->{Hosts} };
> + print H "<td>".encode_entities($hosts)."</td>\n";
> foreach my $i (0..$#rev_grid_cols) {
> my $v= $r->{Revisions}[$i];
> my $same=
next prev parent reply other threads:[~2015-02-09 23:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-09 18:07 [OSSTEST PATCH 1/2] sg-report-job-history: Separate out $cond in queries Ian Jackson
2015-02-09 18:07 ` [OSSTEST PATCH 2/2] sg-report-job-history: Show which host test ran on Ian Jackson
2015-02-09 23:43 ` Ian Campbell [this message]
2015-02-10 10:52 ` Ian Jackson
2015-02-10 11:01 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1423525417.4508.32.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.