I am on Mac OS X Lion with Pg 9.0.x, Perl 5.14.1, and the latest iterations of DBI and DBD::Pg. My code is pretty straightforward
my $dbh = DBI->connect("dbi:Pg:dbname=macromap;host=localhost;port=5432", 'postgres', 'postgres'); my $sth = $dbh->prepare( .. ); $sth->execute; while (my (retrieved columns) = $sth->fetchrow_array) { do something with retrieved columns } The code bombs with the message: DBD::Pg::st execute failed: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. at ... I turned on `DBI->trace(3, '/path/to/dbi.log')` and got the following, which, to me, tells no more than the above DBI 1.616-nothread default trace level set to 0x0/3 (pid 20132 pi 7fe30c000000) at geomaps.pm line 30 via app.pl line 3 -> DBI->connect(dbi:Pg:dbname=macromap;host=localhost;port=5432, postgres, ****) -> DBI->install_driver(Pg) for darwin perl=5.014001 pid=20132 ruid=501 euid=501 install_driver: DBD::Pg version 2.18.1 loaded from /opt/local/lib/perl5/site_perl/5.14.1/darwin-multi-2level/DBD/Pg.pm <- install_driver= DBI::dr=HASH(0x7fe30c58baf0) !! warn: 0 CLEARED by call to connect method -> connect for DBD::Pg::dr (DBI::dr=HASH(0x7fe30c58baf0)~0x7fe30c58ba30 'dbname=macromap;host=localhost;port=5432' 'postgres' **** HASH(0x7fe30c4639b0)) <- FETCH= ( 90004 ) [1 items] at Pg.pm line 227 via at geomaps.pm line 33 .. FETCH DBI::db=HASH(0x7fe30c5c5620) 'private_dbdpg' = undef <- FETCH= ( undef ) [1 items] at Pg.pm line 228 via at geomaps.pm line 33 STORE DBI::db=HASH(0x7fe30c5c5620) 'private_dbdpg' => HASH(0x7fe30c5c5950) <- STORE= ( 1 ) [1 items] at Pg.pm line 228 via at geomaps.pm line 33 <- connect= ( DBI::db=HASH(0x7fe30c5c56f8) ) [1 items] at DBI.pm line 665 via at app.pl line 3 -> STORE for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c5620)~INNER 'PrintError' 1) STORE DBI::db=HASH(0x7fe30c5c5620) 'PrintError' => 1 <- STORE= ( 1 ) [1 items] at DBI.pm line 717 via at app.pl line 3 -> STORE for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c5620)~INNER 'AutoCommit' 1) <- STORE= ( 1 ) [1 items] at DBI.pm line 717 via at app.pl line 3 -> STORE for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c5620)~INNER 'Username' 'postgres') STORE DBI::db=HASH(0x7fe30c5c5620) 'Username' => 'postgres' <- STORE= ( 1 ) [1 items] at DBI.pm line 720 via at geomaps.pm line 33 -> connected in DBD::_::db for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c56f8)~0x7fe30c5c5620 'dbi:Pg:dbname=macromap;host=localhost;port=5432' 'postgres' 'postgres') <- connected= ( undef ) [1 items] at DBI.pm line 727 via at app.pl line 3 <- connect= DBI::db=HASH(0x7fe30c5c56f8) -> STORE for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c5620)~INNER 'dbi_connect_closure' CODE(0x7fe30c5c4e88)) STORE DBI::db=HASH(0x7fe30c5c5620) 'dbi_connect_closure' => CODE(0x7fe30c5c4e88) <- STORE= ( 1 ) [1 items] at DBI.pm line 736 via at geomaps.pm line 33 -- DBI::END ($@: , $!: ) -> disconnect_all for DBD::Pg::dr (DBI::dr=HASH(0x7fe30c58baf0)~0x7fe30c58ba30) <- disconnect_all= ( '' ) [1 items] at DBI.pm line 744 via at Server.pm line 294 ! <> DESTROY(DBI::db=HASH(0x7fe30c5c56f8)) ignored for outer handle (inner DBI::db=HASH(0x7fe30c5c5620) has ref cnt 1) ! -> DESTROY for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c5620)~INNER) ! <- DESTROY= ( undef ) [1 items] during global destruction ! <> DESTROY(DBI::dr=HASH(0x7fe30c58baf0)) ignored for outer handle (inner DBI::dr=HASH(0x7fe30c58ba30) has ref cnt 1) ! -> DESTROY in DBD::_::common for DBD::Pg::dr (DBI::dr=HASH(0x7fe30c58ba30)~INNER) ! <- DESTROY= ( undef ) [1 items] during global destruction -> prepare for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c56f8)~0x7fe30c5c5620 'SELECT interval_name, color_hex FROM intervals_old') <- prepare= ( DBI::st=HASH(0x7fe30c6a97c8) ) [1 items] at geomaps.pm line 1224 via at Route.pm line 240 -> execute for DBD::Pg::st (DBI::st=HASH(0x7fe30c6a97c8)~0x7fe30c6a9408) !! ERROR: 7 'server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.' (err#0) <- execute= ( undef ) [1 items] at geomaps.pm line 1225 via at Route.pm line 240 -> errstr in DBD::_::common for DBD::Pg::st (DBI::st=HASH(0x7fe30c6a97c8)~0x7fe30c6a9408) ERROR: 7 'server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.' (err#0) <- errstr= ( 'server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.' ) [1 items] at geomaps.pm line 1225 via at Route.pm line 240 !! ERROR: 7 CLEARED by call to fetchrow_array method -> fetchrow_array for DBD::Pg::st (DBI::st=HASH(0x7fe30c6a97c8)~0x7fe30c6a9408) !! ERROR: 6 'no statement executing' (err#0) <- fetchrow_array= ( ) [0 items] row-1 at geomaps.pm line 1226 via at Route.pm line 240 !! ERROR: 6 CLEARED by call to prepare method -> prepare for DBD::Pg::db (DBI::db=HASH(0x7fe30c5c56f8)~0x7fe30c5c5620 'SELECT DISTINCT species_id, latin_name FROM trees.range r JOIN trees.species s ON r.species_id = s.id') <- prepare= ( DBI::st=HASH(0x7fe30c6a91e0) ) [1 items] at geomaps.pm line 1252 via at Route.pm line 240 <> DESTROY(DBI::st=HASH(0x7fe30c6a97c8)) ignored for outer handle (inner DBI::st=HASH(0x7fe30c6a9408) has ref cnt 1) -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x7fe30c6a9408)~INNER) <- DESTROY= ( undef ) [1 items] at geomaps.pm line 1253 via at geomaps.pm line 1253 -> execute for DBD::Pg::st (DBI::st=HASH(0x7fe30c6a91e0)~0x7fe30c6a9810) !! ERROR: 7 'no connection to the server' (err#0) <- execute= ( undef ) [1 items] at geomaps.pm line 1253 via at Route.pm line 240 !! ERROR: 7 CLEARED by call to fetchrow_array method -> fetchrow_array for DBD::Pg::st (DBI::st=HASH(0x7fe30c6a91e0)~0x7fe30c6a9810) !! ERROR: 6 'no statement executing' (err#0) <- fetchrow_array= ( ) [0 items] row-1 at geomaps.pm line 1254 via at Route.pm line 240 <> DESTROY(DBI::st=HASH(0x7fe30c6a91e0)) ignored for outer handle (inner DBI::st=HASH(0x7fe30c6a9810) has ref cnt 1) -> DESTROY for DBD::Pg::st (DBI::st=HASH(0x7fe30c6a9810)~INNER) ERROR: 6 'no statement executing' (err#0) <- DESTROY= ( undef ) [1 items] at Route.pm line 240 via at Route.pm line 240 Suggestions?