Eli Mesika has uploaded a new change for review.

Change subject: db:add tab/col name validation to common functions
......................................................................

db:add tab/col name validation to common functions

No error thrown in common_sp functions in case column or table does not
exists.

This patch adds validations to drop/change type/rename column common
functions in order to prevent the setup continue in case that there was
an error in the table/column name.

This patch also fix some upgrade scripts that used invalid/non-existing
column names.

Change-Id: Iba5f087f3d47b4f36bb99151a21c2e1016d77b64
Bug-Url : https://bugzilla.redhat.com/show_bug.cgi?id=1141829
Signed-off-by: Eli Mesika <emes...@redhat.com>
---
M packaging/dbscripts/common_sp.sql
M packaging/dbscripts/upgrade/03_03_0060_drop_desktop_device.sql
M packaging/dbscripts/upgrade/03_03_0380_remove_auto_suspend.sql
M packaging/dbscripts/upgrade/03_03_0710_add_profile_to_network_interface.sql
4 files changed, 14 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/32959/1

diff --git a/packaging/dbscripts/common_sp.sql 
b/packaging/dbscripts/common_sp.sql
index 1b380f4..edeb2b0 100644
--- a/packaging/dbscripts/common_sp.sql
+++ b/packaging/dbscripts/common_sp.sql
@@ -31,6 +31,8 @@
                 v_sql := 'ALTER TABLE ' || v_table || ' DROP COLUMN ' || 
v_column;
                 EXECUTE v_sql;
             end;
+        else
+            RAISE EXCEPTION 'Column % does not exist in %', v_column, v_table;
         end if;
 end;$procedure$
 LANGUAGE plpgsql;
@@ -49,6 +51,8 @@
                v_sql := 'ALTER TABLE ' || v_table || ' ALTER COLUMN ' || 
v_column || ' TYPE ' || v_new_type;
                EXECUTE v_sql;
             end;
+        else
+            RAISE EXCEPTION 'Column % does not exist in %', v_column, v_table;
        end if;
 END; $procedure$
 LANGUAGE plpgsql;
@@ -66,6 +70,8 @@
                v_sql := 'ALTER TABLE ' || v_table || ' RENAME COLUMN ' || 
v_column || ' TO ' || v_new_name;
                EXECUTE v_sql;
             end;
+        else
+            RAISE EXCEPTION 'Column % does not exist in %', v_column, v_table;
        end if;
 END; $procedure$
 LANGUAGE plpgsql;
diff --git a/packaging/dbscripts/upgrade/03_03_0060_drop_desktop_device.sql 
b/packaging/dbscripts/upgrade/03_03_0060_drop_desktop_device.sql
index 1043e8a..541c5d4 100644
--- a/packaging/dbscripts/upgrade/03_03_0060_drop_desktop_device.sql
+++ b/packaging/dbscripts/upgrade/03_03_0060_drop_desktop_device.sql
@@ -1 +1,3 @@
-select fn_db_drop_column('users','fn_db_drop_column');
+select 3030060
+-- The following drop column was commented, there was no column with such name 
in users table.
+--select fn_db_drop_column('users','fn_db_drop_column');
diff --git a/packaging/dbscripts/upgrade/03_03_0380_remove_auto_suspend.sql 
b/packaging/dbscripts/upgrade/03_03_0380_remove_auto_suspend.sql
index f9b1990..57cb9e6 100644
--- a/packaging/dbscripts/upgrade/03_03_0380_remove_auto_suspend.sql
+++ b/packaging/dbscripts/upgrade/03_03_0380_remove_auto_suspend.sql
@@ -1 +1,3 @@
-select fn_db_drop_column('vm_templates', 'is_auto_suspend');
+select 3030380
+-- The following drop column was commented since vm_templates was merged with 
vm_static
+--select fn_db_drop_column('vm_templates', 'is_auto_suspend');
diff --git 
a/packaging/dbscripts/upgrade/03_03_0710_add_profile_to_network_interface.sql 
b/packaging/dbscripts/upgrade/03_03_0710_add_profile_to_network_interface.sql
index 4f96975..6179e07 100644
--- 
a/packaging/dbscripts/upgrade/03_03_0710_add_profile_to_network_interface.sql
+++ 
b/packaging/dbscripts/upgrade/03_03_0710_add_profile_to_network_interface.sql
@@ -91,8 +91,9 @@
        AND vm_interface.port_mirroring = vnic_profiles.port_mirroring
        AND vm_interface.network_name = network.name;
 
+-- The following drop column was commented since it is done also in 03_03_0720
 -- drop the port_mirroring column from vm_interface
-SELECT fn_db_drop_column ('port_mirroring', 'vm_interface');
+--SELECT fn_db_drop_column ('port_mirroring', 'vm_interface');
 
 -- add permissions to vnic profile (according to existing permissions on 
networks.
 Create or replace FUNCTION __temp_set_vnic_profiles_permissions()


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iba5f087f3d47b4f36bb99151a21c2e1016d77b64
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
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