On Sun, Mar 07, 2010 at 10:29:29AM -0800, David E. Wheeler wrote:
> On Mar 7, 2010, at 5:43 AM, Tim Bunce wrote:
> 
> >> Looks good, thanks. Pity you removed the `$dbh->{private_myapp_sql_mode}`
> >> bit, though, as that's required when using C<connect_cached()>, which
> >> you almost certainly are doing if you need this hack.
> > 
> > Are you sure it's required when using connected()? The connected method
> > is only called for new connections.
> 
> Yes, I just verified it with Bricolage, which uses connect_cached.
> connected() is called every time, whether or not a connection is a new
> connection.

Uh, yeah, I just looked at the code. Sometimes I confuse myself.
I think that's a bug. I always intended connected() to be used as an
on-new-physical-connection-established hook.

Any objections to making it so?

Looking at the code I can see an issue with clone(): it'll clone using
the same method (connect/connect_cached) as the handle that's being
cloned. I guess I can document that as a feature :)

> BTW, here's another issue I forgot to mention. I installed the DBI
> from svn and now get this error unless I rebuild each driver:
> 
> [Sun Mar 07 10:22:24 2010] [error] DBI/DBD internal version mismatch
> (DBI is v95/s208, DBD ./mysql.xsi expected v94/s208) you probably need
> to rebuild the DBD driver (or possibly the DBI).
> 
> I've never had an issue with binary compatibility between the DBI and
> a DBD. Did something change in this last build?

Yes, the additional hook for sql_type_cast_svpv. But I shouldn't have
bumped DBISTATE_VERSION for just that - the change was binary compatible
with old drivers. (Drivers that care can use the DBIXS_REVISION macro
to check if sql_type_cast_svpv is available at compile time and check
it's non-zero to check it's available at runtime.)

Fixed in r13837. Thanks.

Tim.

Reply via email to