From 2004f9b2103deee59df4e6adacfa1e4a05e09a84 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Thu, 31 May 2012 23:31:11 -0400 Subject: [PATCH] lp#1007248: tweak order in which pgt rows are renumbered Need to renumber from highest to lowest. Because the primary key constraint is not deferred, doing the renumbering in a single statement will fail if there is overlap between the set of existing pgt.id values and the set of {pgt.id + 100}. Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson --- .../src/sql/Pg/version-upgrade/2.0-2.1-upgrade-db.sql | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.0-2.1-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.0-2.1-upgrade-db.sql index 88cb5635d3..3638766491 100644 --- a/Open-ILS/src/sql/Pg/version-upgrade/2.0-2.1-upgrade-db.sql +++ b/Open-ILS/src/sql/Pg/version-upgrade/2.0-2.1-upgrade-db.sql @@ -5732,7 +5732,16 @@ INSERT INTO permission.perm_list -- Prevent conflicts with existing custom permission groups; as of 2.0.10, -- highest permission.grp_tree ID was 10 for Local System Administrator -UPDATE permission.grp_tree SET id = id + 100 WHERE id > 10; +DO $$ +DECLARE i INTEGER; +BEGIN + FOR i IN + SELECT id FROM permission.grp_tree WHERE id > 10 ORDER BY id DESC + LOOP + UPDATE permission.grp_tree SET id = id + 100 WHERE id = i; + END LOOP; +END; +$$; UPDATE permission.grp_tree SET parent = parent + 100 WHERE parent > 10; UPDATE actor.usr SET profile = profile + 100 WHERE profile > 10; UPDATE permission.grp_perm_map SET grp = grp + 100 WHERE grp > 10; -- 2.43.2