From 997eef7b50acf10ec2afcb8d8933b75317e0410f Mon Sep 17 00:00:00 2001 From: Dan Wells Date: Wed, 1 Jun 2011 14:40:43 -0400 Subject: [PATCH] f424dd8 --- .../perlmods/lib/OpenILS/Application/Search/Serial.pm | 11 ++++------- .../src/perlmods/lib/OpenILS/Application/Serial.pm | 2 +- Open-ILS/src/sql/Pg/002.schema.config.sql | 2 +- .../upgrade/0543.data.reformat_generated_coverage.sql | 18 ++++++++++++++++++ 4 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Serial.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Serial.pm index a08a8c3e37..11c320266e 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Serial.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Serial.pm @@ -15,8 +15,6 @@ use OpenSRF::Utils::Logger qw/:logger/; use Data::Dumper; -use OpenSRF::Utils::JSON; - use Time::HiRes qw(time); use OpenSRF::EX qw(:try); use Digest::MD5 qw(md5_hex); @@ -27,8 +25,7 @@ use XML::LibXSLT; use OpenILS::Const qw/:const/; use OpenILS::Application::AppUtils; -my $apputils = "OpenILS::Application::AppUtils"; -my $U = $apputils; +my $U = "OpenILS::Application::AppUtils"; my $pfx = "open-ils.search_"; @@ -149,7 +146,7 @@ sub bib_to_svr { if ($_->summary_method ne 'use_sre_only') { if (ref $_->basic_summary) { #TODO: 'show-generated' boolean on summaries if ($_->basic_summary->generated_coverage) { - push(@{$svr->basic_holdings}, $_->basic_summary->generated_coverage); + push(@{$svr->basic_holdings}, OpenSRF::Utils::JSON->JSON2perl($_->basic_summary->generated_coverage)); } if ($_->basic_summary->textual_holdings) { push(@{$svr->basic_holdings_add}, $_->basic_summary->textual_holdings); @@ -157,7 +154,7 @@ sub bib_to_svr { } if (ref $_->supplement_summary) { if ($_->supplement_summary->generated_coverage) { - push(@{$svr->supplement_holdings}, $_->supplement_summary->generated_coverage); + push(@{$svr->supplement_holdings}, OpenSRF::Utils::JSON->JSON2perl($_->supplement_summary->generated_coverage)); } if ($_->supplement_summary->textual_holdings) { push(@{$svr->supplement_holdings_add}, $_->supplement_summary->textual_holdings); @@ -165,7 +162,7 @@ sub bib_to_svr { } if (ref $_->index_summary) { if ($_->index_summary->generated_coverage) { - push(@{$svr->index_holdings}, $_->index_summary->generated_coverage); + push(@{$svr->index_holdings}, OpenSRF::Utils::JSON->JSON2perl($_->index_summary->generated_coverage)); } if ($_->index_summary->textual_holdings) { push(@{$svr->index_holdings_add}, $_->index_summary->textual_holdings); diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Serial.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Serial.pm index 832d0c236d..a2bab96bda 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Serial.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Serial.pm @@ -1515,7 +1515,7 @@ sub _prepare_summaries { $cu_method = "create"; } - $summary->generated_coverage(join(", ", @$formatted_parts)); + $summary->generated_coverage(OpenSRF::Utils::JSON->perl2JSON($formatted_parts)); my $method = "${cu_method}_serial_${type}_summary"; return $e->die_event unless $e->$method($summary); } diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 67f185a5f5..8baeac98ef 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -57,7 +57,7 @@ CREATE TABLE config.upgrade_log ( install_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW() ); -INSERT INTO config.upgrade_log (version) VALUES ('0542'); -- phasefx +INSERT INTO config.upgrade_log (version) VALUES ('0543'); -- dbwells CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql b/Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql new file mode 100644 index 0000000000..d3efa84f91 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql @@ -0,0 +1,18 @@ +BEGIN; + +-- Reformat generated_coverage to be JSON arrays rather than simple comma- +-- separated lists. + +-- This upgrade script is technically imperfect, but should do the right thing +-- in 99.9% of cases, and any mistakes will be self-healing as more serials +-- activity happens + +INSERT INTO config.upgrade_log (version) VALUES ('0543'); -- dbwells + +UPDATE serial.basic_summary SET generated_coverage = '["' || regexp_replace(regexp_replace(generated_coverage, '"', E'\\"', 'g'), ', ', '","', 'g') || '"]' WHERE generated_coverage <> ''; + +UPDATE serial.supplement_summary SET generated_coverage = '["' || regexp_replace(regexp_replace(generated_coverage, '"', E'\\"', 'g'), ', ', '","', 'g') || '"]' WHERE generated_coverage <> ''; + +UPDATE serial.index_summary SET generated_coverage = '["' || regexp_replace(regexp_replace(generated_coverage, '"', E'\\"', 'g'), ', ', '","', 'g') || '"]' WHERE generated_coverage <> ''; + +COMMIT; -- 2.11.0