From d4c96a47c9c190c6a8af43b28bd0e86c826abd70 Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Mon, 18 Apr 2011 08:10:10 +0000 Subject: [PATCH] qualify order by column --- src/lib/Hydra/Helper/Nix.pm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/lib/Hydra/Helper/Nix.pm b/src/lib/Hydra/Helper/Nix.pm index 6582ac67..948dea38 100644 --- a/src/lib/Hydra/Helper/Nix.pm +++ b/src/lib/Hydra/Helper/Nix.pm @@ -12,7 +12,7 @@ our @EXPORT = qw( isValidPath getHydraPath getHydraDBPath openHydraDB getHydraConf txn_do registerRoot getGCRootsDir gcRootFor - getPrimaryBuildsForView + getPrimaryBuildsForView getPrimaryBuildTotal getViewResult getLatestSuccessfulViewResult jobsetOverview); @@ -74,7 +74,7 @@ sub txn_do { sub getGCRootsDir { die unless defined $ENV{LOGNAME}; - my $dir = ($ENV{NIX_STATE_DIR} || "/nix/var/nix" ) . "/gcroots/per-user/$ENV{LOGNAME}/hydra-roots"; + my $dir = ($ENV{NIX_STATE_DIR} || "/nix/var/nix" ) . "/gcroots/per-user/$ENV{LOGNAME}/hydra-roots"; mkpath $dir if !-e $dir; return $dir; } @@ -88,9 +88,9 @@ sub gcRootFor { sub registerRoot { my ($path) = @_; - + my $link = gcRootFor $path; - + if (!-l $link) { symlink($path, $link) or die "cannot create GC root `$link' to `$path'"; @@ -127,7 +127,7 @@ sub allPrimaryBuilds { , '+as' => ["releasename", "buildstatus"] , where => \ attrsToSQL($primaryJob->attrs, "me.id") }); - return $allPrimaryBuilds; + return $allPrimaryBuilds; } @@ -167,7 +167,7 @@ sub findLastJobForBuilds { $thisBuild = $ev->builds->find( { job => $job->get_column('job'), finished => 1 }, { join => 'resultInfo', rows => 1 - , order_by => ["id"] + , order_by => ["me.id"] , where => \ attrsToSQL($job->attrs, "build.id") , '+select' => ["resultInfo.buildstatus"], '+as' => ["buildstatus"] }); @@ -179,7 +179,7 @@ sub findLastJobForBuilds { # hacky $thisBuild = $depBuilds->find( { project => $project, jobset => $jobset - , job => $job->get_column('job'), finished => 1 + , job => $job->get_column('job'), finished => 1 }, { join => 'resultInfo', rows => 1 , order_by => ["buildstatus", "timestamp"] @@ -187,27 +187,27 @@ sub findLastJobForBuilds { , '+select' => ["resultInfo.buildstatus"], '+as' => ["buildstatus"] }) unless defined $thisBuild; - + return $thisBuild; } sub jobsetOverview { my ($c, $project) = @_; return $project->jobsets->search( isProjectOwner($c, $project) ? {} : { hidden => 0 }, - { order_by => "name" + { order_by => "name" , "+select" => [ "(SELECT COUNT(*) FROM Builds AS a NATURAL JOIN BuildSchedulingInfo WHERE me.project = a.project AND me.name = a.jobset AND a.isCurrent = 1 )" , "(SELECT COUNT(*) FROM Builds AS a NATURAL JOIN BuildResultInfo WHERE me.project = a.project AND me.name = a.jobset AND buildstatus <> 0 AND a.isCurrent = 1 )" , "(SELECT COUNT(*) FROM Builds AS a NATURAL JOIN BuildResultInfo WHERE me.project = a.project AND me.name = a.jobset AND buildstatus = 0 AND a.isCurrent = 1 )" , "(SELECT COUNT(*) FROM Builds AS a WHERE me.project = a.project AND me.name = a.jobset AND a.isCurrent = 1 )" ] - , "+as" => ["nrscheduled", "nrfailed", "nrsucceeded", "nrtotal"] + , "+as" => ["nrscheduled", "nrfailed", "nrsucceeded", "nrtotal"] }); } sub getViewResult { my ($primaryBuild, $jobs) = @_; - + my @jobs = (); my $status = 0; # = okay @@ -218,11 +218,11 @@ sub getViewResult { # might not be a evaluation record, so $ev may be undefined.) my $ev = $primaryBuild->jobsetevalmembers->find({}, { rows => 1, order_by => "eval" }); $ev = $ev->eval if defined $ev; - + # The timestamp of the view result is the highest timestamp of all # constitutent builds. my $timestamp = 0; - + foreach my $job (@{$jobs}) { my $thisBuild = $job->isprimary ? $primaryBuild @@ -259,5 +259,5 @@ sub getLatestSuccessfulViewResult { return undef; } - + 1;