Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Sep 2012 12:47:26 -0400
From:      William Bulley <web@umich.edu>
To:        perl@FreeBSD.org
Cc:        ports@FreeBSD.org
Subject:   FreeBSD Port: p5-DBD-Oracle-1.14_3
Message-ID:  <20120905164726.GS1621@itcom245.staff.itd.umich.edu>

next in thread | raw e-mail | index | archive | help

--6c2NcOVqGQ03X4Wi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

/usr/ports/databases/p5-DBD-Oracle was marked as "broken" five weeks
ago (as of this writing).

I commented out the "broken" directive in the Makefile and found that
it was indeed "broken" but I know I had made this port from source in
the past, and I recalled the error messages I was seeing today, and I
recalled (roughly) what it was I had done in the past to make the port
build and install.

I don't submit bug reports (and perhaps I should) but here is my poor
man's way of submitting my patch diffs for databases/p5-DBD-Oracle:

I have attached a text file of context diffs and included it here:


--- Oracle.c.orig	2012-09-05 11:59:43.000000000 -0400
+++ Oracle.c	2012-09-05 12:12:04.000000000 -0400
@@ -1493,11 +1493,11 @@
 XS_EUPXS(XS_DBD__Oracle__st_ora_execute_array); /* prototype to pass -Wmissing-prototypes */
 XS_EUPXS(XS_DBD__Oracle__st_ora_execute_array)
 {
     dVAR; dXSARGS;
     if (items < 4 || items > 5)
-       croak_xs_usage(cv,  "sth, tuples, exe_count, tuples_status, cols=&sv_undef");
+       croak_xs_usage(cv,  "sth, tuples, exe_count, tuples_status, cols=&PL_sv_undef");
     {
 	SV *	sth = ST(0)
 ;
 	SV *	tuples = ST(1)
 ;
@@ -1510,11 +1510,11 @@
     D_imp_sth(sth);
     int retval;
 #line 1513 "Oracle.c"
 
 	if (items < 5)
-	    cols = &sv_undef;
+	    cols = &PL_sv_undef;
 	else {
 	    cols = ST(4)
 ;
 	}
 #line 127 "Oracle.xs"
@@ -1547,11 +1547,11 @@
     {
 	SV *	sth = ST(0)
 ;
 #line 147 "Oracle.xs"
     D_imp_sth(sth);
-    ST(0) = dbd_st_cancel(sth, imp_sth) ? &sv_yes : &sv_no;
+    ST(0) = dbd_st_cancel(sth, imp_sth) ? &PL_sv_yes : &PL_sv_no;
 #line 1554 "Oracle.c"
     }
     XSRETURN(1);
 }
 
@@ -1569,11 +1569,11 @@
 ;
 	char *	pwd = (char *)SvPV_nolen(ST(2))
 ;
 #line 159 "Oracle.xs"
     D_imp_dbh(dbh);
-    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &sv_yes : &sv_no;
+    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &PL_sv_yes : &PL_sv_no;
 #line 1576 "Oracle.c"
     }
     XSRETURN(1);
 }
 
@@ -1621,19 +1621,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -1643,14 +1643,14 @@
 	    bufp, (ub4)data_len, OCI_ONE_PIECE,
 	    NULL, NULL,
 	    (ub2)0, csform , status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 #line 1654 "Oracle.c"
     }
     XSRETURN(1);
 }
@@ -1700,19 +1700,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -1721,20 +1721,20 @@
 			       &amtp, bufp, (ub4)data_len, OCI_ONE_PIECE,
 			       NULL, NULL,
 			       csid, csform, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobWriteAppend");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     }
     else {
-       ST(0) = &sv_yes;
+       ST(0) = &PL_sv_yes;
     }
 #else
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &startp, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobGetLength");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     } else {
        /* start one after the end -- the first position in the LOB is 1 */
        startp++;
        if (DBIS->debug >= 2 )
             PerlIO_printf(DBILOGFP, "    Calling OCILobWrite with csid=%d csform=%d\n",csid, csform );
@@ -1743,14 +1743,14 @@
 			    bufp, (ub4)data_len, OCI_ONE_PIECE,
 			    NULL, NULL,
 			    csid, csform , status);
        if (status != OCI_SUCCESS) {
 	  oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	  ST(0) = &sv_undef;
+	  ST(0) = &PL_sv_undef;
        }
        else {
-	  ST(0) = &sv_yes;
+	  ST(0) = &PL_sv_yes;
        }
     }
 #endif
 #line 1756 "Oracle.c"
     }
@@ -1803,20 +1803,20 @@
     /* if (0 && SvUTF8(dest_sv) && !IN_BYTES) { amtp = sv_len_utf8(dest_sv); }  */
     /* added by lab: */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	dest_sv = &sv_undef;
+	dest_sv = &PL_sv_undef;
         return;
     }
     OCILobRead_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator,
 	    &amtp, (ub4)offset, /* offset starts at 1 */
 	    bufp, (ub4)bufp_len,
 	    0, 0, (ub2)0, csform, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobRead");
-        dest_sv = &sv_undef;
+        dest_sv = &PL_sv_undef;
     }
     else {
         SvCUR(dest_sv) = amtp; /* always bytes here */
         *SvEND(dest_sv) = '\0';
 	if (CSFORM_IMPLIES_UTF8(csform))
@@ -1858,14 +1858,14 @@
 ;
 #line 353 "Oracle.xs"
     OCILobTrim_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, length, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 #line 1869 "Oracle.c"
     }
     XSRETURN(1);
 }
@@ -1898,11 +1898,11 @@
 ;
 #line 371 "Oracle.xs"
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &len, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
 	ST(0) = sv_2mortal(newSVuv(len));
     }
 #line 1909 "Oracle.c"
--- Oracle.xs.orig	2006-10-02 08:08:50.000000000 -0400
+++ Oracle.xs	2012-09-05 12:09:06.000000000 -0400
@@ -112,11 +112,11 @@
     if (debug >= 2 && SvTRUE(DBIc_ERR(imp_sth)))
 	PerlIO_printf(DBILOGFP, "    !! ERROR: %s %s",
 	    neatsvpv(DBIc_ERR(imp_sth),0), neatsvpv(DBIc_ERRSTR(imp_sth),0));
 
 void
-ora_execute_array(sth, tuples, exe_count, tuples_status, cols=&sv_undef)
+ora_execute_array(sth, tuples, exe_count, tuples_status, cols=&PL_sv_undef)
     SV *        sth
     SV *        tuples
     IV         exe_count
     SV *        tuples_status
     SV *        cols
@@ -143,11 +143,11 @@
 void
 cancel(sth)
     SV *        sth
     CODE:
     D_imp_sth(sth);
-    ST(0) = dbd_st_cancel(sth, imp_sth) ? &sv_yes : &sv_no;
+    ST(0) = dbd_st_cancel(sth, imp_sth) ? &PL_sv_yes : &PL_sv_no;
 
 
 MODULE = DBD::Oracle    PACKAGE = DBD::Oracle::db
 
 void
@@ -155,11 +155,11 @@
     SV *	dbh
     char *	uid
     char *	pwd
     CODE:
     D_imp_dbh(dbh);
-    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &sv_yes : &sv_no;
+    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &PL_sv_yes : &PL_sv_no;
 
 void
 ora_lob_write(dbh, locator, offset, data)
     SV *dbh
     OCILobLocator   *locator
@@ -183,19 +183,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -205,14 +205,14 @@
 	    bufp, (ub4)data_len, OCI_ONE_PIECE,
 	    NULL, NULL,
 	    (ub2)0, csform , status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 
 void
 ora_lob_append(dbh, locator, data)
     SV *dbh
@@ -239,19 +239,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -260,20 +260,20 @@
 			       &amtp, bufp, (ub4)data_len, OCI_ONE_PIECE,
 			       NULL, NULL,
 			       csid, csform, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobWriteAppend");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     }
     else {
-       ST(0) = &sv_yes;
+       ST(0) = &PL_sv_yes;
     }
 #else
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &startp, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobGetLength");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     } else {
        /* start one after the end -- the first position in the LOB is 1 */
        startp++;
        if (DBIS->debug >= 2 )
             PerlIO_printf(DBILOGFP, "    Calling OCILobWrite with csid=%d csform=%d\n",csid, csform );
@@ -282,14 +282,14 @@
 			    bufp, (ub4)data_len, OCI_ONE_PIECE,
 			    NULL, NULL,
 			    csid, csform , status);
        if (status != OCI_SUCCESS) {
 	  oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	  ST(0) = &sv_undef;
+	  ST(0) = &PL_sv_undef;
        }
        else {
-	  ST(0) = &sv_yes;
+	  ST(0) = &PL_sv_yes;
        }
     }
 #endif
 
 
@@ -319,20 +319,20 @@
     /* if (0 && SvUTF8(dest_sv) && !IN_BYTES) { amtp = sv_len_utf8(dest_sv); }  */
     /* added by lab: */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	dest_sv = &sv_undef;
+	dest_sv = &PL_sv_undef;
         return;
     }
     OCILobRead_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator,
 	    &amtp, (ub4)offset, /* offset starts at 1 */
 	    bufp, (ub4)bufp_len,
 	    0, 0, (ub2)0, csform, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobRead");
-        dest_sv = &sv_undef;
+        dest_sv = &PL_sv_undef;
     }
     else {
         SvCUR(dest_sv) = amtp; /* always bytes here */
         *SvEND(dest_sv) = '\0';
 	if (CSFORM_IMPLIES_UTF8(csform))
@@ -351,14 +351,14 @@
     sword status;
     CODE:
     OCILobTrim_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, length, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 
 void
 ora_lob_length(dbh, locator)
     SV *dbh
@@ -369,11 +369,11 @@
     ub4 len = 0;
     CODE:
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &len, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
 	ST(0) = sv_2mortal(newSVuv(len));
     }
 
--- dbdimp.c.orig	2006-11-03 09:05:46.000000000 -0500
+++ dbdimp.c	2012-09-05 12:16:19.000000000 -0400
@@ -188,11 +188,11 @@
 dbd_discon_all(SV *drh, imp_drh_t *imp_drh)
 {
     dTHR;
 
     /* The disconnect_all concept is flawed and needs more work */
-    if (!dirty && !SvTRUE(perl_get_sv("DBI::PERL_ENDING",0))) {
+    if (!PL_dirty && !SvTRUE(perl_get_sv("DBI::PERL_ENDING",0))) {
 	DBIh_SET_ERR_CHAR(drh, (imp_xxh_t*)imp_drh, Nullch, 1, "disconnect_all not implemented", Nullch, Nullch);
 	return FALSE;
     }
     return FALSE;
 }
@@ -902,11 +902,11 @@
 	SV **svp = hv_fetch((HV*)SvRV(dbh), key, kl, 1);
 	sv_free(*svp);
 	*svp = retsv;
 	(void)SvREFCNT_inc(retsv);	/* so sv_2mortal won't free it	*/
     }
-    if (retsv == &sv_yes || retsv == &sv_no)
+    if (retsv == &PL_sv_yes || retsv == &PL_sv_no)
 	return retsv; /* no need to mortalize yes or no */
     return sv_2mortal(retsv);
 }
 
 
@@ -937,11 +937,11 @@
     /* initialise phs ready to be cloned per placeholder	*/
     memset(&phs_tpl, 0, sizeof(phs_tpl));
     phs_tpl.imp_sth = imp_sth;
     phs_tpl.ftype  = imp_dbh->ph_type;
     phs_tpl.csform = imp_dbh->ph_csform;
-    phs_tpl.sv = &sv_undef;
+    phs_tpl.sv = &PL_sv_undef;
 
     src  = statement;
     dest = imp_sth->statement;
     while(*src) {
 
@@ -1102,11 +1102,11 @@
     at_exec = (phs->desc_h == NULL);
 
     if (!SvPOK(phs->sv)) {	/* normalizations for special cases	*/
 	if (SvOK(phs->sv)) {	/* ie a number, convert to string ASAP	*/
 	    if (!(SvROK(phs->sv) && phs->is_inout))
-		sv_2pv(phs->sv, &na);
+		sv_2pv(phs->sv, &PL_na);
 	}
 	else /* ensure we're at least an SVt_PV (so SvPVX etc work)	*/
 	    SvUPGRADE(phs->sv, SVt_PV);
     }
 
@@ -1497,11 +1497,11 @@
     phs_svp = hv_fetch(imp_sth->all_params_hv, name, name_len, 0);
     if (phs_svp == NULL)
 	croak("Can't bind unknown placeholder '%s' (%s)", name, neatsvpv(ph_namesv,0));
     phs = (phs_t*)(void*)SvPVX(*phs_svp);	/* placeholder struct	*/
 
-    if (phs->sv == &sv_undef) {	/* first bind for this placeholder	*/
+    if (phs->sv == &PL_sv_undef) {	/* first bind for this placeholder	*/
 	phs->is_inout = is_inout;
 	if (is_inout) {
 	    /* phs->sv assigned in the code below */
 	    ++imp_sth->has_inout_params;
 	    /* build array of phs's so we can deal with out vars fast	*/
@@ -1560,15 +1560,15 @@
     }
 
     phs->maxlen = maxlen;		/* 0 if not inout		*/
 
     if (!is_inout) {	/* normal bind so take a (new) copy of current value	*/
-	if (phs->sv == &sv_undef)	/* (first time bind) */
+	if (phs->sv == &PL_sv_undef)	/* (first time bind) */
 	    phs->sv = newSV(0);
 	sv_setsv(phs->sv, newvalue);
 	if (SvAMAGIC(phs->sv)) /* overloaded. XXX hack, logic ought to be pushed deeper */
-	    sv_pvn_force(phs->sv, &na);
+	    sv_pvn_force(phs->sv, &PL_na);
     }
     else if (newvalue != phs->sv) {
 	if (phs->sv)
 	    SvREFCNT_dec(phs->sv);
 	phs->sv = SvREFCNT_inc(newvalue);	/* point to live var	*/
@@ -1833,11 +1833,11 @@
 
 static void
 init_bind_for_array_exec(phs)
     phs_t *phs;
 {
-    if (phs->sv == &sv_undef) { /* first bind for this placeholder  */
+    if (phs->sv == &PL_sv_undef) { /* first bind for this placeholder  */
         phs->is_inout = 0;
         phs->maxlen = 1;
         /* treat Oracle7 SQLT_CUR as SQLT_RSET for Oracle8 */
         if (phs->ftype==102)
             phs->ftype = 116;
@@ -2164,11 +2164,11 @@
     for(i=0; i < num_fields; ++i) {
 	imp_fbh_t *fbh = &imp_sth->fbh[i];
 	if (fbh->fetch_cleanup) fbh->fetch_cleanup(sth, fbh);
     }
 
-    if (dirty)			/* don't walk on the wild side	*/
+    if (PL_dirty)			/* don't walk on the wild side	*/
 	return 1;
 
     if (!DBIc_ACTIVE(imp_dbh))		/* no longer connected	*/
 	return 1;
 
@@ -2242,14 +2242,14 @@
        when they are no longer needed.
     */
 
     if (DBIc_DBISTATE(imp_sth)->debug >= 6)
 	PerlIO_printf(DBIc_LOGPIO(imp_sth), "    dbd_st_destroy %s\n",
-	 (dirty) ? "(OCIHandleFree skipped during global destruction)" :
+	 (PL_dirty) ? "(OCIHandleFree skipped during global destruction)" :
 	 (imp_sth->nested_cursor) ?"(OCIHandleFree skipped for nested cursor)" : "");
 
-    if (!dirty) { /* XXX not ideal, leak may be a problem in some cases */
+    if (!PL_dirty) { /* XXX not ideal, leak may be a problem in some cases */
 	if (!imp_sth->nested_cursor) {
 	    OCIHandleFree_log_stat(imp_sth->stmhp, OCI_HTYPE_STMT, status);
 	    if (status != OCI_SUCCESS)
 	        oci_error(sth, imp_sth->errhp, status, "OCIHandleFree");
 	}
@@ -2280,11 +2280,11 @@
 	SV *sv;
 	char *key;
 	I32 retlen;
 	hv_iterinit(hv);
 	while( (sv = hv_iternextsv(hv, &key, &retlen)) != NULL ) {
-	    if (sv != &sv_undef) {
+	    if (sv != &PL_sv_undef) {
 		  phs_t *phs = (phs_t*)(void*)SvPVX(sv);
 
 
 	      if (phs->desc_h && phs->desc_t == OCI_DTYPE_LOB)
 	        ora_free_templob(sth, imp_sth, (OCILobLocator*)phs->desc_h);
@@ -2340,11 +2340,11 @@
 	STRLEN lna;
 	/* dbd_describe has already called ora_error()		*/
 	/* we can't return Nullsv here because the xs code will	*/
 	/* then just pass the attribute name to DBI for FETCH.	*/
 	croak("Describe failed during %s->FETCH(%s): %ld: %s",
-		SvPV(sth,na), key, (long)SvIV(DBIc_ERR(imp_sth)),
+		SvPV(sth,PL_na), key, (long)SvIV(DBIc_ERR(imp_sth)),
 		SvPV(DBIc_ERRSTR(imp_sth),lna)
 	);
     }
 
     i = DBIc_NUM_FIELDS(imp_sth);
--- oci8.c.orig	2012-09-05 12:16:27.000000000 -0400
+++ oci8.c	2012-09-05 12:17:35.000000000 -0400
@@ -1536,11 +1536,11 @@
 		fbh->ftype  = fbh->dbtype;
 		fbh->disize = fbh->dbsize;
 		p = "Field %d has an Oracle type (%d) which is not explicitly supported%s";
 		if (DBIS->debug >= 1)
 		    PerlIO_printf(DBILOGFP, p, i, fbh->dbtype, "\n");
-		if (dowarn)
+		if (PL_dowarn)
 		    warn(p, i, fbh->dbtype, "");
 		break;
 	}
 	if (DBIS->debug >= 3)
            PerlIO_printf(DBILOGFP,
@@ -2056,11 +2056,11 @@
 
     hv_iterinit(imp_sth->all_params_hv);
     while( (sv = hv_iternextsv(imp_sth->all_params_hv, &p, &i)) != NULL ) {
 	int matched = 0;
 	phs_t *phs = (phs_t*)(void*)SvPVX(sv);
-	if (sv == &sv_undef || !phs)
+	if (sv == &PL_sv_undef || !phs)
 	    croak("panic: unbound params");
 	if (phs->ftype != SQLT_CLOB && phs->ftype != SQLT_BLOB)
 	    continue;
 
 	hv_iterinit(lob_cols_hv);

Regards,

web...

-- 
William Bulley                     Email: web@umich.edu

72 characters width template ----------------------------------------->|

--6c2NcOVqGQ03X4Wi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="p5.DBD.Oracle.patches"

--- Oracle.c.orig	2012-09-05 11:59:43.000000000 -0400
+++ Oracle.c	2012-09-05 12:12:04.000000000 -0400
@@ -1493,11 +1493,11 @@
 XS_EUPXS(XS_DBD__Oracle__st_ora_execute_array); /* prototype to pass -Wmissing-prototypes */
 XS_EUPXS(XS_DBD__Oracle__st_ora_execute_array)
 {
     dVAR; dXSARGS;
     if (items < 4 || items > 5)
-       croak_xs_usage(cv,  "sth, tuples, exe_count, tuples_status, cols=&sv_undef");
+       croak_xs_usage(cv,  "sth, tuples, exe_count, tuples_status, cols=&PL_sv_undef");
     {
 	SV *	sth = ST(0)
 ;
 	SV *	tuples = ST(1)
 ;
@@ -1510,11 +1510,11 @@
     D_imp_sth(sth);
     int retval;
 #line 1513 "Oracle.c"
 
 	if (items < 5)
-	    cols = &sv_undef;
+	    cols = &PL_sv_undef;
 	else {
 	    cols = ST(4)
 ;
 	}
 #line 127 "Oracle.xs"
@@ -1547,11 +1547,11 @@
     {
 	SV *	sth = ST(0)
 ;
 #line 147 "Oracle.xs"
     D_imp_sth(sth);
-    ST(0) = dbd_st_cancel(sth, imp_sth) ? &sv_yes : &sv_no;
+    ST(0) = dbd_st_cancel(sth, imp_sth) ? &PL_sv_yes : &PL_sv_no;
 #line 1554 "Oracle.c"
     }
     XSRETURN(1);
 }
 
@@ -1569,11 +1569,11 @@
 ;
 	char *	pwd = (char *)SvPV_nolen(ST(2))
 ;
 #line 159 "Oracle.xs"
     D_imp_dbh(dbh);
-    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &sv_yes : &sv_no;
+    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &PL_sv_yes : &PL_sv_no;
 #line 1576 "Oracle.c"
     }
     XSRETURN(1);
 }
 
@@ -1621,19 +1621,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -1643,14 +1643,14 @@
 	    bufp, (ub4)data_len, OCI_ONE_PIECE,
 	    NULL, NULL,
 	    (ub2)0, csform , status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 #line 1654 "Oracle.c"
     }
     XSRETURN(1);
 }
@@ -1700,19 +1700,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -1721,20 +1721,20 @@
 			       &amtp, bufp, (ub4)data_len, OCI_ONE_PIECE,
 			       NULL, NULL,
 			       csid, csform, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobWriteAppend");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     }
     else {
-       ST(0) = &sv_yes;
+       ST(0) = &PL_sv_yes;
     }
 #else
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &startp, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobGetLength");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     } else {
        /* start one after the end -- the first position in the LOB is 1 */
        startp++;
        if (DBIS->debug >= 2 )
             PerlIO_printf(DBILOGFP, "    Calling OCILobWrite with csid=%d csform=%d\n",csid, csform );
@@ -1743,14 +1743,14 @@
 			    bufp, (ub4)data_len, OCI_ONE_PIECE,
 			    NULL, NULL,
 			    csid, csform , status);
        if (status != OCI_SUCCESS) {
 	  oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	  ST(0) = &sv_undef;
+	  ST(0) = &PL_sv_undef;
        }
        else {
-	  ST(0) = &sv_yes;
+	  ST(0) = &PL_sv_yes;
        }
     }
 #endif
 #line 1756 "Oracle.c"
     }
@@ -1803,20 +1803,20 @@
     /* if (0 && SvUTF8(dest_sv) && !IN_BYTES) { amtp = sv_len_utf8(dest_sv); }  */
     /* added by lab: */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	dest_sv = &sv_undef;
+	dest_sv = &PL_sv_undef;
         return;
     }
     OCILobRead_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator,
 	    &amtp, (ub4)offset, /* offset starts at 1 */
 	    bufp, (ub4)bufp_len,
 	    0, 0, (ub2)0, csform, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobRead");
-        dest_sv = &sv_undef;
+        dest_sv = &PL_sv_undef;
     }
     else {
         SvCUR(dest_sv) = amtp; /* always bytes here */
         *SvEND(dest_sv) = '\0';
 	if (CSFORM_IMPLIES_UTF8(csform))
@@ -1858,14 +1858,14 @@
 ;
 #line 353 "Oracle.xs"
     OCILobTrim_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, length, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 #line 1869 "Oracle.c"
     }
     XSRETURN(1);
 }
@@ -1898,11 +1898,11 @@
 ;
 #line 371 "Oracle.xs"
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &len, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
 	ST(0) = sv_2mortal(newSVuv(len));
     }
 #line 1909 "Oracle.c"
--- Oracle.xs.orig	2006-10-02 08:08:50.000000000 -0400
+++ Oracle.xs	2012-09-05 12:09:06.000000000 -0400
@@ -112,11 +112,11 @@
     if (debug >= 2 && SvTRUE(DBIc_ERR(imp_sth)))
 	PerlIO_printf(DBILOGFP, "    !! ERROR: %s %s",
 	    neatsvpv(DBIc_ERR(imp_sth),0), neatsvpv(DBIc_ERRSTR(imp_sth),0));
 
 void
-ora_execute_array(sth, tuples, exe_count, tuples_status, cols=&sv_undef)
+ora_execute_array(sth, tuples, exe_count, tuples_status, cols=&PL_sv_undef)
     SV *        sth
     SV *        tuples
     IV         exe_count
     SV *        tuples_status
     SV *        cols
@@ -143,11 +143,11 @@
 void
 cancel(sth)
     SV *        sth
     CODE:
     D_imp_sth(sth);
-    ST(0) = dbd_st_cancel(sth, imp_sth) ? &sv_yes : &sv_no;
+    ST(0) = dbd_st_cancel(sth, imp_sth) ? &PL_sv_yes : &PL_sv_no;
 
 
 MODULE = DBD::Oracle    PACKAGE = DBD::Oracle::db
 
 void
@@ -155,11 +155,11 @@
     SV *	dbh
     char *	uid
     char *	pwd
     CODE:
     D_imp_dbh(dbh);
-    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &sv_yes : &sv_no;
+    ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &PL_sv_yes : &PL_sv_no;
 
 void
 ora_lob_write(dbh, locator, offset, data)
     SV *dbh
     OCILobLocator   *locator
@@ -183,19 +183,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -205,14 +205,14 @@
 	    bufp, (ub4)data_len, OCI_ONE_PIECE,
 	    NULL, NULL,
 	    (ub2)0, csform , status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 
 void
 ora_lob_append(dbh, locator, data)
     SV *dbh
@@ -239,19 +239,19 @@
     /* added by lab: */
     /* LAB do something about length here? see above comment */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #ifdef OCI_ATTR_CHARSET_ID
     /* Effectively only used so AL32UTF8 works properly */
     OCILobCharSetId_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csid, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetId");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
         return;
     }
 #endif /* OCI_ATTR_CHARSET_ID */
     /* if data is utf8 but charset isn't then switch to utf8 csid */
     csid = (SvUTF8(data) && !CS_IS_UTF8(csid)) ? utf8_csid : CSFORM_IMPLIED_CSID(csform);
@@ -260,20 +260,20 @@
 			       &amtp, bufp, (ub4)data_len, OCI_ONE_PIECE,
 			       NULL, NULL,
 			       csid, csform, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobWriteAppend");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     }
     else {
-       ST(0) = &sv_yes;
+       ST(0) = &PL_sv_yes;
     }
 #else
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &startp, status);
     if (status != OCI_SUCCESS) {
        oci_error(dbh, imp_dbh->errhp, status, "OCILobGetLength");
-       ST(0) = &sv_undef;
+       ST(0) = &PL_sv_undef;
     } else {
        /* start one after the end -- the first position in the LOB is 1 */
        startp++;
        if (DBIS->debug >= 2 )
             PerlIO_printf(DBILOGFP, "    Calling OCILobWrite with csid=%d csform=%d\n",csid, csform );
@@ -282,14 +282,14 @@
 			    bufp, (ub4)data_len, OCI_ONE_PIECE,
 			    NULL, NULL,
 			    csid, csform , status);
        if (status != OCI_SUCCESS) {
 	  oci_error(dbh, imp_dbh->errhp, status, "OCILobWrite");
-	  ST(0) = &sv_undef;
+	  ST(0) = &PL_sv_undef;
        }
        else {
-	  ST(0) = &sv_yes;
+	  ST(0) = &PL_sv_yes;
        }
     }
 #endif
 
 
@@ -319,20 +319,20 @@
     /* if (0 && SvUTF8(dest_sv) && !IN_BYTES) { amtp = sv_len_utf8(dest_sv); }  */
     /* added by lab: */
     OCILobCharSetForm_log_stat( imp_dbh->envhp, imp_dbh->errhp, locator, &csform, status );
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobCharSetForm");
-	dest_sv = &sv_undef;
+	dest_sv = &PL_sv_undef;
         return;
     }
     OCILobRead_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator,
 	    &amtp, (ub4)offset, /* offset starts at 1 */
 	    bufp, (ub4)bufp_len,
 	    0, 0, (ub2)0, csform, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobRead");
-        dest_sv = &sv_undef;
+        dest_sv = &PL_sv_undef;
     }
     else {
         SvCUR(dest_sv) = amtp; /* always bytes here */
         *SvEND(dest_sv) = '\0';
 	if (CSFORM_IMPLIES_UTF8(csform))
@@ -351,14 +351,14 @@
     sword status;
     CODE:
     OCILobTrim_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, length, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
-	ST(0) = &sv_yes;
+	ST(0) = &PL_sv_yes;
     }
 
 void
 ora_lob_length(dbh, locator)
     SV *dbh
@@ -369,11 +369,11 @@
     ub4 len = 0;
     CODE:
     OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &len, status);
     if (status != OCI_SUCCESS) {
         oci_error(dbh, imp_dbh->errhp, status, "OCILobTrim");
-	ST(0) = &sv_undef;
+	ST(0) = &PL_sv_undef;
     }
     else {
 	ST(0) = sv_2mortal(newSVuv(len));
     }
 
--- dbdimp.c.orig	2006-11-03 09:05:46.000000000 -0500
+++ dbdimp.c	2012-09-05 12:16:19.000000000 -0400
@@ -188,11 +188,11 @@
 dbd_discon_all(SV *drh, imp_drh_t *imp_drh)
 {
     dTHR;
 
     /* The disconnect_all concept is flawed and needs more work */
-    if (!dirty && !SvTRUE(perl_get_sv("DBI::PERL_ENDING",0))) {
+    if (!PL_dirty && !SvTRUE(perl_get_sv("DBI::PERL_ENDING",0))) {
 	DBIh_SET_ERR_CHAR(drh, (imp_xxh_t*)imp_drh, Nullch, 1, "disconnect_all not implemented", Nullch, Nullch);
 	return FALSE;
     }
     return FALSE;
 }
@@ -902,11 +902,11 @@
 	SV **svp = hv_fetch((HV*)SvRV(dbh), key, kl, 1);
 	sv_free(*svp);
 	*svp = retsv;
 	(void)SvREFCNT_inc(retsv);	/* so sv_2mortal won't free it	*/
     }
-    if (retsv == &sv_yes || retsv == &sv_no)
+    if (retsv == &PL_sv_yes || retsv == &PL_sv_no)
 	return retsv; /* no need to mortalize yes or no */
     return sv_2mortal(retsv);
 }
 
 
@@ -937,11 +937,11 @@
     /* initialise phs ready to be cloned per placeholder	*/
     memset(&phs_tpl, 0, sizeof(phs_tpl));
     phs_tpl.imp_sth = imp_sth;
     phs_tpl.ftype  = imp_dbh->ph_type;
     phs_tpl.csform = imp_dbh->ph_csform;
-    phs_tpl.sv = &sv_undef;
+    phs_tpl.sv = &PL_sv_undef;
 
     src  = statement;
     dest = imp_sth->statement;
     while(*src) {
 
@@ -1102,11 +1102,11 @@
     at_exec = (phs->desc_h == NULL);
 
     if (!SvPOK(phs->sv)) {	/* normalizations for special cases	*/
 	if (SvOK(phs->sv)) {	/* ie a number, convert to string ASAP	*/
 	    if (!(SvROK(phs->sv) && phs->is_inout))
-		sv_2pv(phs->sv, &na);
+		sv_2pv(phs->sv, &PL_na);
 	}
 	else /* ensure we're at least an SVt_PV (so SvPVX etc work)	*/
 	    SvUPGRADE(phs->sv, SVt_PV);
     }
 
@@ -1497,11 +1497,11 @@
     phs_svp = hv_fetch(imp_sth->all_params_hv, name, name_len, 0);
     if (phs_svp == NULL)
 	croak("Can't bind unknown placeholder '%s' (%s)", name, neatsvpv(ph_namesv,0));
     phs = (phs_t*)(void*)SvPVX(*phs_svp);	/* placeholder struct	*/
 
-    if (phs->sv == &sv_undef) {	/* first bind for this placeholder	*/
+    if (phs->sv == &PL_sv_undef) {	/* first bind for this placeholder	*/
 	phs->is_inout = is_inout;
 	if (is_inout) {
 	    /* phs->sv assigned in the code below */
 	    ++imp_sth->has_inout_params;
 	    /* build array of phs's so we can deal with out vars fast	*/
@@ -1560,15 +1560,15 @@
     }
 
     phs->maxlen = maxlen;		/* 0 if not inout		*/
 
     if (!is_inout) {	/* normal bind so take a (new) copy of current value	*/
-	if (phs->sv == &sv_undef)	/* (first time bind) */
+	if (phs->sv == &PL_sv_undef)	/* (first time bind) */
 	    phs->sv = newSV(0);
 	sv_setsv(phs->sv, newvalue);
 	if (SvAMAGIC(phs->sv)) /* overloaded. XXX hack, logic ought to be pushed deeper */
-	    sv_pvn_force(phs->sv, &na);
+	    sv_pvn_force(phs->sv, &PL_na);
     }
     else if (newvalue != phs->sv) {
 	if (phs->sv)
 	    SvREFCNT_dec(phs->sv);
 	phs->sv = SvREFCNT_inc(newvalue);	/* point to live var	*/
@@ -1833,11 +1833,11 @@
 
 static void
 init_bind_for_array_exec(phs)
     phs_t *phs;
 {
-    if (phs->sv == &sv_undef) { /* first bind for this placeholder  */
+    if (phs->sv == &PL_sv_undef) { /* first bind for this placeholder  */
         phs->is_inout = 0;
         phs->maxlen = 1;
         /* treat Oracle7 SQLT_CUR as SQLT_RSET for Oracle8 */
         if (phs->ftype==102)
             phs->ftype = 116;
@@ -2164,11 +2164,11 @@
     for(i=0; i < num_fields; ++i) {
 	imp_fbh_t *fbh = &imp_sth->fbh[i];
 	if (fbh->fetch_cleanup) fbh->fetch_cleanup(sth, fbh);
     }
 
-    if (dirty)			/* don't walk on the wild side	*/
+    if (PL_dirty)			/* don't walk on the wild side	*/
 	return 1;
 
     if (!DBIc_ACTIVE(imp_dbh))		/* no longer connected	*/
 	return 1;
 
@@ -2242,14 +2242,14 @@
        when they are no longer needed.
     */
 
     if (DBIc_DBISTATE(imp_sth)->debug >= 6)
 	PerlIO_printf(DBIc_LOGPIO(imp_sth), "    dbd_st_destroy %s\n",
-	 (dirty) ? "(OCIHandleFree skipped during global destruction)" :
+	 (PL_dirty) ? "(OCIHandleFree skipped during global destruction)" :
 	 (imp_sth->nested_cursor) ?"(OCIHandleFree skipped for nested cursor)" : "");
 
-    if (!dirty) { /* XXX not ideal, leak may be a problem in some cases */
+    if (!PL_dirty) { /* XXX not ideal, leak may be a problem in some cases */
 	if (!imp_sth->nested_cursor) {
 	    OCIHandleFree_log_stat(imp_sth->stmhp, OCI_HTYPE_STMT, status);
 	    if (status != OCI_SUCCESS)
 	        oci_error(sth, imp_sth->errhp, status, "OCIHandleFree");
 	}
@@ -2280,11 +2280,11 @@
 	SV *sv;
 	char *key;
 	I32 retlen;
 	hv_iterinit(hv);
 	while( (sv = hv_iternextsv(hv, &key, &retlen)) != NULL ) {
-	    if (sv != &sv_undef) {
+	    if (sv != &PL_sv_undef) {
 		  phs_t *phs = (phs_t*)(void*)SvPVX(sv);
 
 
 	      if (phs->desc_h && phs->desc_t == OCI_DTYPE_LOB)
 	        ora_free_templob(sth, imp_sth, (OCILobLocator*)phs->desc_h);
@@ -2340,11 +2340,11 @@
 	STRLEN lna;
 	/* dbd_describe has already called ora_error()		*/
 	/* we can't return Nullsv here because the xs code will	*/
 	/* then just pass the attribute name to DBI for FETCH.	*/
 	croak("Describe failed during %s->FETCH(%s): %ld: %s",
-		SvPV(sth,na), key, (long)SvIV(DBIc_ERR(imp_sth)),
+		SvPV(sth,PL_na), key, (long)SvIV(DBIc_ERR(imp_sth)),
 		SvPV(DBIc_ERRSTR(imp_sth),lna)
 	);
     }
 
     i = DBIc_NUM_FIELDS(imp_sth);
--- oci8.c.orig	2012-09-05 12:16:27.000000000 -0400
+++ oci8.c	2012-09-05 12:17:35.000000000 -0400
@@ -1536,11 +1536,11 @@
 		fbh->ftype  = fbh->dbtype;
 		fbh->disize = fbh->dbsize;
 		p = "Field %d has an Oracle type (%d) which is not explicitly supported%s";
 		if (DBIS->debug >= 1)
 		    PerlIO_printf(DBILOGFP, p, i, fbh->dbtype, "\n");
-		if (dowarn)
+		if (PL_dowarn)
 		    warn(p, i, fbh->dbtype, "");
 		break;
 	}
 	if (DBIS->debug >= 3)
            PerlIO_printf(DBILOGFP,
@@ -2056,11 +2056,11 @@
 
     hv_iterinit(imp_sth->all_params_hv);
     while( (sv = hv_iternextsv(imp_sth->all_params_hv, &p, &i)) != NULL ) {
 	int matched = 0;
 	phs_t *phs = (phs_t*)(void*)SvPVX(sv);
-	if (sv == &sv_undef || !phs)
+	if (sv == &PL_sv_undef || !phs)
 	    croak("panic: unbound params");
 	if (phs->ftype != SQLT_CLOB && phs->ftype != SQLT_BLOB)
 	    continue;
 
 	hv_iterinit(lob_cols_hv);

--6c2NcOVqGQ03X4Wi--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120905164726.GS1621>