From 675c4bb9d83bdf1916eb0bcb61a973c6f4b69a73 Mon Sep 17 00:00:00 2001 From: "mkanat%kerio.com" <> Date: Fri, 18 Mar 2005 11:28:51 +0000 Subject: Bug 285748: Cross-DB bz_alter_column (Part of Bug 285111) Patch By Max Kanat-Alexander r=Tomas.Kopal, a=justdave --- Bugzilla/DB.pm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'Bugzilla/DB.pm') diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index 5256a5434..d84ce873d 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -357,6 +357,27 @@ sub bz_add_column { } } +sub bz_alter_column { + my ($self, $table, $name, $new_def) = @_; + + my $current_def = $self->bz_column_info($table, $name); + + if (!$self->_bz_schema->columns_equal($current_def, $new_def)) { + my @statements = $self->_bz_real_schema->get_alter_column_ddl( + $table, $name, $new_def); + my $old_ddl = $self->_bz_schema->get_type_ddl($current_def); + my $new_ddl = $self->_bz_schema->get_type_ddl($new_def); + print "Updating column $name in table $table ...\n"; + print "Old: $old_ddl\n"; + print "New: $new_ddl\n"; + foreach my $sql (@statements) { + $self->do($sql); + } + $self->_bz_real_schema->set_column($table, $name, $new_def); + $self->_bz_store_real_schema; + } +} + # XXX - Need to make this cross-db compatible # XXX - This shouldn't print stuff to stdout -- cgit v1.2.3-24-g4f1b