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
