Author: turnstep
Date: Thu Apr  9 08:52:56 2009
New Revision: 12682

Modified:
   DBD-Pg/trunk/Changes
   DBD-Pg/trunk/dbdimp.c

Log:
Return better SQLSTATE code when the connection has failed - 
[email protected]
CPAN bug #44744


Modified: DBD-Pg/trunk/Changes
==============================================================================
--- DBD-Pg/trunk/Changes        (original)
+++ DBD-Pg/trunk/Changes        Thu Apr  9 08:52:56 2009
@@ -2,9 +2,12 @@
 
 2.12.1
 
-  - Fix minor Perl::Critic nags (CPAN bug #44704) (Debian #bug 521969) [GSM]
   - Ensure we always set sqlstate inside of pg_st_prepare_statement
     (CPAN bug #44732) [[email protected]]
+  - When libpq has a connection error, return SQLSTATE 08000 ( "CONNECTION 
EXCEPTION" )
+    instead of the more generic 02000 ( "DATA EXCEPTION" ) (CPAN bug #44744)
+    [[email protected]]
+  - Fix minor Perl::Critic nags (CPAN bug #44704) (Debian #bug 521969) [GSM]
 
 2.12.0 Released March 28, 2009
 

Modified: DBD-Pg/trunk/dbdimp.c
==============================================================================
--- DBD-Pg/trunk/dbdimp.c       (original)
+++ DBD-Pg/trunk/dbdimp.c       Thu Apr  9 08:52:56 2009
@@ -377,6 +377,10 @@
                        strncpy(imp_dbh->sqlstate, "01000", 6); /* WARNING */
                        break;
                case PGRES_FATAL_ERROR:
+                       if (!result) { /* libpq returned null - some sort of 
connection problem */
+                               strncpy(imp_dbh->sqlstate, "08000", 6); /* 
CONNECTION EXCEPTION */
+                               break;
+                       }
                default:
                        strncpy(imp_dbh->sqlstate, "22000", 6); /* DATA 
EXCEPTION */
                        break;

Reply via email to