DBIx likes to eagerly select all columns without a way to really tell it so. Therefore, this splits this one large column in to its own table.
I'd also like to make "jobsets" use this table too, but that is on hold to stop the bleeding caused by the extreme amount of traffic this is causing.
GLIPWYWLW6JNCIPMAXPKU64RHO2WDIFYZ5ZNGMYUJKX5Y7ZPSVJQC
MLYGGEK7SIXPW4V546CKI3M7FLAC2HK6BHZDPRRDNQWMSHOU6GKAC
ZBCME7K4KU5DVOTOMKEDPA34MV5GIWWYC5YBE4GAZH343D7ERTIAC
CMBTR3KDWTFILHFG6CP3NSMQDWBJW7L4IJ24L6YT2T4GWRMVWRAQC
BMGYDRNKCMHZDQLDS4NQNC24AVMNW2QGVBAUZ5X6CNOEU3ZOIIGAC
VH5ZABDRP565VZIG55YHNYYPST53NQ2J6YM362NSLXCAHI5WPH4AC
U5ZWDBW3XRWDWMMPSSXEZ3DT47FPX5WH74AZ4URVQHHAD7ZOB46AC
2GK5DOU7ODF4WBSN3QTD3WIO52VTL2LOAXKGCDEMMAQPTEO4A4HAC
D5QIOJGPKQJIYBUCSC3MFJ3TXLPNZ2XMI37GXMFRVRFWWR2VMTFAC
JM3DPYOMVNMCL5GMEYC3Y4NDRGTNIFBBFTPGPVT66GPENVPU7EVQC
5SHCWE7XPQORSOLY7HGAIK2ODKBFPY4KVXRL2W7X6D4WALU544HQC
SVDYZSZCLZX77OM4W4XK5ODTVZQ6VTRTMHXOFXO65WZNFZPQAG2AC
SB2V735VJ2CDHGCXRUA5FOYHDRXQFVOZ3KXC3YKXWRNW6DIX7RXQC
RFE6T5LGBFFNEPHZOPF4UNMFC2L4CGD5TPAMOXDLRPH3TZJ43UBAC
4WZQW2N6NJSIKSK7DCOV2YVEG5C45LLUM2FCCZRLISUXUGMBGF6QC
IK53RV4VGOHLCZGQCCIKPB45M3C7M7YMNBOJFBGZJ4LWIZNU4QNQC
U4TD3AIQXBJFFUORTMIC4IHZTVBORRKL2TZ2FSP4G665ECZOEMNAC
WZZOOYCHQJJ6BWQPJFXULOBVSLZXPMOKM2YNA7TPEXUINLXFVI5AC
W74RIXTJSDGUC4Q7NAUCS7TNC6YIR6KZST5ALO5DV7OPUEADZK3AC
N22GPKYTOLZLBGTGDATQDVZ4R5APZEAOIA7L32X4UXBH4XNI7MWAC
NS7SND6RF6X3CVSVP7MLAQQZFA64E63YKFFABPEAGEPHX6PNWBOQC
G6HJY2V4CSSZF6BPIMRMRAJYRKPLTCBUFTJWZWK3BSNT235CZQ6QC
3PNG7NIBQQURUUPRVQXYL342OT7JUUYOMY2JJNP6YDX7SYJDZMYAC
G2T4WAHINIIKTEKR4JBIRXO5IEKO7MPYD7U5PQ4AIX3WL54EPP3AC
IGR322YPZG7IX33I6CSF4ZIHFKXCT4ERC2LC73MW6PN7W53D73BAC
4S5JF5JPKWTDYHFJMTXOFTDAMYHD5ON2UBTLMGVYPJCP6QYIM2EAC
use utf8;
package Hydra::Schema::EvaluationErrors;
# Created by DBIx::Class::Schema::Loader
# DO NOT MODIFY THE FIRST PART OF THIS FILE
=head1 NAME
Hydra::Schema::EvaluationErrors
=cut
use strict;
use warnings;
use base 'DBIx::Class::Core';
=head1 COMPONENTS LOADED
=over 4
=item * L<Hydra::Component::ToJSON>
=back
=cut
__PACKAGE__->load_components("+Hydra::Component::ToJSON");
=head1 TABLE: C<evaluationerrors>
=cut
__PACKAGE__->table("evaluationerrors");
=head1 ACCESSORS
=head2 id
data_type: 'integer'
is_auto_increment: 1
is_nullable: 0
sequence: 'evaluationerrors_id_seq'
=head2 errormsg
data_type: 'text'
is_nullable: 1
=head2 errortime
data_type: 'integer'
is_nullable: 1
=cut
__PACKAGE__->add_columns(
"id",
{
data_type => "integer",
is_auto_increment => 1,
is_nullable => 0,
sequence => "evaluationerrors_id_seq",
},
"errormsg",
{ data_type => "text", is_nullable => 1 },
"errortime",
{ data_type => "integer", is_nullable => 1 },
);
=head1 PRIMARY KEY
=over 4
=item * L</id>
=back
=cut
__PACKAGE__->set_primary_key("id");
=head1 RELATIONS
=head2 jobsetevals
Type: has_many
Related object: L<Hydra::Schema::JobsetEvals>
=cut
__PACKAGE__->has_many(
"jobsetevals",
"Hydra::Schema::JobsetEvals",
{ "foreign.evaluationerror_id" => "self.id" },
undef,
);
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-02-01 20:17:39
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:sZIg35KWCO8MOsQ5cfN1IA
__PACKAGE__->add_column(
"+id" => { retrieve_on_insert => 1 }
);
1;
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-25 14:44:07
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:OVxeYH+eoZZrAsAJ2/mAAA
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-02-01 20:17:39
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SGtK0PwRkbxiMuitQvs4wQ
<p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.errortime || eval.timestamp) %].</p>
<pre class="alert alert-error">[% HTML.escape(eval.errormsg) %]</pre>
<p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.evaluationerror.errortime || eval.timestamp) %].</p>
<pre class="alert alert-error">[% HTML.escape(eval.evaluationerror.errormsg) %]</pre>
<p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.errortime || eval.timestamp) %].</p>
<pre class="alert alert-error">[% HTML.escape(eval.errormsg) %]</pre>
<p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.evaluationerror.errortime || eval.timestamp) %].</p>
<pre class="alert alert-error">[% HTML.escape(eval.evaluationerror.errormsg) %]</pre>
create table EvaluationErrors (
id serial primary key not null,
errorMsg text, -- error output from the evaluator
errorTime integer, -- timestamp associated with errorMsg
jobsetEvalId integer not null,
FOREIGN KEY (jobsetEvalId)
REFERENCES JobsetEvals(id)
ON DELETE SET NULL
);
ALTER TABLE JobsetEvals
ADD COLUMN evaluationerror_id integer NULL,
ADD FOREIGN KEY (evaluationerror_id)
REFERENCES EvaluationErrors(id)
ON DELETE SET NULL;
INSERT INTO EvaluationErrors
(errorMsg, errorTime, jobsetEvalId)
SELECT errorMsg, errorTime, id
FROM JobsetEvals
WHERE JobsetEvals.errorMsg != '' and JobsetEvals.errorMsg is not null;
UPDATE JobsetEvals
SET evaluationerror_id = EvaluationErrors.id
FROM EvaluationErrors
WHERE JobsetEvals.id = EvaluationErrors.jobsetEvalId
AND JobsetEvals.errorMsg != '' and JobsetEvals.errorMsg is not null;
ALTER TABLE JobsetEvals
DROP COLUMN errorMsg,
DROP COLUMN errorTime;
ALTER TABLE EvaluationErrors
DROP COLUMN jobsetEvalId;