From 7261190b84649b8da49e9d512a6cf9e7f5cac06b Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Thu, 19 Jul 2007 17:27:46 +0000 Subject: Bug 388765: Bugzilla::DB::db_new should accept attributes that *override* the default attributes Patch By Max Kanat-Alexander (module owner) a=mkanat --- Bugzilla/DB.pm | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'Bugzilla/DB.pm') diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index b42672398..b43b237eb 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -942,22 +942,28 @@ sub bz_rollback_transaction { ##################################################################### sub db_new { - my ($class, $dsn, $user, $pass, $attributes) = @_; + my ($class, $dsn, $user, $pass, $override_attrs) = @_; # set up default attributes used to connect to the database - # (if not defined by DB specific implementation) - $attributes = { RaiseError => 0, - AutoCommit => 1, - PrintError => 0, - ShowErrorStatement => 1, - HandleError => \&_handle_error, - TaintIn => 1, - FetchHashKeyName => 'NAME', - # Note: NAME_lc causes crash on ActiveState Perl - # 5.8.4 (see Bug 253696) - # XXX - This will likely cause problems in DB - # back ends that twiddle column case (Oracle?) - } if (!defined($attributes)); + # (may be overridden by DB driver implementations) + my $attributes = { RaiseError => 0, + AutoCommit => 1, + PrintError => 0, + ShowErrorStatement => 1, + HandleError => \&_handle_error, + TaintIn => 1, + FetchHashKeyName => 'NAME', + # Note: NAME_lc causes crash on ActiveState Perl + # 5.8.4 (see Bug 253696) + # XXX - This will likely cause problems in DB + # back ends that twiddle column case (Oracle?) + }; + + if ($override_attrs) { + foreach my $key (keys %$override_attrs) { + $attributes->{$key} = $override_attrs->{$key}; + } + } # connect using our known info to the specified db # Apache::DBI will cache this when using mod_perl @@ -2340,7 +2346,9 @@ Constructor =item C<$pass> - password used to log in to the database -=item C<\%attributes> - set of attributes for DB connection (optional) +=item C<\%override_attrs> - set of attributes for DB connection (optional). +You only have to set attributes that you want to be different from +the default attributes set inside of C. =back -- cgit v1.2.3-24-g4f1b