From d9989b7fa1c91bdaa13630c3029d36945b0edc9f Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Thu, 21 Jan 2021 09:36:57 -0500 Subject: [PATCH] Schema: add errorMsg, errorTime to JobsetEvals --- src/lib/Hydra/Schema/JobsetEvals.pm | 18 +++++++++++++-- src/sql/hydra.sql | 3 +++ src/sql/upgrade-70.sql | 34 +++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 src/sql/upgrade-70.sql diff --git a/src/lib/Hydra/Schema/JobsetEvals.pm b/src/lib/Hydra/Schema/JobsetEvals.pm index 44beb7fd..b8f6c2a2 100644 --- a/src/lib/Hydra/Schema/JobsetEvals.pm +++ b/src/lib/Hydra/Schema/JobsetEvals.pm @@ -54,6 +54,16 @@ __PACKAGE__->table("jobsetevals"); is_foreign_key: 1 is_nullable: 0 +=head2 errormsg + + data_type: 'text' + is_nullable: 1 + +=head2 errortime + + data_type: 'integer' + is_nullable: 1 + =head2 timestamp data_type: 'integer' @@ -108,6 +118,10 @@ __PACKAGE__->add_columns( { data_type => "text", is_foreign_key => 1, is_nullable => 0 }, "jobset", { data_type => "text", is_foreign_key => 1, is_nullable => 0 }, + "errormsg", + { data_type => "text", is_nullable => 1 }, + "errortime", + { data_type => "integer", is_nullable => 1 }, "timestamp", { data_type => "integer", is_nullable => 0 }, "checkouttime", @@ -201,8 +215,8 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-05-27 17:40:41 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:M61ikfnjORU7jDAH8P/j7w +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-21 11:13:38 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zDBtAFc4HiFUcL/TpkuCcg __PACKAGE__->has_many( "buildIds", diff --git a/src/sql/hydra.sql b/src/sql/hydra.sql index 7f12ccfe..d8e2805c 100644 --- a/src/sql/hydra.sql +++ b/src/sql/hydra.sql @@ -440,6 +440,9 @@ create table JobsetEvals ( project text not null, jobset text not null, + errorMsg text, -- error output from the evaluator + errorTime integer, -- timestamp associated with errorMsg + timestamp integer not null, -- when this entry was added checkoutTime integer not null, -- how long obtaining the inputs took (in seconds) evalTime integer not null, -- how long evaluation took (in seconds) diff --git a/src/sql/upgrade-70.sql b/src/sql/upgrade-70.sql new file mode 100644 index 00000000..f0d75e38 --- /dev/null +++ b/src/sql/upgrade-70.sql @@ -0,0 +1,34 @@ +ALTER TABLE JobsetEvals + ADD COLUMN errorMsg text, + ADD COLUMN errorTime integer NULL; + +-- Copy the current error in jobsets to the latest field in jobsetevals +UPDATE jobsetevals + SET errorMsg = j.errorMsg, + errorTime = j.errorTime + FROM ( + SELECT + jobsets.errorMsg, + jobsets.errorTime, + jobsets.id AS jobset_id, + latesteval.id AS eval_id + FROM jobsets + LEFT JOIN + ( + SELECT + MAX(id) AS id, + project, + jobset + FROM jobsetevals + GROUP BY project, jobset + ORDER BY project, jobset + ) + AS latesteval + ON + jobsets.name = latesteval.jobset + AND jobsets.project = latesteval.project + WHERE latesteval.id IS NOT NULL + ORDER BY jobsets.id +) +AS j +WHERE id = j.eval_id;