Skip Menu |

This queue is for tickets about the DBI CPAN distribution.

Report information
The Basics
Id: 84260
Status: resolved
Priority: 0/
Queue: DBI

People
Owner: Nobody in particular
Requestors: mschout [...] gkg.net
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: DBD::File no longer works with RootClass connect attribute
Date: Thu, 28 Mar 2013 10:05:46 -0500
To: bug-dbi [...] rt.cpan.org
From: Michael Schout <mschout [...] gkg.net>
DBD::File no longer works with a RootClass connection attribute. This first broke in 1.613_90. DBIx::ContextualFetch makes use of this as follows: $dbh = DBI->connect('dbi:File:','','', {RootClass => 'DBIx::ContextualFetch'}) Attached is a test case that tests for the problem. In 1.613_71, this returns a DBIx::ContextualFetch::db object (as expected), but in 1.613_90, it returns a DBI::db object instead. The RootClass attr seems to still work fine with other DBD drivers (e.g.: SQLite, Pg). Only DBD::File seems affected (and derivatives such as DBD::CSV).

Message body is not shown because sender requested not to inline it.

Subject: Re: [rt.cpan.org #84260] DBD::File no longer works with RootClass connect attribute
Date: Thu, 28 Mar 2013 17:34:02 +0100
To: bug-DBI [...] rt.cpan.org
From: "H.Merijn Brand" <h.m.brand [...] xs4all.nl>
On Thu, 28 Mar 2013 11:06:02 -0400, "mschout@gkg.net via RT" <bug-DBI@rt.cpan.org> wrote: Show quoted text
> DBD::File no longer works with a RootClass connection attribute. This > first broke in 1.613_90. DBIx::ContextualFetch makes use of this as > follows:
I had to switch back to perl-5.12.2 to be able to git bisect I had to install DBIx::ContextualFetch on 5.12.2 to make the test fail $ git bisect good 1.601 $ git bisect bad 1.615 $ git bisect run ../git-run.sh : HEAD is now at 1c2a659 - add 2 phase initialization support to DBI::DBD::SqlEngine 51238d2ec00a22f8d6f6e0c10539492c3d240f09 is the first bad commit commit 51238d2ec00a22f8d6f6e0c10539492c3d240f09 Author: REHSACK <REHSACK@50811bd7-b8ce-0310-adc1-d9db26280581> Date: Fri Aug 27 17:19:31 2010 +0000 add two phase initialization support git-svn-id: http://svn.perl.org/modules/dbi/trunk@14339 50811bd7-b8ce-0310-adc1-d9db26280581 :040000 040000 11fe67703a821c8ca0c1b798b1195a67772b6a9e 7debbbfb68f45381448bd9aa9442c865ff541b4e M lib bisect run success is that enough information? $ cat ../git-run.sh #!/bin/sh echo Makefile.PL perl5.12.2 Makefile.PL >/dev/null 2>&1 || exit 125 echo Make make >/dev/null 2>&1 || exit 125 PERL_DL_NONLAZY=1 /pro/bin/perl5.12.2 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/01*.t perl5.12.2 ../rt84260.pl x=$? git reset --hard exit $x $ cat ../rt84260.pl #!/pro/bin/perl5.12.2 use strict; use warnings; use lib qw( blib/lib blib/arch ); use Test::More tests => 5; diag ("TESTING RT84260"); use_ok ("DBI"); use_ok ("DBD::File"); use_ok ("DBIx::ContextualFetch"); my $dbh; ok ($dbh = DBI->connect ("dbi:File:", "", "", { RootClass => "DBIx::ContextualFetch", }), "Connect to dbi:File:"); is (ref $dbh, "DBIx::ContextualFetch::db", "root class is DBIx::ContextualFetch"); $ git bisect log git bisect start # good: [9c1851b59148f69a8e39a563b9ea2f390bf1881e] Prep 1.601 git bisect good 9c1851b59148f69a8e39a563b9ea2f390bf1881e # bad: [12f6d04571a57a9003f8a2cc8d3f8008767db9ef] tweak Changes for actual DBI 1.617 release date and revision git bisect bad 12f6d04571a57a9003f8a2cc8d3f8008767db9ef # good: [4325254f2e9abba5df8b13255861425dc30a5601] Fix a test which will not run with Gofer-autoproxy git bisect good 4325254f2e9abba5df8b13255861425dc30a5601 # bad: [bae823f09bec474f3b7d82191ed4c94214762466] simplifying SQL::Statement approval git bisect bad bae823f09bec474f3b7d82191ed4c94214762466 # good: [19e4523536d55f2c7decc0e22a0a1d8de51b4db8] Prep for next release git bisect good 19e4523536d55f2c7decc0e22a0a1d8de51b4db8 # good: [40d1c738c142be5ce6160ec1c966ac7c5d64a693] Add Win32 workaround to disable annoying popups. Only relevant when running tests from the repo, but still nice to handle. Patch from Jan Dubois. git bisect good 40d1c738c142be5ce6160ec1c966ac7c5d64a693 # bad: [3d1181b02183384a8978cb2a107a48d2318d2813] Review code (while writing DBD::File HowTo) and correct: - logical evaluation preferred from left to right (typical read order of developers) - fix issue when '-Flags' is set in $dbh->{dbm_berkeley_flags} - fix issue returning undef in fetch_one_row when key not known git bisect bad 3d1181b02183384a8978cb2a107a48d2318d2813 # good: [436bfd547f6892caa7cf23e8b0b5bd3cd85e52e4] Minor tweaks to the README git bisect good 436bfd547f6892caa7cf23e8b0b5bd3cd85e52e4 # bad: [ee3ab8887d009a8f7898018df1f1c198efb880b6] Restore PERL_POLLUTE mode for now so the DBI itself isn't the cause of premature pain with drivers that still require PERL_POLLUTE. git bisect bad ee3ab8887d009a8f7898018df1f1c198efb880b6 # bad: [51238d2ec00a22f8d6f6e0c10539492c3d240f09] add two phase initialization support git bisect bad 51238d2ec00a22f8d6f6e0c10539492c3d240f09 # good: [1c2a659a76fe8f0133d78d7126c62952a5db1209] - add 2 phase initialization support to DBI::DBD::SqlEngine - delete old code which's replacement has been proved in 1.612 and 1.613 - add Developers doc (splitted from DBD::File::Developers) - add HowTo git bisect good 1c2a659a76fe8f0133d78d7126c62952a5db1209 Show quoted text
> $dbh = DBI->connect('dbi:File:','','', {RootClass => > 'DBIx::ContextualFetch'}) > > Attached is a test case that tests for the problem. In 1.613_71, this > returns a DBIx::ContextualFetch::db object (as expected), but in > 1.613_90, it returns a DBI::db object instead. > > The RootClass attr seems to still work fine with other DBD drivers > (e.g.: SQLite, Pg). Only DBD::File seems affected (and derivatives such > as DBD::CSV).
-- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.17 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
Subject: Re: [rt.cpan.org #84260] DBD::File no longer works with RootClass connect attribute
Date: Thu, 28 Mar 2013 15:09:45 -0500
To: bug-DBI [...] rt.cpan.org
From: Michael Schout <mschout [...] gkg.net>
On 3/28/13 11:34 AM, h.m.brand@xs4all.nl via RT wrote: Show quoted text
> I had to switch back to perl-5.12.2 to be able to git bisect > I had to install DBIx::ContextualFetch on 5.12.2 to make the test fail
Just to make it clear: this is not 5.12 specific. The problem happens on 5.14, and 5.16 as well. Michael Schout
Subject: Re: [rt.cpan.org #84260] DBD::File no longer works with RootClass connect attribute
Date: Fri, 29 Mar 2013 00:14:48 +0100
To: bug-DBI [...] rt.cpan.org
From: "H.Merijn Brand" <h.m.brand [...] xs4all.nl>
On Thu, 28 Mar 2013 16:09:57 -0400, "mschout@gkg.net via RT" <bug-DBI@rt.cpan.org> wrote: Show quoted text
> > I had to switch back to perl-5.12.2 to be able to git bisect > > I had to install DBIx::ContextualFetch on 5.12.2 to make the test fail
> > Just to make it clear: this is not 5.12 specific.
I know, but "old"er DBI doesn't build on 5.1`6.3, so git bisect doesn't work Show quoted text
> The problem happens on 5.14, and 5.16 as well. > > Michael Schout
-- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.17 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
Issue was introduced by Gofer-Proxy workaround. Should be fixed with r15604. I currently use your test at the end of t/48dbi_dbd_sqlengine.t - I hope we can develop during QA Hackathon a better one. Thanks for reporting, Jens