package DBIx::dbMan::Extension::CountPost;
use strict;
use base 'DBIx::dbMan::Extension';
our $VERSION = '0.02';
1;
sub IDENTIFICATION { return "000001-000080-000002"; }
sub preference { return 90; }
sub handle_action {
my ($obj,%action) = @_;
$action{processed} = 1;
if ($action{count_process} eq '1') {
delete $action{processed};
delete $action{count_process};
my $oldaction = $action{action};
$action{action} = 'COUNT';
$action{sql} = uc $action{sql};
$action{sql} =~ s/SELECT COUNT\(\*\) POCET FROM //i;
$action{error_output} .= "Table $action{sql} does not exists.\n" if $oldaction eq 'OUTPUT';
return %action if $oldaction ne 'SQL_RESULT';
my $result = $action{result};
$action{count_rows} = $result->[0][0];
$action{action} = 'SQL';
$action{sql} = 'SELECT * FROM '.$action{sql}.' WHERE 0 = 1';
$action{count_process} = '2';
} elsif ($action{count_process} eq '2') {
delete $action{processed};
delete $action{count_process};
my $oldaction = $action{action};
$action{action} = 'COUNT';
$action{sql} = uc $action{sql};
$action{sql} =~ s/SELECT \* FROM //i;
$action{sql} =~ s/ WHERE 0 = 1//i;
return %action if $oldaction ne 'SQL_RESULT';
my $result = $action{result};
$action{count_result}->{$action{sql}}{rows} = $action{count_rows};
$action{count_result}->{$action{sql}}{cols} = scalar @{$action{fieldnames}};
}
return %action;
}