On Fri, Sep 07, 2001 at 04:27:10PM -0400, Michael G Schwern wrote:
> DBI 1.20 & bleadperl seems to have some trouble with 64bit integers,
> at least on Linux.
DBI 1.19 is having similar problems, but passing all tests. I've
attached the differences between the generated DBI.c file in 1.19 and
1.20 for bleadperl w/64 bit ints.
These are the warnings I get from 5.6.1 w/64 bit ints.
cc -c -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O6 -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fpic
-I/usr/local/perl5.6.1/lib/5.6.1/ppc-linux-64all/CORE -DDBI_NO_THREADS Perl.c
Perl.xsi: In function `boot_DBD__Perl':
Perl.xsi:15: warning: cast to pointer from integer of different size
SET_BITS=64 -O6 -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fpic
-I/usr/local/perl5.6.1/lib/5.6.1/ppc-linux-64all/CORE -DDBI_NO_THREADS DBI.c
DBI.xs: In function `dbi_bootinit':
DBI.xs:221: warning: cast from pointer to integer of different size
DBI.xs:223: warning: cast to pointer from integer of different size
DBI.xs: In function `dbih_dumpcom':
DBI.xs:820: warning: cast from pointer to integer of different size
DBI.xs:820: warning: cast from pointer to integer of different size
DBI.xs: In function `dbih_clearcom':
DBI.xs:964: warning: cast from pointer to integer of different size
DBI.xs:964: warning: cast from pointer to integer of different size
These are from bleadperl w/64 bit ints.
cc -c -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O6 -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fpic
-I/usr/local/bleadperl/lib/5.7.2/ppc-linux-64int/CORE -DDBI_NO_THREADS Perl.c
Perl.xsi: In function `boot_DBD__Perl':
Perl.xsi:15: warning: cast to pointer from integer of different size
cc -c -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O6 -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fpic
-I/usr/local/bleadperl/lib/5.7.2/ppc-linux-64int/CORE -DDBI_NO_THREADS DBI.c
DBI.xs: In function `dbi_bootinit':
DBI.xs:221: warning: cast from pointer to integer of different size
DBI.xs:223: warning: cast to pointer from integer of different size
DBI.xs: In function `set_trace_file':
DBI.xs:460: warning: passing arg 1 of `setlinebuf' from incompatible pointer type
DBI.xs: In function `dbih_dumpcom':
DBI.xs:820: warning: cast from pointer to integer of different size
DBI.xs:820: warning: cast from pointer to integer of different size
DBI.xs: In function `dbih_clearcom':
DBI.xs:964: warning: cast from pointer to integer of different size
DBI.xs:964: warning: cast from pointer to integer of different size
DBI.xs: In function `XS_DBI__var_FETCH':
DBI.xs:2641: warning: passing arg 1 of `fprintf' from incompatible pointer type
bleadperl w/32 bit ints only says...
cc -c -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O6 -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fpic
-I/usr/local/bleadperl-32int/lib/5.7.2/ppc-linux/CORE -DDBI_NO_THREADS DBI.c
DBI.xs: In function `set_trace_file':
DBI.xs:460: warning: passing arg 1 of `setlinebuf' from incompatible pointer type
DBI.xs: In function `XS_DBI__var_FETCH':
DBI.xs:2641: warning: passing arg 1 of `fprintf' from incompatible pointer type
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl6 Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
The Immortality Devices are knowned to stop aging. I m not sure about curing
seizure.
--Alex Chiu, Immortality Guy
--- DBI-1.19/DBI.c Fri Sep 7 16:37:43 2001
+++ DBI-1.20/DBI.c Fri Sep 7 16:23:14 2001
@@ -7,7 +7,7 @@
*/
#line 1 "DBI.xs"
-/* $Id: DBI.xs,v 10.34 2001/07/20 22:28:28 timbo Exp $
+/* $Id: DBI.xs,v 11.2 2001/08/24 22:10:44 timbo Exp $
*
* Copyright (c) 1994, 1995, 1996, 1997 Tim Bunce England.
*
@@ -104,6 +104,7 @@
#define IMA_NO_TAINT_IN 0x0010 /* don't check for tainted args */
#define IMA_NO_TAINT_OUT 0x0020 /* don't taint results */
#define IMA_COPY_STMT 0x0040 /* copy sth Statement to dbh */
+#define IMA_END_WORK 0x0080 /* set on commit & rollback */
#define DBIc_STATE_adjust(imp_xxh, state) \
(SvOK(state) /* SQLSTATE is implemented by driver */ \
@@ -825,8 +826,8 @@
char *pad = " ";
if (!msg)
msg = "dbih_dumpcom";
- PerlIO_printf(DBILOGFP," %s (h 0x%lx, com 0x%lx):\n", msg,
- (IV)DBIc_MY_H(imp_xxh), (IV)imp_xxh);
+ PerlIO_printf(DBILOGFP," %s (h 0x%lx, com 0x%lx):\n",
+ msg, (IV)DBIc_MY_H(imp_xxh), (IV)imp_xxh);
if (DBIc_COMSET(imp_xxh)) sv_catpv(flags,"COMSET ");
if (DBIc_IMPSET(imp_xxh)) sv_catpv(flags,"IMPSET ");
if (DBIc_ACTIVE(imp_xxh)) sv_catpv(flags,"Active ");
@@ -837,6 +838,7 @@
if (DBIc_is(imp_xxh, DBIcf_PrintError)) sv_catpv(flags,"PrintError ");
if (DBIc_is(imp_xxh, DBIcf_ShowErrorStatement))
sv_catpv(flags,"ShowErrorStatement ");
if (DBIc_is(imp_xxh, DBIcf_AutoCommit)) sv_catpv(flags,"AutoCommit ");
+ if (DBIc_is(imp_xxh, DBIcf_BegunWork)) sv_catpv(flags,"BegunWork ");
if (DBIc_is(imp_xxh, DBIcf_LongTruncOk)) sv_catpv(flags,"LongTruncOk ");
if (DBIc_is(imp_xxh, DBIcf_MultiThread)) sv_catpv(flags,"MultiThread ");
if (DBIc_is(imp_xxh, DBIcf_Taint)) sv_catpv(flags,"Taint ");
@@ -955,6 +957,7 @@
sv_free(_imp2com(imp_xxh, attr.State));
sv_free(_imp2com(imp_xxh, attr.Err));
sv_free(_imp2com(imp_xxh, attr.Errstr));
+ sv_free(_imp2com(imp_xxh, attr.FetchHashKeyName));
}
#ifdef DBI_USE_THREADS
@@ -1199,10 +1202,15 @@
DBIc_CACHED_KIDS(imp_dbh) = (HV*)SvREFCNT_inc(SvRV(valuesv));
}
}
- else if (htype<=DBIt_DB && strEQ(key, "AutoCommit")) {
- /* The driver should have intercepted this and handled it. */
- croak("DBD driver has not implemented the AutoCommit attribute");
- /* DBIc_set(imp_xxh,DBIcf_AutoCommit, on); */
+ else if (htype<=DBIt_DB && keylen==10 && strEQ(key, "AutoCommit")) {
+ /* driver should have intercepted this and either handled it */
+ /* or set valuesv to either the 'magic' on or off value. */
+ if (SvIV(valuesv) != -900 && SvIV(valuesv) != -901)
+ croak("DBD driver has not implemented the AutoCommit attribute");
+ DBIc_set(imp_xxh,DBIcf_AutoCommit, (SvIV(valuesv)==-901));
+ }
+ else if (htype==DBIt_DB && keylen==9 && strEQ(key, "BegunWork")) {
+ DBIc_set(imp_xxh,DBIcf_BegunWork, on);
}
else if (htype==DBIt_ST && strEQ(key, "NUM_OF_FIELDS")) {
D_imp_sth(h);
@@ -1268,36 +1276,51 @@
/* XXX needs to be split into separate dr/db/st funcs */
/* XXX probably needs some form of hashing->switch lookup */
- if (htype==DBIt_ST && keylen==7 && strnEQ(key, "NAME_", 5)
- && (key[5]=='u' || key[5]=='l') && key[6] == 'c'
+ if (htype==DBIt_ST && *key=='N' && (keylen==7 || keylen==9 || keylen==12)
+ && strnEQ(key, "NAME_", 5)
+ && ( (keylen==9 && strEQ(key, "NAME_hash"))
+ || ((key[5]=='u' || key[5]=='l') && key[6] == 'c'
+ && (!key[7] || strnEQ(&key[7], "_hash", 5)))
+ )
) {
D_imp_sth(h);
- AV *name = NULL;
+ AV *name_av = NULL;
/* fetch from tied outer handle to trigger FETCH magic */
svp = hv_fetch((HV*)DBIc_MY_H(imp_sth), "NAME",4, FALSE);
sv = (svp) ? *svp : &sv_undef;
if (SvGMAGICAL(sv)) /* resolve the magic */
mg_get(sv); /* can core dump in 5.004 */
- name = (AV*)SvRV(sv);
+ name_av = (AV*)SvRV(sv);
- if (sv && name) {
- int up = (key[5] == 'u');
- AV *av = newAV();
+ if (sv && name_av) {
+ char *name;
+ int upcase = (key[5] == 'u');
+ AV *av = Nullav;
+ HV *hv = Nullhv;
+ if (strEQ(&key[strlen(key)-5], "_hash"))
+ hv = newHV();
+ else av = newAV();
i = DBIc_NUM_FIELDS(imp_sth);
- assert(i == AvFILL(name)+1);
+ assert(i == AvFILL(name_av)+1);
while(--i >= 0) {
- sv = newSVsv(AvARRAY(name)[i]);
- for (p = SvPV(sv,lna); p && *p; ++p) {
+ sv = newSVsv(AvARRAY(name_av)[i]);
+ name = SvPV(sv,lna);
+ if (key[5] != 'h') { /* "NAME_hash" */
+ for (p = name; p && *p; ++p) {
#ifdef toUPPER_LC
- *p = (up) ? toUPPER_LC(*p) : toLOWER_LC(*p);
+ *p = (upcase) ? toUPPER_LC(*p) : toLOWER_LC(*p);
#else
- *p = (up) ? toUPPER(*p) : toLOWER(*p);
+ *p = (upcase) ? toUPPER(*p) : toLOWER(*p);
#endif
+ }
}
- av_store(av, i, sv);
+ if (av)
+ av_store(av, i, sv);
+ else
+ hv_store(hv, name, SvCUR(sv), newSViv(i), 0);
}
- valuesv = newRV(sv_2mortal((SV*)av));
+ valuesv = newRV(sv_2mortal( (av ? (SV*)av : (SV*)hv) ));
cacheit = TRUE; /* can't change */
}
}
@@ -1388,9 +1411,10 @@
valuesv = boolSV(DBIc_has(imp_xxh,DBIcf_Taint));
}
else if (htype<=DBIt_DB && keylen==10 && strEQ(key, "AutoCommit")) {
- /* The driver should have intercepted this and handled it. */
- croak("DBD driver has not implemented the AutoCommit attribute");
- /* valuesv = boolSV(DBIc_has(imp_xxh,DBIcf_AutoCommit)); */
+ valuesv = boolSV(DBIc_has(imp_xxh,DBIcf_AutoCommit));
+ }
+ else if (keylen==9 && strEQ(key, "BegunWork")) {
+ valuesv = boolSV(DBIc_has(imp_xxh,DBIcf_BegunWork));
}
else { /* finally check the actual hash just in case */
svp = hv_fetch((HV*)SvRV(h), key, keylen, FALSE);
@@ -1404,9 +1428,6 @@
if (cacheit) {
svp = hv_fetch((HV*)SvRV(h), key, keylen, TRUE);
sv = *svp;
-if (DBIS->debug >= 9) {
-warn("cacheit %d %s: old: sv%p='%s', new: '%s'", getpid(), key, sv,
neatsvpv(sv,0),neatsvpv(valuesv,0));
-}
*svp = SvREFCNT_inc(valuesv);
sv_free(sv);
}
@@ -1970,6 +1991,25 @@
PerlIO_flush(logfp);
}
+ if (ima && ima->flags & IMA_END_WORK) { /* commit() or rollback() */
+ if (DBIc_has(imp_xxh, DBIcf_BegunWork)) {
+ DBIc_off(imp_xxh, DBIcf_BegunWork);
+ if (!DBIc_has(imp_xxh, DBIcf_AutoCommit)) {
+ /* We only get here if the driver hasn't implemented their own code
+ */
+ /* for begin_work, or has but hasn't correctly turned AutoCommit
+ */
+ /* back on in their commit or rollback code. So we have to do it.
+ */
+ /* This is bad because it'll probably trigger a spurious commit()
+ */
+ SPAGAIN;
+ PUSHMARK(SP);
+ XPUSHs(h);
+ XPUSHs(sv_2mortal(newSVpv("AutoCommit",0)));
+ XPUSHs(&sv_yes);
+ PUTBACK;
+ perl_call_method("STORE", G_DISCARD);
+ }
+ }
+ }
+
if ( !keep_error /* so would be a new error */
&& SvTRUE(DBIc_ERR(imp_xxh)) /* and an error exists */
&& call_depth <= 1 /* skip nested (internal) calls */
@@ -2295,8 +2335,7 @@
/* The DBI Perl interface (via XS) starts here. Currently these are */
/* all internal support functions. Note install_method and see DBI.pm */
-#line 2299 "DBI.c"
-XS(XS_DBI_constant); /* prototype to pass -Wmissing-prototypes */
+#line 2339 "DBI.c"
XS(XS_DBI_constant)
{
dXSARGS;
@@ -2306,15 +2345,14 @@
{
I32 RETVAL;
dXSTARG;
-#line 2336 "DBI.xs"
+#line 2376 "DBI.xs"
RETVAL = ix;
-#line 2312 "DBI.c"
+#line 2351 "DBI.c"
XSprePUSH; PUSHi((IV)RETVAL);
}
XSRETURN(1);
}
-XS(XS_DBI_preparse); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI_preparse)
{
dXSARGS;
@@ -2322,7 +2360,7 @@
Perl_croak(aTHX_ "Usage: DBI::preparse(h, statement, ps_accept, ps_return,
foo=Nullch)");
{
SV * h = ST(0);
- char * statement = (char *)SvPV_nolen(ST(1));
+ char * statement = (char *)SvPV(ST(1),PL_na);
IV ps_accept = (IV)SvIV(ST(2));
IV ps_return = (IV)SvIV(ST(3));
void * foo;
@@ -2341,7 +2379,6 @@
XSRETURN(1);
}
-XS(XS_DBI__setup_handle); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI__setup_handle)
{
dXSARGS;
@@ -2349,18 +2386,17 @@
Perl_croak(aTHX_ "Usage: DBI::_setup_handle(sv, imp_class, parent,
imp_datasv)");
{
SV * sv = ST(0);
- char * imp_class = (char *)SvPV_nolen(ST(1));
+ char * imp_class = (char *)SvPV(ST(1),PL_na);
SV * parent = ST(2);
SV * imp_datasv = ST(3);
-#line 2358 "DBI.xs"
+#line 2398 "DBI.xs"
dbih_setup_handle(sv, imp_class, parent, SvOK(imp_datasv) ? imp_datasv : Nullsv);
ST(0) = &sv_undef;
-#line 2359 "DBI.c"
+#line 2396 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBI__get_imp_data); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI__get_imp_data)
{
dXSARGS;
@@ -2368,15 +2404,14 @@
Perl_croak(aTHX_ "Usage: DBI::_get_imp_data(sv)");
{
SV * sv = ST(0);
-#line 2366 "DBI.xs"
+#line 2406 "DBI.xs"
D_imp_xxh(sv);
ST(0) = sv_mortalcopy(DBIc_IMP_DATA(imp_xxh)); /* okay if NULL */
-#line 2375 "DBI.c"
+#line 2411 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBI__handles); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI__handles)
{
dXSARGS;
@@ -2385,7 +2420,7 @@
SP -= items;
{
SV * sv = ST(0);
-#line 2374 "DBI.xs"
+#line 2414 "DBI.xs"
/* return the outer and inner handle for any given handle */
D_imp_xxh(sv);
SV *ih = sv_mortalcopy( dbih_inner(sv, "_handles") );
@@ -2393,13 +2428,12 @@
EXTEND(SP, 2);
PUSHs(oh); /* returns outer handle then inner */
PUSHs(ih);
-#line 2397 "DBI.c"
+#line 2432 "DBI.c"
PUTBACK;
return;
}
}
-XS(XS_DBI_set_err); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI_set_err)
{
dXSARGS;
@@ -2422,7 +2456,7 @@
else {
state = ST(3);
}
-#line 2390 "DBI.xs"
+#line 2430 "DBI.xs"
{
dPERINTERP;
D_imp_xxh(sv);
@@ -2445,12 +2479,11 @@
/* done by returning theough dispatch and letting the DBI handle it */
ST(0) = &sv_undef;
}
-#line 2449 "DBI.c"
+#line 2483 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBI_neat); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI_neat)
{
dXSARGS;
@@ -2465,21 +2498,20 @@
else {
maxlen = (unsigned long)SvUV(ST(1));
}
-#line 2419 "DBI.xs"
+#line 2459 "DBI.xs"
ST(0) = sv_2mortal(newSVpv(neatsvpv(sv, maxlen), 0));
-#line 2471 "DBI.c"
+#line 2504 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBI_hash); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI_hash)
{
dXSARGS;
if (items < 1 || items > 2)
Perl_croak(aTHX_ "Usage: DBI::hash(key, i=0)");
{
- char * key = (char *)SvPV_nolen(ST(0));
+ char * key = (char *)SvPV(ST(0),PL_na);
int i;
int RETVAL;
dXSTARG;
@@ -2489,22 +2521,20 @@
else {
i = (int)SvIV(ST(1));
}
-#line 2427 "DBI.xs"
+#line 2467 "DBI.xs"
RETVAL = dbi_hash(key, i);
-#line 2495 "DBI.c"
+#line 2527 "DBI.c"
XSprePUSH; PUSHi((IV)RETVAL);
}
XSRETURN(1);
}
-XS(XS_DBI_looks_like_number); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI_looks_like_number)
{
dXSARGS;
- PERL_UNUSED_VAR(ax); /* -Wall */
SP -= items;
{
-#line 2434 "DBI.xs"
+#line 2474 "DBI.xs"
int i;
EXTEND(SP, items);
for(i=0; i < items ; ++i) {
@@ -2516,22 +2546,21 @@
else
PUSHs(&sv_no);
}
-#line 2520 "DBI.c"
+#line 2550 "DBI.c"
PUTBACK;
return;
}
}
-XS(XS_DBI__install_method); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI__install_method)
{
dXSARGS;
if (items < 3 || items > 4)
Perl_croak(aTHX_ "Usage: DBI::_install_method(class, meth_name, file,
attribs=Nullsv)");
{
- char * class = (char *)SvPV_nolen(ST(0));
- char * meth_name = (char *)SvPV_nolen(ST(1));
- char * file = (char *)SvPV_nolen(ST(2));
+ char * class = (char *)SvPV(ST(0),PL_na);
+ char * meth_name = (char *)SvPV(ST(1),PL_na);
+ char * file = (char *)SvPV(ST(2),PL_na);
SV * attribs;
if (items < 4)
@@ -2539,7 +2568,7 @@
else {
attribs = ST(3);
}
-#line 2454 "DBI.xs"
+#line 2494 "DBI.xs"
{
dPERINTERP;
/* install another method name/interface for the DBI dispatcher */
@@ -2592,12 +2621,11 @@
PerlIO_printf(DBILOGFP,"\n");
ST(0) = &sv_yes;
}
-#line 2596 "DBI.c"
+#line 2625 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBI_trace); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI_trace)
{
dXSARGS;
@@ -2622,7 +2650,7 @@
else {
file = ST(2);
}
-#line 2516 "DBI.xs"
+#line 2556 "DBI.xs"
{
dPERINTERP;
if (!DBIS) {
@@ -2645,13 +2673,12 @@
sv_setiv(get_sv("DBI::dbi_debug",0x5), level);
}
}
-#line 2649 "DBI.c"
+#line 2677 "DBI.c"
XSprePUSH; PUSHi((IV)RETVAL);
}
XSRETURN(1);
}
-XS(XS_DBI_dump_handle); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI_dump_handle)
{
dXSARGS;
@@ -2665,7 +2692,7 @@
if (items < 2)
msg = "DBI::dump_handle";
else {
- msg = (char *)SvPV_nolen(ST(1));
+ msg = (char *)SvPV(ST(1),PL_na);
}
if (items < 3)
@@ -2673,17 +2700,16 @@
else {
level = (int)SvIV(ST(2));
}
-#line 2549 "DBI.xs"
+#line 2589 "DBI.xs"
{
D_imp_xxh(sv);
dbih_dumpcom(imp_xxh, msg, level);
}
-#line 2682 "DBI.c"
+#line 2709 "DBI.c"
}
XSRETURN_EMPTY;
}
-XS(XS_DBI__svdump); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI__svdump)
{
dXSARGS;
@@ -2691,7 +2717,7 @@
Perl_croak(aTHX_ "Usage: DBI::_svdump(sv)");
{
SV * sv = ST(0);
-#line 2559 "DBI.xs"
+#line 2599 "DBI.xs"
{
dPERINTERP;
PerlIO_printf(DBILOGFP, "DBI::_svdump(%s)", neatsvpv(sv,0));
@@ -2699,12 +2725,11 @@
sv_dump(sv);
#endif
}
-#line 2703 "DBI.c"
+#line 2729 "DBI.c"
}
XSRETURN_EMPTY;
}
-XS(XS_DBI__var_FETCH); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBI__var_FETCH)
{
dXSARGS;
@@ -2712,7 +2737,7 @@
Perl_croak(aTHX_ "Usage: DBI::var::FETCH(sv)");
{
SV * sv = ST(0);
-#line 2574 "DBI.xs"
+#line 2614 "DBI.xs"
dPERINTERP;
/* Note that we do not come through the dispatcher to get here. */
STRLEN lna;
@@ -2788,12 +2813,11 @@
}
PUSHMARK(mark); /* reset mark (implies one arg as we were called with one arg?)
*/
perl_call_sv((SV*)GvCV(imp_gv), GIMME);
-#line 2792 "DBI.c"
+#line 2817 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____st__get_fbav); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st__get_fbav)
{
dXSARGS;
@@ -2801,16 +2825,15 @@
Perl_croak(aTHX_ "Usage: DBD::_::st::_get_fbav(sth)");
{
SV * sth = ST(0);
-#line 2658 "DBI.xs"
+#line 2698 "DBI.xs"
D_imp_sth(sth);
AV *av = dbih_get_fbav(imp_sth);
ST(0) = sv_2mortal(newRV((SV*)av));
-#line 2809 "DBI.c"
+#line 2833 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____st__set_fbav); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st__set_fbav)
{
dXSARGS;
@@ -2819,7 +2842,7 @@
{
SV * sth = ST(0);
SV * src_rv = ST(1);
-#line 2667 "DBI.xs"
+#line 2707 "DBI.xs"
D_imp_sth(sth);
int i;
AV *src_av;
@@ -2835,12 +2858,11 @@
sv_setsv(AvARRAY(dst_av)[i], AvARRAY(src_av)[i]);
}
ST(0) = sv_2mortal(newRV((SV*)dst_av));
-#line 2839 "DBI.c"
+#line 2862 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____st_bind_col); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st_bind_col)
{
dXSARGS;
@@ -2857,15 +2879,14 @@
else {
attribs = ST(3);
}
-#line 2691 "DBI.xs"
+#line 2731 "DBI.xs"
DBD_ATTRIBS_CHECK("bind_col", sth, attribs);
ST(0) = boolSV(dbih_sth_bind_col(sth, col, ref, attribs));
-#line 2864 "DBI.c"
+#line 2886 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____st_bind_columns); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st_bind_columns)
{
dXSARGS;
@@ -2873,7 +2894,7 @@
Perl_croak(aTHX_ "Usage: DBD::_::st::bind_columns(sth, ...)");
{
SV * sth = ST(0);
-#line 2698 "DBI.xs"
+#line 2738 "DBI.xs"
D_imp_sth(sth);
SV *colsv;
SV *attribs = &sv_undef;
@@ -2901,12 +2922,11 @@
break;
}
}
-#line 2905 "DBI.c"
+#line 2926 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____st_fetchrow_array); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st_fetchrow_array)
{
dXSARGS;
@@ -2916,7 +2936,7 @@
SP -= items;
{
SV * sth = ST(0);
-#line 2733 "DBI.xs"
+#line 2773 "DBI.xs"
dPERINTERP;
SV *retsv;
if (CvDEPTH(cv) == 99) {
@@ -2959,13 +2979,12 @@
PUSHs(AvARRAY(av)[i]);
}
}
-#line 2963 "DBI.c"
+#line 2983 "DBI.c"
PUTBACK;
return;
}
}
-XS(XS_DBD_____st_fetchrow_hashref); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st_fetchrow_hashref)
{
dXSARGS;
@@ -2974,19 +2993,19 @@
{
SV * sth = ST(0);
char * keyattrib;
-#line 2782 "DBI.xs"
+#line 2822 "DBI.xs"
dPERINTERP;
SV *rowavr;
D_imp_sth(sth);
-#line 2982 "DBI.c"
+#line 3001 "DBI.c"
SV * RETVAL;
if (items < 2)
keyattrib = Nullch;
else {
- keyattrib = (char *)SvPV_nolen(ST(1));
+ keyattrib = (char *)SvPV(ST(1),PL_na);
}
-#line 2786 "DBI.xs"
+#line 2826 "DBI.xs"
PUSHMARK(sp);
XPUSHs(sth);
PUTBACK;
@@ -3027,14 +3046,13 @@
RETVAL = newSV(0); /* mutable undef for 5.004_04 */
#endif
}
-#line 3031 "DBI.c"
+#line 3050 "DBI.c"
ST(0) = RETVAL;
sv_2mortal(ST(0));
}
XSRETURN(1);
}
-XS(XS_DBD_____st_fetch); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st_fetch)
{
dXSARGS;
@@ -3043,7 +3061,7 @@
Perl_croak(aTHX_ "Usage: %s(sth)", GvNAME(CvGV(cv)));
{
SV * sth = ST(0);
-#line 2836 "DBI.xs"
+#line 2876 "DBI.xs"
int num_fields;
if (CvDEPTH(cv) == 99) {
ix = ix; /* avoid 'unused variable' warning' */
@@ -3067,12 +3085,11 @@
PUTBACK;
ST(0) = sv_2mortal(newRV((SV*)av));
}
-#line 3071 "DBI.c"
+#line 3089 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____st_rows); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st_rows)
{
dXSARGS;
@@ -3080,16 +3097,15 @@
Perl_croak(aTHX_ "Usage: DBD::_::st::rows(sth)");
{
SV * sth = ST(0);
-#line 2865 "DBI.xs"
+#line 2905 "DBI.xs"
D_imp_sth(sth);
IV rows = DBIc_ROW_COUNT(imp_sth);
ST(0) = sv_2mortal(newSViv(rows));
-#line 3088 "DBI.c"
+#line 3105 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____st_finish); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____st_finish)
{
dXSARGS;
@@ -3097,30 +3113,28 @@
Perl_croak(aTHX_ "Usage: DBD::_::st::finish(sth)");
{
SV * sth = ST(0);
-#line 2874 "DBI.xs"
+#line 2914 "DBI.xs"
D_imp_sth(sth);
DBIc_ACTIVE_off(imp_sth);
ST(0) = &sv_yes;
-#line 3105 "DBI.c"
+#line 3121 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_DESTROY)
{
dXSARGS;
{
-#line 2885 "DBI.xs"
+#line 2925 "DBI.xs"
/* the interesting stuff happens in DBD::_mem::common::DESTROY */
items = items; /* avoid 'unused variable' warning */
ST(0) = &sv_undef;
-#line 3119 "DBI.c"
+#line 3134 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_STORE); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_STORE)
{
dXSARGS;
@@ -3130,16 +3144,15 @@
SV * h = ST(0);
SV * keysv = ST(1);
SV * valuesv = ST(2);
-#line 2896 "DBI.xs"
+#line 2936 "DBI.xs"
ST(0) = &sv_yes;
if (!dbih_set_attr_k(h, keysv, 0, valuesv))
ST(0) = &sv_no;
-#line 3138 "DBI.c"
+#line 3152 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_FETCH); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_FETCH)
{
dXSARGS;
@@ -3148,14 +3161,13 @@
{
SV * h = ST(0);
SV * keysv = ST(1);
-#line 2906 "DBI.xs"
+#line 2946 "DBI.xs"
ST(0) = dbih_get_attr_k(h, keysv, 0);
-#line 3154 "DBI.c"
+#line 3167 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_event); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_event)
{
dXSARGS;
@@ -3163,7 +3175,7 @@
Perl_croak(aTHX_ "Usage: DBD::_::common::event(h, type, a1=&sv_undef,
a2=&sv_undef)");
{
SV * h = ST(0);
- char * type = (char *)SvPV_nolen(ST(1));
+ char * type = (char *)SvPV(ST(1),PL_na);
SV * a1;
SV * a2;
@@ -3178,17 +3190,16 @@
else {
a2 = ST(3);
}
-#line 2916 "DBI.xs"
+#line 2956 "DBI.xs"
{
dPERINTERP;
ST(0) = sv_mortalcopy(DBIh_EVENT2(h, type, a1, a2));
}
-#line 3187 "DBI.c"
+#line 3199 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_private_data); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_private_data)
{
dXSARGS;
@@ -3196,15 +3207,14 @@
Perl_croak(aTHX_ "Usage: DBD::_::common::private_data(h)");
{
SV * h = ST(0);
-#line 2926 "DBI.xs"
+#line 2966 "DBI.xs"
D_imp_xxh(h);
ST(0) = sv_mortalcopy(DBIc_IMP_DATA(imp_xxh));
-#line 3203 "DBI.c"
+#line 3214 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_err); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_err)
{
dXSARGS;
@@ -3212,16 +3222,15 @@
Perl_croak(aTHX_ "Usage: DBD::_::common::err(h)");
{
SV * h = ST(0);
-#line 2934 "DBI.xs"
+#line 2974 "DBI.xs"
D_imp_xxh(h);
SV *errsv = DBIc_ERR(imp_xxh);
ST(0) = sv_mortalcopy(errsv);
-#line 3220 "DBI.c"
+#line 3230 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_state); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_state)
{
dXSARGS;
@@ -3229,17 +3238,16 @@
Perl_croak(aTHX_ "Usage: DBD::_::common::state(h)");
{
SV * h = ST(0);
-#line 2942 "DBI.xs"
+#line 2982 "DBI.xs"
D_imp_xxh(h);
STRLEN lna;
SV *state = DBIc_STATE(imp_xxh);
ST(0) = DBIc_STATE_adjust(imp_xxh, state);
-#line 3238 "DBI.c"
+#line 3247 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_errstr); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_errstr)
{
dXSARGS;
@@ -3247,7 +3255,7 @@
Perl_croak(aTHX_ "Usage: DBD::_::common::errstr(h)");
{
SV * h = ST(0);
-#line 2951 "DBI.xs"
+#line 2991 "DBI.xs"
D_imp_xxh(h);
SV *errstr = DBIc_ERRSTR(imp_xxh);
SV *err;
@@ -3255,12 +3263,11 @@
if (!SvTRUE(errstr) && (err=DBIc_ERR(imp_xxh)) && SvTRUE(err))
errstr = err;
ST(0) = sv_mortalcopy(errstr);
-#line 3259 "DBI.c"
+#line 3267 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_trace); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_trace)
{
dXSARGS;
@@ -3285,7 +3292,7 @@
else {
file = ST(2);
}
-#line 2968 "DBI.xs"
+#line 3008 "DBI.xs"
{
dPERINTERP;
D_imp_xxh(sv);
@@ -3305,13 +3312,12 @@
sv_setiv(dsv, level);
}
}
-#line 3309 "DBI.c"
+#line 3316 "DBI.c"
XSprePUSH; PUSHi((IV)RETVAL);
}
XSRETURN(1);
}
-XS(XS_DBD_____common_trace_msg); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_trace_msg)
{
dXSARGS;
@@ -3319,18 +3325,18 @@
Perl_croak(aTHX_ "Usage: DBD::_::common::trace_msg(sv, msg, min_level=1)");
{
SV * sv = ST(0);
- char * msg = (char *)SvPV_nolen(ST(1));
+ char * msg = (char *)SvPV(ST(1),PL_na);
int min_level;
-#line 2997 "DBI.xs"
+#line 3037 "DBI.xs"
int debug = 0;
-#line 3327 "DBI.c"
+#line 3333 "DBI.c"
if (items < 3)
min_level = 1;
else {
min_level = (int)SvIV(ST(2));
}
-#line 2999 "DBI.xs"
+#line 3039 "DBI.xs"
{
dPERINTERP;
if (SvROK(sv)) {
@@ -3345,12 +3351,11 @@
ST(0) = &sv_no;
}
}
-#line 3349 "DBI.c"
+#line 3355 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD_____common_rows); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD_____common_rows)
{
dXSARGS;
@@ -3358,16 +3363,15 @@
Perl_croak(aTHX_ "Usage: DBD::_::common::rows(h)");
{
SV * h = ST(0);
-#line 3019 "DBI.xs"
+#line 3059 "DBI.xs"
/* fallback esp for $DBI::rows after $drh was last used */
if (0) h = h; /* avoid unused variable warning */
ST(0) = sv_2mortal(newSViv(-1));
-#line 3366 "DBI.c"
+#line 3371 "DBI.c"
}
XSRETURN(1);
}
-XS(XS_DBD___mem__common_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS(XS_DBD___mem__common_DESTROY)
{
dXSARGS;
@@ -3375,12 +3379,12 @@
Perl_croak(aTHX_ "Usage: DBD::_mem::common::DESTROY(imp_xxh_rv)");
{
SV * imp_xxh_rv = ST(0);
-#line 3030 "DBI.xs"
+#line 3070 "DBI.xs"
dPERINTERP;
/* ignore 'cast increases required alignment' warning */
imp_xxh_t *imp_xxh = (imp_xxh_t*)SvPVX(SvRV(imp_xxh_rv));
DBIS->clearcom(imp_xxh);
-#line 3384 "DBI.c"
+#line 3388 "DBI.c"
}
XSRETURN_EMPTY;
}
@@ -3388,7 +3392,6 @@
#ifdef __cplusplus
extern "C"
#endif
-XS(boot_DBI); /* prototype to pass -Wmissing-prototypes */
XS(boot_DBI)
{
dXSARGS;
@@ -3399,101 +3402,101 @@
{
CV * cv ;
- cv = newXS("DBI::SQL_TIME", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_TIME ;
+ cv = newXS("DBI::DBIpp_cm_cs", XS_DBI_constant, file);
+ XSANY.any_i32 = DBIpp_cm_cs ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_WVARCHAR", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_WVARCHAR ;
+ cv = newXS("DBI::SQL_BINARY", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_BINARY ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_SMALLINT", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_SMALLINT ;
+ cv = newXS("DBI::SQL_INTEGER", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_INTEGER ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_LONGVARCHAR", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_LONGVARCHAR ;
+ cv = newXS("DBI::DBIpp_ph_qm", XS_DBI_constant, file);
+ XSANY.any_i32 = DBIpp_ph_qm ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_VARBINARY", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_VARBINARY ;
+ cv = newXS("DBI::SQL_WVARCHAR", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_WVARCHAR ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::DBIpp_cm_hs", XS_DBI_constant, file);
- XSANY.any_i32 = DBIpp_cm_hs ;
+ cv = newXS("DBI::SQL_WCHAR", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_WCHAR ;
sv_setpv((SV*)cv, "") ;
cv = newXS("DBI::DBIpp_ph_sp", XS_DBI_constant, file);
XSANY.any_i32 = DBIpp_ph_sp ;
sv_setpv((SV*)cv, "") ;
+ cv = newXS("DBI::SQL_DOUBLE", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_DOUBLE ;
+ sv_setpv((SV*)cv, "") ;
cv = newXS("DBI::SQL_LONGVARBINARY", XS_DBI_constant, file);
XSANY.any_i32 = SQL_LONGVARBINARY ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_CHAR", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_CHAR ;
- sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_DATE", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_DATE ;
- sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_INTEGER", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_INTEGER ;
- sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_TINYINT", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_TINYINT ;
- sv_setpv((SV*)cv, "") ;
cv = newXS("DBI::SQL_FLOAT", XS_DBI_constant, file);
XSANY.any_i32 = SQL_FLOAT ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::constant", XS_DBI_constant, file);
- XSANY.any_i32 = 0 ;
- sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::DBIpp_ph_cn", XS_DBI_constant, file);
- XSANY.any_i32 = DBIpp_ph_cn ;
+ cv = newXS("DBI::DBIpp_cm_dd", XS_DBI_constant, file);
+ XSANY.any_i32 = DBIpp_cm_dd ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::DBIpp_ph_cs", XS_DBI_constant, file);
- XSANY.any_i32 = DBIpp_ph_cs ;
+ cv = newXS("DBI::SQL_TIME", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_TIME ;
sv_setpv((SV*)cv, "") ;
cv = newXS("DBI::SQL_VARCHAR", XS_DBI_constant, file);
XSANY.any_i32 = SQL_VARCHAR ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::DBIpp_cm_br", XS_DBI_constant, file);
- XSANY.any_i32 = DBIpp_cm_br ;
+ cv = newXS("DBI::SQL_LONGVARCHAR", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_LONGVARCHAR ;
sv_setpv((SV*)cv, "") ;
cv = newXS("DBI::SQL_ALL_TYPES", XS_DBI_constant, file);
XSANY.any_i32 = SQL_ALL_TYPES ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_BIGINT", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_BIGINT ;
+ cv = newXS("DBI::DBIpp_cm_br", XS_DBI_constant, file);
+ XSANY.any_i32 = DBIpp_cm_br ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_WLONGVARCHAR", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_WLONGVARCHAR ;
+ cv = newXS("DBI::SQL_TINYINT", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_TINYINT ;
+ sv_setpv((SV*)cv, "") ;
+ cv = newXS("DBI::SQL_CHAR", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_CHAR ;
sv_setpv((SV*)cv, "") ;
cv = newXS("DBI::SQL_TIMESTAMP", XS_DBI_constant, file);
XSANY.any_i32 = SQL_TIMESTAMP ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_NUMERIC", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_NUMERIC ;
+ cv = newXS("DBI::SQL_BIT", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_BIT ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_REAL", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_REAL ;
+ cv = newXS("DBI::SQL_WLONGVARCHAR", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_WLONGVARCHAR ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::DBIpp_cm_cs", XS_DBI_constant, file);
- XSANY.any_i32 = DBIpp_cm_cs ;
+ cv = newXS("DBI::SQL_NUMERIC", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_NUMERIC ;
sv_setpv((SV*)cv, "") ;
cv = newXS("DBI::SQL_DECIMAL", XS_DBI_constant, file);
XSANY.any_i32 = SQL_DECIMAL ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_BINARY", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_BINARY ;
+ cv = newXS("DBI::SQL_DATE", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_DATE ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_WCHAR", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_WCHAR ;
+ cv = newXS("DBI::DBIpp_ph_cn", XS_DBI_constant, file);
+ XSANY.any_i32 = DBIpp_ph_cn ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::DBIpp_ph_qm", XS_DBI_constant, file);
- XSANY.any_i32 = DBIpp_ph_qm ;
+ cv = newXS("DBI::SQL_SMALLINT", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_SMALLINT ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_DOUBLE", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_DOUBLE ;
+ cv = newXS("DBI::DBIpp_cm_hs", XS_DBI_constant, file);
+ XSANY.any_i32 = DBIpp_cm_hs ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::DBIpp_cm_dd", XS_DBI_constant, file);
- XSANY.any_i32 = DBIpp_cm_dd ;
+ cv = newXS("DBI::SQL_VARBINARY", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_VARBINARY ;
sv_setpv((SV*)cv, "") ;
- cv = newXS("DBI::SQL_BIT", XS_DBI_constant, file);
- XSANY.any_i32 = SQL_BIT ;
+ cv = newXS("DBI::SQL_REAL", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_REAL ;
+ sv_setpv((SV*)cv, "") ;
+ cv = newXS("DBI::DBIpp_ph_cs", XS_DBI_constant, file);
+ XSANY.any_i32 = DBIpp_ph_cs ;
+ sv_setpv((SV*)cv, "") ;
+ cv = newXS("DBI::SQL_BIGINT", XS_DBI_constant, file);
+ XSANY.any_i32 = SQL_BIGINT ;
+ sv_setpv((SV*)cv, "") ;
+ cv = newXS("DBI::constant", XS_DBI_constant, file);
+ XSANY.any_i32 = 0 ;
sv_setpv((SV*)cv, "") ;
newXS("DBI::preparse", XS_DBI_preparse, file);
newXS("DBI::_setup_handle", XS_DBI__setup_handle, file);
@@ -3515,15 +3518,15 @@
newXS("DBD::_::st::_set_fbav", XS_DBD_____st__set_fbav, file);
newXS("DBD::_::st::bind_col", XS_DBD_____st_bind_col, file);
newXS("DBD::_::st::bind_columns", XS_DBD_____st_bind_columns, file);
- cv = newXS("DBD::_::st::fetchrow_array", XS_DBD_____st_fetchrow_array, file);
- XSANY.any_i32 = 0 ;
cv = newXS("DBD::_::st::fetchrow", XS_DBD_____st_fetchrow_array, file);
XSANY.any_i32 = 1 ;
- newXS("DBD::_::st::fetchrow_hashref", XS_DBD_____st_fetchrow_hashref, file);
- cv = newXS("DBD::_::st::fetch", XS_DBD_____st_fetch, file);
+ cv = newXS("DBD::_::st::fetchrow_array", XS_DBD_____st_fetchrow_array, file);
XSANY.any_i32 = 0 ;
+ newXS("DBD::_::st::fetchrow_hashref", XS_DBD_____st_fetchrow_hashref, file);
cv = newXS("DBD::_::st::fetchrow_arrayref", XS_DBD_____st_fetch, file);
XSANY.any_i32 = 1 ;
+ cv = newXS("DBD::_::st::fetch", XS_DBD_____st_fetch, file);
+ XSANY.any_i32 = 0 ;
newXS("DBD::_::st::rows", XS_DBD_____st_rows, file);
newXS("DBD::_::st::finish", XS_DBD_____st_finish, file);
newXS("DBD::_::common::DESTROY", XS_DBD_____common_DESTROY, file);
@@ -3534,10 +3537,10 @@
newXS("DBD::_::common::err", XS_DBD_____common_err, file);
newXS("DBD::_::common::state", XS_DBD_____common_state, file);
newXS("DBD::_::common::errstr", XS_DBD_____common_errstr, file);
- cv = newXS("DBD::_::common::trace", XS_DBD_____common_trace, file);
- XSANY.any_i32 = 0 ;
cv = newXS("DBD::_::common::debug", XS_DBD_____common_trace, file);
XSANY.any_i32 = 1 ;
+ cv = newXS("DBD::_::common::trace", XS_DBD_____common_trace, file);
+ XSANY.any_i32 = 0 ;
newXS("DBD::_::common::trace_msg", XS_DBD_____common_trace_msg, file);
newXS("DBD::_::common::rows", XS_DBD_____common_rows, file);
newXS("DBD::_mem::common::DESTROY", XS_DBD___mem__common_DESTROY, file);
@@ -3545,11 +3548,11 @@
/* Initialisation Section */
-#line 2296 "DBI.xs"
+#line 2336 "DBI.xs"
items = items; /* avoid 'unused variable' warning */
dbi_bootinit();
-#line 3553 "DBI.c"
+#line 3556 "DBI.c"
/* End of Initialisation Section */