]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
When doing bz_alter_column, if
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 22 Jun 2010 03:43:17 +0000 (20:43 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 22 Jun 2010 03:43:17 +0000 (20:43 -0700)
https://bugzilla.mozilla.org/show_bug.cgi?id=573441

Bugzilla/DB/Schema.pm

index 9fc507885014173c9321578f1d467b1c48b5e873..0791cad98a1740540efb5562f3692dda11b1dfbb 100644 (file)
@@ -2157,6 +2157,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
@@ -2170,7 +2174,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 ALTER COLUMN $column "
                          . " SET DEFAULT $default");
     }
@@ -2179,7 +2182,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.)