Rename results file results to rows and meta to results. Test more --save-results.

This commit is contained in:
Daniel Nichter
2013-02-20 09:20:17 -07:00
parent 92194f1711
commit 144b4794b9
21 changed files with 187 additions and 68 deletions

View File

@@ -5932,13 +5932,13 @@ has '_query_fh' => (
required => 0, required => 0,
); );
has '_meta_fh' => ( has '_results_fh' => (
is => 'rw', is => 'rw',
isa => 'Maybe[FileHandle]', isa => 'Maybe[FileHandle]',
required => 0, required => 0,
); );
has '_results_fh' => ( has '_rows_fh' => (
is => 'rw', is => 'rw',
isa => 'Maybe[FileHandle]', isa => 'Maybe[FileHandle]',
required => 0, required => 0,
@@ -5954,19 +5954,19 @@ sub BUILDARGS {
open my $_query_fh, '>', $query_file open my $_query_fh, '>', $query_file
or die "Cannot open $query_file for writing: $OS_ERROR"; or die "Cannot open $query_file for writing: $OS_ERROR";
my $meta_file = "$dir/meta";
open my $_meta_fh, '>', $meta_file
or die "Cannot open $meta_file for writing: $OS_ERROR";
my $results_file = "$dir/results"; my $results_file = "$dir/results";
open my $_results_fh, '>', $results_file open my $_results_fh, '>', $results_file
or die "Cannot open $results_file for writing: $OS_ERROR"; or die "Cannot open $results_file for writing: $OS_ERROR";
my $rows_file = "$dir/rows";
open my $_rows_fh, '>', $rows_file
or die "Cannot open $rows_file for writing: $OS_ERROR";
my $self = { my $self = {
%$args, %$args,
_query_fh => $_query_fh, _query_fh => $_query_fh,
_meta_fh => $_meta_fh,
_results_fh => $_results_fh, _results_fh => $_results_fh,
_rows_fh => $_rows_fh,
}; };
return $self; return $self;
@@ -5982,18 +5982,30 @@ sub save {
print { $self->_query_fh } $event->{arg}, "\n##\n"; print { $self->_query_fh } $event->{arg}, "\n##\n";
if ( my $error = $results->{error} ) { if ( my $error = $results->{error} ) {
print { $self->_meta_fh } $error, "\n##\n"; print { $self->_results_fh }
print { $self->_results_fh } '', "\n##\n"; $self->dumper({ error => $error}, 'results'), "\n##\n";
print { $self->_rows_fh } "\n##\n";
} }
else { else {
my $sth = $results->{sth}; my $rows;
my $rows = $sth->fetchall_arrayref(); if ( my $sth = $results->{sth} ) {
eval { if ( $event->{arg} =~ m/(?:^\s*SELECT|(?:\*\/\s*SELECT))/i ) {
$sth->finish; $rows = $sth->fetchall_arrayref();
delete $results->{sth}; }
}; eval {
print { $self->_meta_fh } $self->dumper($results, 'meta'), "\n##\n"; $sth->finish;
print { $self->_results_fh } $self->dumper($rows, 'results'), "\n##\n"; };
if ( $EVAL_ERROR ) {
PTDEBUG && _d($EVAL_ERROR);
}
}
print { $self->_rows_fh }
($rows ? $self->dumper($rows, 'rows') : ''), "\n##\n";
delete $results->{error};
delete $results->{sth};
print { $self->_results_fh } $self->dumper($results, 'results'), "\n##\n";
} }
return; return;

View File

@@ -48,13 +48,13 @@ has '_query_fh' => (
required => 0, required => 0,
); );
has '_meta_fh' => ( has '_results_fh' => (
is => 'rw', is => 'rw',
isa => 'Maybe[FileHandle]', isa => 'Maybe[FileHandle]',
required => 0, required => 0,
); );
has '_results_fh' => ( has '_rows_fh' => (
is => 'rw', is => 'rw',
isa => 'Maybe[FileHandle]', isa => 'Maybe[FileHandle]',
required => 0, required => 0,
@@ -70,19 +70,19 @@ sub BUILDARGS {
open my $_query_fh, '>', $query_file open my $_query_fh, '>', $query_file
or die "Cannot open $query_file for writing: $OS_ERROR"; or die "Cannot open $query_file for writing: $OS_ERROR";
my $meta_file = "$dir/meta";
open my $_meta_fh, '>', $meta_file
or die "Cannot open $meta_file for writing: $OS_ERROR";
my $results_file = "$dir/results"; my $results_file = "$dir/results";
open my $_results_fh, '>', $results_file open my $_results_fh, '>', $results_file
or die "Cannot open $results_file for writing: $OS_ERROR"; or die "Cannot open $results_file for writing: $OS_ERROR";
my $rows_file = "$dir/rows";
open my $_rows_fh, '>', $rows_file
or die "Cannot open $rows_file for writing: $OS_ERROR";
my $self = { my $self = {
%$args, %$args,
_query_fh => $_query_fh, _query_fh => $_query_fh,
_meta_fh => $_meta_fh,
_results_fh => $_results_fh, _results_fh => $_results_fh,
_rows_fh => $_rows_fh,
}; };
return $self; return $self;
@@ -95,21 +95,38 @@ sub save {
my $event = $args{event}; my $event = $args{event};
my $results = $args{results}; my $results = $args{results};
# Save the query.
print { $self->_query_fh } $event->{arg}, "\n##\n"; print { $self->_query_fh } $event->{arg}, "\n##\n";
if ( my $error = $results->{error} ) { if ( my $error = $results->{error} ) {
print { $self->_meta_fh } $error, "\n##\n"; # Save the error.
print { $self->_results_fh } '', "\n##\n"; print { $self->_results_fh }
$self->dumper({ error => $error}, 'results'), "\n##\n";
# Save empty rows.
print { $self->_rows_fh } "\n##\n";
} }
else { else {
my $sth = $results->{sth}; # Save rows, if any (i.e. if it's a SELECT statement).
my $rows = $sth->fetchall_arrayref(); my $rows;
eval { if ( my $sth = $results->{sth} ) {
$sth->finish; if ( $event->{arg} =~ m/(?:^\s*SELECT|(?:\*\/\s*SELECT))/i ) {
delete $results->{sth}; $rows = $sth->fetchall_arrayref();
}; }
print { $self->_meta_fh } $self->dumper($results, 'meta'), "\n##\n"; eval {
print { $self->_results_fh } $self->dumper($rows, 'results'), "\n##\n"; $sth->finish;
};
if ( $EVAL_ERROR ) {
PTDEBUG && _d($EVAL_ERROR);
}
}
print { $self->_rows_fh }
($rows ? $self->dumper($rows, 'rows') : ''), "\n##\n";
# Save results.
delete $results->{error};
delete $results->{sth};
print { $self->_results_fh } $self->dumper($results, 'results'), "\n##\n";
} }
return; return;

View File

@@ -1,34 +1,6 @@
$results = [ $results = {
[ query_time => '0',
'1', warnings => {}
'a', };
'2013-01-01 00:00:01'
],
[
'2',
'b',
'2013-01-01 00:00:02'
],
[
'3',
'c',
'2013-01-01 00:00:03'
],
[
'4',
'd',
'2013-01-01 00:00:04'
],
[
'5',
'e',
'2013-01-01 00:00:05'
],
[
'6',
'f',
'2013-01-01 00:00:06'
]
];
## ##

View File

@@ -0,0 +1,34 @@
$rows = [
[
'1',
'a',
'2013-01-01 00:00:01'
],
[
'2',
'b',
'2013-01-01 00:00:02'
],
[
'3',
'c',
'2013-01-01 00:00:03'
],
[
'4',
'd',
'2013-01-01 00:00:04'
],
[
'5',
'e',
'2013-01-01 00:00:05'
],
[
'6',
'f',
'2013-01-01 00:00:06'
]
];
##

View File

@@ -0,0 +1,2 @@
select * from test.t order by id
##

View File

@@ -1,5 +1,4 @@
$meta = { $results = {
error => undef,
query_time => '0', query_time => '0',
warnings => {} warnings => {}
}; };

View File

@@ -0,0 +1,34 @@
$rows = [
[
'1',
'a',
'2013-01-01 00:00:01'
],
[
'2',
'b',
'2013-01-01 00:00:02'
],
[
'3',
'c',
'2013-01-01 00:00:03'
],
[
'4',
'd',
'2013-01-01 00:00:04'
],
[
'5',
'e',
'2013-01-01 00:00:05'
],
[
'6',
'f',
'2013-01-01 00:00:06'
]
];
##

View File

@@ -0,0 +1,2 @@
INSERT INTO t (id, username) VALUES (NULL, 'long_username')
##

View File

@@ -0,0 +1,12 @@
$results = {
query_time => '0',
warnings => {
'1265' => {
code => '1265',
level => 'Warning',
message => 'Data truncated for column \'username\' at row 1'
}
}
};
##

View File

@@ -0,0 +1,2 @@
##

View File

@@ -0,0 +1,2 @@
select nonexistent_col from test.t
##

View File

@@ -0,0 +1,5 @@
$results = {
error => 'DBD::mysql::st execute failed: Unknown column \'nonexistent_col\' in \'field list\' [for Statement "select nonexistent_col from test.t"]'
};
##

View File

@@ -0,0 +1,2 @@
##

View File

@@ -0,0 +1,2 @@
select host2_col from test.t
##

View File

@@ -0,0 +1,5 @@
$results = {
error => 'DBD::mysql::st execute failed: Unknown column \'host2_col\' in \'field list\' [for Statement "select host2_col from test.t"]'
};
##

View File

@@ -0,0 +1,2 @@
##

View File

@@ -0,0 +1,2 @@
select host1_col from test.t
##

View File

@@ -0,0 +1,6 @@
$results = {
query_time => '0',
warnings => {}
};
##

View File

@@ -0,0 +1,7 @@
$rows = [
[
'1'
]
];
##