[Bast-commits] r9786 - in SQL-Abstract/1.x/trunk: . lib/DBIx/Class/Storage/Debug

frew at dev.catalyst.perl.org frew at dev.catalyst.perl.org
Sat Oct 23 20:30:26 GMT 2010


Author: frew
Date: 2010-10-23 20:30:26 +0000 (Sat, 23 Oct 2010)
New Revision: 9786

Modified:
   SQL-Abstract/1.x/trunk/Changes
   SQL-Abstract/1.x/trunk/lib/DBIx/Class/Storage/Debug/PrettyPrint.pm
Log:
Add EXECUTING for clarity of long running SQL

Modified: SQL-Abstract/1.x/trunk/Changes
===================================================================
--- SQL-Abstract/1.x/trunk/Changes	2010-10-23 17:10:06 UTC (rev 9785)
+++ SQL-Abstract/1.x/trunk/Changes	2010-10-23 20:30:26 UTC (rev 9786)
@@ -2,6 +2,7 @@
 
     - Hide bulk inserts from DBIx::Class
     - Highlight transaction keywords
+    - Add EXECUTING for clarity of long running SQL
 
 revision 1.69  2010-10-22
 ----------------------------

Modified: SQL-Abstract/1.x/trunk/lib/DBIx/Class/Storage/Debug/PrettyPrint.pm
===================================================================
--- SQL-Abstract/1.x/trunk/lib/DBIx/Class/Storage/Debug/PrettyPrint.pm	2010-10-23 17:10:06 UTC (rev 9785)
+++ SQL-Abstract/1.x/trunk/lib/DBIx/Class/Storage/Debug/PrettyPrint.pm	2010-10-23 20:30:26 UTC (rev 9786)
@@ -8,12 +8,24 @@
 use SQL::Abstract::Tree;
 
 __PACKAGE__->mk_group_accessors( simple => '_sqlat' );
+__PACKAGE__->mk_group_accessors( simple => 'clear_line_str' );
+__PACKAGE__->mk_group_accessors( simple => 'executing_str' );
 
 sub new {
    my $class = shift;
+   my $args  = shift;
 
-   my $sqlat = SQL::Abstract::Tree->new(shift @_);
+   my $clear_line = $args->{clear_line} || "\r";
+   my $executing  = $args->{executing}  || eval { require Term::ANSIColor } ? do {
+       my $c = \&Term::ANSIColor::color;
+       $c->('blink white on_black') . 'EXECUTING...' . $c->('reset');;
+   } : 'EXECUTING...';
+;
+
+   my $sqlat = SQL::Abstract::Tree->new($args);
    my $self = $class->next::method(@_);
+   $self->clear_line_str($clear_line);
+   $self->executing_str($executing);
 
    $self->_sqlat($sqlat);
 
@@ -25,6 +37,9 @@
   my $string = shift;
   my $bindargs = shift || [];
 
+  my ($lw, $lr);
+  ($lw, $string, $lr) = $string =~ /^(\s*)(.+?)(\s*)$/s;
+
   return if defined $bindargs && defined $bindargs->[0] &&
     $bindargs->[0] eq q('__BULK_INSERT__');
 
@@ -33,12 +48,12 @@
   # DBIC pre-quotes bindargs
   $bindargs = [map { s/^'//; s/'$//; $_ } @{$bindargs}] if $use_placeholders;
 
-  my $formatted = $self->_sqlat->format($string, $bindargs) . "\n";
+  my $formatted = $self->_sqlat->format($string, $bindargs);
 
   $formatted = "$formatted: " . join ', ', @{$bindargs}
      unless $use_placeholders;
 
-  $self->next::method($formatted, @_);
+  $self->next::method("$lw$formatted$lr", @_);
 }
 
 sub query_start {
@@ -50,9 +65,17 @@
     return;
   }
 
-  $self->print($string, \@bind);
+  $string =~ s/\s+$//;
+
+  $self->print("$string\n", \@bind);
+
+  $self->debugfh->print($self->executing_str)
 }
 
+sub query_end {
+  $_[0]->debugfh->print($_[0]->clear_line_str);
+}
+
 1;
 
 =pod




More information about the Bast-commits mailing list