From: Max Kanat-Alexander Date: Tue, 22 Jun 2010 03:43:17 +0000 (-0700) Subject: When doing bz_alter_column, if X-Git-Tag: bugzilla-3.7.1~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26120c8f04f03a3657367a412ffea085bccbcd75;p=thirdparty%2Fbugzilla.git When doing bz_alter_column, if https://bugzilla.mozilla.org/show_bug.cgi?id=573441 --- diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm index 9fc5078850..0791cad98a 100644 --- a/Bugzilla/DB/Schema.pm +++ b/Bugzilla/DB/Schema.pm @@ -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.)