]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 685611 - delta_ts is updated even when no changes are made to bugs created via...
authorDave Lawrence <dlawrence@mozilla.com>
Fri, 16 Dec 2011 19:24:12 +0000 (14:24 -0500)
committerDave Lawrence <dlawrence@mozilla.com>
Fri, 16 Dec 2011 19:24:12 +0000 (14:24 -0500)
r/a=LpSolit

Bugzilla/DB/Schema.pm
Bugzilla/Field.pm
Bugzilla/Install/DB.pm

index f6612e51820cb14994a1d20edf13187177a48d95..3a317029b0464ae0a8fcfd1c3d552c23b8a4d127 100644 (file)
@@ -255,7 +255,8 @@ use constant ABSTRACT_SCHEMA => {
             assigned_to         => {TYPE => 'INT3', NOTNULL => 1,
                                     REFERENCES => {TABLE  => 'profiles',
                                                    COLUMN => 'userid'}},
-            bug_file_loc        => {TYPE => 'MEDIUMTEXT'},
+            bug_file_loc        => {TYPE => 'MEDIUMTEXT', 
+                                    NOTNULL => 1, DEFAULT => "''"},
             bug_severity        => {TYPE => 'varchar(64)', NOTNULL => 1},
             bug_status          => {TYPE => 'varchar(64)', NOTNULL => 1},
             creation_ts         => {TYPE => 'DATETIME'},
index 6b42cc4afb592e0e19a21f3d74aa4145319009dd..ab56d1980045e815a92a03a05fb53a313a38dad7 100644 (file)
@@ -152,10 +152,12 @@ use constant UPDATE_COLUMNS => qw(
 use constant SQL_DEFINITIONS => {
     # Using commas because these are constants and they shouldn't
     # be auto-quoted by the "=>" operator.
-    FIELD_TYPE_FREETEXT,      { TYPE => 'varchar(255)' },
+    FIELD_TYPE_FREETEXT,      { TYPE => 'varchar(255)', 
+                                NOTNULL => 1, DEFAULT => "''"},
     FIELD_TYPE_SINGLE_SELECT, { TYPE => 'varchar(64)', NOTNULL => 1,
                                 DEFAULT => "'---'" },
-    FIELD_TYPE_TEXTAREA,      { TYPE => 'MEDIUMTEXT' },
+    FIELD_TYPE_TEXTAREA,      { TYPE => 'MEDIUMTEXT', 
+                                NOTNULL => 1, DEFAULT => "''"},
     FIELD_TYPE_DATETIME,      { TYPE => 'DATETIME'   },
     FIELD_TYPE_BUG_ID,        { TYPE => 'INT3'       },
 };
index b9f5d112d894d55574e45aa1aec1cfe705af7426..ae7ad581d1e0a71e8b52c219fbe3216415801130 100644 (file)
@@ -29,6 +29,7 @@ use Bugzilla::Install::Util qw(indicate_progress install_string);
 use Bugzilla::Util;
 use Bugzilla::Series;
 use Bugzilla::BugUrl;
+use Bugzilla::Field;
 
 use Date::Parse;
 use Date::Format;
@@ -663,6 +664,9 @@ sub update_table_definitions {
     $dbh->bz_alter_column('attachments', 'filename', 
                                     { TYPE => 'varchar(255)', NOTNULL => 1 });
 
+    # 2011-11-28 dkl@mozilla.com - Bug 685611
+    _fix_notnull_defaults();
+
     ################################################################
     # New --TABLE-- changes should go *** A B O V E *** this point #
     ################################################################
@@ -3618,6 +3622,31 @@ sub _on_delete_set_null_for_audit_log_userid {
     }
 }
 
+sub _fix_notnull_defaults {
+    my $dbh = Bugzilla->dbh;
+
+    $dbh->bz_alter_column('bugs', 'bug_file_loc', 
+                          {TYPE => 'MEDIUMTEXT', NOTNULL => 1,  
+                           DEFAULT => "''"}, '');
+
+    my $custom_fields = Bugzilla::Field->match({ 
+        custom => 1, type => [ FIELD_TYPE_FREETEXT, FIELD_TYPE_TEXTAREA ] 
+    });
+
+    foreach my $field (@$custom_fields) {
+        if ($field->type == FIELD_TYPE_FREETEXT) {
+            $dbh->bz_alter_column('bugs', $field->name,
+                                  {TYPE => 'varchar(255)', NOTNULL => 1,
+                                   DEFAULT => "''"}, '');
+        }
+        if ($field->type == FIELD_TYPE_TEXTAREA) {
+            $dbh->bz_alter_column('bugs', $field->name,
+                                  {TYPE => 'MEDIUMTEXT', NOTNULL => 1,
+                                   DEFAULT => "''"}, '');
+        }
+    }
+}
+
 1;
 
 __END__