From c4804fb41628501553714fd98d0078d05353e930 Mon Sep 17 00:00:00 2001 From: "mkanat%kerio.com" <> Date: Thu, 10 Mar 2005 15:59:48 +0000 Subject: Bug 285397: Untested parts of Bugzilla::DB are broken (when running on PostgreSQL) Patch By Max Kanat-Alexander r=Tomas.Kopal, a=justdave --- Bugzilla/DB.pm | 5 +---- Bugzilla/DB/Mysql.pm | 3 --- Bugzilla/DB/Pg.pm | 6 ++---- 3 files changed, 3 insertions(+), 11 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index 59d19b48b..cf1e391f5 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -478,12 +478,11 @@ sub bz_start_transaction { my ($self) = @_; if ($self->{private_bz_in_transaction}) { - carp("Can't start transaction within another transaction"); ThrowCodeError("nested_transaction"); } else { # Turn AutoCommit off and start a new transaction $self->begin_work(); - $self->{privateprivate_bz_in_transaction} = 1; + $self->{private_bz_in_transaction} = 1; } } @@ -491,7 +490,6 @@ sub bz_commit_transaction { my ($self) = @_; if (!$self->{private_bz_in_transaction}) { - carp("Can't commit without a transaction"); ThrowCodeError("not_in_transaction"); } else { $self->commit(); @@ -504,7 +502,6 @@ sub bz_rollback_transaction { my ($self) = @_; if (!$self->{private_bz_in_transaction}) { - carp("Can't rollback without a transaction"); ThrowCodeError("not_in_transaction"); } else { $self->rollback(); diff --git a/Bugzilla/DB/Mysql.pm b/Bugzilla/DB/Mysql.pm index 14230b188..33354cb44 100644 --- a/Bugzilla/DB/Mysql.pm +++ b/Bugzilla/DB/Mysql.pm @@ -42,7 +42,6 @@ package Bugzilla::DB::Mysql; use strict; use Bugzilla::Error; -use Carp; # This module extends the DB interface via inheritance use base qw(Bugzilla::DB); @@ -149,7 +148,6 @@ sub bz_lock_tables { # Check first if there was no lock before if ($self->{private_bz_tables_locked}) { - carp("Tables already locked"); ThrowCodeError("already_locked"); } else { $self->do('LOCK TABLE ' . join(', ', @tables)); @@ -165,7 +163,6 @@ sub bz_unlock_tables { if (!$self->{private_bz_tables_locked}) { # Abort is allowed even without previous lock for error handling return if $abort; - carp("No matching lock"); ThrowCodeError("no_matching_lock"); } else { $self->do("UNLOCK TABLES"); diff --git a/Bugzilla/DB/Pg.pm b/Bugzilla/DB/Pg.pm index 2ec3000d5..de3260e7a 100644 --- a/Bugzilla/DB/Pg.pm +++ b/Bugzilla/DB/Pg.pm @@ -42,7 +42,6 @@ package Bugzilla::DB::Pg; use strict; use Bugzilla::Error; -use Carp; # This module extends the DB interface via inheritance use base qw(Bugzilla::DB); @@ -146,7 +145,6 @@ sub bz_lock_tables { # Check first if there was no lock before if ($self->{private_bz_tables_locked}) { - carp("Tables already locked"); ThrowCodeError("already_locked"); } else { my %read_tables; @@ -173,6 +171,7 @@ sub bz_lock_tables { ' IN ROW SHARE MODE') if keys %read_tables; Bugzilla->dbh->do('LOCK TABLE ' . join(', ', keys %write_tables) . ' IN ROW EXCLUSIVE MODE') if keys %write_tables; + $self->{private_bz_tables_locked} = 1; } } @@ -183,10 +182,9 @@ sub bz_unlock_tables { if (!$self->{private_bz_tables_locked}) { # Abort is allowed even without previous lock for error handling return if $abort; - - carp("No matching lock"); ThrowCodeError("no_matching_lock"); } else { + $self->{private_bz_tables_locked} = 0; # End transaction, tables will be unlocked automatically if ($abort) { $self->bz_rollback_transaction(); -- cgit v1.2.3-24-g4f1b