JBAS-1767 PG 9.6 remove connect-by
authorBill Erickson <berickxx@gmail.com>
Mon, 20 Mar 2017 16:09:07 +0000 (12:09 -0400)
committerBill Erickson <berickxx@gmail.com>
Thu, 21 Mar 2019 19:46:23 +0000 (15:46 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
KCLS/sql/schema/deploy/pg-9.6-prep.sql [new file with mode: 0644]
KCLS/sql/schema/revert/pg-9.6-prep.sql [new file with mode: 0644]
KCLS/sql/schema/sqitch.plan
KCLS/sql/schema/verify/pg-9.6-prep.sql [new file with mode: 0644]

diff --git a/KCLS/sql/schema/deploy/pg-9.6-prep.sql b/KCLS/sql/schema/deploy/pg-9.6-prep.sql
new file mode 100644 (file)
index 0000000..6899ed4
--- /dev/null
@@ -0,0 +1,32 @@
+-- Deploy kcls-evergreen:pg-9.6-prep to pg
+-- requires: 2.7-to-2.9-upgrade-part-2
+
+BEGIN;
+
+CREATE OR REPLACE FUNCTION permission.grp_ancestors( INT ) RETURNS SETOF permission.grp_tree AS $$
+    WITH RECURSIVE grp_ancestors_distance(id, distance) AS (
+            SELECT $1, 0
+        UNION
+            SELECT ou.parent, ouad.distance+1
+            FROM permission.grp_tree ou JOIN grp_ancestors_distance ouad ON (ou.id = ouad.id)
+            WHERE ou.parent IS NOT NULL
+    )
+    SELECT ou.* FROM permission.grp_tree ou JOIN grp_ancestors_distance ouad USING (id) ORDER BY ouad.distance DESC;
+$$ LANGUAGE SQL ROWS 1;
+
+CREATE OR REPLACE FUNCTION permission.grp_descendants( INT ) RETURNS SETOF permission.grp_tree AS $$
+    WITH RECURSIVE descendant_depth AS (
+        SELECT  gr.id,
+                gr.parent
+          FROM  permission.grp_tree gr
+          WHERE gr.id = $1
+            UNION ALL
+        SELECT  gr.id,
+                gr.parent
+          FROM  permission.grp_tree gr
+                JOIN descendant_depth dd ON (dd.id = gr.parent)
+    ) SELECT gr.* FROM permission.grp_tree gr JOIN descendant_depth USING (id);
+$$ LANGUAGE SQL ROWS 1;
+
+
+COMMIT;
diff --git a/KCLS/sql/schema/revert/pg-9.6-prep.sql b/KCLS/sql/schema/revert/pg-9.6-prep.sql
new file mode 100644 (file)
index 0000000..e028713
--- /dev/null
@@ -0,0 +1,33 @@
+-- Revert kcls-evergreen:pg-9.6-prep from pg
+
+BEGIN;
+
+CREATE OR REPLACE FUNCTION permission.grp_ancestors(integer) 
+    RETURNS SETOF permission.grp_tree
+    LANGUAGE sql STABLE ROWS 1
+    AS $_$
+       SELECT  a.*
+       FROM    connectby('permission.grp_tree'::text,'parent'::text,'id'::text,'name'::text,$1::text,100,'.'::text)
+                       AS t(keyid text, parent_keyid text, level int, branch text,pos int)
+               JOIN permission.grp_tree a ON a.id::text = t.keyid::text
+       ORDER BY
+               CASE WHEN a.parent IS NULL
+                       THEN 0
+                       ELSE 1
+               END, a.name;
+$_$;
+
+
+CREATE OR REPLACE FUNCTION permission.grp_descendants_distance(integer) 
+    RETURNS TABLE(id integer, distance integer)
+    LANGUAGE sql STABLE ROWS 1
+    AS $_$
+    WITH RECURSIVE permission.grp_descendants_distance(id, distance) AS (
+            SELECT $1, 0
+        UNION
+            SELECT pgt.id, gdd.distance+1
+            FROM permission.grp_tree pgt JOIN permission.grp_descendants_distance gdd ON pgt.parent = gdd.id
+    )
+    SELECT * FROM permission.grp_descendants_distance;
+$_$;
+COMMIT;
index bf93f16..34cfffc 100644 (file)
@@ -41,3 +41,4 @@ backstage-exports-continued [ingram-edi-mods] 2016-06-20T20:28:38Z Bill Erickson
 purge-holds [audit-table-maint] 2016-09-21T16:01:57Z Bill Erickson <berickxx@gmail.com> # Holds purge settings
 2.7-to-2.9-upgrade [backstage-exports-continued] 2016-12-09T20:27:17Z Bill Erickson <berickxx@gmail.com> # 2.7 to 2.9 Upgrade
 2.7-to-2.9-upgrade-part-2 [2.7-to-2.9-upgrade] 2016-12-12T15:19:07Z Bill Erickson <berickxx@gmail.com> # 2.7 to 2.9 Upgrade Secondary Updates
+pg-9.6-prep [2.7-to-2.9-upgrade-part-2] 2017-03-20T15:59:10Z Bill Erickson,,, <berick@cylinders> # Prep for PG 9.6
diff --git a/KCLS/sql/schema/verify/pg-9.6-prep.sql b/KCLS/sql/schema/verify/pg-9.6-prep.sql
new file mode 100644 (file)
index 0000000..1e182f2
--- /dev/null
@@ -0,0 +1,7 @@
+-- Verify kcls-evergreen:pg-9.6-prep on pg
+
+BEGIN;
+
+-- XXX Add verifications here.
+
+ROLLBACK;