summaryrefslogtreecommitdiffstats
path: root/Bugzilla/DB/Schema/Pg.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/DB/Schema/Pg.pm')
-rw-r--r--Bugzilla/DB/Schema/Pg.pm12
1 files changed, 10 insertions, 2 deletions
diff --git a/Bugzilla/DB/Schema/Pg.pm b/Bugzilla/DB/Schema/Pg.pm
index 21b0c6d96..0101a1e43 100644
--- a/Bugzilla/DB/Schema/Pg.pm
+++ b/Bugzilla/DB/Schema/Pg.pm
@@ -92,8 +92,16 @@ sub _initialize {
sub get_rename_column_ddl {
my ($self, $table, $old_name, $new_name) = @_;
-
- return ("ALTER TABLE $table RENAME COLUMN $old_name TO $new_name");
+ my @sql = ("ALTER TABLE $table RENAME COLUMN $old_name TO $new_name");
+ my $def = $self->get_column_abstract($table, $old_name);
+ if ($def->{TYPE} =~ /SERIAL/i) {
+ # We have to rename the series also, and fix the default of the series.
+ push(@sql, "ALTER TABLE ${table}_${old_name}_seq
+ RENAME TO ${table}_${new_name}_seq");
+ push(@sql, "ALTER TABLE $table ALTER COLUMN $new_name
+ SET DEFAULT NEXTVAL('${table}_${new_name}_seq')");
+ }
+ return @sql;
}
sub _get_alter_type_sql {