Author: byterock
Date: Wed Jan 14 12:53:04 2009
New Revision: 12445
Modified:
dbd-oracle/trunk/oci8.c
Log:
added in OCI_TYPECODE_OPAQUE just to get rid of another magic number
Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c (original)
+++ dbd-oracle/trunk/oci8.c Wed Jan 14 12:53:04 2009
@@ -140,6 +140,7 @@
case OCI_TYPECODE_NUMBER : return "NUMBER";
case OCI_TYPECODE_SMALLINT: return
"SMALLINT";
case OCI_TYPECODE_OBJECT: return "OBJECT";
+ case OCI_TYPECODE_OPAQUE: return
"XMLTYPE~OPAQUE";
case OCI_TYPECODE_VARRAY: return "VARRAY";
case OCI_TYPECODE_TABLE: return "TABLE";
case OCI_TYPECODE_NAMEDCOLLECTION: return
"NAMEDCOLLECTION";
@@ -1798,8 +1799,8 @@
switch (obj->typecode) {
- case OCI_TYPECODE_OBJECT :
/* embedded ADT */
- case 58:
+ case OCI_TYPECODE_OBJECT: /* embedded ADT */
+ case OCI_TYPECODE_OPAQUE: /*doesn't do anything though*/
if (ora_objects){
OCIRef *type_ref=0;
@@ -2166,28 +2167,28 @@
switch (obj->element_typecode) {
- case OCI_TYPECODE_OBJECT : /* embedded ADT
*/
- case 58:
- if (obj->next_subtype) {
- empty_oci_object(obj->next_subtype);
- }
-
- for (pos = 0; pos < obj->field_count; pos++){
- fld = &obj->fields[pos]; /*get the
field */
- if (fld->typecode ==
OCI_TYPECODE_OBJECT || fld->typecode == OCI_TYPECODE_VARRAY || fld->typecode ==
OCI_TYPECODE_TABLE || fld->typecode == OCI_TYPECODE_NAMEDCOLLECTION){
- empty_oci_object(fld);
- if (fld->value &&
SvTYPE(fld->value) == SVt_PVAV){
- av_clear(fld->value);
- av_undef(fld->value);
- }
+ case OCI_TYPECODE_OBJECT : /* embedded ADT */
+ case OCI_TYPECODE_OPAQUE : /*usually an XML object*/
+ if (obj->next_subtype) {
+ empty_oci_object(obj->next_subtype);
+ }
- } else {
- return 1;
+ for (pos = 0; pos < obj->field_count; pos++){
+ fld = &obj->fields[pos]; /*get the field */
+ if (fld->typecode == OCI_TYPECODE_OBJECT ||
fld->typecode == OCI_TYPECODE_VARRAY || fld->typecode == OCI_TYPECODE_TABLE ||
fld->typecode == OCI_TYPECODE_NAMEDCOLLECTION){
+ empty_oci_object(fld);
+ if (fld->value && SvTYPE(fld->value) ==
SVt_PVAV){
+ av_clear(fld->value);
+ av_undef(fld->value);
}
}
+ else {
+ return 1;
+ }
+ }
break;
- case OCI_TYPECODE_NAMEDCOLLECTION :
+ case OCI_TYPECODE_NAMEDCOLLECTION :
fld = &obj->fields[0]; /*get the field */
if (obj->element_typecode == OCI_TYPECODE_OBJECT){
empty_oci_object(fld);
@@ -2199,6 +2200,7 @@
}
}
break;
+
default:
break;
}
@@ -2446,7 +2448,7 @@
PerlIO_printf(DBILOGFP, "Getting the properties of object named
=%s at level %d typecode=%d\n",obj->type_name,level,obj->typecode);
}
- if (obj->typecode == OCI_TYPECODE_OBJECT || obj->typecode == 58){
+ if (obj->typecode == OCI_TYPECODE_OBJECT || obj->typecode ==
OCI_TYPECODE_OPAQUE){
OCIParam *list_attr= (OCIParam *) 0;
ub2 pos;
if (DBIS->debug >= 6 || dbd_verbose >= 6 ) {