It looks like something in DBI 1.24 broke $dbh->func.
If I try to call this:
$dbh->func( 'createdb', 'foo', 'admin' )
I get an array message about being unable to call func on an undef value
at DBD::mysql line 217.
sub admin {
my($dbh) = shift;
my($command) = shift;
my($dbname) = ($command eq 'createdb' || $command eq 'dropdb') ?
shift : '';
$dbh->{'Driver'}->func($dbh, $command, $dbname, '', '', '',
'_admin_internal');
}
Line 217 is the line above starting with $dbh->{'Driver'}->func
If I had to guess at what was broken I'd say it had to do with this change
from 1.16:
Fixed $dbh->{Driver} & $sth->{Database} to return 'outer' handles.
and then this change from 1.24:
Fixed reference loop causing a handle/memory leak
that was introduced in DBI 1.16.
I'm guessing these are related? I also noticed that this code in DBI.xs
(from 1.23):
case DBIt_DB:
/* pre-load Driver attribute */
hv_store((HV*)SvRV(h), "Driver", 6, newRV((SV*)DBIc_MY_H(parent_imp)), 0);
break;
is gone in 1.24. So just for yucks I added it back and that seemed to fix
the problem.
I don't know _why_ it fixed it, but it did.
-dave
/*==================
www.urth.org
we await the New Sun
==================*/