On Wed, Oct 28, 2009 at 10:26:49AM -0700, David E. Wheeler wrote: > On Oct 28, 2009, at 2:59 AM, Tim Bunce wrote: > >> Here's a deal: you write some tests for ChildCallbacks in >> t/70callbacks.t and I'll implement them. > > Deal.
Great. Thanks. >>> Oh, nice. Does that mean you'll have more time for the DBI? >> >> That's the hope. > > W00t. I need to devote time to java2perl6 and other perl6-database-interface related activities. >> I'm probably being over-cautious. Most drivers use fetch() or >> fetchrow_arrayref() as the lowest-level calling method used by the other >> fetch* ad select* methods. So applying the same callback to both would >> work find in most cases. > > If I'm applying a callback to the "fetch" method, I expect it to execute > when I actually call the fetch method on the STH to which I applied it. > Reasonable, no? Is there some reason that wouldn't happen? If so, I'd call > it a bug in the driver, frankly. If you're applying a callback to the "fetch" method and then your code calls fetchrow_hashref, for example, how do you know if the driver's fetchrow_hashref() method calls fetch() or fetchrow_arrayref()? The fetch and fetchrow_arrayref method are typically aliased by the driver, but they're two separate methods from the DBI dispatcher's point of view. Applying the same callback to both is a reasonable approach. Tim.