[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH 17/25] sg-report-host-history: Move query preparation into jobquery



To get the scope of database locking, and of the SET LOCAL workaround,
right, it is convenient to move these query preparations into the
jobquery function.

No functional change.

Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 sg-report-host-history |   68 ++++++++++++++++++++++++------------------------
 1 file changed, 34 insertions(+), 34 deletions(-)

diff --git a/sg-report-host-history b/sg-report-host-history
index c56ed71..f7a773d 100755
--- a/sg-report-host-history
+++ b/sg-report-host-history
@@ -102,40 +102,6 @@ $dbh_tests->do("SET LOCAL enable_seqscan=false");
 # of the runvars table, rather than walking backwards through the
 # flights until it has what we've told it is enough.
 
-my $runvarq = db_prepare(<<END);
-    SELECT flight, job, name, val
-      FROM runvars
-     WHERE $namecond
-       AND val = ?
-       AND $flightcond
-     ORDER BY flight DESC
-     LIMIT $limit * 2 + 100
-END
-
-my $endedq = db_prepare(<<END);
-    SELECT finished, testid, status AS laststepstatus
-      FROM steps
-     WHERE flight=? AND job=? AND finished IS NOT NULL
-     ORDER BY finished DESC
-     LIMIT 1
-END
-
-my $infoq = db_prepare(<<END);
-    SELECT blessing, branch, intended, status
-      FROM flights
-      JOIN jobs USING (flight)
-     WHERE flight=? AND job=?
-END
-
-my $allocdq = db_prepare(<<END);
-    SELECT testid, finished, status
-      FROM steps
-     WHERE flight=? AND job=?
-       AND (testid='hosts-allocate' OR step='ts-hosts-allocate')
-     ORDER BY finished ASC
-     LIMIT 1
-END
-
 sub jobquery ($$) {
     my ($q, $jr) = @_;
     $q->execute($jr->{flight}, $jr->{job});
@@ -167,6 +133,40 @@ sub reporthost ($) {
 
     print H "</tr>\n";
 
+    our $runvarq //= db_prepare(<<END);
+       SELECT flight, job, name, val
+         FROM runvars
+        WHERE $namecond
+          AND val = ?
+          AND $flightcond
+        ORDER BY flight DESC
+        LIMIT $limit * 2 + 100
+END
+
+    our $endedq //= db_prepare(<<END);
+       SELECT finished, testid, status AS laststepstatus
+         FROM steps
+        WHERE flight=? AND job=? AND finished IS NOT NULL
+        ORDER BY finished DESC
+        LIMIT 1
+END
+
+    our $infoq //= db_prepare(<<END);
+       SELECT blessing, branch, intended, status
+         FROM flights
+         JOIN jobs USING (flight)
+        WHERE flight=? AND job=?
+END
+
+    our $allocdq //= db_prepare(<<END);
+       SELECT testid, finished, status
+         FROM steps
+        WHERE flight=? AND job=?
+          AND (testid='hosts-allocate' OR step='ts-hosts-allocate')
+        ORDER BY finished ASC
+        LIMIT 1
+END
+
     my @rows;
     $runvarq->execute($hostname);
 
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.