On Fri 09 Jul 2004 14:10, Tim Bunce <[EMAIL PROTECTED]> wrote:
> On Fri, Jul 09, 2004 at 01:09:29PM +0200, Jochen Wiedmann wrote:
> > Tim Bunce wrote:
> > 
> > >And it wasn't easy. Withdrawing support for 5.6 anytime soon would
> > >be _much_ harder.  Coupling that with a major change in the DBI that
> > >may require some application code changes (however small and rare)
> > >just makes the hurdle higher and create more reasons to stay with 5.6
> > >and DBI v1.
> > >
> > >Having said that, I've no problem declaring that 5.8 is the recommended
> > >version and that support for 5.6 will be withdrawn "at some point".
> > 
> > I do not get your point Tim. IMO the whole point for v2 would be that
> > 
> > - A true rewrite should be possible, whereever desired.
> > - It is possible for the maintainers to get rid of some stuff. (You
> >   know better than I, what would be worth getting rid of and I know
> >   a lot.)
> > - Whoever wants to use the new version is welcome and
> > - Whoever doesn't want, is fine.
> > 
> > I accept, that the DBI is an important application. But your points are, 
> > IMO, an indicator, that v1 should receive further maintenance, perhaps by 
> > someone else.
> 
> As I've said previously, DBI v2.0 is mainly about changes to the DBI<->DBD
> interface.
> 
> Here's the list of changes that may break _applications_:
> 
>       Redefine tables() to default to tables accessible from current
>       schema without further qualification.

Why not create a new method call, as you (IMHO) should have done in 1.38
The change of behaviour in the tables () method is a straightforward nightmare
for me. Adding those quotations broke about all my applications.

I have added my own tables method in the wrapper I always use, where I just
remove all the quotes again, so the change is now rather small. You said it
should have been done much earlier, but I still disagree in that this approach
was very wrong.

>       Turning AutoCommit on should trigger rollback not commit.
>       (ODBC does a commit) This will break code that assumes a commit.
> 
>       Always taint check the $sql for do() and prepare()
>       if perl is in taint mode (can't be disabled).

These two lines belong together, right? Like in

        if ($perl_is_in_taint_mode) {
                check_taint ($sql) if $method in qw( do prepare );
                }

>       Default TaintIn=>1 in perl taint mode?
>       Default TaintOut=>1 in perl taint mode but exclude placeholders?
> 
> plus these odds-n-ends that are much lower risk:
> 
>       Remove support for "old-style" connect syntax
>       (where the driver name is the 4th parameter).
> 
>       Change undocumented DBI->err and DBI->errstr methods to warn.
> 
>       Remove old informix fudge in tables() (would only impact people
>       using very old DBD::Informix versions as it now has it's own).
> 
> That's a very small list and, although it's early days, I hope to
> keep it that way.
> 
> From the users point of view upgrading to DBI v2 should be relatively
> painless. Driver maintainers will have a little more work to do,
> but I'll aim to make that as painless as possible as well.
> (Start by using the new dbivport.h and the macros it contains
> as that'll be a key mechanism for migration.)
> 
> I'm _suggesting_ that it's also an opportunity for driver maintainers
> to "get rid of some stuff" but it's up to them how far they want to
> take that.

-- 
H.Merijn Brand        Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using perl-5.6.1, 5.8.0 & 633 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3,
     WinNT 4, Win2K pro & WinCE 2.11 often with Tk800.024 &/| DBD-Unify
ftp://ftp.funet.fi/pub/languages/perl/CPAN/authors/id/H/HM/HMBRAND/


Reply via email to