AlignDB-ToXLSX
view release on metacpan or search on metacpan
lib/AlignDB/ToXLSX.pm view on Meta::CPAN
$self->increase_row;
return $sheet;
}
sub sql2names {
my $self = shift;
my $sql = shift;
my $opt = shift;
# bind value
my $bind_value = $opt->{bind_value};
if ( !defined $bind_value ) {
$bind_value = [];
}
#@type DBI
my $dbh = $self->{dbh};
#@type DBI
my $sth = $dbh->prepare($sql);
$sth->execute( @{$bind_value} );
my @names = @{ $sth->{'NAME'} };
return @names;
}
sub write_row {
my $self = shift;
#@type Excel::Writer::XLSX::Worksheet
my $sheet = shift;
lib/AlignDB/ToXLSX.pm view on Meta::CPAN
# init
my $format = $self->{format};
# query name
my $query_name = $opt->{query_name};
if ( defined $query_name ) {
$sheet->write( $self->{row}, $self->{column} - 1, $query_name, $format->{NAME} );
}
# bind value
my $bind_value = $opt->{bind_value};
if ( !defined $bind_value ) {
$bind_value = [];
}
# init DBI query
my $sql_query = $opt->{sql_query};
#@type DBI
my $dbh = $self->{dbh};
#@type DBI
my $sth = $dbh->prepare($sql_query);
$sth->execute( @{$bind_value} );
# init $data
my $data;
if ( exists $opt->{data} ) {
if ( defined $opt->{data} and ref( $opt->{data} ) eq 'ARRAY' ) {
$data = $opt->{data};
}
else {
$data = [];
push @{$data}, [] for @{ $sth->{'NAME'} };
lib/AlignDB/ToXLSX.pm view on Meta::CPAN
sub make_combine {
my $self = shift;
my $opt = shift;
# init parameters
my $sql_query = $opt->{sql_query};
my $threshold = $opt->{threshold};
my $standalone = $opt->{standalone};
# bind value
my $bind_value = $opt->{bind_value};
unless ( defined $bind_value ) {
$bind_value = [];
}
# merge_last
my $merge_last = $opt->{merge_last};
unless ( defined $merge_last ) {
$merge_last = 0;
}
# init DBI query
#@type DBI
my $dbh = $self->{dbh};
#@type DBI
my $sth = $dbh->prepare($sql_query);
$sth->execute(@$bind_value);
my @row_count = ();
while ( my @row = $sth->fetchrow_array ) {
push @row_count, \@row;
}
my @combined; # return these
my @temp_combined = ();
my $temp_count = 0;
foreach my $row_ref (@row_count) {
lib/AlignDB/ToXLSX.pm view on Meta::CPAN
sub make_combine_piece {
my ( $self, $opt ) = @_;
#@type DBI
my $dbh = $self->{dbh};
# init parameters
my $sql_query = $opt->{sql_query};
my $piece = $opt->{piece};
# bind value
my $bind_value = $opt->{bind_value};
unless ( defined $bind_value ) {
$bind_value = [];
}
# init DBI query
#@type DBI
my $sth = $dbh->prepare($sql_query);
$sth->execute(@$bind_value);
my @row_count = ();
while ( my @row = $sth->fetchrow_array ) {
push @row_count, \@row;
}
my $sum;
$sum += $_->[1] for @row_count;
my $small_chunk = $sum / $piece;
lib/AlignDB/ToXLSX.pm view on Meta::CPAN
last;
}
}
return ( $all_length, \@last_portion );
}
sub excute_sql {
my ( $self, $opt ) = @_;
# bind value
my $bind_value = $opt->{bind_value};
unless ( defined $bind_value ) {
$bind_value = [];
}
# init DBI query
my $sql_query = $opt->{sql_query};
#@type DBI
my $dbh = $self->{dbh};
#@type DBI
my $sth = $dbh->prepare($sql_query);
$sth->execute( @{$bind_value} );
}
sub check_column {
my ( $self, $table, $column ) = @_;
# init
#@type DBI
my $dbh = $self->{dbh};
{ # check table existing
lib/AlignDB/ToXLSX.pm view on Meta::CPAN
return [ $min, @quantiles, $max, ];
}
sub quantile_sql {
my ( $self, $opt, $part_number ) = @_;
#@type DBI
my $dbh = $self->{dbh};
# bind value
my $bind_value = $opt->{bind_value};
unless ( defined $bind_value ) {
$bind_value = [];
}
# init DBI query
my $sql_query = $opt->{sql_query};
#@type DBI
my $sth = $dbh->prepare($sql_query);
$sth->execute(@$bind_value);
my @data;
while ( my @row = $sth->fetchrow_array ) {
push @data, $row[0];
}
return $self->quantile( \@data, $part_number );
}
( run in 4.044 seconds using v1.01-cache-2.11-cpan-2398b32b56e )