summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Lawrence <dlawrence@mozilla.com>2011-12-16 20:24:12 +0100
committerDave Lawrence <dlawrence@mozilla.com>2011-12-16 20:24:12 +0100
commitc9990cbe114870cb366325e3372c1784c7eb9a0a (patch)
treea9a436f77d79b04645eeac3171289855f8400a6f
parent9835ae424e63e5cb0615b06f45dbdd2561ebeaa0 (diff)
downloadbugzilla-c9990cbe114870cb366325e3372c1784c7eb9a0a.tar.gz
bugzilla-c9990cbe114870cb366325e3372c1784c7eb9a0a.tar.xz
Bug 685611 - delta_ts is updated even when no changes are made to bugs created via WebServices
r/a=LpSolit
-rw-r--r--Bugzilla/DB/Schema.pm3
-rw-r--r--Bugzilla/Field.pm6
-rw-r--r--Bugzilla/Install/DB.pm29
3 files changed, 35 insertions, 3 deletions
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index f6612e518..3a317029b 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -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'},
diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm
index 6b42cc4af..ab56d1980 100644
--- a/Bugzilla/Field.pm
+++ b/Bugzilla/Field.pm
@@ -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' },
};
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index b9f5d112d..ae7ad581d 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -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__