diff options
author | mkanat%kerio.com <> | 2005-03-18 12:28:51 +0100 |
---|---|---|
committer | mkanat%kerio.com <> | 2005-03-18 12:28:51 +0100 |
commit | 675c4bb9d83bdf1916eb0bcb61a973c6f4b69a73 (patch) | |
tree | 60143f66c528547062f2082b0640beb4b0b0858b /Bugzilla/DB.pm | |
parent | 026808687250a3e1c2415c1967e1a48abeba217b (diff) | |
download | bugzilla-675c4bb9d83bdf1916eb0bcb61a973c6f4b69a73.tar.gz bugzilla-675c4bb9d83bdf1916eb0bcb61a973c6f4b69a73.tar.xz |
Bug 285748: Cross-DB bz_alter_column (Part of Bug 285111)
Patch By Max Kanat-Alexander <mkanat@kerio.com> r=Tomas.Kopal, a=justdave
Diffstat (limited to 'Bugzilla/DB.pm')
-rw-r--r-- | Bugzilla/DB.pm | 21 |
1 files changed, 21 insertions, 0 deletions
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 |