On Fri, Apr 15, 2005 at 03:59:23PM -0400, Rudy Lippan wrote: > On Fri, 15 Apr 2005, Patrick Galbraith wrote: > > > What about how to deal with returning values (my_ulonglong) that are > > larger than the default defined value of dbd_st_rows from DBI (int) ? > > Well, in Driver.xst (mysql.xst) dbd_st_rows returns void and sticks an SV > on the stack, in this case the SV contains a string since the value returned > is > is (can be) larger than an int. It would be nice, in the case of AMD64 / > perl > compiled with 64 bit ints, to return an sviv rather than a svpv. > > > How do you ensure you can handle differently than the default rows? > > (like now how it's done with 'sprintf(buf, "%llu")' ? It seems you need > > some sort of 'override' of default behaviour. > > You override the default behaviour by overriding the default rows in mysql.xs > (I > think). The problem with doing this is, however, that xsubpp then complains > about the dup function. > > Humm, now that I think of it, if you really want to get rid of the warning, > you > can do some #define hackery viz.: > > > #define foobar rows > void > foobar(sth) > SV* sth > CODE: > ... > > The above should make subpp happy and should get rid of the dup function > warning.
I suspect that won't work, sadly, as xsubpp uses the name to generate some C code. (But feel free to try it.) Tim.