Author: byterock
Date: Fri Jul  4 10:39:03 2008
New Revision: 11484

Modified:
   dbd-oracle/trunk/Todo
   dbd-oracle/trunk/dbdimp.c
   dbd-oracle/trunk/dbdimp.h
   dbd-oracle/trunk/oci8.c
   dbd-oracle/trunk/ocitrace.h

Log:
added more debugging info function for OCI magic numbers.

Modified: dbd-oracle/trunk/Todo
==============================================================================
--- dbd-oracle/trunk/Todo       (original)
+++ dbd-oracle/trunk/Todo       Fri Jul  4 10:39:03 2008
@@ -1,22 +1,26 @@
 [ In no particular order ]
 
 Seems this file has been neglected for quite a while so I will try to keep it 
up to date for now
+

+For release 1.23 or later

+

+Drop support for early 9 versions namely support for NEW_OCI_INIT (get rid of 
the old code in here)

 
 For release 1.22 or later
-
-Drop support for Oralce 8 and earlier
+

+--> done 1.22Drop support for Oralce 8 and earlier
 
 add support for $dbh->trace('SQL');
 
 Replace OCIInitialize + OCIEnvInit, with OCIEnvCreate
 

-Add in the DBD only debugging flag
+--> done 1.22 dbd_verbose ora_verbose Add in the DBD only debugging flag
 
-Add new method oci_exe_mode to get the Name of the Execution Modes
+--> done 1.22 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 
+-->done 1.22 Expand support for Data Interface for Persistent LOBs by setting 
up support 
 for Piecewise Fetch and Piecewise Fetch with Callback and perhaps  Array Fetch 
as well
 
 Add support for version 2 of lob functions

Modified: dbd-oracle/trunk/dbdimp.c
==============================================================================
--- dbd-oracle/trunk/dbdimp.c   (original)
+++ dbd-oracle/trunk/dbdimp.c   Fri Jul  4 10:39:03 2008
@@ -364,8 +364,11 @@
     D_imp_drh_from_dbh;
     ub2 new_charsetid = 0;
     ub2 new_ncharsetid = 0;
-    /* dbi_imp_data code adapted from DBD::mysql */
+    /* check to see if DBD_verbose or ora_verbose is set*/
+    if ( (svp=DBD_ATTRIB_GET_SVP(attr, "dbd_verbose",11)) && SvOK(*svp) || 
(svp=DBD_ATTRIB_GET_SVP(attr, "ora_verbose",11)) && SvOK(*svp))
+       dbd_verbose =(int)svp;
 
+    /* dbi_imp_data code adapted from DBD::mysql */
     if (DBIc_has(imp_dbh, DBIcf_IMPSET)) {
         /* dbi_imp_data from take_imp_data */
         if (DBIc_has(imp_dbh, DBIcf_ACTIVE)) {
@@ -484,12 +487,15 @@
     if (!imp_dbh->envhp || is_extproc) {
        SV **init_mode_sv;
        ub4 init_mode = OCI_OBJECT;     /* needed for LOBs (8.0.4)      */
+       
+       
        DBD_ATTRIB_GET_IV(attr, "ora_init_mode",13, init_mode_sv, init_mode);
 
 #if defined(USE_ITHREADS) || defined(MULTIPLICITY) || defined(USE_5005THREADS)
        init_mode |= OCI_THREADED;
 #endif
 
+       
        if (use_proc_connection) {
            char *err_hint = Nullch;
 #ifdef SQL_SINGLE_RCTX
@@ -550,7 +556,7 @@
            attribute and ncharset controls the encoding for data with 
SQLCS_NCHAR
            form attribute.
            }*/
-
+                               
             OCIEnvNlsCreate_log_stat( &imp_dbh->envhp, init_mode, 0, NULL, 
NULL, NULL, 0, 0,
                        charsetid, ncharsetid, status );
             if (status != OCI_SUCCESS) {
@@ -608,13 +614,15 @@
            /* OCIInitialize + OCIEnvInit, we'd need ifdef's for 
pre-OCIEnvNlsCreate */
 
            OCIInitialize_log_stat(init_mode, 0, 0,0,0, status);
+           
+           
            if (status != OCI_SUCCESS) {
                oci_error(dbh, NULL, status,
                    "OCIInitialize. Check ORACLE_HOME env var, Oracle NLS 
settings, permissions etc.");
                return 0;
            }
 
-           OCIEnvInit_log_stat( &imp_dbh->envhp, OCI_DEFAULT, 0, 0, status);
+               OCIEnvInit_log_stat( &imp_dbh->envhp, OCI_DEFAULT, 0, 0, 
status);
            if (status != OCI_SUCCESS) {
                oci_error(dbh, (OCIError*)imp_dbh->envhp, status, "OCIEnvInit");
                return 0;
@@ -721,7 +729,7 @@
            OCIHandleAlloc_ok(imp_dbh->envhp, &imp_dbh->srvhp, 
OCI_HTYPE_SERVER, status);
            OCIHandleAlloc_ok(imp_dbh->envhp, &imp_dbh->svchp, 
OCI_HTYPE_SVCCTX, status);
 
-           OCIServerAttach_log_stat(imp_dbh, dbname, status);
+           OCIServerAttach_log_stat(imp_dbh, dbname,OCI_DEFAULT, status);
            if (status != OCI_SUCCESS) {
                oci_error(dbh, imp_dbh->errhp, status, "OCIServerAttach");
                OCIHandleFree_log_stat(imp_dbh->srvhp, OCI_HTYPE_SERVER, 
status);

Modified: dbd-oracle/trunk/dbdimp.h
==============================================================================
--- dbd-oracle/trunk/dbdimp.h   (original)
+++ dbd-oracle/trunk/dbdimp.h   Fri Jul  4 10:39:03 2008
@@ -291,7 +291,11 @@
 #define oci_error(h, errhp, status, what) oci_error_err(h, errhp, status, 
what, 0)
 char *oci_stmt_type_name _((int stmt_type));
 char *oci_status_name _((sword status));
-char * oci_hdtype_name _((ub4 hdtype));
+char *oci_mode _((ub4  mode));
+char *oci_bind_options _((ub4 options));
+char *oci_define_options _((ub4 options));
+char *oci_hdtype_name _((ub4 hdtype));
+char *oci_exe_mode _((ub4 mode));
 int dbd_rebind_ph_lob _((SV *sth, imp_sth_t *imp_sth, phs_t *phs));
 
 int dbd_rebind_ph_nty _((SV *sth, imp_sth_t *imp_sth, phs_t *phs));

Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c     (original)
+++ dbd-oracle/trunk/oci8.c     Fri Jul  4 10:39:03 2008
@@ -40,9 +40,39 @@
 }
 
 char *
+oci_exe_mode(ub4 mode)
+{
+
+       dTHX;
+       SV *sv;
+    switch (mode) {
+       /*----------------------- Execution Modes 
-----------------------------------*/
+               case OCI_DEFAULT:       return "DEFAULT";
+               case OCI_BATCH_MODE:            return "BATCH_MODE"; /* batch 
the oci stmt for exec */
+               case OCI_EXACT_FETCH:           return "EXACT_FETCH";   /* 
fetch exact rows specified */
+               case OCI_STMT_SCROLLABLE_READONLY :             return 
"STMT_SCROLLABLE_READONLY"; 
+               case OCI_DESCRIBE_ONLY:         return "DESCRIBE_ONLY";  /* 
only describe the statement */
+               case OCI_COMMIT_ON_SUCCESS:     return "COMMIT_ON_SUCCESS";   
/* commit, if successful exec */
+               case OCI_NON_BLOCKING:          return "NON_BLOCKING";          
      /* non-blocking */
+               case OCI_BATCH_ERRORS:          return "BATCH_ERRORS";   /* 
batch errors in array dmls */
+               case OCI_PARSE_ONLY:            return "PARSE_ONLY";     /* 
only parse the statement */
+               case OCI_SHOW_DML_WARNINGS:     return "SHOW_DML_WARNINGS";    
+               case OCI_RESULT_CACHE:          return "RESULT_CACHE";   /* 
hint to use query caching */
+               case OCI_NO_RESULT_CACHE :      return "NO_RESULT_CACHE";   
/*hint to bypass query caching*/
+       }
+       sv = sv_2mortal(newSVpv("",0));
+    sv_grow(sv, 50);
+    sprintf(SvPVX(sv),"(UNKNOWN OCI EXECUTE MODE %d)", mode);
+    return SvPVX(sv);
+}
+
+
+char *
 oci_typecode_name(int typecode){
 
        dTHX;
+       SV *sv;
+    
     switch (typecode) {
        case OCI_TYPECODE_INTERVAL_YM:          return "INTERVAL_YM";
        case OCI_TYPECODE_INTERVAL_DS:          return "NTERVAL_DS";
@@ -75,7 +105,12 @@
         case OCI_TYPECODE_TABLE:                       return "TABLE";
         case OCI_TYPECODE_NAMEDCOLLECTION:     return "NAMEDCOLLECTION";
     }
-    return "undef";
+    
+    sv = sv_2mortal(newSVpv("",0));
+       sv_grow(sv, 50);
+       sprintf(SvPVX(sv),"(UNKNOWN OCI TYPECODE %d)", typecode);
+    return SvPVX(sv);
+    
 }
 
 char *
@@ -84,14 +119,14 @@
        dTHX;
     SV *sv;
     switch (status) {
-    case OCI_SUCCESS:          return "SUCCESS";
+    case OCI_SUCCESS:                  return "SUCCESS";
     case OCI_SUCCESS_WITH_INFO:        return "SUCCESS_WITH_INFO";
-    case OCI_NEED_DATA:                return "NEED_DATA";
-    case OCI_NO_DATA:          return "NO_DATA";
-    case OCI_ERROR:            return "ERROR";
+    case OCI_NEED_DATA:                        return "NEED_DATA";
+    case OCI_NO_DATA:                  return "NO_DATA";
+    case OCI_ERROR:                            return "ERROR";
     case OCI_INVALID_HANDLE:   return "INVALID_HANDLE";
     case OCI_STILL_EXECUTING:  return "STILL_EXECUTING";
-    case OCI_CONTINUE:         return "CONTINUE";
+    case OCI_CONTINUE:                 return "CONTINUE";
     }
     sv = sv_2mortal(newSVpv("",0));
     sv_grow(sv, 50);
@@ -99,6 +134,109 @@
     return SvPVX(sv);
 }
 
+/* the various modes used in OCI */
+char *
+oci_define_options(ub4 options)
+{
+       dTHX;
+    SV *sv;
+    switch (options) {
+       /*------------------------Bind and Define 
Options----------------------------*/
+               case OCI_DEFAULT:       return "DEFAULT";
+               case OCI_DYNAMIC_FETCH: return "DYNAMIC_FETCH";               
/* fetch dynamically */
+               
+        }
+    sv = sv_2mortal(newSVpv("",0));
+    sv_grow(sv, 50);
+    sprintf(SvPVX(sv),"(UNKNOWN OCI DEFINE MODE %d)", options);
+    return SvPVX(sv);
+}
+
+char *
+oci_bind_options(ub4 options)
+{
+       dTHX;
+    SV *sv;
+    switch (options) {
+       /*------------------------Bind and Define 
Options----------------------------*/
+               case OCI_DEFAULT:       return "DEFAULT";
+               case OCI_SB2_IND_PTR:   return "SB2_IND_PTR";                   
       /* unused */
+               case OCI_DATA_AT_EXEC:  return "DATA_AT_EXEC";             /* 
data at execute time */
+               case OCI_PIECEWISE:     return "PIECEWISE";         /* 
piecewise DMLs or fetch */
+               case OCI_BIND_SOFT:     return "BIND_SOFT";               /* 
soft bind or define */
+               case OCI_DEFINE_SOFT:   return "DEFINE_SOFT";           /* soft 
bind or define */
+               case OCI_IOV:                   return "";   /* For scatter 
gather bind/define */
+               
+        }
+    sv = sv_2mortal(newSVpv("",0));
+    sv_grow(sv, 50);
+    sprintf(SvPVX(sv),"(UNKNOWN BIND MODE %d)", options);
+    return SvPVX(sv);
+}
+
+/* the various modes used in OCI */
+char *
+oci_mode(ub4  mode)
+{
+       dTHX;
+    SV *sv;
+    switch (mode) {
+        case 3:                                        return "THREADED | 
OBJECT";
+               case OCI_DEFAULT:       return "DEFAULT";
+               /* the default value for parameters and attributes */
+               /*-------------OCIInitialize Modes / OCICreateEnvironment Modes 
-------------*/
+               case OCI_THREADED:      return "THREADED";      /* appl. in 
threaded environment */
+               case OCI_OBJECT:        return "OBJECT";  /* application in 
object environment */
+               case OCI_EVENTS:        return "EVENTS";  /* application is 
enabled for events */
+               case OCI_SHARED:        return "SHARED";  /* the application is 
in shared mode */
+               /* The following *TWO* are only valid for OCICreateEnvironment 
call */
+               case OCI_NO_UCB:        return "NO_UCB "; /* No user callback 
called during ini */
+               case OCI_NO_MUTEX:      return "NO_MUTEX"; /* the environment 
handle will not be */
+                                                   /*  protected by a mutex 
internally */
+               case OCI_SHARED_EXT:     return "SHARED_EXT";              /* 
Used for shared forms */
+               case OCI_ALWAYS_BLOCKING:return "ALWAYS_BLOCKING";    /* all 
connections always blocking */
+               case OCI_USE_LDAP:       return "USE_LDAP";            /* allow 
 LDAP connections */
+               case OCI_REG_LDAPONLY:   return "REG_LDAPONLY";              /* 
only register to LDAP */
+               case OCI_UTF16:          return "UTF16";        /* mode for all 
UTF16 metadata */
+               case OCI_AFC_PAD_ON:     return "AFC_PAD_ON";  /* turn on AFC 
blank padding when rlenp present */
+               case OCI_NEW_LENGTH_SEMANTICS: return "NEW_LENGTH_SEMANTICS";   
/* adopt new length semantics */
+                                                                               
               /* the new length semantics, always bytes, is used by 
OCIEnvNlsCreate */
+               case OCI_NO_MUTEX_STMT:  return "NO_MUTEX_STMT";           /* 
Do not mutex stmt handle */
+               case OCI_MUTEX_ENV_ONLY: return "MUTEX_ENV_ONLY";  /* Mutex 
only the environment handle */
+               case OCI_SUPPRESS_NLS_VALIDATION:  return 
"SUPPRESS_NLS_VALIDATION";  /* suppress nls validation */
+                                                                               
                                 /* nls validation suppression is on by default;
+                                                                               
                             use OCI_ENABLE_NLS_VALIDATION to disable it */
+               case OCI_MUTEX_TRY:                return "MUTEX_TRY";    /* 
try and acquire mutex */
+               case OCI_NCHAR_LITERAL_REPLACE_ON: return 
"NCHAR_LITERAL_REPLACE_ON"; /* nchar literal replace on */
+               case OCI_NCHAR_LITERAL_REPLACE_OFF:return 
"NCHAR_LITERAL_REPLACE_OFF"; /* nchar literal replace off*/
+               case OCI_ENABLE_NLS_VALIDATION:    return 
"ENABLE_NLS_VALIDATION";    /* enable nls validation */
+               /*------------------------OCIConnectionpoolCreate 
Modes----------------------*/
+               case OCI_CPOOL_REINITIALIZE:    return "CPOOL_REINITIALIZE";
+               /*--------------------------------- OCILogon2 Modes 
-------------------------*/
+/*case OCI_LOGON2_SPOOL:       return "LOGON2_SPOOL";     /* Use session pool 
*/
+               case OCI_LOGON2_CPOOL:          return "LOGON2_CPOOL"; /* Use 
connection pool */
+/*case OCI_LOGON2_STMTCACHE:   return "LOGON2_STMTCACHE";     /* Use Stmt 
Caching */
+               case OCI_LOGON2_PROXY:          return "LOGON2_PROXY";     /* 
Proxy authentiaction */
+               /*------------------------- OCISessionPoolCreate Modes 
----------------------*/
+/*case OCI_SPC_REINITIALIZE:           return "SPC_REINITIALIZE";   /* 
Reinitialize the session pool */
+/*case OCI_SPC_HOMOGENEOUS:            return "SPC_HOMOGENEOUS"; "";   /* 
Session pool is homogeneneous */
+/*case OCI_SPC_STMTCACHE:              return "SPC_STMTCACHE";   /* Session 
pool has stmt cache */
+/*case OCI_SPC_NO_RLB:                 return "SPC_NO_RLB "; /* Do not enable 
Runtime load balancing. */ 
+               /*--------------------------- OCISessionGet Modes 
---------------------------*/
+/*case OCI_SESSGET_SPOOL:      return "SESSGET_SPOOL";     /* SessionGet 
called in SPOOL mode */
+/*case OCI_SESSGET_CPOOL:              return "SESSGET_CPOOL";  /* SessionGet 
called in CPOOL mode */
+/*case OCI_SESSGET_STMTCACHE:  return "SESSGET_STMTCACHE";                 /* 
Use statement cache */
+/*case OCI_SESSGET_CREDPROXY:  return "SESSGET_CREDPROXY";     /* SessionGet 
called in proxy mode */
+/*case OCI_SESSGET_CREDEXT:    return "SESSGET_CREDEXT";     */
+               case OCI_SESSGET_SPOOL_MATCHANY:return "SESSGET_SPOOL_MATCHANY";
+/*case OCI_SESSGET_PURITY_NEW:    return "SESSGET_PURITY_NEW"; 
+               case OCI_SESSGET_PURITY_SELF:   return "SESSGET_PURITY_SELF"; */
+    }
+    sv = sv_2mortal(newSVpv("",0));
+    sv_grow(sv, 50);
+    sprintf(SvPVX(sv),"(UNKNOWN OCI MODE %d)", mode);
+    return SvPVX(sv);
+}
 
 char *
 oci_stmt_type_name(int stmt_type)

Modified: dbd-oracle/trunk/ocitrace.h
==============================================================================
--- dbd-oracle/trunk/ocitrace.h (original)
+++ dbd-oracle/trunk/ocitrace.h Fri Jul  4 10:39:03 2008
@@ -213,8 +213,8 @@
    stat = OCIEnvNlsCreate(envp, mode, ctxp, f1, f2, f3, sz, usremepp ,chset, 
nchset ); \
        (DBD_OCI_TRACEON) \
    ?  PerlIO_printf(DBD_OCI_TRACEFP,\
-         "%sNlsEnvCreate(%p,%d,%d,%p,%p,%p,%d,%p,%d,%d)=%s\n", \
-         OciTp, (void*)envp, mode, ctxp, (void*)f1, (void*)f2, (void*)f3, sz, 
(void*)usremepp ,chset, nchset, oci_status_name(stat)),stat \
+         "%sNlsEnvCreate(%p,%s,%d,%d,%p,%p,%p,%d,%p,%d,%d)=%s\n", \
+         OciTp, (void*)envp, oci_mode(mode),mode, ctxp, (void*)f1, (void*)f2, 
(void*)f3, sz, (void*)usremepp ,chset, nchset, oci_status_name(stat)),stat \
    : stat
 
 
@@ -249,10 +249,10 @@
        stat=OCIBindByName(sh,bp,eh,p1,pl,v,vs,dt,in,al,rc,mx,cu,md);   \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
          
"%sBindByName(%p,%p,%p,\"%s\",placeh_len=%ld,value_p=%p,value_sz=%ld," \
-         "dty=%u,indp=%p,alenp=%p,rcodep=%p,maxarr_len=%lu,curelep=%p 
(*=%d),mode=%lu)=%s\n",\
+         "dty=%u,indp=%p,alenp=%p,rcodep=%p,maxarr_len=%lu,curelep=%p 
(*=%d),mode=%s,%lu)=%s\n",\
          OciTp, (void*)sh,(void*)bp,(void*)eh,p1,sl_t(pl),(void*)(v),  \
          sl_t(vs),(ub2)(dt),(void*)(in),(ub2*)(al),(ub2*)(rc),         \
-         ul_t((mx)),pul_t((cu)),(cu ? *(int*)cu : 0 ) ,ul_t((md)),             
                \
+         ul_t((mx)),pul_t((cu)),(cu ? *(int*)cu : 0 ) 
,oci_bind_options(md),ul_t((md)),                                \
          oci_status_name(stat)),stat : stat
 
 #define        OCIBindArrayOfStruct_log_stat(bp,ep,sd,si,sl,sr,stat)   \
@@ -273,9 +273,9 @@
 #define OCIDefineByPos_log_stat(sh,dp,eh,p1,vp,vs,dt,ip,rp,cp,m,stat)   \
        stat=OCIDefineByPos(sh,dp,eh,p1,vp,vs,dt,ip,rp,cp,m);           \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sDefineByPos(%p,%p,%p,%lu,%p,%ld,%u,%p,%p,%p,%lu)=%s\n",    \
+         "%sDefineByPos(%p,%p,%p,%lu,%p,%ld,%u,%p,%p,%p,mode=%s,%lu)=%s\n",    
\
          OciTp, (void*)sh,(void*)dp,(void*)eh,ul_t((p1)),(void*)(vp),  \
-         sl_t(vs),(ub2)dt,(void*)(ip),(ub2*)(rp),(ub2*)(cp),ul_t(m),   \
+         
sl_t(vs),(ub2)dt,(void*)(ip),(ub2*)(rp),(ub2*)(cp),oci_define_options(m),ul_t(m),
     \
          oci_status_name(stat)),stat : stat
 
 #define OCIDescribeAny_log_stat(sh,eh,op,ol,opt,il,ot,dh,stat)         \
@@ -333,8 +333,8 @@
 #define OCIInitialize_log_stat(md,cp,mlf,rlf,mfp,stat)                 \
        stat=OCIInitialize(md,cp,mlf,rlf,mfp);                          \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sInitialize(%lu,%p,%p,%p,%p)=%s\n",                         \
-         OciTp, ul_t(md),(void*)cp,(void*)mlf,(void*)rlf,(void*)mfp,   \
+         "%sInitialize(%lu,with mode =%s %p,%p,%p,%p)=%s\n",                   
        \
+         OciTp, 
oci_mode(md),ul_t(md),(void*)cp,(void*)mlf,(void*)rlf,(void*)mfp,      \
          oci_status_name(stat)),stat : stat
 
 #define OCILobGetLength_log_stat(sh,eh,lh,l,stat)                      \
@@ -433,20 +433,20 @@
          OciTp, (void*)hp,ul_t((ht)),(void*)eh,(void*)pp,ul_t(ps),     \
          oci_status_name(stat)),stat : stat
 
-#define OCIServerAttach_log_stat(imp_dbh, dbname,stat)                 \
+#define OCIServerAttach_log_stat(imp_dbh, dbname,md,stat)                 \
        stat=OCIServerAttach( imp_dbh->srvhp, imp_dbh->errhp,           \
-         (text*)dbname, (sb4)strlen(dbname), 0);                               
\
+         (text*)dbname, (sb4)strlen(dbname), md);                              
\
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sServerAttach(%p, %p, \"%s\", %d, 0)=%s\n",                 \
+         "%sServerAttach(%p, %p, \"%s\", %d, mode=%s,%d)=%s\n",                
        \
          OciTp, (void*)imp_dbh->srvhp,(void*)imp_dbh->errhp, dbname,   \
-         strlen(dbname), oci_status_name(stat)),stat : stat
+         strlen(dbname), oci_mode(md),ul_t(md),oci_status_name(stat)),stat : 
stat
 
 #define OCIStmtExecute_log_stat(sv,st,eh,i,ro,si,so,md,stat)           \
        stat=OCIStmtExecute(sv,st,eh,i,ro,si,so,md);                    \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sStmtExecute(%p,%p,%p,%lu,%lu,%p,%p,%lu)=%s\n",             \
+         "%sStmtExecute(%p,%p,%p,%lu,%lu,%p,%p,mode=%s,%lu)=%s\n",             
\
          OciTp, (void*)sv,(void*)st,(void*)eh,ul_t((i)),               \
-         ul_t((ro)),(void*)(si),(void*)(so),ul_t((md)),                \
+         ul_t((ro)),(void*)(si),(void*)(so),oci_exe_mode(md),ul_t((md)),       
        \
          oci_status_name(stat)),stat : stat
  #define OCIStmtFetch_log_stat(sh,eh,nr,or,os,stat)                     \
          stat=OCIStmtFetch2(sh,eh,nr,or,os,OCI_DEFAULT);                       
         \
@@ -465,22 +465,22 @@
 #define OCIServerDetach_log_stat(sh,eh,md,stat)                        \
        stat=OCIServerDetach(sh,eh,md);                                 \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sServerDetach(%p,%p,%lu)=%s\n",                             \
-         OciTp, (void*)sh,(void*)eh,ul_t(md),                          \
+         "%sServerDetach(%p,%p,mode=%s,%lu)=%s\n",                             
\
+         OciTp, (void*)sh,(void*)eh,oci_mode(md),ul_t(md),                     
        \
          oci_status_name(stat)),stat : stat
 
 #define OCISessionBegin_log_stat(sh,eh,uh,cr,md,stat)                  \
        stat=OCISessionBegin(sh,eh,uh,cr,md);                           \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sSessionBegin(%p,%p,%p,%lu,%lu)=%s\n",                      \
-         OciTp, (void*)sh,(void*)eh,(void*)uh,ul_t(cr),ul_t(md),       \
+         "%sSessionBegin(%p,%p,%p,%lu,mode=%s %lu)=%s\n",                      
\
+         OciTp, (void*)sh,(void*)eh,(void*)uh,ul_t(cr),oci_mode(md),ul_t(md),  
\
          oci_status_name(stat)),stat : stat
 
 #define OCISessionEnd_log_stat(sh,eh,ah,md,stat)                       \
        stat=OCISessionEnd(sh,eh,ah,md);                                \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sSessionEnd(%p,%p,%p,%lu)=%s\n",                            \
-         OciTp, (void*)sh,(void*)eh,(void*)ah,ul_t(md),                \
+         "%sSessionEnd(%p,%p,%p,mode=%s %lu)=%s\n",                            
\
+         OciTp, (void*)sh,(void*)eh,(void*)ah,oci_mode(md),ul_t(md),           
\
          oci_status_name(stat)),stat : stat
 
 #define OCITransCommit_log_stat(sh,eh,md,stat)                         \
@@ -493,8 +493,8 @@
 #define OCITransRollback_log_stat(sh,eh,md,stat)                       \
        stat=OCITransRollback(sh,eh,md);                                \
        (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,                      
\
-         "%sTransRollback(%p,%p,%lu)=%s\n",                            \
-         OciTp, (void*)sh,(void*)eh,ul_t(md),                          \
+         "%sTransRollback(%p,%p,mode=%s %lu)=%s\n",                            
\
+         OciTp, (void*)sh,(void*)eh,oci_mode(md),ul_t(md),                     
        \
          oci_status_name(stat)),stat : stat
 
 #endif /* !DBD_OCI_TRACEON */

Reply via email to