summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkanat%kerio.com <>2005-06-09 13:42:44 +0200
committermkanat%kerio.com <>2005-06-09 13:42:44 +0200
commit461633bacc4f1c47b50e67219a7c8ec0a16bad7d (patch)
tree82c9a363915083ba6d786790bc38973b4f00d8e0
parentb2ced74b4357baa441e73c8d09858925635dba4a (diff)
downloadbugzilla-461633bacc4f1c47b50e67219a7c8ec0a16bad7d.tar.gz
bugzilla-461633bacc4f1c47b50e67219a7c8ec0a16bad7d.tar.xz
Bug 291803: PostgreSQL dies when you insert a string longer than 2700 characters into an indexed field
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=jouni, a=justdave
-rw-r--r--Bugzilla/DB/Pg.pm14
-rwxr-xr-xchecksetup.pl5
2 files changed, 18 insertions, 1 deletions
diff --git a/Bugzilla/DB/Pg.pm b/Bugzilla/DB/Pg.pm
index 86c5497cd..25378ccc3 100644
--- a/Bugzilla/DB/Pg.pm
+++ b/Bugzilla/DB/Pg.pm
@@ -197,4 +197,18 @@ sub bz_unlock_tables {
}
}
+#####################################################################
+# Custom Database Setup
+#####################################################################
+
+sub bz_setup_database {
+ my $self = shift;
+ $self->SUPER::bz_setup_database(@_);
+
+ # PostgreSQL doesn't like having *any* index on the thetext
+ # field, because it can't have index data longer than 2770
+ # characters on that field.
+ $self->bz_drop_index('longdescs', 'longdescs_thetext_idx');
+}
+
1;
diff --git a/checksetup.pl b/checksetup.pl
index 7151b86bf..d1068bbbd 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -3664,7 +3664,10 @@ if (!$dbh->bz_index_info('bugs', 'bugs_short_desc_idx')) {
$dbh->bz_add_index('bugs', 'bugs_short_desc_idx',
{TYPE => 'FULLTEXT', FIELDS => [qw(short_desc)]});
}
-if (!$dbh->bz_index_info('longdescs', 'longdescs_thetext_idx')) {
+# Right now, we only create the "thetext" index on MySQL.
+if ($dbh->isa('Bugzilla::DB::Mysql')
+ && !$dbh->bz_index_info('longdescs', 'longdescs_thetext_idx'))
+{
print "Adding full-text index for thetext column in longdescs table...\n";
$dbh->bz_add_index('longdescs', 'longdescs_thetext_idx',
{TYPE => 'FULLTEXT', FIELDS => [qw(thetext)]});