]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 408037: [Oracle] Running checksetup.pl twice doesn't work
authormkanat%bugzilla.org <>
Thu, 13 Dec 2007 08:44:11 +0000 (08:44 +0000)
committermkanat%bugzilla.org <>
Thu, 13 Dec 2007 08:44:11 +0000 (08:44 +0000)
Patch By Xiaoou Wu <xiaoou.wu@oracle.com> r=mkanat, a=mkanat

Bugzilla/DB/Oracle.pm
Bugzilla/User/Setting.pm

index 008f4be70b208ae3f94cee1970b2210fe69373a9..509dedaa15545bdd52eeec1ad46081f261ac2e0e 100644 (file)
@@ -421,8 +421,14 @@ sub bz_setup_database {
     $self->do("CREATE OR REPLACE FUNCTION NOW "
               . " RETURN DATE IS BEGIN RETURN SYSDATE; END;");
     # Create a WORLD_LEXER named BZ_LEX for multilingual fulltext search
-    $self->do("BEGIN CTX_DDL.CREATE_PREFERENCE
+    my $lexer = $self->selectcol_arrayref(
+       "SELECT pre_name FROM CTXSYS.CTX_PREFERENCES WHERE pre_name = ? AND
+          pre_owner = ?",
+          undef,'BZ_LEX',uc(Bugzilla->localconfig->{db_user}));
+    if(!@$lexer) {
+       $self->do("BEGIN CTX_DDL.CREATE_PREFERENCE
                         ('BZ_LEX', 'WORLD_LEXER'); END;");
+    }
 
     $self->SUPER::bz_setup_database(@_);
 }
index 6387883c650fa4b0314c869d04967d45a9a4399e..f13bfe97247df7de02dd4aee497740efff7c8012 100644 (file)
@@ -233,9 +233,8 @@ sub set_default {
 sub _setting_exists {
     my ($setting_name) = @_;
     my $dbh = Bugzilla->dbh;
-    my $sth = $dbh->prepare("SELECT name FROM setting WHERE name = ?");
-    $sth->execute($setting_name);
-    return ($sth->rows) ? 1 : 0;
+    return $dbh->selectrow_arrayref(
+        "SELECT 1 FROM setting WHERE name = ?", undef, $setting_name) || 0;
 }