diff -urx .svn dbd-mysql.orig/dbdimp.c dbd-mysql/dbdimp.c
--- dbd-mysql.orig/dbdimp.c 2008-08-01 18:35:40.000000000 -0400
+++ dbd-mysql/dbdimp.c 2008-08-01 18:09:57.000000000 -0400
@@ -4409,7 +4409,11 @@
memcpy (&save_socket, imp_dbh->pmysql,sizeof(save_socket));
memset (imp_dbh->pmysql,0,sizeof(*(imp_dbh->pmysql)));
- if (!my_login(h, imp_dbh))
+ /* we should disconnect the db handle before reconnecting, this will
+ * prevent my_login from thinking it's adopting an active child which
+ * would prevent the handle from actually reconnecting
+ */
+ if (!dbd_db_disconnect(h, imp_dbh) || !my_login(h, imp_dbh))
{
do_error(h, mysql_errno(imp_dbh->pmysql), mysql_error(imp_dbh->pmysql),
mysql_sqlstate(imp_dbh->pmysql));
diff -urx .svn dbd-mysql.orig/t/65segfault.t dbd-mysql/t/65segfault.t
--- dbd-mysql.orig/t/65segfault.t 2008-08-01 18:35:40.000000000 -0400
+++ dbd-mysql/t/65segfault.t 2008-08-01 18:15:47.000000000 -0400
@@ -17,7 +17,7 @@
mysql_auto_reconnect => 1,
RaiseError => 1,
PrintError => 1,
- AutoCommit => 0 });
+ AutoCommit => 1 });
};
if ($@) {
diff -urx .svn dbd-mysql.orig/t/70takeimp.t dbd-mysql/t/70takeimp.t
--- dbd-mysql.orig/t/70takeimp.t 2008-08-01 18:35:40.000000000 -0400
+++ dbd-mysql/t/70takeimp.t 2008-08-01 18:18:46.000000000 -0400
@@ -34,7 +34,6 @@
unless ($dbh->can('take_imp_data')) {
plan skip_all => "version of DBI $DBI::VERSION doesn't support this test. Can't continue test";
}
-plan skip_all => "This test is disabled";
plan tests => 21;
pass("obtained driver handle");
diff -urx .svn dbd-mysql.orig/t/71impdata.t dbd-mysql/t/71impdata.t
--- dbd-mysql.orig/t/71impdata.t 2008-08-01 18:35:40.000000000 -0400
+++ dbd-mysql/t/71impdata.t 2008-08-01 18:19:15.000000000 -0400
@@ -24,7 +24,6 @@
unless ($dbh->can('take_imp_data')) {
plan skip_all => "version of DBI $DBI::VERSION doesn't support this test. Can't continue test";
}
-plan skip_all => "This test is disabled";
plan tests => 10;
pass("Connected to database");