mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-11 13:40:07 +00:00
Pushed the lib/Percona/Toolkit.pm version, and added extra tests to t/lib/Percona/Toolkit.t
This commit is contained in:
@@ -39,7 +39,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -1544,16 +1544,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
@@ -2544,12 +2548,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
@@ -36,7 +36,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -1756,12 +1756,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
@@ -39,7 +39,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -90,12 +90,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,16 +194,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
|
22
bin/pt-find
22
bin/pt-find
@@ -35,7 +35,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -1488,12 +1488,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1586,16 +1592,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
|
@@ -35,7 +35,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -1111,12 +1111,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -37,7 +37,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -2426,12 +2426,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2524,16 +2530,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
|
@@ -45,7 +45,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -473,12 +473,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2784,16 +2790,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
|
10
bin/pt-kill
10
bin/pt-kill
@@ -43,7 +43,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -4149,12 +4149,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -50,7 +50,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
@@ -46,7 +46,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -1499,12 +1499,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5286,16 +5292,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
|
@@ -64,7 +64,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -492,12 +492,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8103,16 +8109,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
|
@@ -36,7 +36,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -88,12 +88,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -53,7 +53,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -3235,7 +3235,6 @@ use strict;
|
|||||||
use warnings FATAL => 'all';
|
use warnings FATAL => 'all';
|
||||||
use English qw(-no_match_vars);
|
use English qw(-no_match_vars);
|
||||||
use Scalar::Util qw(blessed);
|
use Scalar::Util qw(blessed);
|
||||||
|
|
||||||
use constant {
|
use constant {
|
||||||
PTDEBUG => $ENV{PTDEBUG} || 0,
|
PTDEBUG => $ENV{PTDEBUG} || 0,
|
||||||
PERCONA_TOOLKIT_TEST_USE_DSN_NAMES => $ENV{PERCONA_TOOLKIT_TEST_USE_DSN_NAMES} || 0,
|
PERCONA_TOOLKIT_TEST_USE_DSN_NAMES => $ENV{PERCONA_TOOLKIT_TEST_USE_DSN_NAMES} || 0,
|
||||||
@@ -3508,12 +3507,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -51,7 +51,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
@@ -58,7 +58,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -464,16 +464,20 @@ $Data::Dumper::Indent = 1;
|
|||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
$Data::Dumper::Quotekeys = 0;
|
$Data::Dumper::Quotekeys = 0;
|
||||||
|
|
||||||
|
local $EVAL_ERROR;
|
||||||
|
eval {
|
||||||
|
require Quoter;
|
||||||
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $class, %args ) = @_;
|
my ( $class, %args ) = @_;
|
||||||
my @required_args = qw(Quoter);
|
|
||||||
foreach my $arg ( @required_args ) {
|
|
||||||
die "I need a $arg argument" unless $args{$arg};
|
|
||||||
}
|
|
||||||
my $self = { %args };
|
my $self = { %args };
|
||||||
|
$self->{Quoter} ||= Quoter->new();
|
||||||
return bless $self, $class;
|
return bless $self, $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Quoter { shift->{Quoter} }
|
||||||
|
|
||||||
sub get_create_table {
|
sub get_create_table {
|
||||||
my ( $self, $dbh, $db, $tbl ) = @_;
|
my ( $self, $dbh, $db, $tbl ) = @_;
|
||||||
die "I need a dbh parameter" unless $dbh;
|
die "I need a dbh parameter" unless $dbh;
|
||||||
@@ -893,12 +897,18 @@ sub quote_val {
|
|||||||
|
|
||||||
sub split_unquote {
|
sub split_unquote {
|
||||||
my ( $self, $db_tbl, $default_db ) = @_;
|
my ( $self, $db_tbl, $default_db ) = @_;
|
||||||
$db_tbl =~ s/`//g;
|
|
||||||
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
my ( $db, $tbl ) = split(/[.]/, $db_tbl);
|
||||||
if ( !$tbl ) {
|
if ( !$tbl ) {
|
||||||
$tbl = $db;
|
$tbl = $db;
|
||||||
$db = $default_db;
|
$db = $default_db;
|
||||||
}
|
}
|
||||||
|
for ($db, $tbl) {
|
||||||
|
next unless $_;
|
||||||
|
s/\A`//;
|
||||||
|
s/`\z//;
|
||||||
|
s/``/`/g;
|
||||||
|
}
|
||||||
|
|
||||||
return ($db, $tbl);
|
return ($db, $tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -40,7 +40,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.5';
|
our $VERSION = '2.1.6';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
@@ -10,11 +10,15 @@ use strict;
|
|||||||
use warnings FATAL => 'all';
|
use warnings FATAL => 'all';
|
||||||
use Test::More;
|
use Test::More;
|
||||||
|
|
||||||
|
use IPC::Cmd qw(run can_run);
|
||||||
|
|
||||||
use PerconaTest;
|
use PerconaTest;
|
||||||
use Percona::Toolkit;
|
use Percona::Toolkit;
|
||||||
|
|
||||||
my $version = $Percona::Toolkit::VERSION;
|
my $version = $Percona::Toolkit::VERSION;
|
||||||
|
|
||||||
|
my $perl = $^X;
|
||||||
|
|
||||||
use File::Basename qw(basename);
|
use File::Basename qw(basename);
|
||||||
my @vc_tools = grep { chomp; basename($_) =~ /\A[a-z-]+\z/ } glob("$trunk/bin/*");
|
my @vc_tools = grep { chomp; basename($_) =~ /\A[a-z-]+\z/ } glob("$trunk/bin/*");
|
||||||
|
|
||||||
@@ -28,9 +32,36 @@ foreach my $tool ( @vc_tools ) {
|
|||||||
$version,
|
$version,
|
||||||
"$base --version and Percona::Toolkit::VERSION agree"
|
"$base --version and Percona::Toolkit::VERSION agree"
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
use IPC::Cmd qw(can_run);
|
# Now let's check that lib/Percona/Toolkit.pm and each tool's
|
||||||
|
# $Percona::Toolkit::VERSION agree, sow e can avoid the 2.1.4 pt-table-sync
|
||||||
|
# debacle
|
||||||
|
open my $tmp_fh, q{<}, $tool or die "$!";
|
||||||
|
my $is_perl = scalar(<$tmp_fh>) =~ /perl/;
|
||||||
|
close $tmp_fh;
|
||||||
|
|
||||||
|
next unless $is_perl;
|
||||||
|
|
||||||
|
my ($success, undef, $full_buf) =
|
||||||
|
run(
|
||||||
|
command => [ $perl, '-le', "require q{$tool}; print \$Percona::Toolkit::VERSION"]
|
||||||
|
);
|
||||||
|
|
||||||
|
if ( !$success ) {
|
||||||
|
fail("Failed to get \$Percona::Toolkit::VERSION from $base: $full_buf")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
chomp(@$full_buf);
|
||||||
|
my $out = join "", @$full_buf;
|
||||||
|
if ($out) {
|
||||||
|
is(
|
||||||
|
"@$full_buf",
|
||||||
|
$version,
|
||||||
|
"$base and lib/Percona/Toolkit.pm agree"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my $bzr = can_run('bzr');
|
my $bzr = can_run('bzr');
|
||||||
SKIP: {
|
SKIP: {
|
||||||
|
Reference in New Issue
Block a user