Author: byterock
Date: Fri May 2 04:34:41 2008
New Revision: 11175
Modified:
dbd-oracle/trunk/oci8.c
Log:
fix for pres BLOBs
Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c (original)
+++ dbd-oracle/trunk/oci8.c Fri May 2 04:34:41 2008
@@ -1634,7 +1634,7 @@
{
if (*element_null==OCI_IND_NULL){
-
+
av_push(list, &sv_undef);
} else {
if (obj->element_typecode == OCI_TYPECODE_OBJECT || obj->element_typecode == OCI_TYPECODE_VARRAY || obj->element_typecode== OCI_TYPECODE_TABLE || obj->element_typecode== OCI_TYPECODE_NAMEDCOLLECTION){
@@ -1853,10 +1853,10 @@
oci_error(h, imp_sth->errhp, status, "OCIAttrSet OCI_ATTR_PREFETCH_ROWS");
++num_errors;
}
-
+
if (imp_sth->rs_array_on && cache_rows>0)
imp_sth->rs_array_size=cache_rows>128?128:cache_rows; /* restrict to 128 for now */
-
+
if (DBIS->debug >= 3)
PerlIO_printf(DBILOGFP,
" row cache OCI_ATTR_PREFETCH_ROWS %lu, OCI_ATTR_PREFETCH_MEMORY %lu\n",
@@ -2371,7 +2371,7 @@
imp_sth->in_cache = 0;
imp_sth->eod_errno = 0;
rs_array_init(imp_sth);
-
+
/* now set up the oci call with define by pos*/
for(i=1; i <= num_fields; ++i) {
imp_fbh_t *fbh = &imp_sth->fbh[i-1];
@@ -2608,7 +2608,7 @@
--datalen;
}
sv_setpvn(sv, p, (STRLEN)datalen);
- if (CSFORM_IMPLIES_UTF8(fbh->csform)){
+ if ((CSFORM_IMPLIES_UTF8(fbh->csform)) && (fbh->ftype != SQLT_BIN)){
SvUTF8_on(sv);
}
}
@@ -2625,7 +2625,7 @@
/* Copy the truncated value anyway, it may be of use, */
/* but it'll only be accessible via prior bind_column() */
sv_setpvn(sv, row_data,fb_ary->arlen[imp_sth->rs_array_idx]);
- if (CSFORM_IMPLIES_UTF8(fbh->csform)){
+ if ((CSFORM_IMPLIES_UTF8(fbh->csform)) && (fbh->ftype != SQLT_BIN)){
SvUTF8_on(sv);
}
}