From aa0c8bc6b6cd0723913c67336a934b8734cd0f4a Mon Sep 17 00:00:00 2001 From: scottmk Date: Tue, 22 Sep 2009 17:17:16 +0000 Subject: [PATCH] 1. Add new column parent_circ to action.circulation, to connect renewals to the original circulations (or to previous renewals). 2. Add a pesky semicolon to a previous upgrade script. M Open-ILS/src/sql/Pg/090.schema.action.sql A Open-ILS/src/sql/Pg/upgrade/0012.schema.circ-parent-circ.sql M Open-ILS/src/sql/Pg/upgrade/0011.schema.circ-checkin-ws-and-scan-time.sql M Open-ILS/examples/fm_IDL.xml git-svn-id: svn://svn.open-ils.org/ILS/trunk@14087 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/examples/fm_IDL.xml | 3 ++ Open-ILS/src/sql/Pg/090.schema.action.sql | 10 ++++-- .../0011.schema.circ-checkin-ws-and-scan-time.sql | 2 +- .../Pg/upgrade/0012.schema.circ-parent-circ.sql | 36 ++++++++++++++++++++++ 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/0012.schema.circ-parent-circ.sql diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index ae3052378e..66f45f2e0c 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -2078,6 +2078,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + @@ -2103,6 +2104,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + diff --git a/Open-ILS/src/sql/Pg/090.schema.action.sql b/Open-ILS/src/sql/Pg/090.schema.action.sql index 284b384f34..a9abdd2e57 100644 --- a/Open-ILS/src/sql/Pg/090.schema.action.sql +++ b/Open-ILS/src/sql/Pg/090.schema.action.sql @@ -133,6 +133,10 @@ CREATE TABLE action.circulation ( checkin_scan_time TIMESTAMP WITH TIME ZONE ) INHERITS (money.billable_xact); ALTER TABLE action.circulation ADD PRIMARY KEY (id); +ALTER TABLE action.circulation + ADD COLUMN parent_circ BIGINT + REFERENCES action.circulation( id ) + DEFERRABLE INITIALLY DEFERRED; CREATE INDEX circ_open_xacts_idx ON action.circulation (usr) WHERE xact_finish IS NULL; CREATE INDEX circ_outstanding_idx ON action.circulation (usr) WHERE checkin_time IS NULL; CREATE INDEX circ_checkin_time ON "action".circulation (checkin_time) WHERE checkin_time IS NOT NULL; @@ -141,6 +145,8 @@ CREATE INDEX circ_open_date_idx ON "action".circulation (xact_start) WHERE xact_ CREATE INDEX circ_all_usr_idx ON action.circulation ( usr ); CREATE INDEX circ_circ_staff_idx ON action.circulation ( circ_staff ); CREATE INDEX circ_checkin_staff_idx ON action.circulation ( checkin_staff ); +CREATE UNIQUE INDEX circ_parent_idx ON action.circulation ( parent_circ ) WHERE parent_circ IS NOT NULL; + CREATE TRIGGER mat_summary_create_tgr AFTER INSERT ON action.circulation FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_create (); CREATE TRIGGER mat_summary_change_tgr AFTER UPDATE ON action.circulation FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_update (); @@ -198,14 +204,14 @@ BEGIN circ_lib, circ_staff, checkin_staff, checkin_lib, renewal_remaining, due_date, stop_fines_time, checkin_time, create_time, duration, fine_interval, recuring_fine, max_fine, phone_renewal, desk_renewal, opac_renewal, duration_rule, recuring_fine_rule, - max_fine_rule, stop_fines) + max_fine_rule, stop_fines, checkin_workstation, checkin_scan_time, parent_circ) SELECT id,usr_post_code, usr_home_ou, usr_profile, usr_birth_year, copy_call_number, copy_location, copy_owning_lib, copy_circ_lib, copy_bib_record, xact_start, xact_finish, target_copy, circ_lib, circ_staff, checkin_staff, checkin_lib, renewal_remaining, due_date, stop_fines_time, checkin_time, create_time, duration, fine_interval, recuring_fine, max_fine, phone_renewal, desk_renewal, opac_renewal, duration_rule, recuring_fine_rule, - max_fine_rule, stop_fines + max_fine_rule, stop_fines, checkin_workstation, checkin_scan_time, parent_circ FROM action.all_circulation WHERE id = OLD.id; RETURN OLD; diff --git a/Open-ILS/src/sql/Pg/upgrade/0011.schema.circ-checkin-ws-and-scan-time.sql b/Open-ILS/src/sql/Pg/upgrade/0011.schema.circ-checkin-ws-and-scan-time.sql index dc5bfe4776..9f74838ae8 100644 --- a/Open-ILS/src/sql/Pg/upgrade/0011.schema.circ-checkin-ws-and-scan-time.sql +++ b/Open-ILS/src/sql/Pg/upgrade/0011.schema.circ-checkin-ws-and-scan-time.sql @@ -1,4 +1,4 @@ -BEGIN +BEGIN; INSERT INTO config.upgrade_log (version) VALUES ('0011.schema.circ-checkin-ws-and-scan-time.sql'); diff --git a/Open-ILS/src/sql/Pg/upgrade/0012.schema.circ-parent-circ.sql b/Open-ILS/src/sql/Pg/upgrade/0012.schema.circ-parent-circ.sql new file mode 100644 index 0000000000..0a45163434 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0012.schema.circ-parent-circ.sql @@ -0,0 +1,36 @@ +BEGIN; + +INSERT INTO config.upgrade_log (version) VALUES ('0012.schema.circ-parent-circ.sql'); + +ALTER TABLE action.circulation +ADD COLUMN parent_circ BIGINT + REFERENCES action.circulation(id) + DEFERRABLE INITIALLY DEFERRED; + +CREATE UNIQUE INDEX circ_parent_idx +ON action.circulation( parent_circ ) +WHERE parent_circ IS NOT NULL; + +CREATE OR REPLACE FUNCTION action.age_circ_on_delete () RETURNS TRIGGER AS $$ +BEGIN + INSERT INTO action.aged_circulation + (id,usr_post_code, usr_home_ou, usr_profile, usr_birth_year, copy_call_number, copy_location, + copy_owning_lib, copy_circ_lib, copy_bib_record, xact_start, xact_finish, target_copy, + circ_lib, circ_staff, checkin_staff, checkin_lib, renewal_remaining, due_date, + stop_fines_time, checkin_time, create_time, duration, fine_interval, recuring_fine, + max_fine, phone_renewal, desk_renewal, opac_renewal, duration_rule, recuring_fine_rule, + max_fine_rule, stop_fines, checkin_workstation, checkin_scan_time, parent_circ) + SELECT + id,usr_post_code, usr_home_ou, usr_profile, usr_birth_year, copy_call_number, copy_location, + copy_owning_lib, copy_circ_lib, copy_bib_record, xact_start, xact_finish, target_copy, + circ_lib, circ_staff, checkin_staff, checkin_lib, renewal_remaining, due_date, + stop_fines_time, checkin_time, create_time, duration, fine_interval, recuring_fine, + max_fine, phone_renewal, desk_renewal, opac_renewal, duration_rule, recuring_fine_rule, + max_fine_rule, stop_fines, checkin_workstation, checkin_scan_time, parent_circ + FROM action.all_circulation WHERE id = OLD.id; + + RETURN OLD; +END; +$$ LANGUAGE 'plpgsql'; + +COMMIT; -- 2.11.0