[svn:dbd-oracle] r12445 - dbd-oracle/trunk

[email protected]
Newsgroups perl.dbd.oracle.changes
Message-ID <[email protected]>
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 ) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.