From: Thomas Berezansky Date: Thu, 11 Aug 2011 13:36:36 +0000 (-0400) Subject: Unwrapped upgrade script for oua_force_order X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=9add64f156b8f96c83092785d1bc5a40b986eb9e;p=contrib%2FConifer.git Unwrapped upgrade script for oua_force_order Signed-off-by: Thomas Berezansky Signed-off-by: Mike Rylander --- diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.oua_force_order.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.oua_force_order.sql new file mode 100644 index 0000000000..84d864b452 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.oua_force_order.sql @@ -0,0 +1,11 @@ +CREATE OR REPLACE FUNCTION actor.org_unit_ancestors( INT ) RETURNS SETOF actor.org_unit AS $$ + WITH RECURSIVE org_unit_ancestors_distance(id, distance) AS ( + SELECT $1, 0 + UNION + SELECT ou.parent_ou, ouad.distance+1 + FROM actor.org_unit ou JOIN org_unit_ancestors_distance ouad ON (ou.id = ouad.id) + WHERE ou.parent_ou IS NOT NULL + ) + SELECT ou.* FROM actor.org_unit ou JOIN org_unit_ancestors_distance ouad USING (id) ORDER BY ouad.distance; +$$ LANGUAGE SQL ROWS 1; +