Materialize the number of finished builds

The NrBuilds table tracks the value of ‘select count(*) from Builds
where finished = 0’, keeping it up to date via a trigger.  This is
necessary to make the /all page fast, since otherwise it needs to do a
sequential scan on the Builds table.
This commit is contained in:
Eelco Dolstra
2013-08-12 20:11:34 +02:00
parent 182f725612
commit 452c8e36d1
7 changed files with 136 additions and 8 deletions

View File

@ -7,11 +7,11 @@ my $db = Hydra::Model::DB->new;
my @sources = $db->schema->sources;
my $nrtables = scalar(@sources);
use Test::Simple tests => 43;
use Test::Simple tests => 44;
foreach my $source (@sources) {
my $title = "Basic select query for $source";
if ($source eq "SchemaVersion") {
if ($source eq "SchemaVersion" || $source eq "NrBuilds") {
ok(scalar($db->resultset($source)->all) == 1, $title);
} elsif( $source !~ m/^(LatestSucceeded|JobStatus|ActiveJobs)/) {
ok(scalar($db->resultset($source)->all) == 0, $title);