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]>