Great. I'm glad that mystery is solved. Thanks. Tim.
On Fri, Aug 29, 2003 at 05:06:12PM +0200, H.Merijn Brand wrote: > On Fri 29 Aug 2003 16:49, Tim Bunce <[EMAIL PROTECTED]> wrote: > > On Fri, Aug 29, 2003 at 02:29:40PM +0200, H.Merijn Brand wrote: > > > On Thu 28 Aug 2003 20:59, Tim Bunce <[EMAIL PROTECTED]> wrote: > > > > On Thu, Aug 28, 2003 at 02:40:46PM +0200, H.Merijn Brand wrote: > > > > > > > > > > One of the reasons I'm still holding on to DBI-1.35 is > > > > > > > > > > Argument "" isn't numeric in null operation at > > > > > /pro/lib/perl5/site_perl/5.8.0/PA-RISC2.0/DBI.pm line 632. > > > > > which is caused by attr 'Username' which is either undef or blank > > > > > > > > I suspect the problem is in DBD::Unify. Does it happen for any other DBD's? > > > > > > a5:/pro/3gl/CPAN/DBD-Unify-0.27 102 > grep Username * > > > a5:/pro/3gl/CPAN/DBD-Unify-0.27 103 > grep Username */* > > > > I'm not sure why you're showing me greps. I think the problem is > > To show that *I* am/was not using the Username attribute :) > > > that DBD::Unify STORE is stringifying the value. > > > > Hang on... [wanders over to > > http://search.cpan.org/src/HMBRAND/DBD-Unify-0.26/dbdimp.ic] > > yes, your dbd_db_STORE_attrib function is doing > > int on = SvIV (valuesv); > > instead of > > int on = SvTRUE(valuesv); > > I can assure you I did not invent that line myself :) It was blindly copied > from some other DBD driver, as stated in the header: > > * Main sources were Oracle (1.03), FreeTDS (0.02) and Ingres (0.24, 0.25) > * whose writers seem to have copied from other sources too ;-) > > [ Wanders over to Oracle-1.03 ... > > lep a5:/pro/3gl/CPAN/DBD-Oracle-1.03 115 > grep -w on * | grep Sv > dbdimp.c: int on = SvTRUE(valuesv); > dbdimp.c: int on = SvTRUE(valuesv); > lep a5:/pro/3gl/CPAN/DBD-Oracle-1.03 116 > > > Hmm, no that's OK ... Wanders to FreeTDS ... > > lep a5:/pro/3gl/CPAN 119 > grep -rw on DBD-FreeTDS-0.02 | grep Sv > Exit 1 > lep a5:/pro/3gl/CPAN 120 > > > Hmm checking Ingres ... > > lep a5:/pro/3gl/CPAN 123 > grep -rw on DBD-Ingres-0.25 | grep Sv > DBD-Ingres-0.25/dbdimp.psc: int on = SvTRUE(valuesv); > DBD-Ingres-0.25/dbdimp.psc: int on = SvTRUE(valuesv); > lep a5:/pro/3gl/CPAN 124 > > > By then I was by no means an internals guy (and IMHO I'm still not), > so I'm sure I copied it from somewhere ] > > Funny that the statement STORE did it right: > > int dbd_st_STORE_attrib (SV *sth, imp_sth_t *imp_sth, SV *keysv, SV *valuesv) > { > STRLEN kl; > char *key = SvPV (keysv,kl); > SV *cachesv = NULL; > int on = SvTRUE (valuesv); > > I've removed the no warnings again, and changed SvIV () to SvTRUE () > > lep a5:/pro/3gl/CPAN/DBD-Unify-0.27 108 > make test > PERL_DL_NONLAZY=1 /pro/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, > 'blib/lib', 'blib/arch')" t/*.t > t/01-base.........ok > t/02-connect......ok > t/03-general......ok > t/04-long.........ok > t/05-reauth.......ok > t/10-dbi-drv......ok > t/11-dbi-dbh......ok > t/12-dbi-sth......ok > t/20-uni-basic....ok > t/21-uni-regex....ok > t/27-uni-max......ok > t/30-reconnect....ok > t/99-done......... > To disable future max tests: setenv DBD_UNIFY_SKIP_27 1 > skipped > all skipped: no reason given > All tests successful, 1 test skipped. > Files=13, Tests=598, 9 wallclock secs ( 7.73 cusr + 0.65 csys = 8.38 CPU) > lep a5:/pro/3gl/CPAN/DBD-Unify-0.27 109 > > > > > > > I have rewritten DBD-Unify (with pain in my heart) to replace > > > > > $dbh->{DBDverbose} (which IMHO is a perfectly good name, and should be > > > > > adopted > > > > > by all drivers) > > > > > > Oh, and I forgot to say: See, I do what I promised in Paris :) > > > > :) > > > > Tim. > > -- > 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/ > > >
