From 9589eba775c2e481e03c57a40c6dca478508196c Mon Sep 17 00:00:00 2001 From: Ray Miller Date: Tue, 31 Jul 2012 16:38:20 +0100 Subject: [PATCH] Drop the unique constraint on class/params, add 'complete' column --- ddl/templates/versions/8/up.sql | 5 +- lib/LIMS2/Model/Schema/Result/CachedReport.pm | 107 ++++++++++++++++++ 2 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 lib/LIMS2/Model/Schema/Result/CachedReport.pm diff --git a/ddl/templates/versions/8/up.sql b/ddl/templates/versions/8/up.sql index fc826effd5..a882c9b716 100644 --- a/ddl/templates/versions/8/up.sql +++ b/ddl/templates/versions/8/up.sql @@ -3,7 +3,10 @@ CREATE TABLE cached_reports ( report_class TEXT NOT NULL, params TEXT NOT NULL, expires TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP + INTERVAL '8 hours', - UNIQUE( report_class, params ) + complete BOOLEAN NOT NULL DEFAULT FALSE ); GRANT SELECT ON cached_reports TO "[% ro_role %]"; GRANT SELECT, INSERT, UPDATE, DELETE ON cached_reports TO "[% rw_role %]"; +CREATE INDEX cached_reports_report_class_params_idx ON cached_reports(report_class,params); + +-- Intentionally no audit for cached_reports. diff --git a/lib/LIMS2/Model/Schema/Result/CachedReport.pm b/lib/LIMS2/Model/Schema/Result/CachedReport.pm new file mode 100644 index 0000000000..548b99fa34 --- /dev/null +++ b/lib/LIMS2/Model/Schema/Result/CachedReport.pm @@ -0,0 +1,107 @@ +use utf8; +package LIMS2::Model::Schema::Result::CachedReport; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +LIMS2::Model::Schema::Result::CachedReport + +=cut + +use strict; +use warnings; + +use Moose; +use MooseX::NonMoose; +use MooseX::MarkAsMethods autoclean => 1; +extends 'DBIx::Class::Core'; + +=head1 COMPONENTS LOADED + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->load_components("InflateColumn::DateTime"); + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("cached_reports"); + +=head1 ACCESSORS + +=head2 id + + data_type: 'char' + is_nullable: 0 + size: 36 + +=head2 report_class + + data_type: 'text' + is_nullable: 0 + +=head2 params + + data_type: 'text' + is_nullable: 0 + +=head2 expires + + data_type: 'timestamp' + default_value: (now() + '08:00:00'::interval) + is_nullable: 0 + +=head2 complete + + data_type: 'boolean' + default_value: false + is_nullable: 0 + +=cut + +__PACKAGE__->add_columns( + "id", + { data_type => "char", is_nullable => 0, size => 36 }, + "report_class", + { data_type => "text", is_nullable => 0 }, + "params", + { data_type => "text", is_nullable => 0 }, + "expires", + { + data_type => "timestamp", + default_value => \"(now() + '08:00:00'::interval)", + is_nullable => 0, + }, + "complete", + { data_type => "boolean", default_value => \"false", is_nullable => 0 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("id"); + + +# Created by DBIx::Class::Schema::Loader v0.07022 @ 2012-07-31 16:36:06 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:++CtoB4pjLtlShaOGgBGdA + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +__PACKAGE__->meta->make_immutable; +1;