summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2007-12-13 09:44:11 +0100
committermkanat%bugzilla.org <>2007-12-13 09:44:11 +0100
commit5c779ad57796cf6c1f88efe2f3b88b1b96144004 (patch)
tree8dc4f38adfec19d98656640d00c5c5851d38579e
parent25de3add9dedd00d20ff9e35a5d20f3163ee9437 (diff)
downloadbugzilla-5c779ad57796cf6c1f88efe2f3b88b1b96144004.tar.gz
bugzilla-5c779ad57796cf6c1f88efe2f3b88b1b96144004.tar.xz
Bug 408037: [Oracle] Running checksetup.pl twice doesn't work
Patch By Xiaoou Wu <xiaoou.wu@oracle.com> r=mkanat, a=mkanat
-rw-r--r--Bugzilla/DB/Oracle.pm8
-rw-r--r--Bugzilla/User/Setting.pm5
2 files changed, 9 insertions, 4 deletions
diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm
index 008f4be70..509dedaa1 100644
--- a/Bugzilla/DB/Oracle.pm
+++ b/Bugzilla/DB/Oracle.pm
@@ -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(@_);
}
diff --git a/Bugzilla/User/Setting.pm b/Bugzilla/User/Setting.pm
index 6387883c6..f13bfe972 100644
--- a/Bugzilla/User/Setting.pm
+++ b/Bugzilla/User/Setting.pm
@@ -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;
}