On Thu, 2007-07-19 at 09:36 -0500, Scott T. Hildreth wrote:
> On Thu, 2007-07-19 at 09:42 +0200, Erwan Lemonnier wrote:
> > Hi Tim!
> > 
> > > Ah, now it's getting interesting! :)
> > 
> > So I thought :)
> > 
> > > Are the two versions of DBD::Oracle built against the same Oracle
> > > version/installation?
> > 
> > No.
> > The one used by perl 5.6.2 was built against an oracle 9.2.1.0 (unsure
> > of the exact version, but it was a 9.*). The one used by perl 5.8.5
> > and perl 5.8.8 was built against an oracle 10.2.0.
> > 
> > > What differences are there in the configuration of the two perl versions?
> > 
> > a diff between perl -V for my perl 5.6.2 and perl 5.8.8 shows the
> > following differences (the other options are in the 'perl -V' I
> > included in my very first post):
> > 
> > * 5.6.2:
> > osvers=2.6.9-42.0.2.elsmp
> > config_args='-Dprefix=/opt/perl-5.6.2'
> > useperlio=undef
> > ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
> > cppflags='-fno-strict-aliasing'
> > libs=-lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil
> > ccdlflags='-rdynamic'
> > Compile-time options: USE_LARGE_FILES
> > 
> > * 5.8.8:
> > osvers=2.6.9-55.elsmp
> > config_args=''
> > useperlio=define
> > bincompat5005=undef
> > ccflags ='-fno-strict-aliasing -pipe -Wdeclaration-after-statement
> > -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
> > cppflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement
> > -I/usr/local/include'
> > libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lc
> > gnulibc_version='2.3.4'
> > ccdlflags='-Wl,-E'
> > Compile-time options: PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO
> > 
> > 
> > > Take a look at the source for the Perl_sv_2nv() function in sv.c
> > > in the two distributions.
> > > Also check for differences in the perl config
> > > items that impact that code.
> > 
> > Damn. I had a bad feeling I would end up there.
> > Ok, I'll put on my deep dive googles and switch on the tolkien
> > translator. If you don't hear from me within a week, call the asylum
> > to fetch me ;)
> > 
> > > Try it with:
> > >
> > >   my $v1 =  "1.73696";
> > >   showbin($v1);
> > >   require DBD::Oracle;
> > >   my $v2 =  "1.73696";
> > >   showbin($v2);
> > 
> > I get:
> > 
> > [HEAD] ~/HEAD/test/t/> !1030$ /opt/perl-5.6.2/bin/perl
> > 02_test_require_dbd_oracle.t
> > 0011111111111011110010101001011010010001101001110101110011010001
> > requiring
> > 0011111111111011110010101001011010010001101001110101110011010001
> > 
> > [HEAD] ~/HEAD/test/t/> !1031$ /opt/perl-5.8.8/bin/perl
> > 02_test_require_dbd_oracle.t
> > 0011111111111011110010101001011010010001101001110101110011010001
> > requiring
> > 0011111111111011110010101001011010010001101001110101110011010001
> > 
> > No difference. What triggered the problem happened during the connect,
> > but not during 'require DBD::Oracle'.
> > 
> > 
> > > I know that on Solaris the act of loading the Oracle library (e.g.
> > > libclntsh.so) could suck in other libraries which would cause
> > > subtle side effects.
> > >
> > > The particular case I (vagely) recall related to alarm(). Loading the
> > > Oracle library caused the threaded version of alarm() to be loaded and
> > > take precedence. So alarm(0) after loading DBD::Oracle wouldn't cancel
> > > the alarm($timeout) set before loading it. Fun. I don't recall now
> > > if/how that got resolved.
> > >
> > > Anyway, I mention it because it seems like this is a similar issue.
> > 
> > Agggh. This example gives me goose flesh. I just hope I am not facing
> > something like that...
> > 
> > Is there anyone around with access to an oracle database 10.* and
> > running perl 5.8.* who could run the test code I provided earlier? The
> > one that just connects? It would be interesting to know how strongly
> > dependent it is to just my specific setup...
> 
> I know you asked for Oracle 10, but here is the result of 
> 
>   Perl            : 5.008006    (i686-linux)
>   OS              : linux       (8.0)
>   DBI             : 1.54
>   DBD::Sponge     : 12.008696
>   DBD::Proxy      : 0.2004
>   DBD::Oracle     : 1.19
> 
>   Oracle 9.2.0.1.0
> 
> bin: 0011111111111011110010101001011010010001101001110101110011010001
> connecting
> bin: 0011111111111011110010101001011010010001101001110101110011010001

 ... and

bin: 0011111111111011110010101001011010010001101001110101110011010001
connecting
bin: 0011111111111011110010101001011010010001101001110101110011010000

with 

 Perl            : 5.008008    (i686-linux)
  OS              : linux       (2.6.14.6)
  DBI             : 1.54
  DBD::mysql      : 3.0002
  DBD::Sponge     : 12.008696
  DBD::SQLite     : 1.11
  DBD::Proxy      : 0.2004
  DBD::Oracle     : 1.19

connecting to 10.2.0.3.0 or 9.2.0.1.0 
> 

It seems to be the DBD::Oracle built against Oracle 10.x.

-- 
Scott T. Hildreth <[EMAIL PROTECTED]>

Reply via email to