[svn:dbi] r15057 - dbi/trunk/lib/DBD

[email protected] Mon, 2 Jan 2012 05:59:32 -0800 (PST)
Newsgroups perl.dbi.changes
Message-ID <[email protected]>
Author: timbo
Date: Mon Jan  2 05:59:32 2012
New Revision: 15057

Modified:
   dbi/trunk/lib/DBD/Gofer.pm

Log:
Fixed Gofer error handling for keeperr methods like ping

Modified: dbi/trunk/lib/DBD/Gofer.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer.pm	(original)
+++ dbi/trunk/lib/DBD/Gofer.pm	Mon Jan  2 05:59:32 2012
@@ -97,7 +97,12 @@
         if (my $warnings = $response->warnings) {
             warn $_ for @$warnings;
         }
-        return $h->set_err($response->err_errstr_state);
+        my ($err, $errstr, $state) = $response->err_errstr_state;
+        # Only set_err() if there's an error else leave the current values
+        # (The current values will normally be set undef by the DBI dispatcher
+        # except for methods marked KEEPERR such as ping.)
+        $h->set_err($err, $errstr, $state) if defined $err;
+        return undef;
     }