Eli Mesika has uploaded a new change for review.

Change subject: Adding support for user types cleanup
......................................................................

Adding support for user types cleanup

The following patch adds support for user-types cleanup in the database.
Call had been added as well to the cleandb function.

Change-Id: I48e3b85da55e256c87673105551ce36cd15b54b6
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1034201
Signed-off-by: Eli Mesika <emes...@redhat.com>
---
M packaging/dbscripts/common_sp.sql
M packaging/dbscripts/dbfunctions.sh
M packaging/setup/ovirt_engine_setup/database.py
3 files changed, 28 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/22022/1

diff --git a/packaging/dbscripts/common_sp.sql 
b/packaging/dbscripts/common_sp.sql
index 63df62d..12f44e9 100644
--- a/packaging/dbscripts/common_sp.sql
+++ b/packaging/dbscripts/common_sp.sql
@@ -282,6 +282,18 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
+Create or replace FUNCTION generate_drop_all_user_types_syntax() RETURNS SETOF 
text STABLE
+   AS $procedure$
+BEGIN
+RETURN QUERY SELECT 'DROP TYPE if exists ' || 
c.relname::information_schema.sql_identifier || ' CASCADE;'
+   FROM pg_namespace n, pg_class c, pg_type t
+   WHERE n.oid = c.relnamespace AND t.typrelid = c.oid AND c.relkind = 
'c'::"char" and
+   n.nspname = 'public'
+   ORDER BY  c.relname::information_schema.sql_identifier;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
 Create or replace FUNCTION fn_get_column_size( v_table varchar(64), v_column 
varchar(64)) returns integer STABLE
    AS $procedure$
    declare
diff --git a/packaging/dbscripts/dbfunctions.sh 
b/packaging/dbscripts/dbfunctions.sh
index 2a470e5..b4c1da9 100755
--- a/packaging/dbscripts/dbfunctions.sh
+++ b/packaging/dbscripts/dbfunctions.sh
@@ -81,6 +81,8 @@
     execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} >> $file
     CMD="select * from generate_drop_all_functions_syntax();"
     execute_command "$CMD"  ${DATABASE} ${SERVERNAME} ${PORT} >> $file
+    CMD="select * from generate_drop_all_user_types_syntax();"
+    execute_command "$CMD"  ${DATABASE} ${SERVERNAME} ${PORT} >> $file
     execute_file "${file}" ${DATABASE} ${SERVERNAME} ${PORT} > /dev/null
 }
 
diff --git a/packaging/setup/ovirt_engine_setup/database.py 
b/packaging/setup/ovirt_engine_setup/database.py
index 76999b3..ff87eeb 100644
--- a/packaging/setup/ovirt_engine_setup/database.py
+++ b/packaging/setup/ovirt_engine_setup/database.py
@@ -341,7 +341,7 @@
             statement="""
                 create or replace
                 function
-                    generate_drop_all_functions_syntax()
+                    oesetup_generate_drop_all_syntax()
                     returns setof text
                 AS $procedure$ begin
                     return query
@@ -358,9 +358,17 @@
                                 pg_proc.pronamespace=ns.oid
                             )
                         where
-                            ns.nspname = 'public' and
-                            proname not ilike 'uuid%%'
-                        order by proname;
+                            ns.nspname = 'public'
+                        union
+                        select
+                            'drop type if exists ' ||
+                            c.relname::information_schema.sql_identifier || ' 
' ||
+                            'cascade;'
+                        from
+                            pg_namespace n, pg_class c, pg_type t
+                        where
+                            n.oid = c.relnamespace and t.typrelid = c.oid and 
+                            c.relkind = 'c'::"char" and n.nspname = 'public';
                 end; $procedure$
                 language plpgsql;
             """,
@@ -371,8 +379,8 @@
 
         spdrops = statement.execute(
             statement="""
-                select generate_drop_all_functions_syntax as drop
-                from generate_drop_all_functions_syntax()
+                select oesetup_generate_drop_all_syntax as drop
+                from oesetup_generate_drop_all_syntax()
             """,
             ownConnection=True,
             transaction=False,


-- 
To view, visit http://gerrit.ovirt.org/22022
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48e3b85da55e256c87673105551ce36cd15b54b6
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Eli Mesika <emes...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to