From 4c21518b658e7c56b819acb78b626a239a13ca24 Mon Sep 17 00:00:00 2001
From: Bill Erickson <berick@esilibrary.com>
Date: Tue, 21 Jun 2011 16:11:44 -0400
Subject: [PATCH] Wrapped DB script

Signed-off-by: Bill Erickson <berick@esilibrary.com>
---
 Open-ILS/src/sql/Pg/002.schema.config.sql             |  2 +-
 Open-ILS/src/sql/Pg/100.circ_matrix.sql               |  4 +---
 Open-ILS/src/sql/Pg/110.hold_matrix.sql               |  4 +---
 ...tive_date.sql => 0562.schema.copy_active_date.sql} | 19 +++++++++++++------
 4 files changed, 16 insertions(+), 13 deletions(-)
 rename Open-ILS/src/sql/Pg/upgrade/{XXXX.active_date.sql => 0562.schema.copy_active_date.sql} (98%)

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index d998f7f991..0a11e2f652 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -86,7 +86,7 @@ CREATE TRIGGER no_overlapping_deps
     BEFORE INSERT OR UPDATE ON config.db_patch_dependencies
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
-INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0561', :eg_version); -- miker
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0562', :eg_version); -- berick
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/100.circ_matrix.sql b/Open-ILS/src/sql/Pg/100.circ_matrix.sql
index 9074ba7867..77e975e0f4 100644
--- a/Open-ILS/src/sql/Pg/100.circ_matrix.sql
+++ b/Open-ILS/src/sql/Pg/100.circ_matrix.sql
@@ -128,9 +128,7 @@ BEGIN
     END IF;
 
     -- Ditto
-    IF item_object.active_date IS NOT NULL THEN
-        SELECT INTO my_item_age age(item_object.active_date);
-    END IF;
+    SELECT INTO my_item_age age(coalesce(item_object.active_date, now()));
 
     -- Grab the closest set circ weight setting.
     SELECT INTO weights cw.*
diff --git a/Open-ILS/src/sql/Pg/110.hold_matrix.sql b/Open-ILS/src/sql/Pg/110.hold_matrix.sql
index 76a1259a03..0bb95dee55 100644
--- a/Open-ILS/src/sql/Pg/110.hold_matrix.sql
+++ b/Open-ILS/src/sql/Pg/110.hold_matrix.sql
@@ -81,9 +81,7 @@ BEGIN
     SELECT INTO item_cn_object      * FROM asset.call_number        WHERE id = item_object.call_number;
     SELECT INTO rec_descriptor      * FROM metabib.rec_descriptor   WHERE record = item_cn_object.record;
 
-    IF item_object.active_date IS NOT NULL THEN
-        SELECT INTO my_item_age age(item_object.active_date);
-    END IF;
+    SELECT INTO my_item_age age(coalesce(item_object.active_date, now()));
 
     -- The item's owner should probably be the one determining if the item is holdable
     -- How to decide that is debatable. Decided to default to the circ library (where the item lives)
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.active_date.sql b/Open-ILS/src/sql/Pg/upgrade/0562.schema.copy_active_date.sql
similarity index 98%
rename from Open-ILS/src/sql/Pg/upgrade/XXXX.active_date.sql
rename to Open-ILS/src/sql/Pg/upgrade/0562.schema.copy_active_date.sql
index 7c361ed38c..8bfc1dcdac 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.active_date.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/0562.schema.copy_active_date.sql
@@ -1,3 +1,12 @@
+-- Evergreen DB patch 0562.schema.copy_active_date.sql
+--
+-- Active Date
+
+BEGIN;
+
+-- check whether patch can be applied
+SELECT evergreen.upgrade_deps_block_check('0562', :eg_version);
+
 ALTER TABLE asset.copy
     ADD COLUMN active_date TIMESTAMP WITH TIME ZONE;
 
@@ -277,9 +286,7 @@ BEGIN
     END IF;
 
     -- Ditto
-    IF item_object.active_date IS NOT NULL THEN
-        SELECT INTO my_item_age age(item_object.active_date);
-    END IF;
+    SELECT INTO my_item_age age(coalesce(item_object.active_date, now()));
 
     -- Grab the closest set circ weight setting.
     SELECT INTO weights cw.*
@@ -460,9 +467,7 @@ BEGIN
     SELECT INTO item_cn_object      * FROM asset.call_number        WHERE id = item_object.call_number;
     SELECT INTO rec_descriptor      * FROM metabib.rec_descriptor   WHERE record = item_cn_object.record;
 
-    IF item_object.active_date IS NOT NULL THEN
-        SELECT INTO my_item_age age(item_object.active_date);
-    END IF;
+    SELECT INTO my_item_age age(coalesce(item_object.active_date, now()));
 
     -- The item's owner should probably be the one determining if the item is holdable
     -- How to decide that is debatable. Decided to default to the circ library (where the item lives)
@@ -616,3 +621,5 @@ UPDATE asset.copy SET active_date = create_date WHERE id IN (SELECT id FROM exte
 
 -- Assume create date for status change time while we are at it. Because being created WAS a change in status.
 UPDATE asset.copy SET status_changed_time = create_date WHERE status_changed_time IS NULL;
+
+COMMIT;
-- 
2.11.0