package MySQL::Partition::Handle; use strict; use warnings; use Class::Accessor::Lite ( new => 1, ro => [qw/mysql_partition statement/], rw => [qw/_executed/], ); sub execute { my $self = shift; die 'statement is already executed' if $self->_executed; my $mysql_partition = $self->mysql_partition; my $sql = $self->statement; if ($mysql_partition->verbose || $mysql_partition->dry_run) { printf "Following SQL statement to be executed%s.\n", ($mysql_partition->dry_run ? ' (dry-run)' : ''); print "$sql\n"; } if (!$mysql_partition->dry_run) { $mysql_partition->dbh->do($sql); print "done.\n" if $mysql_partition->verbose; delete $mysql_partition->{partitions}; } $self->_executed(1); } 1; __END__ =encoding utf-8 =head1 NAME MySQL::Partition::Handle - handler for MySQL::Partition =head1 SYNOPSIS use MySQL::Partition; my $dbh = DBI->connect(@connect_info); my $list_partition = MySQL::Partition->new(...); # prepare_* method returns MySQL::Partition::Handle object my $handle = $list_partition->prepare_add_partitions('p4' => 4); print $handle->statement; $handle->execute; =head1 DESCRIPTION MySQL::Partition::Handle is module of handler for MySQL::Partition. =head1 INTERFACE =head2 Methods =head3 C<< my $sql = $handle->statement >> Returns a SQL statement to be executed. =head3 C<< $handle->execute >> Execute the SQL. =head1 LICENSE Copyright (C) Songmu. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 AUTHOR Songmu Ey.songmu@gmail.comE =cut