[Bast-commits] r9442 -
DBIx-Class/0.08/trunk/lib/DBIx/Class/Storage/DBI/Oracle
ribasushi at dev.catalyst.perl.org
ribasushi at dev.catalyst.perl.org
Wed May 26 10:17:55 GMT 2010
Author: ribasushi
Date: 2010-05-26 11:17:55 +0100 (Wed, 26 May 2010)
New Revision: 9442
Modified:
DBIx-Class/0.08/trunk/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm
Log:
Really fix logic
Modified: DBIx-Class/0.08/trunk/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm
===================================================================
--- DBIx-Class/0.08/trunk/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm 2010-05-26 10:00:19 UTC (rev 9441)
+++ DBIx-Class/0.08/trunk/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm 2010-05-26 10:17:55 UTC (rev 9442)
@@ -125,10 +125,10 @@
my $self = shift;
my ($dbh, $op, $extra_bind, $ident, $bind_attributes, @args) = @_;
- my (@res, $retried);
+ my (@res, $tried);
my $wantarray = wantarray();
my $next = $self->next::can;
- while (1) {
+ do {
try {
my $exec = sub { $self->$next($dbh, $op, $extra_bind, $ident, $bind_attributes, @args) };
@@ -141,9 +141,11 @@
else {
@res = $exec->();
}
+
+ $tried++;
}
catch {
- if (!$retried++ and $_ =~ /ORA-01003/) {
+ if (! $tried and $_ =~ /ORA-01003/) {
# ORA-01003: no statement parsed (someone changed the table somehow,
# invalidating your cursor.)
my ($sql, $bind) = $self->_prep_for_execute($op, $extra_bind, $ident, \@args);
@@ -153,7 +155,7 @@
$self->throw_exception($_);
}
};
- }
+ } while (! $tried++);
return $wantarray ? @res : $res[0];
}
More information about the Bast-commits
mailing list