]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 541553: [Oracle] Drop triggers when dropping columns, and drop the
authorXiaoou Wu <xiaoou.wu@oracle.com>
Mon, 1 Mar 2010 23:28:01 +0000 (15:28 -0800)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Mon, 1 Mar 2010 23:28:01 +0000 (15:28 -0800)
left-behind PRODUCTS_MILESTONEURL trigger that currently exists in 3.6/trunk.
r=mkanat, a=mkanat

Bugzilla/DB/Oracle.pm
Bugzilla/DB/Schema/Oracle.pm

index 8018233720c175e17bd3adf5c7f38d0247652298..5dd1278820f390d6dc51b4423eaf74647c46996b 100644 (file)
@@ -676,6 +676,14 @@ sub bz_setup_database {
      }
    }
 
+   # Drop the trigger which causes bug 541553
+   my $trigger_name = "PRODUCTS_MILESTONEURL";
+   my $exist_trigger = $self->selectcol_arrayref(
+       "SELECT OBJECT_NAME FROM USER_OBJECTS
+        WHERE OBJECT_NAME = ?", undef, $trigger_name);
+   if(@$exist_trigger) {
+       $self->do("DROP TRIGGER $trigger_name");
+   }
 }
 
 package Bugzilla::DB::Oracle::st;
index 814a842b35eb424a5370ad39d0570c69f850253f..e8905eb80fe5549076f7cc063701b947d99ad364 100644 (file)
@@ -412,4 +412,20 @@ sub get_set_serial_sql {
     return @sql;
 } 
 
+sub get_drop_column_ddl {
+    my $self = shift;
+    my ($table, $column) = @_;
+    my @sql;
+    push(@sql, $self->SUPER::get_drop_column_ddl(@_));
+    my $dbh=Bugzilla->dbh;
+    my $trigger_name = uc($table . "_" . $column);
+    my $exist_trigger = $dbh->selectcol_arrayref(
+        "SELECT OBJECT_NAME FROM USER_OBJECTS
+         WHERE OBJECT_NAME = ?", undef, $trigger_name);
+    if(@$exist_trigger) {
+        push(@sql, "DROP TRIGGER $trigger_name");
+    }
+    return @sql;
+}
+
 1;