]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
The DB::Schema alter_column default fix also needed to be separately
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 22 Jun 2010 05:31:02 +0000 (22:31 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 22 Jun 2010 05:31:02 +0000 (22:31 -0700)
applied to DB::Schema::Oracle, since it has a full override of
get_alter_column_ddl.

https://bugzilla.mozilla.org/show_bug.cgi?id=573441

Bugzilla/DB/Schema/Oracle.pm

index af0c11e9f501a9a476c872b37dc30016ea248853..6011cecfcffe131dafe0b673b86ba87214f68226 100644 (file)
@@ -214,6 +214,10 @@ sub get_alter_column_ddl {
 
     my $default = $new_def->{DEFAULT};
     my $default_old = $old_def->{DEFAULT};
+
+    if (defined $default) {
+        $default = $specific->{$default} if exists $specific->{$default};
+    }
     # This first condition prevents "uninitialized value" errors.
     if (!defined $default && !defined $default_old) {
         # Do Nothing
@@ -227,7 +231,6 @@ sub get_alter_column_ddl {
     elsif ( (defined $default && !defined $default_old) || 
             ($default ne $default_old) ) 
     {
-        $default = $specific->{$default} if exists $specific->{$default};
         push(@statements, "ALTER TABLE $table MODIFY $column "
                          . " DEFAULT $default");
     }
@@ -236,7 +239,7 @@ sub get_alter_column_ddl {
     if (!$old_def->{NOTNULL} && $new_def->{NOTNULL}) {
         my $setdefault;
         # Handle any fields that were NULL before, if we have a default,
-        $setdefault = $new_def->{DEFAULT} if exists $new_def->{DEFAULT};
+        $setdefault = $default if defined $default;
         # But if we have a set_nulls_to, that overrides the DEFAULT 
         # (although nobody would usually specify both a default and 
         # a set_nulls_to.)