summaryrefslogtreecommitdiffstats
path: root/Bugzilla/DB/Schema/Pg.pm
diff options
context:
space:
mode:
authorjustdave%bugzilla.org <>2007-04-15 08:35:56 +0200
committerjustdave%bugzilla.org <>2007-04-15 08:35:56 +0200
commit8da7f321aabe95470944bc23aeed9a06ef6793a5 (patch)
treeb16ca05abfae22dffd3ca8f0c868cc799273f2e7 /Bugzilla/DB/Schema/Pg.pm
parentb3630da125fa112e04f6e6a15328f64e13a874c5 (diff)
downloadbugzilla-8da7f321aabe95470944bc23aeed9a06ef6793a5.tar.gz
bugzilla-8da7f321aabe95470944bc23aeed9a06ef6793a5.tar.xz
Bug 373869: Custom field names must be all lowercase or buglist.cgi sorting throws an error
Patch by mkanat and justdave r=LpSolit,mkanat; a=mkanat
Diffstat (limited to 'Bugzilla/DB/Schema/Pg.pm')
-rw-r--r--Bugzilla/DB/Schema/Pg.pm15
1 files changed, 15 insertions, 0 deletions
diff --git a/Bugzilla/DB/Schema/Pg.pm b/Bugzilla/DB/Schema/Pg.pm
index 0101a1e43..7a951e2db 100644
--- a/Bugzilla/DB/Schema/Pg.pm
+++ b/Bugzilla/DB/Schema/Pg.pm
@@ -92,6 +92,11 @@ sub _initialize {
sub get_rename_column_ddl {
my ($self, $table, $old_name, $new_name) = @_;
+ if (lc($old_name) eq lc($new_name)) {
+ # if the only change is a case change, return an empty list, since Pg
+ # is case-insensitive and will return an error about a duplicate name
+ return ();
+ }
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) {
@@ -104,6 +109,16 @@ sub get_rename_column_ddl {
return @sql;
}
+sub get_rename_table_sql {
+ my ($self, $old_name, $new_name) = @_;
+ if (lc($old_name) eq lc($new_name)) {
+ # if the only change is a case change, return an empty list, since Pg
+ # is case-insensitive and will return an error about a duplicate name
+ return ();
+ }
+ return ("ALTER TABLE $old_name RENAME TO $new_name");
+}
+
sub _get_alter_type_sql {
my ($self, $table, $column, $new_def, $old_def) = @_;
my @statements;