develooper Front page | perl.dbd.oracle.changes | Postings from April 2008

[svn:dbd-oracle] r11058 - in dbd-oracle/trunk: . t

From:
byterock
Date:
April 8, 2008 09:10
Subject:
[svn:dbd-oracle] r11058 - in dbd-oracle/trunk: . t
Author: byterock
Date: Tue Apr  8 09:10:20 2008
New Revision: 11058

Modified:
   dbd-oracle/trunk/Todo
   dbd-oracle/trunk/oci8.c
   dbd-oracle/trunk/t/34pres_lobs.t

Log:
 Added the oci_typecode_name method to get the name rather than just the number of an OCI_TYPECODE from John Scoles
  Fixed a unreported bug with Embedded Objects from John Scoles

Fixed a bug in t/34pres_lobs.t as well

Modified: dbd-oracle/trunk/Todo
==============================================================================
--- dbd-oracle/trunk/Todo	(original)
+++ dbd-oracle/trunk/Todo	Tue Apr  8 09:10:20 2008
@@ -4,6 +4,10 @@
 
 For release 1.22 or later
 
+Add in the DBD only debugging flag
+
+Add new method oci_exe__mode to get the Name of the Execution Modes
+
 Add support for OCIClientVersion(),OCIPing(),OCIServerVersion()
 
 Expand support for Data Interface for Persistent LOBs by setting up support 
@@ -13,7 +17,6 @@
 
 Add support for OCIStmtPrepare2(), Statement caching
 
-
 The below might of been done but this list has not been maintained;
 
 Add column_info test

Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c	(original)
+++ dbd-oracle/trunk/oci8.c	Tue Apr  8 09:10:20 2008
@@ -18,6 +18,8 @@
 
 DBISTATE_DECLARE;
 
+
+
 void
 dbd_init_oci(dbistate_t *dbistate)
 {
@@ -36,6 +38,44 @@
 
 }
 
+char *
+oci_typecode_name(int typecode){
+
+	dTHX;
+    switch (typecode) {
+    	case OCI_TYPECODE_INTERVAL_YM:		return "INTERVAL_YM";
+    	case OCI_TYPECODE_INTERVAL_DS:		return "NTERVAL_DS";
+   		case OCI_TYPECODE_TIMESTAMP_TZ:		return "TIMESTAMP_TZ";
+    	case OCI_TYPECODE_TIMESTAMP_LTZ:	return "TIMESTAMP_LTZ";
+    	case OCI_TYPECODE_TIMESTAMP:		return "TIMESTAMP";
+    	case OCI_TYPECODE_DATE:				return "DATE";
+    	case OCI_TYPECODE_CLOB:				return "CLOB";
+    	case OCI_TYPECODE_BLOB:				return "BLOB";
+    	case OCI_TYPECODE_BFILE:			return "BFILE";
+    	case OCI_TYPECODE_RAW:				return "RAW";
+	    case OCI_TYPECODE_CHAR:				return "CHAR";
+	    case OCI_TYPECODE_VARCHAR:			return "VARCHAR";
+	    case OCI_TYPECODE_VARCHAR2:			return "VARCHAR2";
+	    case OCI_TYPECODE_SIGNED8:			return "SIGNED8";
+	    case OCI_TYPECODE_UNSIGNED8:		return "DECLARE";
+    	case OCI_TYPECODE_UNSIGNED16 :    	return "UNSIGNED8";
+	    case OCI_TYPECODE_UNSIGNED32 :     	return "UNSIGNED32";
+	    case OCI_TYPECODE_REAL :           	return "REAL";
+	    case OCI_TYPECODE_DOUBLE :         	return "DOUBLE";
+	    case OCI_TYPECODE_INTEGER :         return "INT";
+	    case OCI_TYPECODE_SIGNED16 :	    return "SHORT";
+	    case OCI_TYPECODE_SIGNED32 :        return "LONG";
+	    case OCI_TYPECODE_DECIMAL :         return "DECIMAL";
+	    case OCI_TYPECODE_FLOAT :  			return "FLOAT";
+	    case OCI_TYPECODE_NUMBER : 			return "NUMBER";
+	    case OCI_TYPECODE_SMALLINT:			return "SMALLINT";
+        case OCI_TYPECODE_OBJECT:			return "OBJECT";
+    	case OCI_TYPECODE_VARRAY:			return "VARRAY";
+        case OCI_TYPECODE_TABLE:			return "TABLE";
+        case OCI_TYPECODE_NAMEDCOLLECTION: 	return "NAMEDCOLLECTION";
+    }
+    return "undef";
+}
 
 char *
 oci_status_name(sword status)
@@ -1345,7 +1385,7 @@
 
   /* get the data based on the type code*/
   if (DBIS->debug >= 5) {
-	PerlIO_printf(DBILOGFP, " getting value of object attribute named  %s with typecode=%d\n",name,typecode);
+	PerlIO_printf(DBILOGFP, " getting value of object attribute named  %s with typecode=%s\n",name,oci_typecode_name(typecode));
   }
 
   switch (typecode)
@@ -1490,7 +1530,7 @@
   	OCIInd       *obj_ind;
 
 	if (DBIS->debug >= 5) {
-		PerlIO_printf(DBILOGFP, " getting attributes of object named  %s with typecode=%d\n",obj->type_name,obj->typecode);
+		PerlIO_printf(DBILOGFP, " getting attributes of object named  %s with typecode=%s\n",obj->type_name,oci_typecode_name(obj->typecode));
 	}
 
 	switch (obj->typecode) {
@@ -1597,7 +1637,7 @@
 							
 						     av_push(list,  &sv_undef);
 						} else {
-							if (obj->element_typecode == OCI_TYPECODE_OBJECT || fld->typecode == OCI_TYPECODE_VARRAY || fld->typecode == OCI_TYPECODE_TABLE || fld->typecode == OCI_TYPECODE_NAMEDCOLLECTION){
+							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){
 								fld->value = newAV();
                  				get_object (sth,fld->value, fbh, fld,element);
 								av_push(list, newRV_noinc((SV *) fld->value));
@@ -1640,7 +1680,7 @@
 {
     dTHX;
 	if (DBIS->debug >= 4) {
-		PerlIO_printf(DBILOGFP, " getting an embedded object named  %s with typecode=%d\n",fbh->obj->type_name,fbh->obj->typecode);
+		PerlIO_printf(DBILOGFP, " getting an embedded object named  %s with typecode=%s\n",fbh->obj->type_name,oci_typecode_name(fbh->obj->typecode));
 	}
 
     if (fbh->obj->obj_ind && fbh->obj->obj_ind[0] == OCI_IND_NULL) {
@@ -2016,9 +2056,9 @@
 	PerlIO_printf(DBILOGFP, "    parmdp = %p\n",obj->parmdp);
 	PerlIO_printf(DBILOGFP, "    parmap = %p\n",obj->parmap);
 	PerlIO_printf(DBILOGFP, "    tdo = %p\n",obj->tdo);
- 	PerlIO_printf(DBILOGFP, "    typecode = %d\n",obj->typecode);
+ 	PerlIO_printf(DBILOGFP, "    typecode = %s\n",oci_typecode_name(obj->typecode));
  	PerlIO_printf(DBILOGFP, "    col_typecode = %d\n",obj->col_typecode);
- 	PerlIO_printf(DBILOGFP, "    element_typecode = %d\n",obj->element_typecode);
+ 	PerlIO_printf(DBILOGFP, "    element_typecode = %s\n",oci_typecode_name(obj->element_typecode));
 	PerlIO_printf(DBILOGFP, "    obj_ref = %p\n",obj->obj_ref);
 	PerlIO_printf(DBILOGFP, "    obj_value = %p\n",obj->obj_value);
 	PerlIO_printf(DBILOGFP, "    obj_type = %p\n",obj->obj_type);

Modified: dbd-oracle/trunk/t/34pres_lobs.t
==============================================================================
--- dbd-oracle/trunk/t/34pres_lobs.t	(original)
+++ dbd-oracle/trunk/t/34pres_lobs.t	Tue Apr  8 09:10:20 2008
@@ -25,10 +25,6 @@
 
 plan tests => 11;
 
-BEGIN {
-	use_ok('DBI');
-}
-
 # create a database handle
 my $dsn = oracle_test_dsn();
 my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';



Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About