[Bast-commits] r9434 - DBIx-Class/0.08/branches/try-tiny/lib/DBIx/Class/Storage/DBI/Oracle

caelum at dev.catalyst.perl.org caelum at dev.catalyst.perl.org
Tue May 25 17:47:20 GMT 2010


Author: caelum
Date: 2010-05-25 18:47:20 +0100 (Tue, 25 May 2010)
New Revision: 9434

Modified:
   DBIx-Class/0.08/branches/try-tiny/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm
Log:
fix Oracle

Modified: DBIx-Class/0.08/branches/try-tiny/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm
===================================================================
--- DBIx-Class/0.08/branches/try-tiny/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm	2010-05-25 16:42:31 UTC (rev 9433)
+++ DBIx-Class/0.08/branches/try-tiny/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm	2010-05-25 17:47:20 UTC (rev 9434)
@@ -125,13 +125,21 @@
   my $self = shift;
   my ($dbh, $op, $extra_bind, $ident, $bind_attributes, @args) = @_;
 
-  my $retried;
+  my $wantarray = wantarray;
+  my ($retried, @res);
+  my $next = $self->next::can;
   do {
     try {
-      return $self->next::method($dbh, $op, $extra_bind, $ident, $bind_attributes, @args);
+      if ($wantarray) {
+        @res = $self->$next($dbh, $op, $extra_bind, $ident, $bind_attributes, @args);
+      }
+      else {
+        $res[0] = $self->$next($dbh, $op, $extra_bind, $ident, $bind_attributes, @args);
+      }
+      $retried++;
     }
     catch {
-      if (!$retried and $_ =~ /ORA-01003/) {
+      if (/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);
@@ -142,6 +150,8 @@
       }
     };
   } while (not $retried++);
+
+  return $wantarray ? @res : $res[0];
 }
 
 =head2 get_autoinc_seq
@@ -156,19 +166,6 @@
   $self->dbh_do('_dbh_get_autoinc_seq', $source, $col);
 }
 
-=head2 columns_info_for
-
-This wraps the superclass version of this method to force table
-names to uppercase
-
-=cut
-
-sub columns_info_for {
-  my ($self, $table) = @_;
-
-  $self->next::method($table);
-}
-
 =head2 datetime_parser_type
 
 This sets the proper DateTime::Format module for use with




More information about the Bast-commits mailing list