Author: timbo
Date: Thu Jul  1 09:19:41 2004
New Revision: 376

Modified:
   dbi/trunk/Changes
   dbi/trunk/DBI.xs
Log:
Changed TraceLevel 1 to not show recursive/nested calls.


Modified: dbi/trunk/Changes
==============================================================================
--- dbi/trunk/Changes   (original)
+++ dbi/trunk/Changes   Thu Jul  1 09:19:41 2004
@@ -22,6 +22,7 @@
   Fixed DBD::Sponge not to generate warning with threads.
   Fixed DBI_AUTOPROXY to work more than once thanks to Steven Hirsch.
 
+  Changed TraceLevel 1 to not show recursive/nested calls.
   Changed getting or setting an invalid attribute to no longer be
     a fatal error but generate a warning instead.
   Changed selectall_arrayref() to call finish() if

Modified: dbi/trunk/DBI.xs
==============================================================================
--- dbi/trunk/DBI.xs    (original)
+++ dbi/trunk/DBI.xs    Thu Jul  1 09:19:41 2004
@@ -2340,7 +2340,7 @@
                clear_cached_kids(mg->mg_obj, imp_xxh, meth_name, trace_level);
            if (trace_level >= 3)
                 PerlIO_printf(DBILOGFP,
-                   "%c   <> DESTROY ignored for outer handle %s (inner %s has ref cnt 
%ld)\n",
+                   "%c   <> DESTROY(%s) ignored for outer handle (inner %s has ref 
cnt %ld)\n",
                    (dirty?'!':' '), neatsvpv(h,0), neatsvpv(mg->mg_obj,0),
                    (long)SvREFCNT(SvRV(mg->mg_obj))
                );
@@ -2697,8 +2697,8 @@
 
     err_sv = DBIc_ERR(imp_xxh);
 
-    if (trace_level >= 1
-       && !(trace_level == 1 /* don't trace nested calls at level 1 */
+    if (trace_level > 1
+       || (trace_level == 1 /* don't trace nested calls at level 1 */
            && call_depth <= 1
            && (!DBIc_PARENT_COM(imp_xxh) || DBIc_CALL_DEPTH(DBIc_PARENT_COM(imp_xxh)) 
< 1))
     ) {
@@ -2719,9 +2719,14 @@
                    (DBIc_is(imp_xxh, DBIcf_TaintIn|DBIcf_TaintOut)) ? 'T' : ' ',
                    (qsv) ? '>' : '-',
                    meth_name);
-       if (trace_level==1 && items>=2) { /* make level 1 more useful */
+       if (trace_level==1 && (items>=2||is_DESTROY)) { /* make level 1 more useful */
            /* we only have the first two parameters available here */
-           PerlIO_printf(logfp,"(%s", neatsvpv(st1,0));
+           if (is_DESTROY) /* show handle as first arg to DESTROY */
+               /* want to show outer handle so trace makes sense       */
+               /* but outer handle has been destroyed so we fake it    */
+               PerlIO_printf(logfp,"(%s=HASH(%p)", HvNAME(SvSTASH(SvRV(orig_h))), 
DBIc_MY_H(imp_xxh));
+           else
+               PerlIO_printf(logfp,"(%s", neatsvpv(st1,0));
            if (items >= 3)
                PerlIO_printf(logfp," %s", neatsvpv(st2,0));
            PerlIO_printf(logfp,"%s)", (items > 3) ? " ..." : "");

Reply via email to