Author: spadkins
Date: Tue Dec  1 08:53:17 2009
New Revision: 13622

Modified:
   p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm

Log:
add support for --debug_sql_min_time and --debug_sql_regex

Modified: p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm (original)
+++ p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm Tue Dec  1 08:53:17 2009
@@ -418,11 +418,15 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex);
     if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
         $timer = $self->_get_timer();
-        print $App::DEBUG_FILE "DEBUG_SQL: _get_row()\n";
-        print $App::DEBUG_FILE $sql;
+        if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _get_row()\n";
+            print $App::DEBUG_FILE $sql;
+        }
     }
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
@@ -476,11 +480,17 @@
     }
     if ($debug_sql) {
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time sec) 
$DBI::errstr\n";
-        if ($debug_sql >= 2) {
-            print $App::DEBUG_FILE "DEBUG_SQL: [", ($row ? join("|",map { 
defined $_ ? $_ : "undef" } @$row) : ""), "]\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _get_row()\n";
+            print $App::DEBUG_FILE $sql;
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time 
sec) $DBI::errstr\n";
+            if ($debug_sql >= 2) {
+                print $App::DEBUG_FILE "DEBUG_SQL: [", ($row ? join("|",map { 
defined $_ ? $_ : "undef" } @$row) : ""), "]\n";
+            }
+            print $App::DEBUG_FILE "\n";
         }
-        print $App::DEBUG_FILE "\n";
     }
 
     &App::sub_exit($row) if ($App::trace);
@@ -514,11 +524,15 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex);
     if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
         $timer = $self->_get_timer();
-        print $App::DEBUG_FILE "DEBUG_SQL: _get_rows()\n";
-        print $App::DEBUG_FILE $sql;
+        if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _get_rows()\n";
+            print $App::DEBUG_FILE $sql;
+        }
     }
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
@@ -572,13 +586,19 @@
     }
     if ($debug_sql) {
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time sec) 
$DBI::errstr\n";
-        if ($debug_sql >= 2) {
-            foreach my $row (@$rows) {
-                print $App::DEBUG_FILE "DEBUG_SQL: [", join("|",map { defined 
$_ ? $_ : "undef"} @$row), "]\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _get_rows()\n";
+            print $App::DEBUG_FILE $sql;
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time 
sec) $DBI::errstr\n";
+            if ($debug_sql >= 2) {
+                foreach my $row (@$rows) {
+                    print $App::DEBUG_FILE "DEBUG_SQL: [", join("|",map { 
defined $_ ? $_ : "undef"} @$row), "]\n";
+                }
             }
+            print $App::DEBUG_FILE "\n";
         }
-        print $App::DEBUG_FILE "\n";
     }
 
     &App::sub_exit($rows) if ($App::trace);
@@ -2046,7 +2066,7 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time, $bind_values);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex, 
$bind_values);
     my $loglevel = 1;
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
@@ -2058,10 +2078,14 @@
         my ($column, %serializer, $serializer_name, $serializer, $type, 
$sqltype);
         my $column_defs = $self->{table}{$table}{column};
         if ($debug_sql) {
+            $debug_sql_min_time = $context_options->{debug_sql_min_time};
+            $debug_sql_regex    = $context_options->{debug_sql_regex};
             $timer = $self->_get_timer();
-            print $App::DEBUG_FILE "DEBUG_SQL: insert()\n";
-            print $App::DEBUG_FILE "DEBUG_SQL: bind vars [", join("|",map { 
defined $_ ? $_ : "undef" } @$row), "]\n";
-            print $App::DEBUG_FILE $sql;
+            if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+                print $App::DEBUG_FILE "DEBUG_SQL: insert()\n";
+                print $App::DEBUG_FILE "DEBUG_SQL: bind vars [", join("|",map 
{ defined $_ ? $_ : "undef" } @$row), "]\n";
+                print $App::DEBUG_FILE $sql;
+            }
         }
         eval {
             my $insert_sth = $dbh->prepare($sql);
@@ -2133,8 +2157,15 @@
     }
     if ($debug_sql) {
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time sec) 
$DBI::errstr\n";
-        print $App::DEBUG_FILE "\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: insert()\n";
+            print $App::DEBUG_FILE "DEBUG_SQL: bind vars [", join("|",map { 
defined $_ ? $_ : "undef" } @$row), "]\n";
+            print $App::DEBUG_FILE $sql;
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time 
sec) $DBI::errstr\n";
+            print $App::DEBUG_FILE "\n";
+        }
     }
 
     &App::sub_exit($nrows) if ($App::trace);
@@ -2157,9 +2188,11 @@
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
     my $explain_sql = $context_options->{explain_sql};
-    my ($timer, $elapsed_time, $bind_values, $row);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex, 
$bind_values, $row);
     my $loglevel = 1;
     if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
         $timer = $self->_get_timer();
     }
     if ($profiler) {
@@ -2297,11 +2330,15 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex);
     if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
         $timer = $self->_get_timer();
-        print $App::DEBUG_FILE "DEBUG_SQL: _delete()\n";
-        print $App::DEBUG_FILE $sql;
+        if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _delete()\n";
+            print $App::DEBUG_FILE $sql;
+        }
     }
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
@@ -2328,8 +2365,14 @@
     }
     if ($debug_sql) {
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
-        print $App::DEBUG_FILE "\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _delete()\n";
+            print $App::DEBUG_FILE $sql;
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
+            print $App::DEBUG_FILE "\n";
+        }
     }
 
     &App::sub_exit($retval) if ($App::trace);
@@ -2361,7 +2404,11 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex);
+    if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
+    }
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
     }
@@ -2377,8 +2424,10 @@
             if ($by_expression) {
                 if ($debug_sql) {
                     $timer = $self->_get_timer();
-                    print $App::DEBUG_FILE "DEBUG_SQL: _update() : 
by_expression\n";
-                    print $App::DEBUG_FILE $sql;
+                    if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+                        print $App::DEBUG_FILE "DEBUG_SQL: _update() : 
by_expression\n";
+                        print $App::DEBUG_FILE $sql;
+                    }
                 }
                 $retval = $dbh->do($sql);
             }
@@ -2409,9 +2458,11 @@
                 }
                 if ($debug_sql) {
                     $timer = $self->_get_timer();
-                    print $App::DEBUG_FILE "DEBUG_SQL: _update()\n";
-                    print $App::DEBUG_FILE "DEBUG_SQL: bind vars [", 
join("|",map { defined $_ ? $_ : "undef" } @$row), "]\n";
-                    print $App::DEBUG_FILE $sql;
+                    if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+                        print $App::DEBUG_FILE "DEBUG_SQL: _update()\n";
+                        print $App::DEBUG_FILE "DEBUG_SQL: bind vars [", 
join("|",map { defined $_ ? $_ : "undef" } @$row), "]\n";
+                        print $App::DEBUG_FILE $sql;
+                    }
                 }
                 $retval = $update_sth->execute(@$row);
             }
@@ -2431,8 +2482,15 @@
     }
     if ($debug_sql) {
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
-        print $App::DEBUG_FILE "\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _update()\n";
+            print $App::DEBUG_FILE "DEBUG_SQL: bind vars [", join("|",map { 
defined $_ ? $_ : "undef" } @$row), "]\n";
+            print $App::DEBUG_FILE $sql;
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
+            print $App::DEBUG_FILE "\n";
+        }
     }
 
     &App::sub_exit($retval) if ($App::trace);
@@ -2451,11 +2509,15 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex);
     if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
         $timer = $self->_get_timer();
-        print $App::DEBUG_FILE "DEBUG_SQL: _delete_row()\n";
-        print $App::DEBUG_FILE $sql;
+        if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _delete_row()\n";
+            print $App::DEBUG_FILE $sql;
+        }
     }
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
@@ -2482,8 +2544,14 @@
     }
     if ($debug_sql) {
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
-        print $App::DEBUG_FILE "\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _delete_row()\n";
+            print $App::DEBUG_FILE $sql;
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
+            print $App::DEBUG_FILE "\n";
+        }
     }
 
     &App::sub_exit($retval) if ($App::trace);
@@ -2502,11 +2570,15 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex);
     if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
         $timer = $self->_get_timer();
-        print $App::DEBUG_FILE "DEBUG_SQL: _delete_rows()\n";
-        print $App::DEBUG_FILE $sql;
+        if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _delete_rows()\n";
+            print $App::DEBUG_FILE $sql;
+        }
     }
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
@@ -2534,8 +2606,14 @@
     }
     if ($debug_sql) {
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
-        print $App::DEBUG_FILE "\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _delete_rows()\n";
+            print $App::DEBUG_FILE $sql;
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: retval [$retval] ($elapsed_time 
sec) $DBI::errstr\n";
+            print $App::DEBUG_FILE "\n";
+        }
     }
 
     &App::sub_exit($retval) if ($App::trace);
@@ -2554,12 +2632,16 @@
     my $context_options = $context->{options};
     my $debug_sql = $context_options->{debug_sql};
     my $profiler  = $context_options->{"app.Context.profiler"};
-    my ($timer, $elapsed_time);
+    my ($timer, $elapsed_time, $debug_sql_min_time, $debug_sql_regex);
     if ($debug_sql) {
+        $debug_sql_min_time = $context_options->{debug_sql_min_time};
+        $debug_sql_regex    = $context_options->{debug_sql_regex};
         $timer = $self->_get_timer();
-        print $App::DEBUG_FILE "DEBUG_SQL: _do()\n";
-        print $App::DEBUG_FILE $sql;
-        print $App::DEBUG_FILE "\n" if ($sql !~ /\n$/);
+        if (! $debug_sql_min_time && (!$debug_sql_regex || $sql =~ 
/$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _do()\n";
+            print $App::DEBUG_FILE $sql;
+            print $App::DEBUG_FILE "\n" if ($sql !~ /\n$/);
+        }
     }
     if ($context_options->{explain_sql}) {
         $self->explain_sql($sql);
@@ -2624,13 +2706,20 @@
             }
         }
         $elapsed_time = $self->_read_timer($timer);
-        print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time sec) 
$DBI::errstr\n";
-        if ($debug_sql >= 2 && ref($retval)) {
-            foreach my $row (@$retval) {
-                print $App::DEBUG_FILE "DEBUG_SQL: [", join("|",map { defined 
$_ ? $_ : "undef"} @$row), "]\n";
+        if ($debug_sql_min_time && $elapsed_time >= $debug_sql_min_time && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: _do()\n";
+            print $App::DEBUG_FILE $sql;
+            print $App::DEBUG_FILE "\n" if ($sql !~ /\n$/);
+        }
+        if ((!$debug_sql_min_time || $elapsed_time >= $debug_sql_min_time) && 
(!$debug_sql_regex || $sql =~ /$debug_sql_regex/s)) {
+            print $App::DEBUG_FILE "DEBUG_SQL: nrows [$nrows] ($elapsed_time 
sec) $DBI::errstr\n";
+            if ($debug_sql >= 2 && ref($retval)) {
+                foreach my $row (@$retval) {
+                    print $App::DEBUG_FILE "DEBUG_SQL: [", join("|",map { 
defined $_ ? $_ : "undef"} @$row), "]\n";
+                }
             }
+            print $App::DEBUG_FILE "\n";
         }
-        print $App::DEBUG_FILE "\n";
     }
 
     &App::sub_exit($retval) if ($App::trace);

Reply via email to