diff options
author | Dave Lawrence <dlawrence@mozilla.com> | 2012-01-24 22:33:28 +0100 |
---|---|---|
committer | Dave Lawrence <dlawrence@mozilla.com> | 2012-01-24 22:33:28 +0100 |
commit | 0ea89852dd8aea5088142b2e405d544d14ec0173 (patch) | |
tree | cfcf7a090626e1e56ecf1f9c0a3778bd49616c78 /Bugzilla/DB/Schema/Oracle.pm | |
parent | 47510e5833b06b9eee37b7c2531f1693f45dcb05 (diff) | |
parent | e2a95ffbe2beb52bf3e69102b4646ddf5793d8df (diff) | |
download | bugzilla-0ea89852dd8aea5088142b2e405d544d14ec0173.tar.gz bugzilla-0ea89852dd8aea5088142b2e405d544d14ec0173.tar.xz |
merged with bugzilla/4.2
Diffstat (limited to 'Bugzilla/DB/Schema/Oracle.pm')
-rw-r--r-- | Bugzilla/DB/Schema/Oracle.pm | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/Bugzilla/DB/Schema/Oracle.pm b/Bugzilla/DB/Schema/Oracle.pm index cdc39409d..f2d5b8be0 100644 --- a/Bugzilla/DB/Schema/Oracle.pm +++ b/Bugzilla/DB/Schema/Oracle.pm @@ -386,13 +386,31 @@ sub get_rename_table_sql { } if ($def->{TYPE} =~ /varchar|text/i && $def->{NOTNULL}) { push(@sql, _get_notnull_trigger_ddl($new_name, $column)); - push(@sql, "DROP TRIGGER ${$old_name}_${column}"); + push(@sql, "DROP TRIGGER ${old_name}_${column}"); } } return @sql; } +sub get_drop_table_ddl { + my ($self, $name) = @_; + my @sql; + + my @columns = $self->get_table_columns($name); + foreach my $column (@columns) { + my $def = $self->get_column_abstract($name, $column); + if ($def->{TYPE} =~ /SERIAL/i) { + # If there's a SERIAL column on this table, we also need + # to remove the sequence. + push(@sql, "DROP SEQUENCE ${name}_${column}_SEQ"); + } + } + push(@sql, "DROP TABLE $name CASCADE CONSTRAINTS PURGE"); + + return @sql; +} + sub _get_notnull_trigger_ddl { my ($table, $column) = @_; |