Hello All:

I wrote:

> > the version of DBI for a given version of the DBD driver.  When 
> > these don't match up, the driver doesn't always work correctly.

Tim asked:

> Why not, exactly?

Most of the problems we had were compile failures.  Features in the 
DBI that weren't present in the DBD::DB2 and vice versa caused the 
DBD::DB2 to fail on build.  The fix was to down rev the DBI to match 
that specified by IBM.  It's been awhile (several revisions) since 
we've seen these kinds of problems, so IBM may have fixed such 
dependency problems.  As I said, the maturity and stability of these 
tools has been rising steadily (thanks, in a large part, to your 
efforts, BTW). 

> The number, and maturity, of pure-Perl DBD's is rising.

Yes that is true.  Perhaps, I wasn't clear that I was addressing
systems like DB2 that are still highly dependent on an underlying C
interface.  It would be great to have a pure-Perl DBD::DB2, but I 
don't expect one out of IBM anytime soon.  It might be possible to
reverse engineer such an interface, but I don't think they've made
enough details public to do so easily (or perhaps even legitimately). 
 
> I'd rather push the other way... driver authors need to write drivers
> the do-the-right-thing. Specifying particular versions of the DBI
> is a bit of a cop out.

It is likely that IBM specifies a specific version of the DBI module
because it is the version they tested against and thus the version
they provide DBD::DB2 support against.  As a vender, they have been 
very responsive to us, but they are a vendor and have to limit their
support risk in some way.  If the DBI changes in some significant 
way that causes a build failure, it is hardly fair to blame the DBD 
provider, unless they take "too long" to catch up.  Nor is it 
reasonable to expect the DBI to remain unchanged.  This may indicate
my own ignorance of how the DBI and DBD relate, but the two 
interfaces seem to be inter-dependent.  Perhaps they are not, more
knowledgeable folks will have to correct me.

I've strayed pretty far from the original topic.  Let me finish on 
this note.  Were there a pure-Perl interface to DB2 (ala the DB2 net 
drivers that are available for Java), I'd use it.  Having to install  
client software on the node and then compile DBI and DBD::DB2 on that 
machine is annoying.  I'd prefer a net-only type of interface that 
depended on nothing more than the network-visibility of the desired 
database server.  If someone is working on this and needs help, I'm
willing to pitch in.

Thanks,

stph

Reply via email to