RSS Git Download  Clone
Raw Blame History
package LIMS::Local::DBIxSimple;

# sub-classes DBIx::Simple to dump query statements to output

use strict;
use warnings;

use parent 'DBIx::Simple';
use Data::Dumper;

sub query {
    my $self  = shift;
    my $query = shift;
    my @bind  = @_;
    
    # try to emulate output of Rose::DB::Object::QueryBuilder :
    {
        my $key_words = join '|',
            qw(select from where join date_sub curdate interval);
    
        $query =~ s/\b($key_words)\b/uc $1/eg;
        
        $query =~ s/(SELECT)(?!\n)/$1\n  /;
    
        $query =~ s/(FROM)(?!\n)/\n$1\n  /g; 
        
        $query =~ s/(WHERE)(?!\n)/\n$1\n  /g; # SORT|(GROUP BY)/
        
        $query =~ s/\t/  /g; # leading tab -> 2 spaces        
    }
    
    warn "$query (", join(', ', @bind), ")\n\n"; # modified from RDBO  

    $self->SUPER::query($query, @bind);
}

1;