From cb68c84bcb213c3c109a54e1728b8c2434171c27 Mon Sep 17 00:00:00 2001 From: "jake%acutex.net" <> Date: Wed, 20 Jun 2001 08:37:19 +0000 Subject: Fix for bug 86447 - ChangeFieldType() wasn't dealing with 'not null' properly. r= justdave@syndicomm.com --- checksetup.pl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/checksetup.pl b/checksetup.pl index f8ef65d77..b349a3065 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -1411,6 +1411,9 @@ sub ChangeFieldType ($$$) #print "0: $$ref[0] 1: $$ref[1] 2: $$ref[2] 3: $$ref[3] 4: $$ref[4]\n"; my $oldtype = $ref->[1]; + if (! $ref->[2]) { + $oldtype .= qq{ not null}; + } if ($ref->[4]) { $oldtype .= qq{ default "$ref->[4]"}; } @@ -1419,7 +1422,8 @@ sub ChangeFieldType ($$$) print "Updating field type $field in table $table ...\n"; print "old: $oldtype\n"; print "new: $newtype\n"; - $newtype .= " NOT NULL" if $$ref[3]; +# 'not null' should be passed as part of the call to ChangeFieldType() +# $newtype .= " NOT NULL" if $$ref[3]; $dbh->do("ALTER TABLE $table CHANGE $field $field $newtype"); @@ -1549,10 +1553,10 @@ AddField('products', 'votesperuser', 'mediumint not null'); # tinytext is equivalent to varchar(255), which is quite huge, so I change # them all to varchar(64). -ChangeFieldType ('bugs', 'product', 'varchar(64)'); +ChangeFieldType ('bugs', 'product', 'varchar(64) not null'); ChangeFieldType ('components', 'program', 'varchar(64)'); ChangeFieldType ('products', 'product', 'varchar(64)'); -ChangeFieldType ('versions', 'program', 'varchar(64)'); +ChangeFieldType ('versions', 'program', 'varchar(64) not null'); # 2000-01-16 Added a "keywords" field to the bugs table, which # contains a string copy of the entries of the keywords table for this @@ -1967,8 +1971,8 @@ if (!($sth->fetchrow_arrayref()->[0])) { # the size of the target_milestone field in the bugs table. ChangeFieldType('bugs', 'target_milestone', - 'varchar(20) default "---"'); -ChangeFieldType('milestones', 'value', 'varchar(20)'); + 'varchar(20) not null default "---"'); +ChangeFieldType('milestones', 'value', 'varchar(20) not null'); # 2000-03-23 Added a defaultmilestone field to the products table, so that -- cgit v1.2.1